/* A Bison parser, made by GNU Bison 2.3.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C

   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Bison version.  */
#define YYBISON_VERSION "2.3"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Using locations.  */
#define YYLSP_NEEDED 1

/* Substitute the variable and function names.  */
#define yyparse base_yyparse
#define yylex   base_yylex
#define yyerror base_yyerror
#define yylval  base_yylval
#define yychar  base_yychar
#define yydebug base_yydebug
#define yynerrs base_yynerrs
#define yylloc base_yylloc

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     IDENT = 258,
     FCONST = 259,
     SCONST = 260,
     BCONST = 261,
     XCONST = 262,
     Op = 263,
     ICONST = 264,
     PARAM = 265,
     TYPECAST = 266,
     DOT_DOT = 267,
     COLON_EQUALS = 268,
     EQUALS_GREATER = 269,
     INTEGER_DIVISION = 270,
     POWER_OF = 271,
     SINGLE_ARROW = 272,
     DOUBLE_ARROW = 273,
     SINGLE_COLON = 274,
     LESS_EQUALS = 275,
     GREATER_EQUALS = 276,
     NOT_EQUALS = 277,
     ABORT_P = 278,
     ABSOLUTE_P = 279,
     ACCESS = 280,
     ACTION = 281,
     ADD_P = 282,
     ADMIN = 283,
     AFTER = 284,
     AGGREGATE = 285,
     ALL = 286,
     ALSO = 287,
     ALTER = 288,
     ALWAYS = 289,
     ANALYSE = 290,
     ANALYZE = 291,
     AND = 292,
     ANTI = 293,
     ANY = 294,
     ARRAY = 295,
     AS = 296,
     ASC_P = 297,
     ASOF = 298,
     ASSERTION = 299,
     ASSIGNMENT = 300,
     ASYMMETRIC = 301,
     AT = 302,
     ATTACH = 303,
     ATTRIBUTE = 304,
     AUTHORIZATION = 305,
     BACKWARD = 306,
     BEFORE = 307,
     BEGIN_P = 308,
     BETWEEN = 309,
     BIGINT = 310,
     BINARY = 311,
     BIT = 312,
     BOOLEAN_P = 313,
     BOTH = 314,
     BY = 315,
     CACHE = 316,
     CALL_P = 317,
     CALLED = 318,
     CASCADE = 319,
     CASCADED = 320,
     CASE = 321,
     CAST = 322,
     CATALOG_P = 323,
     CENTURIES_P = 324,
     CENTURY_P = 325,
     CHAIN = 326,
     CHAR_P = 327,
     CHARACTER = 328,
     CHARACTERISTICS = 329,
     CHECK_P = 330,
     CHECKPOINT = 331,
     CLASS = 332,
     CLOSE = 333,
     CLUSTER = 334,
     COALESCE = 335,
     COLLATE = 336,
     COLLATION = 337,
     COLUMN = 338,
     COLUMNS = 339,
     COMMENT = 340,
     COMMENTS = 341,
     COMMIT = 342,
     COMMITTED = 343,
     COMPRESSION = 344,
     CONCURRENTLY = 345,
     CONFIGURATION = 346,
     CONFLICT = 347,
     CONNECTION = 348,
     CONSTRAINT = 349,
     CONSTRAINTS = 350,
     CONTENT_P = 351,
     CONTINUE_P = 352,
     CONVERSION_P = 353,
     COPY = 354,
     COST = 355,
     CREATE_P = 356,
     CROSS = 357,
     CSV = 358,
     CUBE = 359,
     CURRENT_P = 360,
     CURSOR = 361,
     CYCLE = 362,
     DATA_P = 363,
     DATABASE = 364,
     DAY_P = 365,
     DAYS_P = 366,
     DEALLOCATE = 367,
     DEC = 368,
     DECADE_P = 369,
     DECADES_P = 370,
     DECIMAL_P = 371,
     DECLARE = 372,
     DEFAULT = 373,
     DEFAULTS = 374,
     DEFERRABLE = 375,
     DEFERRED = 376,
     DEFINER = 377,
     DELETE_P = 378,
     DELIMITER = 379,
     DELIMITERS = 380,
     DEPENDS = 381,
     DESC_P = 382,
     DESCRIBE = 383,
     DETACH = 384,
     DICTIONARY = 385,
     DISABLE_P = 386,
     DISCARD = 387,
     DISTINCT = 388,
     DO = 389,
     DOCUMENT_P = 390,
     DOMAIN_P = 391,
     DOUBLE_P = 392,
     DROP = 393,
     EACH = 394,
     ELSE = 395,
     ENABLE_P = 396,
     ENCODING = 397,
     ENCRYPTED = 398,
     END_P = 399,
     ENUM_P = 400,
     ESCAPE = 401,
     EVENT = 402,
     EXCEPT = 403,
     EXCLUDE = 404,
     EXCLUDING = 405,
     EXCLUSIVE = 406,
     EXECUTE = 407,
     EXISTS = 408,
     EXPLAIN = 409,
     EXPORT_P = 410,
     EXPORT_STATE = 411,
     EXTENSION = 412,
     EXTENSIONS = 413,
     EXTERNAL = 414,
     EXTRACT = 415,
     FALSE_P = 416,
     FAMILY = 417,
     FETCH = 418,
     FILTER = 419,
     FIRST_P = 420,
     FLOAT_P = 421,
     FOLLOWING = 422,
     FOR = 423,
     FORCE = 424,
     FOREIGN = 425,
     FORWARD = 426,
     FREEZE = 427,
     FROM = 428,
     FULL = 429,
     FUNCTION = 430,
     FUNCTIONS = 431,
     GENERATED = 432,
     GLOB = 433,
     GLOBAL = 434,
     GRANT = 435,
     GRANTED = 436,
     GROUP_P = 437,
     GROUPING = 438,
     GROUPING_ID = 439,
     GROUPS = 440,
     HANDLER = 441,
     HAVING = 442,
     HEADER_P = 443,
     HOLD = 444,
     HOUR_P = 445,
     HOURS_P = 446,
     IDENTITY_P = 447,
     IF_P = 448,
     IGNORE_P = 449,
     ILIKE = 450,
     IMMEDIATE = 451,
     IMMUTABLE = 452,
     IMPLICIT_P = 453,
     IMPORT_P = 454,
     IN_P = 455,
     INCLUDE_P = 456,
     INCLUDING = 457,
     INCREMENT = 458,
     INDEX = 459,
     INDEXES = 460,
     INHERIT = 461,
     INHERITS = 462,
     INITIALLY = 463,
     INLINE_P = 464,
     INNER_P = 465,
     INOUT = 466,
     INPUT_P = 467,
     INSENSITIVE = 468,
     INSERT = 469,
     INSTALL = 470,
     INSTEAD = 471,
     INT_P = 472,
     INTEGER = 473,
     INTERSECT = 474,
     INTERVAL = 475,
     INTO = 476,
     INVOKER = 477,
     IS = 478,
     ISNULL = 479,
     ISOLATION = 480,
     JOIN = 481,
     JSON = 482,
     KEY = 483,
     LABEL = 484,
     LAMBDA = 485,
     LANGUAGE = 486,
     LARGE_P = 487,
     LAST_P = 488,
     LATERAL_P = 489,
     LEADING = 490,
     LEAKPROOF = 491,
     LEFT = 492,
     LEVEL = 493,
     LIKE = 494,
     LIMIT = 495,
     LISTEN = 496,
     LOAD = 497,
     LOCAL = 498,
     LOCATION = 499,
     LOCK_P = 500,
     LOCKED = 501,
     LOGGED = 502,
     MACRO = 503,
     MAP = 504,
     MAPPING = 505,
     MATCH = 506,
     MATERIALIZED = 507,
     MAXVALUE = 508,
     METHOD = 509,
     MICROSECOND_P = 510,
     MICROSECONDS_P = 511,
     MILLENNIA_P = 512,
     MILLENNIUM_P = 513,
     MILLISECOND_P = 514,
     MILLISECONDS_P = 515,
     MINUTE_P = 516,
     MINUTES_P = 517,
     MINVALUE = 518,
     MODE = 519,
     MONTH_P = 520,
     MONTHS_P = 521,
     MOVE = 522,
     NAME_P = 523,
     NAMES = 524,
     NATIONAL = 525,
     NATURAL = 526,
     NCHAR = 527,
     NEW = 528,
     NEXT = 529,
     NO = 530,
     NONE = 531,
     NOT = 532,
     NOTHING = 533,
     NOTIFY = 534,
     NOTNULL = 535,
     NOWAIT = 536,
     NULL_P = 537,
     NULLIF = 538,
     NULLS_P = 539,
     NUMERIC = 540,
     OBJECT_P = 541,
     OF = 542,
     OFF = 543,
     OFFSET = 544,
     OIDS = 545,
     OLD = 546,
     ON = 547,
     ONLY = 548,
     OPERATOR = 549,
     OPTION = 550,
     OPTIONS = 551,
     OR = 552,
     ORDER = 553,
     ORDINALITY = 554,
     OTHERS = 555,
     OUT_P = 556,
     OUTER_P = 557,
     OVER = 558,
     OVERLAPS = 559,
     OVERLAY = 560,
     OVERRIDING = 561,
     OWNED = 562,
     OWNER = 563,
     PARALLEL = 564,
     PARSER = 565,
     PARTIAL = 566,
     PARTITION = 567,
     PARTITIONED = 568,
     PASSING = 569,
     PASSWORD = 570,
     PERCENT = 571,
     PERSISTENT = 572,
     PIVOT = 573,
     PIVOT_LONGER = 574,
     PIVOT_WIDER = 575,
     PLACING = 576,
     PLANS = 577,
     POLICY = 578,
     POSITION = 579,
     POSITIONAL = 580,
     PRAGMA_P = 581,
     PRECEDING = 582,
     PRECISION = 583,
     PREPARE = 584,
     PREPARED = 585,
     PRESERVE = 586,
     PRIMARY = 587,
     PRIOR = 588,
     PRIVILEGES = 589,
     PROCEDURAL = 590,
     PROCEDURE = 591,
     PROGRAM = 592,
     PUBLICATION = 593,
     QUALIFY = 594,
     QUARTER_P = 595,
     QUARTERS_P = 596,
     QUOTE = 597,
     RANGE = 598,
     READ_P = 599,
     REAL = 600,
     REASSIGN = 601,
     RECHECK = 602,
     RECURSIVE = 603,
     REF = 604,
     REFERENCES = 605,
     REFERENCING = 606,
     REFRESH = 607,
     REINDEX = 608,
     RELATIVE_P = 609,
     RELEASE = 610,
     RENAME = 611,
     REPEATABLE = 612,
     REPLACE = 613,
     REPLICA = 614,
     RESET = 615,
     RESPECT_P = 616,
     RESTART = 617,
     RESTRICT = 618,
     RETURNING = 619,
     RETURNS = 620,
     REVOKE = 621,
     RIGHT = 622,
     ROLE = 623,
     ROLLBACK = 624,
     ROLLUP = 625,
     ROW = 626,
     ROWS = 627,
     RULE = 628,
     SAMPLE = 629,
     SAVEPOINT = 630,
     SCHEMA = 631,
     SCHEMAS = 632,
     SCOPE = 633,
     SCROLL = 634,
     SEARCH = 635,
     SECOND_P = 636,
     SECONDS_P = 637,
     SECRET = 638,
     SECURITY = 639,
     SELECT = 640,
     SEMI = 641,
     SEQUENCE = 642,
     SEQUENCES = 643,
     SERIALIZABLE = 644,
     SERVER = 645,
     SESSION = 646,
     SET = 647,
     SETOF = 648,
     SETS = 649,
     SHARE = 650,
     SHOW = 651,
     SIMILAR = 652,
     SIMPLE = 653,
     SKIP = 654,
     SMALLINT = 655,
     SNAPSHOT = 656,
     SOME = 657,
     SORTED = 658,
     SQL_P = 659,
     STABLE = 660,
     STANDALONE_P = 661,
     START = 662,
     STATEMENT = 663,
     STATISTICS = 664,
     STDIN = 665,
     STDOUT = 666,
     STORAGE = 667,
     STORED = 668,
     STRICT_P = 669,
     STRIP_P = 670,
     STRUCT = 671,
     SUBSCRIPTION = 672,
     SUBSTRING = 673,
     SUMMARIZE = 674,
     SYMMETRIC = 675,
     SYSID = 676,
     SYSTEM_P = 677,
     TABLE = 678,
     TABLES = 679,
     TABLESAMPLE = 680,
     TABLESPACE = 681,
     TEMP = 682,
     TEMPLATE = 683,
     TEMPORARY = 684,
     TEXT_P = 685,
     THEN = 686,
     TIES = 687,
     TIME = 688,
     TIMESTAMP = 689,
     TO = 690,
     TRAILING = 691,
     TRANSACTION = 692,
     TRANSFORM = 693,
     TREAT = 694,
     TRIGGER = 695,
     TRIM = 696,
     TRUE_P = 697,
     TRUNCATE = 698,
     TRUSTED = 699,
     TRY_CAST = 700,
     TYPE_P = 701,
     TYPES_P = 702,
     UNBOUNDED = 703,
     UNCOMMITTED = 704,
     UNENCRYPTED = 705,
     UNION = 706,
     UNIQUE = 707,
     UNKNOWN = 708,
     UNLISTEN = 709,
     UNLOGGED = 710,
     UNPACK = 711,
     UNPIVOT = 712,
     UNTIL = 713,
     UPDATE = 714,
     USE_P = 715,
     USER = 716,
     USING = 717,
     VACUUM = 718,
     VALID = 719,
     VALIDATE = 720,
     VALIDATOR = 721,
     VALUE_P = 722,
     VALUES = 723,
     VARCHAR = 724,
     VARIABLE_P = 725,
     VARIADIC = 726,
     VARYING = 727,
     VERBOSE = 728,
     VERSION_P = 729,
     VIEW = 730,
     VIEWS = 731,
     VIRTUAL = 732,
     VOLATILE = 733,
     WEEK_P = 734,
     WEEKS_P = 735,
     WHEN = 736,
     WHERE = 737,
     WHITESPACE_P = 738,
     WINDOW = 739,
     WITH = 740,
     WITHIN = 741,
     WITHOUT = 742,
     WORK = 743,
     WRAPPER = 744,
     WRITE_P = 745,
     XML_P = 746,
     XMLATTRIBUTES = 747,
     XMLCONCAT = 748,
     XMLELEMENT = 749,
     XMLEXISTS = 750,
     XMLFOREST = 751,
     XMLNAMESPACES = 752,
     XMLPARSE = 753,
     XMLPI = 754,
     XMLROOT = 755,
     XMLSERIALIZE = 756,
     XMLTABLE = 757,
     YEAR_P = 758,
     YEARS_P = 759,
     YES_P = 760,
     ZONE = 761,
     NOT_LA = 762,
     NULLS_LA = 763,
     WITH_LA = 764,
     POSTFIXOP = 765,
     UMINUS = 766
   };
#endif
/* Tokens.  */
#define IDENT 258
#define FCONST 259
#define SCONST 260
#define BCONST 261
#define XCONST 262
#define Op 263
#define ICONST 264
#define PARAM 265
#define TYPECAST 266
#define DOT_DOT 267
#define COLON_EQUALS 268
#define EQUALS_GREATER 269
#define INTEGER_DIVISION 270
#define POWER_OF 271
#define SINGLE_ARROW 272
#define DOUBLE_ARROW 273
#define SINGLE_COLON 274
#define LESS_EQUALS 275
#define GREATER_EQUALS 276
#define NOT_EQUALS 277
#define ABORT_P 278
#define ABSOLUTE_P 279
#define ACCESS 280
#define ACTION 281
#define ADD_P 282
#define ADMIN 283
#define AFTER 284
#define AGGREGATE 285
#define ALL 286
#define ALSO 287
#define ALTER 288
#define ALWAYS 289
#define ANALYSE 290
#define ANALYZE 291
#define AND 292
#define ANTI 293
#define ANY 294
#define ARRAY 295
#define AS 296
#define ASC_P 297
#define ASOF 298
#define ASSERTION 299
#define ASSIGNMENT 300
#define ASYMMETRIC 301
#define AT 302
#define ATTACH 303
#define ATTRIBUTE 304
#define AUTHORIZATION 305
#define BACKWARD 306
#define BEFORE 307
#define BEGIN_P 308
#define BETWEEN 309
#define BIGINT 310
#define BINARY 311
#define BIT 312
#define BOOLEAN_P 313
#define BOTH 314
#define BY 315
#define CACHE 316
#define CALL_P 317
#define CALLED 318
#define CASCADE 319
#define CASCADED 320
#define CASE 321
#define CAST 322
#define CATALOG_P 323
#define CENTURIES_P 324
#define CENTURY_P 325
#define CHAIN 326
#define CHAR_P 327
#define CHARACTER 328
#define CHARACTERISTICS 329
#define CHECK_P 330
#define CHECKPOINT 331
#define CLASS 332
#define CLOSE 333
#define CLUSTER 334
#define COALESCE 335
#define COLLATE 336
#define COLLATION 337
#define COLUMN 338
#define COLUMNS 339
#define COMMENT 340
#define COMMENTS 341
#define COMMIT 342
#define COMMITTED 343
#define COMPRESSION 344
#define CONCURRENTLY 345
#define CONFIGURATION 346
#define CONFLICT 347
#define CONNECTION 348
#define CONSTRAINT 349
#define CONSTRAINTS 350
#define CONTENT_P 351
#define CONTINUE_P 352
#define CONVERSION_P 353
#define COPY 354
#define COST 355
#define CREATE_P 356
#define CROSS 357
#define CSV 358
#define CUBE 359
#define CURRENT_P 360
#define CURSOR 361
#define CYCLE 362
#define DATA_P 363
#define DATABASE 364
#define DAY_P 365
#define DAYS_P 366
#define DEALLOCATE 367
#define DEC 368
#define DECADE_P 369
#define DECADES_P 370
#define DECIMAL_P 371
#define DECLARE 372
#define DEFAULT 373
#define DEFAULTS 374
#define DEFERRABLE 375
#define DEFERRED 376
#define DEFINER 377
#define DELETE_P 378
#define DELIMITER 379
#define DELIMITERS 380
#define DEPENDS 381
#define DESC_P 382
#define DESCRIBE 383
#define DETACH 384
#define DICTIONARY 385
#define DISABLE_P 386
#define DISCARD 387
#define DISTINCT 388
#define DO 389
#define DOCUMENT_P 390
#define DOMAIN_P 391
#define DOUBLE_P 392
#define DROP 393
#define EACH 394
#define ELSE 395
#define ENABLE_P 396
#define ENCODING 397
#define ENCRYPTED 398
#define END_P 399
#define ENUM_P 400
#define ESCAPE 401
#define EVENT 402
#define EXCEPT 403
#define EXCLUDE 404
#define EXCLUDING 405
#define EXCLUSIVE 406
#define EXECUTE 407
#define EXISTS 408
#define EXPLAIN 409
#define EXPORT_P 410
#define EXPORT_STATE 411
#define EXTENSION 412
#define EXTENSIONS 413
#define EXTERNAL 414
#define EXTRACT 415
#define FALSE_P 416
#define FAMILY 417
#define FETCH 418
#define FILTER 419
#define FIRST_P 420
#define FLOAT_P 421
#define FOLLOWING 422
#define FOR 423
#define FORCE 424
#define FOREIGN 425
#define FORWARD 426
#define FREEZE 427
#define FROM 428
#define FULL 429
#define FUNCTION 430
#define FUNCTIONS 431
#define GENERATED 432
#define GLOB 433
#define GLOBAL 434
#define GRANT 435
#define GRANTED 436
#define GROUP_P 437
#define GROUPING 438
#define GROUPING_ID 439
#define GROUPS 440
#define HANDLER 441
#define HAVING 442
#define HEADER_P 443
#define HOLD 444
#define HOUR_P 445
#define HOURS_P 446
#define IDENTITY_P 447
#define IF_P 448
#define IGNORE_P 449
#define ILIKE 450
#define IMMEDIATE 451
#define IMMUTABLE 452
#define IMPLICIT_P 453
#define IMPORT_P 454
#define IN_P 455
#define INCLUDE_P 456
#define INCLUDING 457
#define INCREMENT 458
#define INDEX 459
#define INDEXES 460
#define INHERIT 461
#define INHERITS 462
#define INITIALLY 463
#define INLINE_P 464
#define INNER_P 465
#define INOUT 466
#define INPUT_P 467
#define INSENSITIVE 468
#define INSERT 469
#define INSTALL 470
#define INSTEAD 471
#define INT_P 472
#define INTEGER 473
#define INTERSECT 474
#define INTERVAL 475
#define INTO 476
#define INVOKER 477
#define IS 478
#define ISNULL 479
#define ISOLATION 480
#define JOIN 481
#define JSON 482
#define KEY 483
#define LABEL 484
#define LAMBDA 485
#define LANGUAGE 486
#define LARGE_P 487
#define LAST_P 488
#define LATERAL_P 489
#define LEADING 490
#define LEAKPROOF 491
#define LEFT 492
#define LEVEL 493
#define LIKE 494
#define LIMIT 495
#define LISTEN 496
#define LOAD 497
#define LOCAL 498
#define LOCATION 499
#define LOCK_P 500
#define LOCKED 501
#define LOGGED 502
#define MACRO 503
#define MAP 504
#define MAPPING 505
#define MATCH 506
#define MATERIALIZED 507
#define MAXVALUE 508
#define METHOD 509
#define MICROSECOND_P 510
#define MICROSECONDS_P 511
#define MILLENNIA_P 512
#define MILLENNIUM_P 513
#define MILLISECOND_P 514
#define MILLISECONDS_P 515
#define MINUTE_P 516
#define MINUTES_P 517
#define MINVALUE 518
#define MODE 519
#define MONTH_P 520
#define MONTHS_P 521
#define MOVE 522
#define NAME_P 523
#define NAMES 524
#define NATIONAL 525
#define NATURAL 526
#define NCHAR 527
#define NEW 528
#define NEXT 529
#define NO 530
#define NONE 531
#define NOT 532
#define NOTHING 533
#define NOTIFY 534
#define NOTNULL 535
#define NOWAIT 536
#define NULL_P 537
#define NULLIF 538
#define NULLS_P 539
#define NUMERIC 540
#define OBJECT_P 541
#define OF 542
#define OFF 543
#define OFFSET 544
#define OIDS 545
#define OLD 546
#define ON 547
#define ONLY 548
#define OPERATOR 549
#define OPTION 550
#define OPTIONS 551
#define OR 552
#define ORDER 553
#define ORDINALITY 554
#define OTHERS 555
#define OUT_P 556
#define OUTER_P 557
#define OVER 558
#define OVERLAPS 559
#define OVERLAY 560
#define OVERRIDING 561
#define OWNED 562
#define OWNER 563
#define PARALLEL 564
#define PARSER 565
#define PARTIAL 566
#define PARTITION 567
#define PARTITIONED 568
#define PASSING 569
#define PASSWORD 570
#define PERCENT 571
#define PERSISTENT 572
#define PIVOT 573
#define PIVOT_LONGER 574
#define PIVOT_WIDER 575
#define PLACING 576
#define PLANS 577
#define POLICY 578
#define POSITION 579
#define POSITIONAL 580
#define PRAGMA_P 581
#define PRECEDING 582
#define PRECISION 583
#define PREPARE 584
#define PREPARED 585
#define PRESERVE 586
#define PRIMARY 587
#define PRIOR 588
#define PRIVILEGES 589
#define PROCEDURAL 590
#define PROCEDURE 591
#define PROGRAM 592
#define PUBLICATION 593
#define QUALIFY 594
#define QUARTER_P 595
#define QUARTERS_P 596
#define QUOTE 597
#define RANGE 598
#define READ_P 599
#define REAL 600
#define REASSIGN 601
#define RECHECK 602
#define RECURSIVE 603
#define REF 604
#define REFERENCES 605
#define REFERENCING 606
#define REFRESH 607
#define REINDEX 608
#define RELATIVE_P 609
#define RELEASE 610
#define RENAME 611
#define REPEATABLE 612
#define REPLACE 613
#define REPLICA 614
#define RESET 615
#define RESPECT_P 616
#define RESTART 617
#define RESTRICT 618
#define RETURNING 619
#define RETURNS 620
#define REVOKE 621
#define RIGHT 622
#define ROLE 623
#define ROLLBACK 624
#define ROLLUP 625
#define ROW 626
#define ROWS 627
#define RULE 628
#define SAMPLE 629
#define SAVEPOINT 630
#define SCHEMA 631
#define SCHEMAS 632
#define SCOPE 633
#define SCROLL 634
#define SEARCH 635
#define SECOND_P 636
#define SECONDS_P 637
#define SECRET 638
#define SECURITY 639
#define SELECT 640
#define SEMI 641
#define SEQUENCE 642
#define SEQUENCES 643
#define SERIALIZABLE 644
#define SERVER 645
#define SESSION 646
#define SET 647
#define SETOF 648
#define SETS 649
#define SHARE 650
#define SHOW 651
#define SIMILAR 652
#define SIMPLE 653
#define SKIP 654
#define SMALLINT 655
#define SNAPSHOT 656
#define SOME 657
#define SORTED 658
#define SQL_P 659
#define STABLE 660
#define STANDALONE_P 661
#define START 662
#define STATEMENT 663
#define STATISTICS 664
#define STDIN 665
#define STDOUT 666
#define STORAGE 667
#define STORED 668
#define STRICT_P 669
#define STRIP_P 670
#define STRUCT 671
#define SUBSCRIPTION 672
#define SUBSTRING 673
#define SUMMARIZE 674
#define SYMMETRIC 675
#define SYSID 676
#define SYSTEM_P 677
#define TABLE 678
#define TABLES 679
#define TABLESAMPLE 680
#define TABLESPACE 681
#define TEMP 682
#define TEMPLATE 683
#define TEMPORARY 684
#define TEXT_P 685
#define THEN 686
#define TIES 687
#define TIME 688
#define TIMESTAMP 689
#define TO 690
#define TRAILING 691
#define TRANSACTION 692
#define TRANSFORM 693
#define TREAT 694
#define TRIGGER 695
#define TRIM 696
#define TRUE_P 697
#define TRUNCATE 698
#define TRUSTED 699
#define TRY_CAST 700
#define TYPE_P 701
#define TYPES_P 702
#define UNBOUNDED 703
#define UNCOMMITTED 704
#define UNENCRYPTED 705
#define UNION 706
#define UNIQUE 707
#define UNKNOWN 708
#define UNLISTEN 709
#define UNLOGGED 710
#define UNPACK 711
#define UNPIVOT 712
#define UNTIL 713
#define UPDATE 714
#define USE_P 715
#define USER 716
#define USING 717
#define VACUUM 718
#define VALID 719
#define VALIDATE 720
#define VALIDATOR 721
#define VALUE_P 722
#define VALUES 723
#define VARCHAR 724
#define VARIABLE_P 725
#define VARIADIC 726
#define VARYING 727
#define VERBOSE 728
#define VERSION_P 729
#define VIEW 730
#define VIEWS 731
#define VIRTUAL 732
#define VOLATILE 733
#define WEEK_P 734
#define WEEKS_P 735
#define WHEN 736
#define WHERE 737
#define WHITESPACE_P 738
#define WINDOW 739
#define WITH 740
#define WITHIN 741
#define WITHOUT 742
#define WORK 743
#define WRAPPER 744
#define WRITE_P 745
#define XML_P 746
#define XMLATTRIBUTES 747
#define XMLCONCAT 748
#define XMLELEMENT 749
#define XMLEXISTS 750
#define XMLFOREST 751
#define XMLNAMESPACES 752
#define XMLPARSE 753
#define XMLPI 754
#define XMLROOT 755
#define XMLSERIALIZE 756
#define XMLTABLE 757
#define YEAR_P 758
#define YEARS_P 759
#define YES_P 760
#define ZONE 761
#define NOT_LA 762
#define NULLS_LA 763
#define WITH_LA 764
#define POSTFIXOP 765
#define UMINUS 766




/* Copy the first part of user declarations.  */
#line 1 "third_party/libpg_query/grammar/grammar.y.tmp"

#line 1 "third_party/libpg_query/grammar/grammar.hpp"
/*#define YYDEBUG 1*/
/*-------------------------------------------------------------------------
 *
 * gram.y
 *	  POSTGRESQL BISON rules/actions
 *
 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development PGGroup
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 *
 * IDENTIFICATION
 *	  src/backend/parser/gram.y
 *
 * HISTORY
 *	  AUTHOR			DATE			MAJOR EVENT
 *	  Andrew Yu			Sept, 1994		POSTQUEL to SQL conversion
 *	  Andrew Yu			Oct, 1994		lispy code conversion
 *
 * NOTES
 *	  CAPITALS are used to represent terminal symbols.
 *	  non-capitals are used to represent non-terminals.
 *
 *	  In general, nothing in this file should initiate database accesses
 *	  nor depend on changeable state (such as SET variables).  If you do
 *	  database accesses, your code will fail when we have aborted the
 *	  current transaction and are just parsing commands to find the next
 *	  ROLLBACK or COMMIT.  If you make use of SET variables, then you
 *	  will do the wrong thing in multi-query strings like this:
 *			SET constraint_exclusion TO off; SELECT * FROM foo;
 *	  because the entire string is parsed by gram.y before the SET gets
 *	  executed.  Anything that depends on the database or changeable state
 *	  should be handled during parse analysis so that it happens at the
 *	  right time not the wrong time.
 *
 * WARNINGS
 *	  If you use a list, make sure the datum is a node so that the printing
 *	  routines work.
 *
 *	  Sometimes we assign constants to makeStrings. Make sure we don't free
 *	  those.
 *
 *-------------------------------------------------------------------------
 */
#include "pg_functions.hpp"
#include <string.h>

#include <ctype.h>
#include <limits.h>

#include "nodes/makefuncs.hpp"
#include "nodes/nodeFuncs.hpp"
#include "parser/gramparse.hpp"
#include "parser/parser.hpp"
#include "utils/datetime.hpp"

namespace duckdb_libpgquery {
#define DEFAULT_SCHEMA "main"

/*
 * Location tracking support --- simpler than bison's default, since we only
 * want to track the start position not the end position of each nonterminal.
 */
#define YYLLOC_DEFAULT(Current, Rhs, N) \
	do { \
		if ((N) > 0) \
			(Current) = (Rhs)[1]; \
		else \
			(Current) = (-1); \
	} while (0)

/*
 * The above macro assigns -1 (unknown) as the parse location of any
 * nonterminal that was reduced from an empty rule, or whose leftmost
 * component was reduced from an empty rule.  This is problematic
 * for nonterminals defined like
 *		OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ;
 * because we'll set -1 as the location during the first reduction and then
 * copy it during each subsequent reduction, leaving us with -1 for the
 * location even when the list is not empty.  To fix that, do this in the
 * action for the nonempty rule(s):
 *		if (@$ < 0) @$ = @2;
 * (Although we have many nonterminals that follow this pattern, we only
 * bother with fixing @$ like this when the nonterminal's parse location
 * is actually referenced in some rule.)
 *
 * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs
 * locations until it's found one that's not -1.  Then we'd get a correct
 * location for any nonterminal that isn't entirely empty.  But this way
 * would add overhead to every rule reduction, and so far there's not been
 * a compelling reason to pay that overhead.
 */

/*
 * Bison doesn't allocate anything that needs to live across parser calls,
 * so we can easily have it use palloc instead of malloc.  This prevents
 * memory leaks if we error out during parsing.  Note this only works with
 * bison >= 2.0.  However, in bison 1.875 the default is to use alloca()
 * if possible, so there's not really much problem anyhow, at least if
 * you're building with gcc.
 */
#define YYMALLOC palloc
#define YYFREE   pfree
#define YYINITDEPTH 1000

/* yields an integer bitmask of these flags: */
#define CAS_NOT_DEFERRABLE			0x01
#define CAS_DEFERRABLE				0x02
#define CAS_INITIALLY_IMMEDIATE		0x04
#define CAS_INITIALLY_DEFERRED		0x08
#define CAS_NOT_VALID				0x10
#define CAS_NO_INHERIT				0x20


#define parser_yyerror(msg)  scanner_yyerror(msg, yyscanner)
#define parser_errposition(pos)  scanner_errposition(pos, yyscanner)

#if YYBISON == 1
// explicitly define stack growing support
// yacc cannot handle stack growing by default YYLTYPE is overriden - which the Postgres parser overrides with an `int`
// so we need to copy these definitions here explicitly
/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  short int yyss;
  YYSTYPE yyvs;
  YYLTYPE yyls;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
      + 2 * YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack)					\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
	Stack = &yyptr->Stack;						\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))
#endif

static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner,
						 const char *msg);
static PGRawStmt *makeRawStmt(PGNode *stmt, int stmt_location);
static void updateRawStmtEnd(PGRawStmt *rs, int end_location);
static PGNode *makeColumnRef(char *colname, PGList *indirection,
						   int location, core_yyscan_t yyscanner);
static PGNode *makeTypeCast(PGNode *arg, PGTypeName *tpname, int trycast, int location);
static PGNode *makeStringConst(char *str, int location);
static PGNode *makeStringConstCast(char *str, int location, PGTypeName *tpname);
static PGNode *makeIntervalNode(char *str, int location, PGList *typmods);
static PGNode *makeIntervalNode(int val, int location, PGList *typmods);
static PGNode *makeIntervalNode(PGNode *arg, int location, PGList *typmods);
static PGNode *makeSampleSize(PGNode *sample_size, bool is_percentage);
static PGNode *makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location);
static PGNode *makeIntConst(int val, int location);
static PGNode *makeFloatConst(char *str, int location);
static PGNode *makeBitStringConst(char *str, int location);
static PGNode *makeNullAConst(int location);
static PGNode *makeAConst(PGValue *v, int location);
static PGNode *makeBoolAConst(bool state, int location);
static PGNode *makeParamRef(int number, int location);
static PGNode *makeNamedParamRef(char* name, int location);
static void check_qualified_name(PGList *names, core_yyscan_t yyscanner);
static PGList *check_func_name(PGList *names, core_yyscan_t yyscanner);
static PGList *check_indirection(PGList *indirection, core_yyscan_t yyscanner);
static void insertSelectOptions(PGSelectStmt *stmt,
								PGList *sortClause, PGList *lockingClause,
								PGNode *limitOffset, PGNode *limitCount, PGNode *isLimitOffsetFirst,
								PGWithClause *withClause,
								core_yyscan_t yyscanner);
static PGNode *makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg);
static PGNode *doNegate(PGNode *n, int location);
static void doNegateFloat(PGValue *v);
static PGNode *makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location);
static PGNode *makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location);
static PGNode *makeNotExpr(PGNode *expr, int location);
static void SplitColQualList(PGList *qualList,
							 PGList **constraintList, PGCollateClause **collClause,
							 core_yyscan_t yyscanner);
static void processCASbits(int cas_bits, int location, const char *constrType,
			   bool *deferrable, bool *initdeferred, bool *not_valid,
			   bool *no_inherit, core_yyscan_t yyscanner);
static PGNode *makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query);
static PGNode *makeLimitPercent(PGNode *limit_percent);



/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

/* Enabling the token table.  */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif

#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 14 "third_party/libpg_query/grammar/grammar.y"
{
	core_YYSTYPE		core_yystype;
	/* these fields must match core_YYSTYPE: */
	int					ival;
	char				*str;
	const char			*keyword;
	const char          *conststr;

	char				chr;
	bool				boolean;
	PGJoinType			jtype;
	PGDropBehavior		dbehavior;
	PGOnCommitAction		oncommit;
	PGOnCreateConflict		oncreateconflict;
	PGList				*list;
	PGNode				*node;
	PGValue				*value;
	PGObjectType			objtype;
	PGTypeName			*typnam;
	PGObjectWithArgs		*objwithargs;
	PGDefElem				*defelt;
	PGSortBy				*sortby;
	PGWindowDef			*windef;
	PGJoinExpr			*jexpr;
	PGIndexElem			*ielem;
	PGAlias				*alias;
	PGRangeVar			*range;
	PGIntoClause			*into;
	PGCTEMaterialize			ctematerialize;
	PGWithClause			*with;
	PGInferClause			*infer;
	PGOnConflictClause	*onconflict;
	PGOnConflictActionAlias onconflictshorthand;
	PGAIndices			*aind;
	PGResTarget			*target;
	PGInsertStmt			*istmt;
	PGVariableSetStmt		*vsetstmt;
	PGOverridingKind       override;
	PGSortByDir            sortorder;
	PGSortByNulls          nullorder;
	PGIgnoreNulls          ignorenulls;
	PGConstrType           constr;
	PGLockClauseStrength lockstrength;
	PGLockWaitPolicy lockwaitpolicy;
	PGSubLinkType subquerytype;
	PGViewCheckOption viewcheckoption;
	PGInsertColumnOrder bynameorposition;
	PGLoadInstallType loadinstalltype;
	PGTransactionStmtType transactiontype;
}
/* Line 193 of yacc.c.  */
#line 1398 "third_party/libpg_query/grammar/grammar_out.cpp"
	YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
typedef struct YYLTYPE
{
  int first_line;
  int first_column;
  int last_line;
  int last_column;
} YYLTYPE;
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
#endif


/* Copy the second part of user declarations.  */


/* Line 216 of yacc.c.  */
#line 1423 "third_party/libpg_query/grammar/grammar_out.cpp"

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif

/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
    int i;
#endif
{
  return i;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H
#      define _STDLIB_H 1
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \
       && ! ((defined YYMALLOC || defined malloc) \
	     && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H
#    define _STDLIB_H 1
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */


#if (! defined yyoverflow \
     && (! defined __cplusplus \
	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yytype_int16 yyss;
  YYSTYPE yyvs;
    YYLTYPE yyls;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
      + 2 * YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack)					\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
	Stack = &yyptr->Stack;						\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  879
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   76167

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  533
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  497
/* YYNRULES -- Number of rules.  */
#define YYNRULES  2216
/* YYNRULES -- Number of states.  */
#define YYNSTATES  3701

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   766

#define YYTRANSLATE(YYX)						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const yytype_uint16 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,   530,   529,   518,     2,     2,
     523,   524,   516,   514,   527,   515,   525,   517,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,   526,
     510,   512,   511,   528,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,   521,     2,   522,   519,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   531,     2,   532,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   513,   520
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const yytype_uint16 yyprhs[] =
{
       0,     0,     3,     5,     9,    11,    13,    15,    17,    19,
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
      81,    83,    85,    87,    89,    91,    93,    94,    99,   106,
     111,   118,   123,   130,   135,   142,   144,   147,   151,   154,
     156,   160,   163,   167,   169,   173,   175,   178,   181,   183,
     186,   189,   192,   195,   201,   205,   212,   219,   223,   230,
     234,   239,   246,   253,   260,   266,   272,   279,   289,   294,
     300,   308,   315,   320,   329,   334,   337,   342,   346,   353,
     358,   361,   364,   367,   370,   372,   375,   376,   378,   381,
     384,   387,   389,   393,   398,   401,   403,   404,   407,   411,
     414,   418,   420,   423,   425,   427,   429,   431,   433,   435,
     437,   440,   443,   445,   447,   449,   451,   453,   460,   467,
     476,   483,   492,   499,   508,   515,   524,   533,   544,   553,
     564,   566,   567,   577,   579,   584,   589,   597,   600,   602,
     606,   609,   612,   613,   618,   622,   623,   625,   626,   629,
     633,   639,   642,   645,   646,   655,   661,   662,   668,   674,
     682,   685,   686,   688,   690,   692,   696,   699,   700,   702,
     703,   705,   709,   711,   715,   717,   720,   722,   726,   729,
     736,   746,   755,   758,   763,   765,   767,   768,   770,   774,
     777,   782,   788,   794,   803,   811,   813,   814,   823,   835,
     846,   847,   849,   850,   852,   854,   855,   858,   860,   863,
     865,   869,   874,   878,   888,   901,   903,   907,   909,   913,
     917,   918,   923,   930,   932,   935,   937,   939,   940,   942,
     945,   948,   950,   953,   956,   958,   961,   965,   968,   971,
     974,   977,   981,   985,   989,   991,   995,   997,   998,  1000,
    1003,  1006,  1012,  1020,  1021,  1024,  1027,  1031,  1035,  1038,
    1041,  1044,  1046,  1048,  1049,  1052,  1055,  1056,  1059,  1069,
    1082,  1094,  1095,  1098,  1100,  1102,  1104,  1106,  1108,  1110,
    1114,  1115,  1117,  1120,  1122,  1124,  1127,  1130,  1134,  1136,
    1138,  1141,  1144,  1146,  1149,  1153,  1159,  1163,  1166,  1172,
    1174,  1176,  1178,  1179,  1185,  1193,  1199,  1202,  1206,  1208,
    1210,  1213,  1216,  1217,  1221,  1226,  1231,  1232,  1236,  1239,
    1240,  1244,  1246,  1248,  1250,  1252,  1254,  1256,  1258,  1260,
    1262,  1264,  1268,  1272,  1274,  1277,  1280,  1283,  1286,  1289,
    1292,  1293,  1297,  1301,  1305,  1306,  1308,  1311,  1313,  1316,
    1319,  1322,  1325,  1328,  1332,  1335,  1338,  1340,  1344,  1346,
    1348,  1350,  1352,  1356,  1358,  1361,  1362,  1364,  1367,  1368,
    1370,  1374,  1375,  1378,  1379,  1383,  1387,  1389,  1395,  1399,
    1401,  1405,  1407,  1410,  1412,  1417,  1423,  1429,  1436,  1440,
    1448,  1453,  1465,  1467,  1471,  1474,  1477,  1480,  1481,  1485,
    1487,  1489,  1492,  1495,  1498,  1501,  1503,  1504,  1506,  1509,
    1516,  1521,  1528,  1533,  1540,  1549,  1551,  1553,  1555,  1557,
    1560,  1562,  1565,  1567,  1570,  1572,  1574,  1576,  1578,  1582,
    1586,  1590,  1594,  1596,  1599,  1602,  1604,  1608,  1610,  1612,
    1614,  1618,  1620,  1622,  1623,  1625,  1627,  1629,  1635,  1644,
    1652,  1658,  1667,  1675,  1680,  1685,  1687,  1691,  1693,  1695,
    1699,  1701,  1705,  1707,  1709,  1712,  1716,  1725,  1737,  1747,
    1755,  1756,  1760,  1764,  1766,  1768,  1772,  1773,  1775,  1779,
    1781,  1782,  1784,  1785,  1787,  1788,  1790,  1794,  1796,  1798,
    1800,  1802,  1806,  1808,  1810,  1811,  1814,  1817,  1818,  1821,
    1822,  1824,  1825,  1827,  1829,  1831,  1835,  1839,  1841,  1843,
    1847,  1851,  1855,  1859,  1863,  1867,  1872,  1876,  1879,  1881,
    1883,  1885,  1887,  1891,  1893,  1895,  1899,  1901,  1903,  1907,
    1911,  1915,  1917,  1920,  1925,  1930,  1933,  1937,  1943,  1949,
    1951,  1953,  1957,  1958,  1970,  1982,  1993,  2006,  2008,  2011,
    2017,  2022,  2027,  2032,  2037,  2045,  2051,  2056,  2064,  2071,
    2081,  2091,  2096,  2098,  2100,  2102,  2104,  2106,  2108,  2110,
    2116,  2118,  2120,  2124,  2126,  2129,  2132,  2135,  2139,  2141,
    2145,  2154,  2160,  2161,  2163,  2166,  2168,  2172,  2174,  2177,
    2178,  2181,  2182,  2186,  2190,  2195,  2200,  2205,  2210,  2214,
    2217,  2219,  2221,  2222,  2224,  2226,  2227,  2230,  2232,  2238,
    2240,  2241,  2244,  2247,  2248,  2250,  2251,  2255,  2261,  2263,
    2267,  2272,  2276,  2278,  2280,  2281,  2284,  2287,  2288,  2291,
    2294,  2296,  2298,  2300,  2301,  2304,  2309,  2315,  2320,  2323,
    2327,  2329,  2331,  2333,  2336,  2339,  2341,  2344,  2348,  2349,
    2351,  2352,  2358,  2360,  2365,  2372,  2375,  2377,  2378,  2383,
    2384,  2386,  2388,  2392,  2397,  2398,  2400,  2402,  2405,  2408,
    2411,  2413,  2415,  2418,  2421,  2423,  2425,  2427,  2429,  2431,
    2433,  2437,  2441,  2442,  2444,  2448,  2450,  2453,  2455,  2457,
    2459,  2461,  2463,  2466,  2471,  2476,  2482,  2484,  2486,  2489,
    2490,  2493,  2494,  2496,  2500,  2502,  2503,  2505,  2508,  2512,
    2515,  2520,  2523,  2527,  2530,  2531,  2533,  2536,  2537,  2542,
    2548,  2550,  2553,  2556,  2557,  2559,  2563,  2565,  2568,  2571,
    2576,  2581,  2585,  2589,  2593,  2597,  2601,  2605,  2609,  2611,
    2616,  2621,  2631,  2641,  2645,  2646,  2649,  2652,  2653,  2659,
    2663,  2665,  2667,  2671,  2677,  2681,  2683,  2686,  2688,  2692,
    2698,  2700,  2703,  2707,  2712,  2718,  2723,  2729,  2734,  2741,
    2747,  2752,  2758,  2764,  2770,  2773,  2778,  2780,  2782,  2783,
    2785,  2790,  2796,  2801,  2802,  2805,  2808,  2811,  2813,  2815,
    2817,  2819,  2820,  2825,  2828,  2830,  2833,  2836,  2841,  2844,
    2851,  2854,  2856,  2860,  2865,  2866,  2869,  2870,  2873,  2874,
    2876,  2880,  2884,  2887,  2888,  2891,  2896,  2898,  2900,  2902,
    2903,  2906,  2910,  2916,  2923,  2926,  2930,  2932,  2938,  2944,
    2950,  2954,  2958,  2962,  2967,  2968,  2970,  2972,  2974,  2976,
    2978,  2981,  2986,  2988,  2990,  2992,  2994,  2997,  3001,  3002,
    3004,  3006,  3008,  3010,  3012,  3015,  3018,  3021,  3024,  3027,
    3029,  3033,  3034,  3036,  3038,  3040,  3042,  3048,  3051,  3053,
    3055,  3057,  3059,  3064,  3066,  3069,  3072,  3074,  3078,  3082,
    3085,  3087,  3088,  3094,  3097,  3103,  3106,  3108,  3112,  3116,
    3117,  3119,  3121,  3123,  3125,  3127,  3129,  3131,  3133,  3135,
    3137,  3139,  3141,  3143,  3145,  3147,  3149,  3151,  3153,  3155,
    3157,  3159,  3161,  3163,  3165,  3167,  3169,  3171,  3173,  3175,
    3177,  3179,  3181,  3183,  3185,  3187,  3189,  3191,  3193,  3195,
    3199,  3203,  3207,  3211,  3215,  3219,  3223,  3224,  3226,  3230,
    3234,  3240,  3243,  3246,  3250,  3254,  3258,  3262,  3266,  3270,
    3274,  3278,  3282,  3286,  3290,  3294,  3298,  3302,  3306,  3309,
    3312,  3316,  3320,  3323,  3326,  3330,  3334,  3340,  3345,  3352,
    3356,  3362,  3367,  3374,  3379,  3386,  3392,  3400,  3404,  3407,
    3412,  3416,  3419,  3424,  3428,  3432,  3436,  3440,  3445,  3449,
    3454,  3458,  3463,  3469,  3476,  3483,  3491,  3498,  3506,  3513,
    3521,  3525,  3530,  3535,  3542,  3544,  3549,  3554,  3560,  3565,
    3572,  3574,  3578,  3581,  3584,  3588,  3592,  3596,  3600,  3604,
    3608,  3612,  3616,  3620,  3624,  3628,  3632,  3636,  3640,  3644,
    3647,  3650,  3656,  3663,  3670,  3678,  3680,  3683,  3685,  3687,
    3689,  3692,  3695,  3700,  3704,  3706,  3708,  3710,  3712,  3715,
    3717,  3719,  3721,  3723,  3725,  3727,  3729,  3732,  3737,  3740,
    3744,  3748,  3753,  3757,  3763,  3770,  3778,  3788,  3796,  3804,
    3810,  3812,  3814,  3816,  3822,  3829,  3836,  3841,  3846,  3851,
    3856,  3863,  3869,  3875,  3881,  3886,  3893,  3898,  3906,  3916,
    3922,  3923,  3929,  3934,  3935,  3937,  3938,  3941,  3942,  3944,
    3948,  3952,  3955,  3958,  3959,  3966,  3968,  3969,  3973,  3974,
    3978,  3982,  3986,  3987,  3989,  3994,  3997,  4000,  4003,  4006,
    4009,  4013,  4016,  4019,  4023,  4024,  4029,  4033,  4035,  4041,
    4045,  4047,  4051,  4053,  4056,  4060,  4062,  4066,  4068,  4071,
    4073,  4074,  4076,  4078,  4080,  4082,  4084,  4086,  4088,  4090,
    4092,  4094,  4096,  4098,  4100,  4102,  4104,  4106,  4108,  4110,
    4112,  4114,  4119,  4121,  4126,  4128,  4133,  4135,  4138,  4140,
    4143,  4145,  4148,  4150,  4154,  4156,  4160,  4162,  4165,  4167,
    4171,  4173,  4176,  4178,  4179,  4181,  4185,  4187,  4191,  4195,
    4197,  4201,  4205,  4206,  4208,  4210,  4212,  4214,  4216,  4218,
    4220,  4222,  4224,  4226,  4228,  4230,  4232,  4234,  4236,  4241,
    4245,  4248,  4252,  4253,  4257,  4261,  4264,  4267,  4269,  4270,
    4273,  4276,  4280,  4283,  4285,  4287,  4291,  4293,  4295,  4301,
    4303,  4306,  4311,  4314,  4315,  4317,  4318,  4320,  4322,  4325,
    4329,  4335,  4343,  4351,  4353,  4354,  4355,  4358,  4359,  4362,
    4366,  4370,  4374,  4380,  4388,  4396,  4397,  4400,  4402,  4403,
    4405,  4406,  4408,  4412,  4414,  4417,  4421,  4424,  4426,  4430,
    4435,  4438,  4440,  4444,  4446,  4450,  4452,  4455,  4457,  4458,
    4462,  4464,  4468,  4470,  4473,  4478,  4481,  4482,  4486,  4488,
    4492,  4494,  4497,  4502,  4505,  4506,  4508,  4512,  4514,  4518,
    4520,  4523,  4525,  4529,  4531,  4533,  4536,  4538,  4540,  4543,
    4545,  4547,  4550,  4558,  4561,  4567,  4571,  4575,  4577,  4579,
    4581,  4583,  4585,  4587,  4589,  4591,  4593,  4595,  4597,  4599,
    4601,  4603,  4606,  4609,  4613,  4617,  4618,  4620,  4622,  4624,
    4630,  4634,  4635,  4637,  4639,  4641,  4643,  4645,  4647,  4652,
    4660,  4667,  4670,  4671,  4673,  4675,  4677,  4679,  4693,  4710,
    4712,  4715,  4716,  4718,  4719,  4721,  4722,  4725,  4726,  4728,
    4729,  4736,  4745,  4752,  4761,  4768,  4777,  4781,  4784,  4786,
    4787,  4794,  4801,  4803,  4805,  4807,  4809,  4811,  4813,  4816,
    4818,  4820,  4822,  4824,  4826,  4831,  4838,  4842,  4845,  4850,
    4854,  4860,  4862,  4863,  4865,  4867,  4868,  4870,  4872,  4874,
    4876,  4878,  4880,  4882,  4884,  4886,  4888,  4890,  4892,  4894,
    4896,  4898,  4900,  4902,  4904,  4906,  4908,  4910,  4912,  4914,
    4916,  4918,  4920,  4922,  4924,  4926,  4928,  4930,  4932,  4934,
    4936,  4938,  4940,  4942,  4946,  4948,  4950,  4952,  4954,  4956,
    4958,  4961,  4963,  4965,  4968,  4972,  4976,  4980,  4984,  4986,
    4990,  4994,  4997,  5001,  5005,  5007,  5009,  5011,  5015,  5021,
    5023,  5025,  5027,  5029,  5033,  5036,  5041,  5048,  5055,  5056,
    5058,  5060,  5062,  5063,  5066,  5069,  5074,  5081,  5087,  5092,
    5099,  5101,  5103,  5105,  5107,  5109,  5111,  5112,  5114,  5118,
    5120,  5121,  5129,  5133,  5135,  5138,  5142,  5145,  5146,  5149,
    5150,  5153,  5158,  5164,  5173,  5181,  5184,  5188,  5194,  5196,
    5197,  5200,  5201,  5204,  5208,  5212,  5216,  5220,  5222,  5224,
    5226,  5229,  5233,  5236,  5239,  5242,  5245,  5249,  5254,  5258,
    5260,  5262,  5264,  5266,  5268,  5270,  5271,  5273,  5277,  5280,
    5290,  5303,  5315,  5328,  5343,  5347,  5352,  5357,  5358,  5366,
    5377,  5387,  5390,  5394,  5395,  5400,  5402,  5404,  5406,  5408,
    5410,  5412,  5414,  5416,  5418,  5420,  5422,  5424,  5426,  5428,
    5430,  5432,  5434,  5436,  5438,  5440,  5442,  5444,  5446,  5448,
    5450,  5452,  5454,  5456,  5458,  5460,  5462,  5464,  5466,  5468,
    5470,  5472,  5474,  5476,  5478,  5480,  5482,  5484,  5486,  5488,
    5490,  5492,  5494,  5496,  5498,  5500,  5502,  5504,  5506,  5508,
    5510,  5512,  5514,  5516,  5518,  5520,  5522,  5524,  5526,  5528,
    5530,  5532,  5534,  5536,  5538,  5540,  5542,  5544,  5546,  5548,
    5550,  5552,  5554,  5556,  5558,  5560,  5562,  5564,  5566,  5568,
    5570,  5572,  5574,  5576,  5578,  5580,  5582,  5584,  5586,  5588,
    5590,  5592,  5594,  5596,  5598,  5600,  5602,  5604,  5606,  5608,
    5610,  5612,  5614,  5616,  5618,  5620,  5622,  5624,  5626,  5628,
    5630,  5632,  5634,  5636,  5638,  5640,  5642,  5644,  5646,  5648,
    5650,  5652,  5654,  5656,  5658,  5660,  5662,  5664,  5666,  5668,
    5670,  5672,  5674,  5676,  5678,  5680,  5682,  5684,  5686,  5688,
    5690,  5692,  5694,  5696,  5698,  5700,  5702,  5704,  5706,  5708,
    5710,  5712,  5714,  5716,  5718,  5720,  5722,  5724,  5726,  5728,
    5730,  5732,  5734,  5736,  5738,  5740,  5742,  5744,  5746,  5748,
    5750,  5752,  5754,  5756,  5758,  5760,  5762,  5764,  5766,  5768,
    5770,  5772,  5774,  5776,  5778,  5780,  5782,  5784,  5786,  5788,
    5790,  5792,  5794,  5796,  5798,  5800,  5802,  5804,  5806,  5808,
    5810,  5812,  5814,  5816,  5818,  5820,  5822,  5824,  5826,  5828,
    5830,  5832,  5834,  5836,  5838,  5840,  5842,  5844,  5846,  5848,
    5850,  5852,  5854,  5856,  5858,  5860,  5862,  5864,  5866,  5868,
    5870,  5872,  5874,  5876,  5878,  5880,  5882,  5884,  5886,  5888,
    5890,  5892,  5894,  5896,  5898,  5900,  5902,  5904,  5906,  5908,
    5910,  5912,  5914,  5916,  5918,  5920,  5922,  5924,  5926,  5928,
    5930,  5932,  5934,  5936,  5938,  5940,  5942,  5944,  5946,  5948,
    5950,  5952,  5954,  5956,  5958,  5960,  5962,  5964,  5966,  5968,
    5970,  5972,  5974,  5976,  5978,  5980,  5982,  5984,  5986,  5988,
    5990,  5992,  5994,  5996,  5998,  6000,  6002,  6004,  6006,  6008,
    6010,  6012,  6014,  6016,  6018,  6020,  6022,  6024,  6026,  6028,
    6030,  6032,  6034,  6036,  6038,  6040,  6042,  6044,  6046,  6048,
    6050,  6052,  6054,  6056,  6058,  6060,  6062,  6064,  6066,  6068,
    6070,  6072,  6074,  6076,  6078,  6080,  6082,  6084,  6086,  6088,
    6090,  6092,  6094,  6096,  6098,  6100,  6102,  6104,  6106,  6108,
    6110,  6112,  6114,  6116,  6118,  6120,  6122,  6124,  6126,  6128,
    6130,  6132,  6134,  6136,  6138,  6140,  6142,  6144,  6146,  6148,
    6150,  6152,  6154,  6156,  6158,  6160,  6162,  6164,  6166,  6168,
    6170,  6172,  6174,  6176,  6178,  6180,  6182,  6184,  6186,  6188,
    6190,  6192,  6194,  6196,  6198,  6200,  6202,  6204,  6206,  6208,
    6210,  6212,  6214,  6216,  6218,  6220,  6222,  6224,  6226,  6228,
    6230,  6232,  6234,  6236,  6238,  6240,  6242,  6244,  6246,  6248,
    6250,  6252,  6254,  6256,  6258,  6260,  6262,  6264,  6266,  6268,
    6270,  6272,  6274,  6276,  6278,  6280,  6282,  6284,  6286,  6288,
    6290,  6292,  6294,  6296,  6298,  6300,  6302,  6304,  6306,  6308,
    6310,  6312,  6314,  6316,  6318,  6320,  6322,  6324,  6326,  6328,
    6330,  6332,  6334,  6336,  6338,  6340,  6342,  6344,  6346,  6348,
    6350,  6352,  6354,  6356,  6358,  6360,  6362,  6364,  6366,  6368,
    6370,  6372,  6374,  6376,  6378,  6380,  6382,  6384,  6386,  6388,
    6390,  6392,  6394,  6396,  6398,  6400,  6402,  6404,  6406,  6408,
    6410,  6412,  6414,  6416,  6418,  6420,  6422,  6424,  6426,  6428,
    6430,  6432,  6434,  6436,  6438,  6440,  6442,  6444,  6446,  6448,
    6450,  6452,  6454,  6456,  6458,  6460,  6462,  6464,  6466,  6468,
    6470,  6472,  6474,  6476,  6478,  6480,  6482,  6484,  6486,  6488,
    6490,  6492,  6494,  6496,  6498,  6500,  6502,  6504,  6506,  6508,
    6510,  6512,  6514,  6516,  6518,  6520,  6522,  6524,  6526,  6528,
    6530,  6532,  6534,  6536,  6538,  6540,  6542,  6544,  6546,  6548,
    6550,  6552,  6554,  6556,  6558,  6560,  6562,  6564,  6566,  6568,
    6570,  6572,  6574,  6576,  6578,  6580,  6582,  6584,  6586,  6588,
    6590,  6592,  6594,  6596,  6598,  6600,  6602,  6604,  6606,  6608,
    6610,  6612,  6614,  6616,  6618,  6620,  6622,  6624,  6626,  6628,
    6630,  6632,  6634,  6636,  6638,  6640,  6642,  6644,  6646,  6648,
    6650,  6652,  6654,  6656,  6658,  6660,  6662
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     534,     0,    -1,   535,    -1,   535,   526,   536,    -1,   536,
      -1,   966,    -1,   603,    -1,   537,    -1,  1004,    -1,  1005,
      -1,  1017,    -1,   967,    -1,   969,    -1,   682,    -1,  1020,
      -1,   672,    -1,   956,    -1,   591,    -1,   589,    -1,   616,
      -1,   584,    -1,   552,    -1,  1000,    -1,  1006,    -1,   610,
      -1,   666,    -1,   599,    -1,   974,    -1,   972,    -1,   973,
      -1,   959,    -1,   563,    -1,   991,    -1,   588,    -1,   953,
      -1,   561,    -1,   700,    -1,   612,    -1,   598,    -1,   681,
      -1,   615,    -1,   995,    -1,  1009,    -1,   985,    -1,  1012,
      -1,  1018,    -1,    -1,    33,   423,   795,   549,    -1,    33,
     423,   193,   153,   795,   549,    -1,    33,   204,   553,   549,
      -1,    33,   204,   193,   153,   553,   549,    -1,    33,   387,
     553,   549,    -1,    33,   387,   193,   153,   553,   549,    -1,
      33,   475,   553,   549,    -1,    33,   475,   193,   153,   553,
     549,    -1,   540,    -1,   538,   540,    -1,   392,   118,   844,
      -1,   138,   118,    -1,   362,    -1,   362,   605,   606,    -1,
     392,   607,    -1,   392,   177,   665,    -1,   548,    -1,   541,
     527,   548,    -1,   543,    -1,   542,   543,    -1,   525,   559,
      -1,   554,    -1,   554,   542,    -1,   544,   643,    -1,   544,
     644,    -1,    27,   545,    -1,    27,   193,   277,   153,   545,
      -1,    27,    83,   545,    -1,    27,    83,   193,   277,   153,
     545,    -1,   392,   313,    60,   523,   892,   524,    -1,   360,
     313,    60,    -1,   392,   403,    60,   523,   729,   524,    -1,
     360,   403,    60,    -1,    33,   562,   554,   539,    -1,    33,
     562,   554,   138,   277,   282,    -1,    33,   562,   554,   392,
     277,   282,    -1,    33,   562,   554,   392,   409,   609,    -1,
      33,   562,   554,   392,   631,    -1,    33,   562,   554,   360,
     631,    -1,    33,   562,   554,   392,   412,   554,    -1,    33,
     562,   554,    27,   177,   665,    41,   192,   619,    -1,    33,
     562,   554,   538,    -1,    33,   562,   554,   138,   192,    -1,
      33,   562,   554,   138,   192,   193,   153,    -1,   138,   562,
     193,   153,   544,   670,    -1,   138,   562,   544,   670,    -1,
      33,   562,   554,   551,   446,   807,   804,   547,    -1,    33,
     562,   554,   550,    -1,    27,   633,    -1,    33,    94,   941,
     617,    -1,   465,    94,   941,    -1,   138,    94,   193,   153,
     941,   670,    -1,   138,    94,   941,   670,    -1,   392,   247,
      -1,   392,   455,    -1,   392,   631,    -1,   360,   631,    -1,
     550,    -1,   462,   844,    -1,    -1,   627,    -1,   392,   627,
      -1,    27,   627,    -1,   138,   641,    -1,   546,    -1,   549,
     527,   546,    -1,   296,   523,   541,   524,    -1,   392,   108,
      -1,   392,    -1,    -1,   112,   941,    -1,   112,   329,   941,
      -1,   112,    31,    -1,   112,   329,    31,    -1,   555,    -1,
     554,   557,    -1,     3,    -1,  1023,    -1,  1024,    -1,   554,
      -1,     5,    -1,     5,    -1,   558,    -1,   557,   558,    -1,
     525,   559,    -1,   560,    -1,     3,    -1,  1027,    -1,  1023,
      -1,  1029,    -1,    33,   376,   941,   356,   435,   941,    -1,
      33,   423,   795,   356,   435,   941,    -1,    33,   423,   193,
     153,   795,   356,   435,   941,    -1,    33,   387,   553,   356,
     435,   941,    -1,    33,   387,   193,   153,   553,   356,   435,
     941,    -1,    33,   475,   553,   356,   435,   941,    -1,    33,
     475,   193,   153,   553,   356,   435,   941,    -1,    33,   204,
     553,   356,   435,   941,    -1,    33,   204,   193,   153,   553,
     356,   435,   941,    -1,    33,   423,   795,   356,   562,   544,
     435,   941,    -1,    33,   423,   193,   153,   795,   356,   562,
     544,   435,   941,    -1,    33,   423,   795,   356,    94,   941,
     435,   941,    -1,    33,   423,   193,   153,   795,   356,    94,
     941,   435,   941,    -1,    83,    -1,    -1,   568,   214,   571,
     221,   565,   566,   564,   572,   574,    -1,   700,    -1,   306,
     575,   467,   700,    -1,   523,   579,   524,   700,    -1,   523,
     579,   524,   306,   575,   467,   700,    -1,   118,   468,    -1,
     553,    -1,   553,    41,   554,    -1,    60,   268,    -1,    60,
     324,    -1,    -1,   523,   582,   524,   801,    -1,   292,    94,
     941,    -1,    -1,   712,    -1,    -1,   554,   915,    -1,   583,
     512,   844,    -1,   523,   576,   524,   512,   844,    -1,   297,
     358,    -1,   297,   194,    -1,    -1,   292,    92,   567,   134,
     459,   392,   581,   801,    -1,   292,    92,   567,   134,   278,
      -1,    -1,   554,   577,   578,   731,   732,    -1,   856,   577,
     578,   731,   732,    -1,   523,   844,   524,   577,   578,   731,
     732,    -1,   364,   921,    -1,    -1,   461,    -1,   422,    -1,
     583,    -1,   576,   527,   583,    -1,    81,   948,    -1,    -1,
     948,    -1,    -1,   569,    -1,   579,   527,   569,    -1,   570,
      -1,   580,   527,   570,    -1,   580,    -1,   580,   527,    -1,
     573,    -1,   582,   527,   573,    -1,   554,   915,    -1,   101,
     664,   446,   553,    41,   585,    -1,   101,   664,   446,   193,
     277,   153,   553,    41,   585,    -1,   101,   297,   358,   664,
     446,   553,    41,   585,    -1,   145,   701,    -1,   145,   523,
     586,   524,    -1,   808,    -1,   587,    -1,    -1,   556,    -1,
     587,   527,   556,    -1,   326,   554,    -1,   326,   554,   512,
     990,    -1,   326,   554,   523,   894,   524,    -1,   101,   664,
     387,   553,   590,    -1,   101,   664,   387,   193,   277,   153,
     553,   590,    -1,   101,   297,   358,   664,   387,   553,   590,
      -1,   604,    -1,    -1,   101,   593,   383,   592,   594,   523,
     597,   524,    -1,   101,   593,   383,   193,   277,   153,   592,
     594,   523,   597,   524,    -1,   101,   297,   358,   593,   383,
     592,   594,   523,   597,   524,    -1,    -1,   554,    -1,    -1,
     429,    -1,   317,    -1,    -1,   200,     3,    -1,   844,    -1,
     560,   595,    -1,   596,    -1,   597,   527,   596,    -1,   568,
     459,   158,   653,    -1,   152,   941,   602,    -1,   101,   664,
     423,  1022,    41,   152,   941,   602,  1021,    -1,   101,   664,
     423,   193,   277,   153,  1022,    41,   152,   941,   602,  1021,
      -1,   844,    -1,   951,    13,   844,    -1,   600,    -1,   601,
     527,   600,    -1,   523,   601,   524,    -1,    -1,    33,   387,
     553,   604,    -1,    33,   387,   193,   153,   553,   604,    -1,
     607,    -1,   604,   607,    -1,   485,    -1,   509,    -1,    -1,
       4,    -1,   514,     4,    -1,   515,     4,    -1,   609,    -1,
      41,   811,    -1,    61,   606,    -1,   107,    -1,   275,   107,
      -1,   203,   608,   606,    -1,   253,   606,    -1,   263,   606,
      -1,   275,   253,    -1,   275,   263,    -1,   307,    60,   948,
      -1,   387,   268,   948,    -1,   407,   605,   606,    -1,   362,
      -1,   362,   605,   606,    -1,    60,    -1,    -1,   944,    -1,
     514,   944,    -1,   515,   944,    -1,   138,   593,   383,   554,
     611,    -1,   138,   593,   383,   193,   153,   554,   611,    -1,
      -1,   173,     3,    -1,    23,   613,    -1,    53,   613,   614,
      -1,   407,   613,   614,    -1,    87,   613,    -1,   144,   613,
      -1,   369,   613,    -1,   488,    -1,   437,    -1,    -1,   344,
     293,    -1,   344,   490,    -1,    -1,   460,   553,    -1,   101,
     664,   423,   553,   523,   651,   524,   638,   630,    -1,   101,
     664,   423,   193,   277,   153,   553,   523,   651,   524,   638,
     630,    -1,   101,   297,   358,   664,   423,   553,   523,   651,
     524,   638,   630,    -1,    -1,   617,   642,    -1,   659,    -1,
    1029,    -1,   886,    -1,   606,    -1,   556,    -1,   276,    -1,
     523,   604,   524,    -1,    -1,   556,    -1,   275,    26,    -1,
     363,    -1,    64,    -1,   392,   282,    -1,   392,   118,    -1,
      94,   941,   623,    -1,   623,    -1,   637,    -1,    81,   948,
      -1,   277,   282,    -1,   282,    -1,   452,   650,    -1,   332,
     228,   650,    -1,    75,   523,   844,   524,   632,    -1,   462,
      89,   941,    -1,   118,   845,    -1,   350,   553,   653,   662,
     629,    -1,   477,    -1,   413,    -1,   624,    -1,    -1,   177,
     665,    41,   192,   619,    -1,   177,   665,    41,   523,   844,
     524,   625,    -1,    41,   523,   844,   524,   625,    -1,   641,
     620,    -1,   292,   459,   621,    -1,   628,    -1,   655,    -1,
     628,   655,    -1,   655,   628,    -1,    -1,   292,    87,   138,
      -1,   292,    87,   123,   372,    -1,   292,    87,   331,   372,
      -1,    -1,   523,   635,   524,    -1,   275,   206,    -1,    -1,
      94,   941,   660,    -1,   660,    -1,    86,    -1,    95,    -1,
     119,    -1,   192,    -1,   205,    -1,   409,    -1,   412,    -1,
      31,    -1,   656,    -1,   635,   527,   656,    -1,   462,   204,
     647,    -1,   120,    -1,   277,   120,    -1,   208,   121,    -1,
     208,   196,    -1,   485,   631,    -1,   485,   290,    -1,   487,
     290,    -1,    -1,   523,   646,   524,    -1,   640,   202,   634,
      -1,   640,   150,   634,    -1,    -1,   560,    -1,   277,   120,
      -1,   120,    -1,   208,   196,    -1,   208,   121,    -1,   277,
     464,    -1,   275,   206,    -1,   808,   654,    -1,   807,   626,
     654,    -1,   554,   643,    -1,   554,   644,    -1,   649,    -1,
     646,   527,   649,    -1,   554,    -1,   645,    -1,   663,    -1,
     633,    -1,   560,   512,   618,    -1,   560,    -1,   485,   639,
      -1,    -1,   661,    -1,   661,   527,    -1,    -1,   554,    -1,
     523,   657,   524,    -1,    -1,   654,   622,    -1,    -1,   292,
     123,   621,    -1,   560,   512,   618,    -1,   560,    -1,   560,
     525,   560,   512,   618,    -1,   560,   525,   560,    -1,   652,
      -1,   657,   527,   652,    -1,   657,    -1,   657,   527,    -1,
     808,    -1,   945,   949,   518,   446,    -1,   393,   945,   949,
     518,   446,    -1,    75,   523,   844,   524,   617,    -1,   452,
     523,   658,   524,   650,   617,    -1,   452,   636,   617,    -1,
     332,   228,   523,   658,   524,   650,   617,    -1,   332,   228,
     636,   617,    -1,   170,   228,   523,   658,   524,   350,   553,
     653,   662,   629,   617,    -1,   648,    -1,   661,   527,   648,
      -1,   251,   174,    -1,   251,   311,    -1,   251,   398,    -1,
      -1,   239,   553,   640,    -1,   429,    -1,   427,    -1,   243,
     429,    -1,   243,   427,    -1,   179,   429,    -1,   179,   427,
      -1,   455,    -1,    -1,    34,    -1,    60,   118,    -1,   138,
     667,   193,   153,   669,   670,    -1,   138,   667,   669,   670,
      -1,   138,   668,   193,   153,   938,   670,    -1,   138,   668,
     938,   670,    -1,   138,   671,   941,   292,   948,   670,    -1,
     138,   671,   193,   153,   941,   292,   948,   670,    -1,   423,
      -1,   387,    -1,   175,    -1,   248,    -1,   248,   423,    -1,
     475,    -1,   252,   475,    -1,   204,    -1,   170,   423,    -1,
      82,    -1,    98,    -1,   376,    -1,   409,    -1,   430,   380,
     310,    -1,   430,   380,   130,    -1,   430,   380,   428,    -1,
     430,   380,    91,    -1,   446,    -1,    25,   254,    -1,   147,
     440,    -1,   157,    -1,   170,   108,   489,    -1,   338,    -1,
     390,    -1,   948,    -1,   669,   527,   948,    -1,    64,    -1,
     363,    -1,    -1,   323,    -1,   373,    -1,   440,    -1,   101,
     664,   679,   553,   676,    -1,   101,   664,   679,   193,   277,
     153,   553,   676,    -1,   101,   297,   358,   664,   679,   553,
     676,    -1,   101,   664,   679,   553,   678,    -1,   101,   664,
     679,   193,   277,   153,   553,   678,    -1,   101,   297,   358,
     664,   679,   553,   678,    -1,   680,    41,   423,   702,    -1,
     680,    41,   423,   701,    -1,   674,    -1,   675,   527,   674,
      -1,   673,    -1,   675,    -1,   680,    41,   844,    -1,   677,
      -1,   678,   527,   677,    -1,   175,    -1,   248,    -1,   523,
     524,    -1,   523,   894,   524,    -1,   568,   459,  1001,   392,
     581,   774,  1002,   574,    -1,    99,   695,   553,   653,   693,
     684,   689,   698,   685,   605,   690,    -1,    99,   523,   700,
     524,   435,   689,   698,   605,   690,    -1,    99,   173,   109,
     554,   435,   554,   683,    -1,    -1,   523,   376,   524,    -1,
     523,   108,   524,    -1,   173,    -1,   435,    -1,   687,   125,
     556,    -1,    -1,   697,    -1,   686,   527,   697,    -1,   462,
      -1,    -1,    41,    -1,    -1,   337,    -1,    -1,   694,    -1,
     523,   699,   524,    -1,   982,    -1,   606,    -1,   851,    -1,
     516,    -1,   523,   686,   524,    -1,   852,    -1,   853,    -1,
      -1,   560,   691,    -1,   485,   290,    -1,    -1,   694,   696,
      -1,    -1,    56,    -1,    -1,    56,    -1,   290,    -1,   172,
      -1,   124,   688,   556,    -1,   282,   688,   556,    -1,   103,
      -1,   188,    -1,   342,   688,   556,    -1,   146,   688,   556,
      -1,   169,   342,   657,    -1,   169,   342,   516,    -1,   312,
      60,   657,    -1,   312,    60,   516,    -1,   169,   277,   282,
     657,    -1,   169,   282,   657,    -1,   142,   556,    -1,   982,
      -1,   556,    -1,   410,    -1,   411,    -1,     3,   525,   554,
      -1,     3,    -1,   692,    -1,   699,   527,   692,    -1,   702,
      -1,   701,    -1,   523,   702,   524,    -1,   523,   701,   524,
      -1,   523,  1012,   524,    -1,   705,    -1,   703,   728,    -1,
     703,   727,   765,   734,    -1,   703,   727,   733,   766,    -1,
     712,   703,    -1,   712,   703,   728,    -1,   712,   703,   727,
     765,   734,    -1,   712,   703,   727,   733,   766,    -1,   705,
      -1,   701,    -1,   385,   725,   920,    -1,    -1,   385,   725,
     920,   719,   774,   801,   754,   763,   862,   764,   739,    -1,
     385,   724,   922,   719,   774,   801,   754,   763,   862,   764,
     739,    -1,   173,   775,   704,   719,   801,   754,   763,   862,
     764,   739,    -1,   173,   775,   385,   724,   922,   719,   801,
     754,   763,   862,   764,   739,    -1,   773,    -1,   423,   795,
      -1,   703,   451,   722,   723,   703,    -1,   703,   451,   722,
     703,    -1,   703,   219,   722,   703,    -1,   703,   148,   722,
     703,    -1,   707,   778,   462,   922,    -1,   707,   778,   462,
     922,   182,    60,   940,    -1,   707,   778,   182,    60,   940,
      -1,   707,   778,   292,   711,    -1,   707,   778,   292,   711,
     182,    60,   940,    -1,   707,   778,   292,   711,   462,   922,
      -1,   707,   778,   292,   711,   462,   922,   182,    60,   940,
      -1,   708,   778,   292,   922,   221,   268,   941,   706,   940,
      -1,   708,   778,   292,   922,    -1,   467,    -1,   468,    -1,
     318,    -1,   320,    -1,   457,    -1,   319,    -1,   845,    -1,
     845,   200,   523,   702,   524,    -1,   781,    -1,   709,    -1,
     710,   527,   709,    -1,   710,    -1,   710,   527,    -1,   485,
     713,    -1,   509,   713,    -1,   485,   348,   713,    -1,   714,
      -1,   713,   527,   714,    -1,   941,   950,   715,    41,   718,
     523,   955,   524,    -1,   462,   228,   523,   716,   524,    -1,
      -1,   717,    -1,   717,   527,    -1,   912,    -1,   717,   527,
     912,    -1,   252,    -1,   277,   252,    -1,    -1,   221,   720,
      -1,    -1,   429,   721,   553,    -1,   427,   721,   553,    -1,
     243,   429,   721,   553,    -1,   243,   427,   721,   553,    -1,
     179,   429,   721,   553,    -1,   179,   427,   721,   553,    -1,
     455,   721,   553,    -1,   423,   553,    -1,   553,    -1,   423,
      -1,    -1,    31,    -1,   133,    -1,    -1,    60,   268,    -1,
     133,    -1,   133,   292,   523,   892,   524,    -1,    31,    -1,
      -1,   194,   284,    -1,   361,   284,    -1,    -1,   728,    -1,
      -1,   298,    60,   729,    -1,   298,    60,    31,   731,   732,
      -1,   730,    -1,   729,   527,   730,    -1,   844,   462,   886,
     732,    -1,   844,   731,   732,    -1,    42,    -1,   127,    -1,
      -1,   508,   165,    -1,   508,   233,    -1,    -1,   735,   736,
      -1,   736,   735,    -1,   735,    -1,   736,    -1,   733,    -1,
      -1,   240,   748,    -1,   240,   748,   527,   749,    -1,   163,
     753,   750,   752,   293,    -1,   163,   753,   752,   293,    -1,
     289,   749,    -1,   289,   750,   752,    -1,     4,    -1,     9,
      -1,   849,    -1,   737,   518,    -1,   737,   316,    -1,   737,
      -1,   737,   372,    -1,   462,   374,   741,    -1,    -1,   554,
      -1,    -1,   740,   523,   738,   524,   744,    -1,   738,    -1,
     738,   523,   554,   524,    -1,   738,   523,   554,   527,     9,
     524,    -1,   425,   741,    -1,   742,    -1,    -1,   357,   523,
       9,   524,    -1,    -1,   434,    -1,   474,    -1,   745,    14,
     844,    -1,    47,   523,   746,   524,    -1,    -1,   844,    -1,
      31,    -1,   844,   518,    -1,     4,   316,    -1,     9,   316,
      -1,   844,    -1,   846,    -1,   514,   751,    -1,   515,   751,
      -1,   944,    -1,     4,    -1,   371,    -1,   372,    -1,   165,
      -1,   274,    -1,   182,    60,   756,    -1,   182,    60,    31,
      -1,    -1,   757,    -1,   755,   527,   757,    -1,   755,    -1,
     755,   527,    -1,   844,    -1,   758,    -1,   760,    -1,   759,
      -1,   761,    -1,   523,   524,    -1,   370,   523,   892,   524,
      -1,   104,   523,   892,   524,    -1,   183,   394,   523,   756,
     524,    -1,   183,    -1,   184,    -1,   187,   844,    -1,    -1,
     339,   844,    -1,    -1,   767,    -1,   168,   344,   293,    -1,
     765,    -1,    -1,   768,    -1,   767,   768,    -1,   769,   770,
     771,    -1,   168,   459,    -1,   168,   275,   228,   459,    -1,
     168,   395,    -1,   168,   228,   395,    -1,   287,   937,    -1,
      -1,   281,    -1,   399,   246,    -1,    -1,   468,   523,   892,
     524,    -1,   772,   527,   523,   892,   524,    -1,   772,    -1,
     772,   527,    -1,   173,   776,    -1,    -1,   778,    -1,   775,
     527,   778,    -1,   775,    -1,   775,   527,    -1,   555,    19,
      -1,   795,   790,   747,   743,    -1,   777,   795,   747,   743,
      -1,   796,   791,   743,    -1,   777,   796,   743,    -1,   773,
     789,   743,    -1,   234,   796,   791,    -1,   701,   790,   743,
      -1,   777,   701,   743,    -1,   234,   701,   790,    -1,   788,
      -1,   523,   788,   524,   789,    -1,   777,   523,   788,   524,
      -1,   778,   318,   523,   922,   168,   784,   779,   524,   790,
      -1,   778,   457,   780,   523,   785,   168,   787,   524,   790,
      -1,   182,    60,   939,    -1,    -1,   201,   284,    -1,   149,
     284,    -1,    -1,   845,   200,   523,   922,   524,    -1,   845,
     200,   555,    -1,   847,    -1,   850,    -1,   523,   890,   524,
      -1,   782,   200,   523,   922,   524,    -1,   782,   200,   555,
      -1,   783,    -1,   784,   783,    -1,   555,    -1,   523,   939,
     524,    -1,   785,   200,   523,   922,   524,    -1,   786,    -1,
     787,   786,    -1,   523,   788,   524,    -1,   778,   102,   226,
     778,    -1,   778,   792,   226,   778,   794,    -1,   778,   226,
     778,   794,    -1,   778,   271,   792,   226,   778,    -1,   778,
     271,   226,   778,    -1,   778,    43,   792,   226,   778,   794,
      -1,   778,    43,   226,   778,   794,    -1,   778,   325,   226,
     778,    -1,   778,    38,   226,   778,   794,    -1,   778,   386,
     226,   778,   794,    -1,    41,   555,   523,   939,   524,    -1,
      41,   555,    -1,   554,   523,   939,   524,    -1,   554,    -1,
     789,    -1,    -1,   789,    -1,    41,   523,   802,   524,    -1,
      41,   555,   523,   802,   524,    -1,   554,   523,   802,   524,
      -1,    -1,   174,   793,    -1,   237,   793,    -1,   367,   793,
      -1,   386,    -1,    38,    -1,   210,    -1,   302,    -1,    -1,
     462,   523,   939,   524,    -1,   292,   844,    -1,   553,    -1,
     553,   516,    -1,   293,   553,    -1,   293,   523,   553,   524,
      -1,   856,   800,    -1,   372,   173,   523,   798,   524,   800,
      -1,   856,   799,    -1,   797,    -1,   798,   527,   797,    -1,
      41,   523,   802,   524,    -1,    -1,   509,   299,    -1,    -1,
     482,   844,    -1,    -1,   803,    -1,   802,   527,   803,    -1,
     555,   808,   804,    -1,    81,   948,    -1,    -1,   554,   808,
      -1,   805,   527,   554,   808,    -1,   371,    -1,   416,    -1,
     808,    -1,    -1,   811,   810,    -1,   393,   811,   810,    -1,
     811,    40,   521,   944,   522,    -1,   393,   811,    40,   521,
     944,   522,    -1,   811,    40,    -1,   393,   811,    40,    -1,
     809,    -1,   806,   523,   805,   524,   810,    -1,   249,   523,
     896,   524,   810,    -1,   451,   523,   805,   524,   810,    -1,
       3,   525,     3,    -1,   809,   525,     3,    -1,   810,   521,
     522,    -1,   810,   521,   944,   522,    -1,    -1,   813,    -1,
     815,    -1,   817,    -1,   821,    -1,   827,    -1,   828,   843,
      -1,   828,   523,   944,   524,    -1,   815,    -1,   818,    -1,
     822,    -1,   827,    -1,   947,   814,    -1,   523,   893,   524,
      -1,    -1,   217,    -1,   218,    -1,   400,    -1,    55,    -1,
     345,    -1,   166,   816,    -1,   137,   328,    -1,   116,   814,
      -1,   113,   814,    -1,   285,   814,    -1,    58,    -1,   523,
     944,   524,    -1,    -1,   819,    -1,   820,    -1,   819,    -1,
     820,    -1,    57,   826,   523,   892,   524,    -1,    57,   826,
      -1,   823,    -1,   824,    -1,   823,    -1,   824,    -1,   825,
     523,   944,   524,    -1,   825,    -1,    73,   826,    -1,    72,
     826,    -1,   469,    -1,   270,    73,   826,    -1,   270,    72,
     826,    -1,   272,   826,    -1,   472,    -1,    -1,   434,   523,
     944,   524,   829,    -1,   434,   829,    -1,   433,   523,   944,
     524,   829,    -1,   433,   829,    -1,   220,    -1,   509,   433,
     506,    -1,   487,   433,   506,    -1,    -1,   503,    -1,   504,
      -1,   265,    -1,   266,    -1,   110,    -1,   111,    -1,   190,
      -1,   191,    -1,   261,    -1,   262,    -1,   381,    -1,   382,
      -1,   259,    -1,   260,    -1,   255,    -1,   256,    -1,   479,
      -1,   480,    -1,   340,    -1,   341,    -1,   114,    -1,   115,
      -1,    70,    -1,    69,    -1,   258,    -1,   257,    -1,   830,
      -1,   831,    -1,   832,    -1,   833,    -1,   834,    -1,   835,
      -1,   836,    -1,   837,    -1,   838,    -1,   839,    -1,   840,
      -1,   841,    -1,   842,    -1,   830,   435,   831,    -1,   832,
     435,   833,    -1,   832,   435,   834,    -1,   832,   435,   835,
      -1,   833,   435,   834,    -1,   833,   435,   835,    -1,   834,
     435,   835,    -1,    -1,   846,    -1,   844,    11,   808,    -1,
     844,    81,   948,    -1,   844,    47,   433,   506,   844,    -1,
     514,   844,    -1,   515,   844,    -1,   844,   514,   844,    -1,
     844,   515,   844,    -1,   844,   516,   844,    -1,   844,   517,
     844,    -1,   844,    15,   844,    -1,   844,   518,   844,    -1,
     844,   519,   844,    -1,   844,    16,   844,    -1,   844,   510,
     844,    -1,   844,   511,   844,    -1,   844,   512,   844,    -1,
     844,    20,   844,    -1,   844,    21,   844,    -1,   844,    22,
     844,    -1,   844,   885,   844,    -1,   885,   844,    -1,   844,
     885,    -1,   844,    37,   844,    -1,   844,   297,   844,    -1,
     277,   844,    -1,   507,   844,    -1,   844,   178,   844,    -1,
     844,   239,   844,    -1,   844,   239,   844,   146,   844,    -1,
     844,   507,   239,   844,    -1,   844,   507,   239,   844,   146,
     844,    -1,   844,   195,   844,    -1,   844,   195,   844,   146,
     844,    -1,   844,   507,   195,   844,    -1,   844,   507,   195,
     844,   146,   844,    -1,   844,   397,   435,   844,    -1,   844,
     397,   435,   844,   146,   844,    -1,   844,   507,   397,   435,
     844,    -1,   844,   507,   397,   435,   844,   146,   844,    -1,
     844,   223,   282,    -1,   844,   224,    -1,   844,   223,   277,
     282,    -1,   844,   277,   282,    -1,   844,   280,    -1,   230,
     938,    19,   844,    -1,   844,    17,   844,    -1,   844,    18,
     844,    -1,   874,   304,   874,    -1,   844,   223,   442,    -1,
     844,   223,   277,   442,    -1,   844,   223,   161,    -1,   844,
     223,   277,   161,    -1,   844,   223,   453,    -1,   844,   223,
     277,   453,    -1,   844,   223,   133,   173,   844,    -1,   844,
     223,   277,   133,   173,   844,    -1,   844,   223,   287,   523,
     896,   524,    -1,   844,   223,   277,   287,   523,   896,   524,
      -1,   844,    54,   919,   845,    37,   844,    -1,   844,   507,
      54,   919,   845,    37,   844,    -1,   844,    54,   420,   845,
      37,   844,    -1,   844,   507,    54,   420,   845,    37,   844,
      -1,   844,   200,   906,    -1,   844,   507,   200,   906,    -1,
     844,   887,   882,   701,    -1,   844,   887,   882,   523,   844,
     524,    -1,   118,    -1,    84,   523,   844,   524,    -1,   456,
     523,   844,   524,    -1,   516,    84,   523,   844,   524,    -1,
     516,   928,   932,   936,    -1,   554,   525,   516,   928,   932,
     936,    -1,   846,    -1,   845,    11,   808,    -1,   514,   845,
      -1,   515,   845,    -1,   845,   514,   845,    -1,   845,   515,
     845,    -1,   845,   516,   845,    -1,   845,   517,   845,    -1,
     845,    15,   845,    -1,   845,   518,   845,    -1,   845,   519,
     845,    -1,   845,    16,   845,    -1,   845,   510,   845,    -1,
     845,   511,   845,    -1,   845,   512,   845,    -1,   845,    20,
     845,    -1,   845,    21,   845,    -1,   845,    22,   845,    -1,
     845,   885,   845,    -1,   885,   845,    -1,   845,   885,    -1,
     845,   223,   133,   173,   845,    -1,   845,   223,   277,   133,
     173,   845,    -1,   845,   223,   287,   523,   896,   524,    -1,
     845,   223,   277,   287,   523,   896,   524,    -1,   847,    -1,
     848,   918,    -1,   913,    -1,   943,    -1,   701,    -1,   701,
     557,    -1,   153,   701,    -1,   762,   523,   892,   524,    -1,
     523,   844,   524,    -1,   850,    -1,   874,    -1,   528,    -1,
      10,    -1,   529,   560,    -1,   849,    -1,   852,    -1,   853,
      -1,   855,    -1,   907,    -1,   851,    -1,   858,    -1,    40,
     701,    -1,    40,   521,   893,   522,    -1,   530,     9,    -1,
     521,   893,   522,    -1,   531,   877,   532,    -1,   249,   531,
     881,   532,    -1,   942,   523,   524,    -1,   942,   523,   728,
     726,   524,    -1,   942,   523,   894,   727,   726,   524,    -1,
     942,   523,   471,   895,   727,   726,   524,    -1,   942,   523,
     894,   527,   471,   895,   727,   726,   524,    -1,   942,   523,
      31,   894,   727,   726,   524,    -1,   942,   523,   133,   894,
     727,   726,   524,    -1,   854,   859,   860,   861,   865,    -1,
     857,    -1,   854,    -1,   857,    -1,    82,   168,   523,   844,
     524,    -1,    67,   523,   844,    41,   808,   524,    -1,   445,
     523,   844,    41,   808,   524,    -1,   160,   523,   897,   524,
      -1,   305,   523,   899,   524,    -1,   324,   523,   901,   524,
      -1,   418,   523,   902,   524,    -1,   439,   523,   844,    41,
     808,   524,    -1,   441,   523,    59,   905,   524,    -1,   441,
     523,   235,   905,   524,    -1,   441,   523,   436,   905,   524,
      -1,   441,   523,   905,   524,    -1,   283,   523,   844,   527,
     844,   524,    -1,    80,   523,   892,   524,    -1,   521,   844,
     168,   938,   200,   844,   522,    -1,   521,   844,   168,   938,
     200,   846,   193,   844,   522,    -1,   486,   182,   523,   728,
     524,    -1,    -1,   164,   523,   482,   844,   524,    -1,   164,
     523,   844,   524,    -1,    -1,   156,    -1,    -1,   484,   863,
      -1,    -1,   864,    -1,   863,   527,   864,    -1,   554,    41,
     866,    -1,   303,   866,    -1,   303,   554,    -1,    -1,   523,
     867,   868,   727,   869,   524,    -1,   554,    -1,    -1,   312,
      60,   891,    -1,    -1,   343,   870,   872,    -1,   372,   870,
     872,    -1,   185,   870,   872,    -1,    -1,   871,    -1,    54,
     871,    37,   871,    -1,   448,   327,    -1,   448,   167,    -1,
     105,   371,    -1,   844,   327,    -1,   844,   167,    -1,   149,
     105,   371,    -1,   149,   182,    -1,   149,   432,    -1,   149,
     275,   300,    -1,    -1,   371,   523,   892,   524,    -1,   371,
     523,   524,    -1,   873,    -1,   523,   891,   527,   844,   524,
      -1,   555,    19,   844,    -1,   875,    -1,   876,   527,   875,
      -1,   876,    -1,   876,   527,    -1,   844,    19,   844,    -1,
     878,    -1,   879,   527,   878,    -1,   879,    -1,   879,   527,
      -1,   880,    -1,    -1,    39,    -1,   402,    -1,    31,    -1,
       8,    -1,   884,    -1,   514,    -1,   515,    -1,   516,    -1,
     517,    -1,    15,    -1,   518,    -1,   519,    -1,    16,    -1,
     510,    -1,   511,    -1,   512,    -1,    20,    -1,    21,    -1,
      22,    -1,     8,    -1,   294,   523,   888,   524,    -1,   883,
      -1,   294,   523,   888,   524,    -1,   883,    -1,   294,   523,
     888,   524,    -1,   239,    -1,   507,   239,    -1,   178,    -1,
     507,   178,    -1,   195,    -1,   507,   195,    -1,   883,    -1,
     554,   525,   888,    -1,   846,    -1,   889,   527,   846,    -1,
     889,    -1,   889,   527,    -1,   844,    -1,   891,   527,   844,
      -1,   891,    -1,   891,   527,    -1,   892,    -1,    -1,   895,
      -1,   894,   527,   895,    -1,   844,    -1,   951,    13,   844,
      -1,   951,    14,   844,    -1,   808,    -1,   896,   527,   808,
      -1,   898,   173,   844,    -1,    -1,     3,    -1,   830,    -1,
     831,    -1,   832,    -1,   833,    -1,   834,    -1,   835,    -1,
     836,    -1,   837,    -1,   838,    -1,   839,    -1,   840,    -1,
     841,    -1,   842,    -1,   556,    -1,   844,   900,   903,   904,
      -1,   844,   900,   903,    -1,   321,   844,    -1,   845,   200,
     845,    -1,    -1,   844,   903,   904,    -1,   844,   904,   903,
      -1,   844,   903,    -1,   844,   904,    -1,   891,    -1,    -1,
     173,   844,    -1,   168,   844,    -1,   844,   173,   892,    -1,
     173,   892,    -1,   892,    -1,   701,    -1,   523,   892,   524,
      -1,   913,    -1,   850,    -1,    66,   911,   908,   910,   144,
      -1,   909,    -1,   908,   909,    -1,   481,   844,   431,   844,
      -1,   140,   844,    -1,    -1,   844,    -1,    -1,   554,    -1,
     554,    -1,   554,   557,    -1,   521,   844,   522,    -1,   521,
     914,    19,   914,   522,    -1,   521,   914,    19,   914,    19,
     914,   522,    -1,   521,   914,    19,   515,    19,   914,   522,
      -1,   844,    -1,    -1,    -1,   915,   558,    -1,    -1,   523,
     524,    -1,   523,   894,   524,    -1,   525,   559,   916,    -1,
     521,   844,   522,    -1,   521,   914,    19,   914,   522,    -1,
     521,   914,    19,   914,    19,   914,   522,    -1,   521,   914,
      19,   515,    19,   914,   522,    -1,    -1,   918,   917,    -1,
      46,    -1,    -1,   922,    -1,    -1,   923,    -1,   921,   527,
     923,    -1,   921,    -1,   921,   527,    -1,   844,    41,   952,
      -1,   844,     3,    -1,   844,    -1,   554,    19,   844,    -1,
     149,   523,   927,   524,    -1,   149,   925,    -1,   555,    -1,
     925,   525,   555,    -1,   925,    -1,   926,   527,   925,    -1,
     926,    -1,   926,   527,    -1,   924,    -1,    -1,   844,    41,
     554,    -1,   929,    -1,   930,   527,   929,    -1,   930,    -1,
     930,   527,    -1,   358,   523,   931,   524,    -1,   358,   929,
      -1,    -1,   925,    41,   554,    -1,   933,    -1,   934,   527,
     933,    -1,   934,    -1,   934,   527,    -1,   356,   523,   935,
     524,    -1,   356,   933,    -1,    -1,   553,    -1,   937,   527,
     553,    -1,   941,    -1,   938,   527,   941,    -1,   938,    -1,
     938,   527,    -1,   939,    -1,   523,   939,   524,    -1,   555,
      -1,   946,    -1,   554,   557,    -1,   944,    -1,     4,    -1,
     556,   915,    -1,     6,    -1,     7,    -1,   942,   556,    -1,
     942,   523,   894,   727,   726,   524,   556,    -1,   812,   556,
      -1,   828,   523,   844,   524,   843,    -1,   828,   944,   843,
      -1,   828,   556,   843,    -1,   442,    -1,   161,    -1,   282,
      -1,     9,    -1,     3,    -1,  1023,    -1,  1028,    -1,     3,
      -1,  1023,    -1,  1025,    -1,     3,    -1,  1023,    -1,  1026,
      -1,   554,    -1,   554,   949,    -1,   525,   559,    -1,   949,
     525,   559,    -1,   523,   939,   524,    -1,    -1,   945,    -1,
     560,    -1,     5,    -1,   329,   941,   954,    41,   955,    -1,
     523,   896,   524,    -1,    -1,   700,    -1,   563,    -1,   681,
      -1,   682,    -1,  1000,    -1,  1012,    -1,   101,   376,   553,
     957,    -1,   101,   376,   193,   277,   153,   553,   957,    -1,
     101,   297,   358,   376,   553,   957,    -1,   957,   958,    -1,
      -1,   616,    -1,   959,    -1,   589,    -1,  1018,    -1,   101,
     965,   204,   962,   963,   292,   553,   961,   523,   582,   524,
     964,   801,    -1,   101,   965,   204,   962,   193,   277,   153,
     647,   292,   553,   961,   523,   582,   524,   964,   801,    -1,
     554,    -1,   462,   960,    -1,    -1,    90,    -1,    -1,   647,
      -1,    -1,   485,   631,    -1,    -1,   452,    -1,    -1,    33,
     423,   795,   392,   376,   941,    -1,    33,   423,   193,   153,
     795,   392,   376,   941,    -1,    33,   387,   553,   392,   376,
     941,    -1,    33,   387,   193,   153,   553,   392,   376,   941,
      -1,    33,   475,   553,   392,   376,   941,    -1,    33,   475,
     193,   153,   553,   392,   376,   941,    -1,   169,    76,   968,
      -1,    76,   968,    -1,   554,    -1,    -1,    85,   292,   971,
     553,   223,   970,    -1,    85,   292,    83,   844,   223,   970,
      -1,   556,    -1,   282,    -1,   423,    -1,   387,    -1,   175,
      -1,   248,    -1,   248,   423,    -1,   475,    -1,   109,    -1,
     204,    -1,   376,    -1,   446,    -1,   155,   109,   556,   690,
      -1,   155,   109,   554,   435,   556,   690,    -1,   199,   109,
     556,    -1,   154,   977,    -1,   154,   981,   975,   977,    -1,
     154,   473,   977,    -1,   154,   523,   980,   524,   977,    -1,
     473,    -1,    -1,   982,    -1,   606,    -1,    -1,   966,    -1,
     603,    -1,   537,    -1,  1017,    -1,   967,    -1,   682,    -1,
    1020,    -1,   672,    -1,   956,    -1,   589,    -1,   616,    -1,
     584,    -1,   552,    -1,  1000,    -1,   666,    -1,   599,    -1,
     959,    -1,   563,    -1,   991,    -1,   588,    -1,   953,    -1,
     561,    -1,   700,    -1,   612,    -1,   681,    -1,   598,    -1,
     995,    -1,  1009,    -1,   985,    -1,  1012,    -1,  1018,    -1,
       3,    -1,  1023,    -1,  1027,    -1,   978,    -1,   556,    -1,
     983,    -1,   980,   527,   983,    -1,    36,    -1,    35,    -1,
     442,    -1,   161,    -1,   292,    -1,   979,    -1,   984,   976,
      -1,   978,    -1,   981,    -1,   392,   986,    -1,   392,   243,
     986,    -1,   392,   391,   986,    -1,   392,   179,   986,    -1,
     392,   470,   986,    -1,   987,    -1,  1016,   173,   105,    -1,
     433,   506,   989,    -1,   376,   556,    -1,  1016,   435,   990,
      -1,  1016,   512,   990,    -1,   844,    -1,   556,    -1,     3,
      -1,   828,   556,   843,    -1,   828,   523,   944,   524,   556,
      -1,   606,    -1,   118,    -1,   243,    -1,   988,    -1,   990,
     527,   988,    -1,   242,   993,    -1,   992,   215,   993,   994,
      -1,   992,   215,   993,   173,   554,   994,    -1,   992,   215,
     993,   173,   556,   994,    -1,    -1,   169,    -1,   556,    -1,
     554,    -1,    -1,   474,   556,    -1,   474,   554,    -1,   463,
     997,   999,   975,    -1,   463,   997,   999,   975,   553,   950,
      -1,   463,   997,   999,   975,  1004,    -1,   463,   523,   998,
     524,    -1,   463,   523,   998,   524,   553,   950,    -1,   981,
      -1,   473,    -1,   172,    -1,   174,    -1,     3,    -1,   174,
      -1,    -1,   996,    -1,   998,   527,   996,    -1,   172,    -1,
      -1,   568,   123,   173,  1001,  1003,  1002,   574,    -1,   443,
     721,  1001,    -1,   795,    -1,   795,   554,    -1,   795,    41,
     554,    -1,   482,   844,    -1,    -1,   462,   776,    -1,    -1,
     981,   975,    -1,   981,   975,   553,   950,    -1,    48,  1007,
     556,  1008,   690,    -1,    48,   193,   277,   153,  1007,   556,
    1008,   690,    -1,    48,   297,   358,  1007,   556,  1008,   690,
      -1,   129,   560,    -1,   129,   109,   560,    -1,   129,   109,
     193,   153,   560,    -1,   109,    -1,    -1,    41,   554,    -1,
      -1,   360,  1011,    -1,   360,   243,  1011,    -1,   360,   391,
    1011,    -1,   360,   179,  1011,    -1,   360,   470,  1011,    -1,
    1016,    -1,    31,    -1,  1010,    -1,   433,   506,    -1,   437,
     225,   238,    -1,  1014,   700,    -1,   419,   700,    -1,   419,
     553,    -1,  1014,   553,    -1,  1014,   433,   506,    -1,  1014,
     437,   225,   238,    -1,  1014,    31,  1015,    -1,  1014,    -1,
     128,    -1,   127,    -1,   396,    -1,  1013,    -1,   424,    -1,
      -1,   554,    -1,  1016,   525,   554,    -1,    62,   854,    -1,
     101,   664,   475,   553,   653,   964,    41,   700,  1019,    -1,
     101,   664,   475,   193,   277,   153,   553,   653,   964,    41,
     700,  1019,    -1,   101,   297,   358,   664,   475,   553,   653,
     964,    41,   700,  1019,    -1,   101,   664,   348,   475,   553,
     523,   657,   524,   964,    41,   700,  1019,    -1,   101,   297,
     358,   664,   348,   475,   553,   523,   657,   524,   964,    41,
     700,  1019,    -1,   485,    75,   295,    -1,   485,    65,    75,
     295,    -1,   485,   243,    75,   295,    -1,    -1,   101,   664,
     423,  1022,    41,   700,  1021,    -1,   101,   664,   423,   193,
     277,   153,  1022,    41,   700,  1021,    -1,   101,   297,   358,
     664,   423,  1022,    41,   700,  1021,    -1,   485,   108,    -1,
     485,   275,   108,    -1,    -1,   553,   653,   638,   630,    -1,
      23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,
      28,    -1,    29,    -1,    30,    -1,    32,    -1,    33,    -1,
      34,    -1,    44,    -1,    45,    -1,    48,    -1,    49,    -1,
      51,    -1,    52,    -1,    53,    -1,    60,    -1,    61,    -1,
      62,    -1,    63,    -1,    64,    -1,    65,    -1,    68,    -1,
      69,    -1,    70,    -1,    71,    -1,    74,    -1,    76,    -1,
      77,    -1,    78,    -1,    79,    -1,    85,    -1,    86,    -1,
      87,    -1,    88,    -1,    89,    -1,    91,    -1,    92,    -1,
      93,    -1,    95,    -1,    96,    -1,    97,    -1,    98,    -1,
      99,    -1,   100,    -1,   103,    -1,   104,    -1,   105,    -1,
     106,    -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,
     111,    -1,   112,    -1,   114,    -1,   115,    -1,   117,    -1,
     119,    -1,   121,    -1,   122,    -1,   123,    -1,   124,    -1,
     125,    -1,   126,    -1,   129,    -1,   130,    -1,   131,    -1,
     132,    -1,   135,    -1,   136,    -1,   137,    -1,   138,    -1,
     139,    -1,   141,    -1,   142,    -1,   143,    -1,   145,    -1,
     146,    -1,   147,    -1,   149,    -1,   150,    -1,   151,    -1,
     152,    -1,   154,    -1,   155,    -1,   156,    -1,   157,    -1,
     158,    -1,   159,    -1,   162,    -1,   164,    -1,   165,    -1,
     167,    -1,   169,    -1,   171,    -1,   175,    -1,   176,    -1,
     179,    -1,   180,    -1,   181,    -1,   185,    -1,   186,    -1,
     188,    -1,   189,    -1,   190,    -1,   191,    -1,   192,    -1,
     193,    -1,   194,    -1,   196,    -1,   197,    -1,   198,    -1,
     199,    -1,   201,    -1,   202,    -1,   203,    -1,   204,    -1,
     205,    -1,   206,    -1,   207,    -1,   209,    -1,   212,    -1,
     213,    -1,   214,    -1,   215,    -1,   216,    -1,   222,    -1,
     225,    -1,   227,    -1,   228,    -1,   229,    -1,   231,    -1,
     232,    -1,   233,    -1,   236,    -1,   238,    -1,   241,    -1,
     242,    -1,   243,    -1,   244,    -1,   245,    -1,   246,    -1,
     247,    -1,   248,    -1,   250,    -1,   251,    -1,   252,    -1,
     253,    -1,   254,    -1,   255,    -1,   256,    -1,   257,    -1,
     258,    -1,   259,    -1,   260,    -1,   261,    -1,   262,    -1,
     263,    -1,   264,    -1,   265,    -1,   266,    -1,   267,    -1,
     268,    -1,   269,    -1,   273,    -1,   274,    -1,   275,    -1,
     278,    -1,   279,    -1,   281,    -1,   284,    -1,   286,    -1,
     287,    -1,   288,    -1,   290,    -1,   291,    -1,   294,    -1,
     295,    -1,   296,    -1,   299,    -1,   300,    -1,   303,    -1,
     306,    -1,   307,    -1,   308,    -1,   309,    -1,   310,    -1,
     311,    -1,   312,    -1,   313,    -1,   314,    -1,   315,    -1,
     316,    -1,   317,    -1,   322,    -1,   323,    -1,   326,    -1,
     327,    -1,   329,    -1,   330,    -1,   331,    -1,   333,    -1,
     334,    -1,   335,    -1,   336,    -1,   337,    -1,   338,    -1,
     340,    -1,   341,    -1,   342,    -1,   343,    -1,   344,    -1,
     346,    -1,   347,    -1,   348,    -1,   349,    -1,   351,    -1,
     352,    -1,   353,    -1,   354,    -1,   355,    -1,   356,    -1,
     357,    -1,   358,    -1,   359,    -1,   360,    -1,   361,    -1,
     362,    -1,   363,    -1,   365,    -1,   366,    -1,   368,    -1,
     369,    -1,   370,    -1,   372,    -1,   373,    -1,   374,    -1,
     375,    -1,   376,    -1,   377,    -1,   378,    -1,   379,    -1,
     380,    -1,   381,    -1,   382,    -1,   383,    -1,   384,    -1,
     387,    -1,   388,    -1,   389,    -1,   390,    -1,   391,    -1,
     392,    -1,   394,    -1,   395,    -1,   398,    -1,   399,    -1,
     401,    -1,   403,    -1,   404,    -1,   405,    -1,   406,    -1,
     407,    -1,   408,    -1,   409,    -1,   410,    -1,   411,    -1,
     412,    -1,   413,    -1,   414,    -1,   415,    -1,   417,    -1,
     421,    -1,   422,    -1,   424,    -1,   426,    -1,   427,    -1,
     428,    -1,   429,    -1,   430,    -1,   432,    -1,   437,    -1,
     438,    -1,   440,    -1,   443,    -1,   444,    -1,   446,    -1,
     447,    -1,   448,    -1,   449,    -1,   450,    -1,   453,    -1,
     454,    -1,   455,    -1,   458,    -1,   459,    -1,   460,    -1,
     461,    -1,   463,    -1,   464,    -1,   465,    -1,   466,    -1,
     467,    -1,   470,    -1,   472,    -1,   474,    -1,   475,    -1,
     476,    -1,   477,    -1,   478,    -1,   479,    -1,   480,    -1,
     483,    -1,   486,    -1,   487,    -1,   488,    -1,   489,    -1,
     490,    -1,   491,    -1,   503,    -1,   504,    -1,   505,    -1,
     506,    -1,    54,    -1,    55,    -1,    57,    -1,    58,    -1,
      72,    -1,    73,    -1,    80,    -1,    84,    -1,   113,    -1,
     116,    -1,   153,    -1,   160,    -1,   166,    -1,   177,    -1,
     183,    -1,   184,    -1,   211,    -1,   217,    -1,   218,    -1,
     220,    -1,   249,    -1,   270,    -1,   272,    -1,   276,    -1,
     283,    -1,   285,    -1,   301,    -1,   305,    -1,   324,    -1,
     328,    -1,   345,    -1,   371,    -1,   393,    -1,   400,    -1,
     416,    -1,   418,    -1,   433,    -1,   434,    -1,   439,    -1,
     441,    -1,   445,    -1,   468,    -1,   469,    -1,   492,    -1,
     493,    -1,   494,    -1,   495,    -1,   496,    -1,   497,    -1,
     498,    -1,   499,    -1,   500,    -1,   501,    -1,   502,    -1,
      43,    -1,    47,    -1,    50,    -1,    56,    -1,    82,    -1,
      90,    -1,   102,    -1,   172,    -1,   174,    -1,   177,    -1,
     178,    -1,   195,    -1,   210,    -1,   223,    -1,   224,    -1,
     226,    -1,   237,    -1,   239,    -1,   249,    -1,   271,    -1,
     280,    -1,   302,    -1,   304,    -1,   325,    -1,   367,    -1,
     397,    -1,   416,    -1,   425,    -1,   473,    -1,    38,    -1,
      43,    -1,    47,    -1,    50,    -1,    56,    -1,    82,    -1,
      84,    -1,    90,    -1,   102,    -1,   172,    -1,   174,    -1,
     178,    -1,   195,    -1,   210,    -1,   223,    -1,   224,    -1,
     226,    -1,   237,    -1,   239,    -1,   271,    -1,   280,    -1,
     302,    -1,   304,    -1,   325,    -1,   367,    -1,   386,    -1,
     397,    -1,   425,    -1,   445,    -1,   456,    -1,   473,    -1,
      38,    -1,    43,    -1,    47,    -1,    50,    -1,    54,    -1,
      55,    -1,    56,    -1,    57,    -1,    58,    -1,    73,    -1,
      72,    -1,    80,    -1,    82,    -1,    84,    -1,    90,    -1,
     102,    -1,   113,    -1,   116,    -1,   153,    -1,   160,    -1,
     166,    -1,   172,    -1,   174,    -1,   177,    -1,   178,    -1,
     183,    -1,   184,    -1,   195,    -1,   210,    -1,   211,    -1,
     218,    -1,   220,    -1,   217,    -1,   223,    -1,   224,    -1,
     226,    -1,   237,    -1,   239,    -1,   249,    -1,   270,    -1,
     271,    -1,   272,    -1,   276,    -1,   280,    -1,   283,    -1,
     285,    -1,   302,    -1,   301,    -1,   304,    -1,   305,    -1,
     324,    -1,   325,    -1,   328,    -1,   345,    -1,   367,    -1,
     371,    -1,   386,    -1,   393,    -1,   397,    -1,   400,    -1,
     416,    -1,   418,    -1,   425,    -1,   433,    -1,   434,    -1,
     439,    -1,   441,    -1,   445,    -1,   456,    -1,   468,    -1,
     469,    -1,   473,    -1,   492,    -1,   493,    -1,   494,    -1,
     495,    -1,   496,    -1,   497,    -1,   498,    -1,   499,    -1,
     500,    -1,   501,    -1,   502,    -1,    38,    -1,    43,    -1,
      47,    -1,    50,    -1,    56,    -1,    82,    -1,    84,    -1,
      90,    -1,   102,    -1,   172,    -1,   174,    -1,   177,    -1,
     178,    -1,   195,    -1,   210,    -1,   223,    -1,   224,    -1,
     226,    -1,   237,    -1,   239,    -1,   249,    -1,   271,    -1,
     280,    -1,   302,    -1,   304,    -1,   325,    -1,   367,    -1,
     386,    -1,   397,    -1,   416,    -1,   425,    -1,   445,    -1,
     456,    -1,   473,    -1,    31,    -1,    35,    -1,    36,    -1,
      37,    -1,    39,    -1,    40,    -1,    41,    -1,    42,    -1,
      46,    -1,    59,    -1,    66,    -1,    67,    -1,    75,    -1,
      81,    -1,    83,    -1,    94,    -1,   101,    -1,   118,    -1,
     120,    -1,   127,    -1,   128,    -1,   133,    -1,   134,    -1,
     140,    -1,   144,    -1,   148,    -1,   161,    -1,   163,    -1,
     168,    -1,   170,    -1,   173,    -1,   182,    -1,   187,    -1,
     200,    -1,   208,    -1,   219,    -1,   221,    -1,   230,    -1,
     234,    -1,   235,    -1,   240,    -1,   277,    -1,   282,    -1,
     289,    -1,   292,    -1,   293,    -1,   297,    -1,   298,    -1,
     318,    -1,   319,    -1,   320,    -1,   321,    -1,   332,    -1,
     339,    -1,   350,    -1,   364,    -1,   385,    -1,   396,    -1,
     402,    -1,   419,    -1,   420,    -1,   423,    -1,   431,    -1,
     435,    -1,   436,    -1,   442,    -1,   451,    -1,   452,    -1,
     457,    -1,   462,    -1,   471,    -1,   481,    -1,   482,    -1,
     484,    -1,   485,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,   513,   513,   529,   541,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   592,     9,    18,    27,
      36,    45,    54,    63,    72,    85,    87,    93,    94,    99,
     103,   107,   118,   126,   130,   138,   139,   143,   150,   151,
     156,   163,   173,   182,   191,   200,   209,   217,   225,   233,
     241,   250,   258,   266,   275,   284,   293,   302,   319,   328,
     337,   346,   356,   369,   384,   393,   401,   416,   424,   434,
     444,   451,   458,   466,   473,   484,   485,   490,   494,   499,
     504,   512,   513,   518,   522,   523,   524,     7,    13,    19,
      25,     9,    13,    44,    45,    46,    50,    51,    55,    59,
      60,    64,    70,    75,    76,    77,    78,     6,    15,    25,
      35,    45,    55,    65,    75,    85,    95,   106,   117,   127,
     140,   141,     9,    23,    29,    36,    42,    49,    59,    63,
      71,    72,    73,    77,    86,    95,   102,   103,   108,   120,
     125,   150,   155,   160,   166,   176,   186,   192,   203,   214,
     229,   230,   236,   237,   242,   243,   249,   250,   254,   255,
     260,   262,   268,   269,   273,   274,   277,   278,   283,     7,
      15,    23,    34,    42,    50,    68,    69,    72,    76,     7,
      14,    22,     9,    19,    29,    42,    43,     7,    17,    27,
      40,    41,    45,    46,    47,    51,    52,    57,    61,    68,
      72,     7,     7,    14,    31,    51,    55,    65,    69,    75,
      76,     9,    17,    29,    30,    34,    35,    36,    41,    42,
      43,    48,    52,    56,    60,    64,    68,    72,    76,    80,
      84,    88,    92,    97,   101,   105,   112,   113,   117,   118,
     119,     7,    16,    28,    29,     2,    10,    17,    24,    32,
      40,    51,    52,    53,    57,    58,    59,     2,     7,    21,
      36,    56,    57,    84,    85,    86,    87,    88,    89,    93,
      94,    99,   104,   105,   106,   107,   108,   113,   120,   121,
     122,   139,   146,   153,   163,   173,   185,   193,   202,   220,
     221,   225,   226,   230,   239,   262,   276,   283,   288,   290,
     292,   294,   297,   300,   301,   302,   303,   308,   312,   313,
     318,   325,   330,   331,   332,   333,   334,   335,   336,   337,
     343,   344,   348,   353,   360,   367,   374,   386,   387,   388,
     389,   393,   398,   399,   400,   405,   410,   411,   412,   413,
     414,   415,   420,   440,   466,   474,   484,   485,   489,   493,
     494,   495,   499,   503,   511,   512,   517,   518,   519,   523,
     531,   532,   537,   538,   542,   547,   551,   555,   560,   568,
     569,   573,   574,   578,   579,   585,   596,   609,   623,   637,
     651,   665,   688,   692,   699,   703,   711,   716,   723,   733,
     734,   735,   736,   737,   744,   751,   752,   757,   758,     9,
      19,    29,    39,    49,    59,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
      88,    89,    90,    95,    96,    97,    98,    99,   100,   105,
     106,   111,   112,   113,   118,   119,   120,     8,    18,    29,
      39,    49,    59,    71,    81,    91,    95,   102,   106,   110,
     119,   123,   130,   131,   135,   139,     7,     1,    30,    49,
      61,    62,    63,    67,    68,    73,    77,    82,    86,    94,
      95,    99,   100,   105,   106,   110,   111,   116,   117,   118,
     119,   120,   121,   122,   123,   128,   136,   140,   145,   146,
     151,   155,   160,   164,   168,   172,   176,   180,   184,   188,
     192,   196,   200,   204,   208,   212,   216,   220,   228,   233,
     234,   235,   236,   237,   243,   247,    47,    48,    52,    53,
      54,    72,    73,    80,    88,    96,   104,   112,   120,   131,
     132,   159,   164,   172,   188,   205,   223,   241,   242,   261,
     265,   269,   273,   277,   287,   298,   308,   317,   328,   339,
     351,   366,   384,   384,   388,   388,   392,   392,   396,   402,
     409,   413,   414,   418,   419,   433,   440,   447,   457,   458,
     461,   475,   476,   480,   481,   485,   486,   490,   491,   492,
     496,   507,   515,   520,   525,   530,   535,   543,   551,   556,
     561,   568,   569,   573,   574,   575,   579,   586,   587,   591,
     592,   596,   597,   598,   602,   603,   607,   608,   624,   625,
     628,   637,   648,   649,   650,   653,   654,   655,   659,   660,
     661,   662,   666,   667,   671,   673,   689,   691,   696,   699,
     704,   708,   712,   719,   723,   727,   731,   738,   743,   750,
     751,   755,   760,   764,   768,   776,   783,   784,   789,   790,
     795,   796,   800,   810,   811,   816,   817,   822,   824,   826,
     831,   851,   852,   854,   859,   860,   864,   865,   868,   869,
     894,   895,   900,   904,   905,   909,   910,   914,   915,   916,
     917,   918,   922,   935,   942,   949,   956,   957,   961,   962,
     966,   967,   971,   972,   976,   977,   981,   982,   986,   997,
     998,   999,  1000,  1004,  1005,  1010,  1011,  1012,  1021,  1027,
    1036,  1037,  1050,  1051,  1055,  1056,  1060,  1061,  1065,  1076,
    1083,  1090,  1098,  1106,  1116,  1124,  1133,  1142,  1151,  1155,
    1160,  1165,  1176,  1190,  1191,  1194,  1195,  1196,  1199,  1207,
    1217,  1218,  1219,  1222,  1230,  1239,  1243,  1250,  1251,  1255,
    1264,  1268,  1293,  1297,  1310,  1324,  1339,  1351,  1364,  1378,
    1392,  1405,  1420,  1439,  1445,  1450,  1456,  1463,  1464,  1472,
    1476,  1480,  1486,  1493,  1498,  1499,  1500,  1501,  1502,  1503,
    1507,  1508,  1520,  1521,  1526,  1533,  1540,  1547,  1579,  1590,
    1603,  1608,  1609,  1612,  1613,  1616,  1617,  1622,  1623,  1628,
    1632,  1638,  1659,  1667,  1681,  1684,  1688,  1688,  1691,  1692,
    1694,  1699,  1706,  1711,  1717,  1722,  1728,  1732,  1739,  1746,
    1756,  1757,  1761,  1763,  1766,  1770,  1771,  1772,  1773,  1774,
    1775,  1780,  1800,  1801,  1802,  1803,  1814,  1828,  1829,  1835,
    1840,  1845,  1850,  1855,  1860,  1865,  1870,  1876,  1882,  1888,
    1895,  1917,  1926,  1930,  1938,  1942,  1950,  1962,  1983,  1987,
    1993,  1997,  2010,  2018,  2028,  2030,  2032,  2034,  2036,  2038,
    2043,  2044,  2051,  2060,  2068,  2077,  2088,  2096,  2097,  2098,
    2102,  2102,  2105,  2105,  2108,  2108,  2111,  2111,  2114,  2114,
    2117,  2117,  2120,  2120,  2123,  2123,  2126,  2126,  2129,  2129,
    2132,  2132,  2135,  2135,  2138,  2138,  2141,  2143,  2145,  2147,
    2149,  2151,  2153,  2155,  2157,  2159,  2161,  2163,  2165,  2167,
    2172,  2177,  2183,  2190,  2195,  2201,  2207,  2238,  2240,  2242,
    2250,  2265,  2267,  2269,  2271,  2273,  2275,  2277,  2279,  2281,
    2283,  2285,  2287,  2289,  2291,  2293,  2295,  2298,  2300,  2302,
    2305,  2307,  2309,  2311,  2313,  2318,  2323,  2330,  2335,  2342,
    2347,  2354,  2359,  2367,  2375,  2383,  2391,  2409,  2417,  2425,
    2433,  2441,  2449,  2457,  2465,  2469,  2485,  2493,  2501,  2509,
    2517,  2525,  2533,  2537,  2541,  2545,  2549,  2557,  2565,  2573,
    2581,  2601,  2623,  2634,  2641,  2655,  2663,  2668,  2678,  2687,
    2708,  2710,  2712,  2714,  2716,  2718,  2720,  2722,  2724,  2726,
    2728,  2730,  2732,  2734,  2736,  2738,  2740,  2742,  2744,  2746,
    2748,  2750,  2754,  2758,  2762,  2776,  2777,  2791,  2792,  2793,
    2804,  2828,  2839,  2849,  2853,  2857,  2864,  2868,  2875,  2882,
    2883,  2884,  2885,  2886,  2887,  2888,  2889,  2900,  2905,  2914,
    2920,  2927,  2947,  2951,  2958,  2965,  2973,  2981,  2992,  3012,
    3048,  3059,  3060,  3067,  3073,  3075,  3077,  3081,  3090,  3095,
    3102,  3117,  3124,  3128,  3132,  3136,  3140,  3150,  3159,  3181,
    3182,  3186,  3187,  3188,  3192,  3193,  3200,  3201,  3205,  3206,
    3211,  3219,  3221,  3235,  3238,  3265,  3266,  3269,  3270,  3278,
    3286,  3294,  3303,  3313,  3331,  3377,  3386,  3395,  3404,  3413,
    3425,  3426,  3427,  3428,  3429,  3443,  3444,  3447,  3448,  3452,
    3462,  3463,  3467,  3468,  3472,  3479,  3480,  3485,  3486,  3491,
    3492,  3495,  3496,  3497,  3500,  3501,  3504,  3505,  3506,  3507,
    3508,  3509,  3510,  3511,  3512,  3513,  3514,  3515,  3516,  3517,
    3520,  3522,  3527,  3529,  3534,  3536,  3538,  3540,  3542,  3544,
    3546,  3548,  3562,  3564,  3569,  3573,  3580,  3585,  3591,  3595,
    3602,  3607,  3614,  3619,  3627,  3631,  3637,  3641,  3650,  3661,
    3662,  3666,  3670,  3677,  3678,  3679,  3680,  3681,  3682,  3683,
    3684,  3685,  3686,  3687,  3688,  3689,  3690,  3691,  3701,  3705,
    3712,  3719,  3720,  3736,  3740,  3745,  3749,  3764,  3769,  3773,
    3776,  3779,  3780,  3781,  3784,  3791,  3792,  3793,  3803,  3817,
    3818,  3822,  3833,  3834,  3837,  3838,  3846,  3852,  3856,  3863,
    3871,  3879,  3887,  3897,  3898,  3903,  3904,  3908,  3909,  3910,
    3914,  3923,  3931,  3939,  3948,  3963,  3964,  3969,  3970,  3980,
    3981,  3985,  3986,  3990,  3991,  3994,  4010,  4018,  4026,  4036,
    4037,  4041,  4045,  4051,  4053,  4058,  4059,  4063,  4064,  4067,
    4071,  4072,  4076,  4077,  4080,  4081,  4082,  4085,  4089,  4090,
    4094,  4095,  4097,  4098,  4099,  4109,  4110,  4114,  4116,  4122,
    4123,  4127,  4128,  4131,  4142,  4145,  4156,  4160,  4164,  4176,
    4180,  4189,  4196,  4234,  4238,  4242,  4246,  4250,  4254,  4258,
    4264,  4281,  4282,  4283,  4286,  4287,  4288,  4291,  4292,  4293,
    4296,  4297,  4300,  4302,  4307,  4308,  4311,  4315,  4316,     7,
      18,    19,    23,    24,    25,    26,    27,    28,     7,    26,
      50,    73,    80,    85,    86,    87,    88,     8,    33,    62,
      66,    67,    72,    73,    78,    79,    83,    84,    89,    90,
       7,    16,    25,    34,    43,    52,     5,    12,    22,    23,
       7,    15,    26,    27,    30,    31,    32,    33,    34,    35,
      36,    37,    38,    39,     7,    19,    33,     9,    16,    26,
      33,    44,    45,    50,    51,    52,    57,    58,    59,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    91,    92,    93,
      98,    99,   104,   108,   116,   117,   122,   123,   124,   130,
     135,   143,   144,    10,    16,    22,    28,    34,    44,    45,
      53,    64,    76,    84,    95,   101,   105,   109,   124,   131,
     132,   133,   137,   138,     7,    17,    26,    35,    46,    47,
      49,    50,    53,    54,    55,     8,    22,    36,    48,    56,
      70,    71,    72,    73,    74,    87,    88,    93,    94,    98,
      99,     7,    18,    31,    35,    42,    53,    54,    60,    61,
       9,    19,     7,    16,    25,    37,    44,    51,    60,    61,
      65,    66,     2,     7,    12,    17,    22,    31,    38,    48,
      49,    56,     3,    10,    17,    24,    31,    38,    45,    52,
      61,    61,    63,    63,    65,    65,    67,    68,     6,     8,
      21,    34,    47,    65,    87,    88,    89,    90,    11,    24,
      37,    54,    55,    56,    61,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
      74,    75,    75,    75,    75,    75,    75,    75,    75,    75,
      75,    75,    75,    75,    75,    75,    75,    75,    75,    75,
      75,    75,    75,    75,    75,    75,    75,    75,    75,    75,
      75,    75,    75,    75,    75,    75,    75,    75,    75,    75,
      75,    75,    75,    75,    75,    75,    75,    75,    75,    75,
      75,    75,    75,    75,    75,    76,    76,    76,    76,    76,
      76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
      76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
      76,    76,    76,    76,    77,    77,    77,    77,    77,    77,
      77,    77,    77,    77,    77,    77,    77,    77,    77,    77,
      77,    77,    77,    77,    77,    77,    77,    77,    77,    77,
      77,    77,    77,    77,    77,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
      78,    78,    78,    78,    78,    78,    78,    78,    79,    79,
      79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
      79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
      79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
      79,    79,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80,    80,    80,    80,
      80,    80,    80,    80,    80,    80,    80
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST",
  "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS",
  "EQUALS_GREATER", "INTEGER_DIVISION", "POWER_OF", "SINGLE_ARROW",
  "DOUBLE_ARROW", "SINGLE_COLON", "LESS_EQUALS", "GREATER_EQUALS",
  "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P",
  "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS",
  "ANALYSE", "ANALYZE", "AND", "ANTI", "ANY", "ARRAY", "AS", "ASC_P",
  "ASOF", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH",
  "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN",
  "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL_P",
  "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P",
  "CENTURIES_P", "CENTURY_P", "CHAIN", "CHAR_P", "CHARACTER",
  "CHARACTERISTICS", "CHECK_P", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER",
  "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT",
  "COMMENTS", "COMMIT", "COMMITTED", "COMPRESSION", "CONCURRENTLY",
  "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS",
  "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE_P",
  "CROSS", "CSV", "CUBE", "CURRENT_P", "CURSOR", "CYCLE", "DATA_P",
  "DATABASE", "DAY_P", "DAYS_P", "DEALLOCATE", "DEC", "DECADE_P",
  "DECADES_P", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE",
  "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS",
  "DESC_P", "DESCRIBE", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD",
  "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH",
  "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE",
  "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE",
  "EXISTS", "EXPLAIN", "EXPORT_P", "EXPORT_STATE", "EXTENSION",
  "EXTENSIONS", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH",
  "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN",
  "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS",
  "GENERATED", "GLOB", "GLOBAL", "GRANT", "GRANTED", "GROUP_P", "GROUPING",
  "GROUPING_ID", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD",
  "HOUR_P", "HOURS_P", "IDENTITY_P", "IF_P", "IGNORE_P", "ILIKE",
  "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE_P",
  "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT", "INHERITS",
  "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE",
  "INSERT", "INSTALL", "INSTEAD", "INT_P", "INTEGER", "INTERSECT",
  "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN",
  "JSON", "KEY", "LABEL", "LAMBDA", "LANGUAGE", "LARGE_P", "LAST_P",
  "LATERAL_P", "LEADING", "LEAKPROOF", "LEFT", "LEVEL", "LIKE", "LIMIT",
  "LISTEN", "LOAD", "LOCAL", "LOCATION", "LOCK_P", "LOCKED", "LOGGED",
  "MACRO", "MAP", "MAPPING", "MATCH", "MATERIALIZED", "MAXVALUE", "METHOD",
  "MICROSECOND_P", "MICROSECONDS_P", "MILLENNIA_P", "MILLENNIUM_P",
  "MILLISECOND_P", "MILLISECONDS_P", "MINUTE_P", "MINUTES_P", "MINVALUE",
  "MODE", "MONTH_P", "MONTHS_P", "MOVE", "NAME_P", "NAMES", "NATIONAL",
  "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NONE", "NOT", "NOTHING",
  "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC",
  "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY",
  "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDINALITY", "OTHERS",
  "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED",
  "OWNER", "PARALLEL", "PARSER", "PARTIAL", "PARTITION", "PARTITIONED",
  "PASSING", "PASSWORD", "PERCENT", "PERSISTENT", "PIVOT", "PIVOT_LONGER",
  "PIVOT_WIDER", "PLACING", "PLANS", "POLICY", "POSITION", "POSITIONAL",
  "PRAGMA_P", "PRECEDING", "PRECISION", "PREPARE", "PREPARED", "PRESERVE",
  "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROGRAM",
  "PUBLICATION", "QUALIFY", "QUARTER_P", "QUARTERS_P", "QUOTE", "RANGE",
  "READ_P", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF",
  "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P",
  "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET",
  "RESPECT_P", "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE",
  "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "RULE", "SAMPLE",
  "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCOPE", "SCROLL", "SEARCH",
  "SECOND_P", "SECONDS_P", "SECRET", "SECURITY", "SELECT", "SEMI",
  "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SET",
  "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP",
  "SMALLINT", "SNAPSHOT", "SOME", "SORTED", "SQL_P", "STABLE",
  "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT",
  "STORAGE", "STORED", "STRICT_P", "STRIP_P", "STRUCT", "SUBSCRIPTION",
  "SUBSTRING", "SUMMARIZE", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE",
  "TABLES", "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY",
  "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP", "TO", "TRAILING",
  "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P",
  "TRUNCATE", "TRUSTED", "TRY_CAST", "TYPE_P", "TYPES_P", "UNBOUNDED",
  "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN",
  "UNLOGGED", "UNPACK", "UNPIVOT", "UNTIL", "UPDATE", "USE_P", "USER",
  "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES",
  "VARCHAR", "VARIABLE_P", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P",
  "VIEW", "VIEWS", "VIRTUAL", "VOLATILE", "WEEK_P", "WEEKS_P", "WHEN",
  "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK",
  "WRAPPER", "WRITE_P", "XML_P", "XMLATTRIBUTES", "XMLCONCAT",
  "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE",
  "XMLPI", "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YEARS_P",
  "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='",
  "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['",
  "']'", "'('", "')'", "'.'", "';'", "','", "'?'", "'$'", "'#'", "'{'",
  "'}'", "$accept", "stmtblock", "stmtmulti", "stmt", "AlterTableStmt",
  "alter_identity_column_option_list", "alter_column_default",
  "alter_identity_column_option", "alter_generic_option_list",
  "qualify_list", "qualify_el", "qualified_column", "qualifiedColumnDef",
  "alter_table_cmd", "alter_using", "alter_generic_option_elem",
  "alter_table_cmds", "alter_generic_options", "opt_set_data",
  "DeallocateStmt", "qualified_name", "ColId", "ColIdOrString", "Sconst",
  "indirection", "indirection_el", "attr_name", "ColLabel", "RenameStmt",
  "opt_column", "InsertStmt", "insert_rest", "insert_target",
  "opt_by_name_or_position", "opt_conf_expr", "opt_with_clause",
  "insert_column_item", "set_clause", "opt_or_action", "opt_on_conflict",
  "index_elem", "returning_clause", "override_kind", "set_target_list",
  "opt_collate", "opt_class", "insert_column_list", "set_clause_list",
  "set_clause_list_opt_comma", "index_params", "set_target",
  "CreateTypeStmt", "create_type_value", "opt_enum_val_list",
  "enum_val_list", "PragmaStmt", "CreateSeqStmt", "OptSeqOptList",
  "CreateSecretStmt", "opt_secret_name", "opt_persist",
  "opt_storage_specifier", "create_secret_generic_opt_arg",
  "create_secret_generic_opt_elem", "create_secret_generic_opt_list",
  "UpdateExtensionsStmt", "ExecuteStmt", "execute_param_expr",
  "execute_param_list", "execute_param_clause", "AlterSeqStmt",
  "SeqOptList", "opt_with", "NumericOnly", "SeqOptElem", "opt_by",
  "SignedIconst", "DropSecretStmt", "opt_storage_drop_specifier",
  "TransactionStmt", "opt_transaction", "opt_transaction_type", "UseStmt",
  "CreateStmt", "ConstraintAttributeSpec", "def_arg",
  "OptParenthesizedSeqOptList", "generic_option_arg", "key_action",
  "ColConstraint", "ColConstraintElem", "GeneratedColumnType",
  "opt_GeneratedColumnType", "GeneratedConstraintElem",
  "generic_option_elem", "key_update", "key_actions", "OnCommitOption",
  "reloptions", "opt_no_inherit", "TableConstraint", "TableLikeOption",
  "reloption_list", "ExistingIndex", "ConstraintAttr", "OptWith",
  "definition", "TableLikeOptionList", "generic_option_name",
  "ConstraintAttributeElem", "regularColumnDef", "generatedColumnDef",
  "columnDef", "def_list", "index_name", "TableElement", "def_elem",
  "opt_definition", "OptTableElementList", "columnElem", "opt_column_list",
  "ColQualList", "key_delete", "reloption_elem", "columnList",
  "columnList_opt_comma", "func_type", "ConstraintElem",
  "TableElementList", "key_match", "TableLikeClause", "OptTemp",
  "generated_when", "DropStmt", "drop_type_any_name", "drop_type_name",
  "any_name_list", "opt_drop_behavior", "drop_type_name_on_any_name",
  "CreateFunctionStmt", "table_macro_definition",
  "table_macro_definition_parens", "table_macro_list_internal",
  "table_macro_list", "macro_definition", "macro_definition_list",
  "macro_alias", "param_list", "UpdateStmt", "CopyStmt",
  "copy_database_flag", "copy_from", "copy_delimiter",
  "copy_generic_opt_arg_list", "opt_using", "opt_as", "opt_program",
  "copy_options", "copy_generic_opt_arg", "copy_generic_opt_elem",
  "opt_oids", "copy_opt_list", "opt_binary", "copy_opt_item",
  "copy_generic_opt_arg_list_item", "copy_file_name",
  "copy_generic_opt_list", "SelectStmt", "select_with_parens",
  "select_no_parens", "select_clause", "opt_select", "simple_select",
  "value_or_values", "pivot_keyword", "unpivot_keyword",
  "pivot_column_entry", "pivot_column_list_internal", "pivot_column_list",
  "with_clause", "cte_list", "common_table_expr", "opt_on_key",
  "column_ref_list_opt_comma", "column_ref_list", "opt_materialized",
  "into_clause", "OptTempTableName", "opt_table", "all_or_distinct",
  "by_name", "distinct_clause", "opt_all_clause", "opt_ignore_nulls",
  "opt_sort_clause", "sort_clause", "sortby_list", "sortby",
  "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit",
  "limit_clause", "offset_clause", "sample_value", "sample_count",
  "sample_clause", "opt_sample_func", "tablesample_entry",
  "tablesample_clause", "opt_tablesample_clause", "opt_repeatable_clause",
  "at_unit", "at_specifier", "opt_at_clause", "select_limit_value",
  "select_offset_value", "select_fetch_first_value", "I_or_F_const",
  "row_or_rows", "first_or_next", "group_clause", "group_by_list",
  "group_by_list_opt_comma", "group_by_item", "empty_grouping_set",
  "rollup_clause", "cube_clause", "grouping_sets_clause",
  "grouping_or_grouping_id", "having_clause", "qualify_clause",
  "for_locking_clause", "opt_for_locking_clause", "for_locking_items",
  "for_locking_item", "for_locking_strength", "locked_rels_list",
  "opt_nowait_or_skip", "values_clause", "values_clause_opt_comma",
  "from_clause", "from_list", "from_list_opt_comma",
  "alias_prefix_colon_clause", "table_ref", "opt_pivot_group_by",
  "opt_include_nulls", "single_pivot_value", "pivot_header", "pivot_value",
  "pivot_value_list", "unpivot_header", "unpivot_value",
  "unpivot_value_list", "joined_table", "alias_clause", "opt_alias_clause",
  "func_alias_clause", "join_type", "join_outer", "join_qual",
  "relation_expr", "func_table", "rowsfrom_item", "rowsfrom_list",
  "opt_col_def_list", "opt_ordinality", "where_clause",
  "TableFuncElementList", "TableFuncElement", "opt_collate_clause",
  "colid_type_list", "RowOrStruct", "opt_Typename", "Typename",
  "qualified_typename", "opt_array_bounds", "SimpleTypename",
  "ConstTypename", "GenericType", "opt_type_modifiers", "Numeric",
  "opt_float", "Bit", "ConstBit", "BitWithLength", "BitWithoutLength",
  "Character", "ConstCharacter", "CharacterWithLength",
  "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime",
  "ConstInterval", "opt_timezone", "year_keyword", "month_keyword",
  "day_keyword", "hour_keyword", "minute_keyword", "second_keyword",
  "millisecond_keyword", "microsecond_keyword", "week_keyword",
  "quarter_keyword", "decade_keyword", "century_keyword",
  "millennium_keyword", "opt_interval", "a_expr", "b_expr", "c_expr",
  "d_expr", "indirection_expr_or_a_expr", "param_expr", "indirection_expr",
  "list_expr", "struct_expr", "map_expr", "func_application", "func_expr",
  "func_expr_windowless", "func_expr_common_subexpr", "list_comprehension",
  "within_group_clause", "filter_clause", "export_clause", "window_clause",
  "window_definition_list", "window_definition", "over_clause",
  "window_specification", "opt_existing_window_name",
  "opt_partition_clause", "opt_frame_clause", "frame_extent",
  "frame_bound", "opt_window_exclusion_clause", "qualified_row", "row",
  "dict_arg", "dict_arguments", "dict_arguments_opt_comma", "map_arg",
  "map_arguments", "map_arguments_opt_comma",
  "opt_map_arguments_opt_comma", "sub_type", "all_Op", "MathOp", "qual_Op",
  "qual_all_Op", "subquery_Op", "any_operator", "c_expr_list",
  "c_expr_list_opt_comma", "expr_list", "expr_list_opt_comma",
  "opt_expr_list_opt_comma", "func_arg_list", "func_arg_expr", "type_list",
  "extract_list", "extract_arg", "overlay_list", "overlay_placing",
  "position_list", "substr_list", "substr_from", "substr_for", "trim_list",
  "in_expr", "case_expr", "when_clause_list", "when_clause",
  "case_default", "case_arg", "columnref", "columnref_opt_indirection",
  "opt_slice_bound", "opt_indirection", "opt_func_arguments",
  "extended_indirection_el", "opt_extended_indirection", "opt_asymmetric",
  "opt_target_list_opt_comma", "target_list", "target_list_opt_comma",
  "target_el", "except_list", "except_name", "except_name_list",
  "except_name_list_opt_comma", "opt_except_list", "replace_list_el",
  "replace_list", "replace_list_opt_comma", "opt_replace_list",
  "rename_list_el", "rename_list", "rename_list_opt_comma",
  "opt_rename_list", "qualified_name_list", "name_list",
  "name_list_opt_comma", "name_list_opt_comma_opt_bracket", "name",
  "func_name", "AexprConst", "Iconst", "type_function_name",
  "function_name_token", "type_name_token", "any_name", "attrs",
  "opt_name_list", "param_name", "ColLabelOrString", "PrepareStmt",
  "prep_type_clause", "PreparableStmt", "CreateSchemaStmt",
  "OptSchemaEltList", "schema_stmt", "IndexStmt", "access_method",
  "access_method_clause", "opt_concurrently", "opt_index_name",
  "opt_reloptions", "opt_unique", "AlterObjectSchemaStmt",
  "CheckPointStmt", "opt_col_id", "CommentOnStmt", "comment_value",
  "comment_on_type_any_name", "ExportStmt", "ImportStmt", "ExplainStmt",
  "opt_verbose", "explain_option_arg", "ExplainableStmt",
  "NonReservedWord", "NonReservedWord_or_Sconst", "explain_option_list",
  "analyze_keyword", "opt_boolean_or_string", "explain_option_elem",
  "explain_option_name", "VariableSetStmt", "set_rest", "generic_set",
  "var_value", "zone_value", "var_list", "LoadStmt", "opt_force",
  "file_name", "opt_ext_version", "VacuumStmt", "vacuum_option_elem",
  "opt_full", "vacuum_option_list", "opt_freeze", "DeleteStmt",
  "relation_expr_opt_alias", "where_or_current_clause", "using_clause",
  "AnalyzeStmt", "AttachStmt", "DetachStmt", "opt_database",
  "opt_database_alias", "VariableResetStmt", "generic_reset", "reset_rest",
  "VariableShowStmt", "describe_or_desc", "show_or_describe", "opt_tables",
  "var_name", "CallStmt", "ViewStmt", "opt_check_option", "CreateAsStmt",
  "opt_with_data", "create_as_target", "unreserved_keyword",
  "col_name_keyword", "func_name_keyword", "type_name_keyword",
  "other_keyword", "type_func_name_keyword", "reserved_keyword", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const yytype_uint16 yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
     695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   723,   724,
     725,   726,   727,   728,   729,   730,   731,   732,   733,   734,
     735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
     755,   756,   757,   758,   759,   760,   761,   762,   763,   764,
      60,    62,    61,   765,    43,    45,    42,    47,    37,    94,
     766,    91,    93,    40,    41,    46,    59,    44,    63,    36,
      35,   123,   125
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   533,   534,   535,   535,   536,   536,   536,   536,   536,
     536,   536,   536,   536,   536,   536,   536,   536,   536,   536,
     536,   536,   536,   536,   536,   536,   536,   536,   536,   536,
     536,   536,   536,   536,   536,   536,   536,   536,   536,   536,
     536,   536,   536,   536,   536,   536,   536,   537,   537,   537,
     537,   537,   537,   537,   537,   538,   538,   539,   539,   540,
     540,   540,   540,   541,   541,   542,   542,   543,   544,   544,
     545,   545,   546,   546,   546,   546,   546,   546,   546,   546,
     546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
     546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
     546,   546,   546,   546,   546,   547,   547,   548,   548,   548,
     548,   549,   549,   550,   551,   551,   551,   552,   552,   552,
     552,   553,   553,   554,   554,   554,   555,   555,   556,   557,
     557,   558,   559,   560,   560,   560,   560,   561,   561,   561,
     561,   561,   561,   561,   561,   561,   561,   561,   561,   561,
     562,   562,   563,   564,   564,   564,   564,   564,   565,   565,
     566,   566,   566,   567,   567,   567,   568,   568,   569,   570,
     570,   571,   571,   571,   572,   572,   572,   573,   573,   573,
     574,   574,   575,   575,   576,   576,   577,   577,   578,   578,
     579,   579,   580,   580,   581,   581,   582,   582,   583,   584,
     584,   584,   585,   585,   585,   586,   586,   587,   587,   588,
     588,   588,   589,   589,   589,   590,   590,   591,   591,   591,
     592,   592,   593,   593,   593,   594,   594,   595,   596,   597,
     597,   598,   599,   599,   599,   600,   600,   601,   601,   602,
     602,   603,   603,   604,   604,   605,   605,   605,   606,   606,
     606,   606,   607,   607,   607,   607,   607,   607,   607,   607,
     607,   607,   607,   607,   607,   607,   608,   608,   609,   609,
     609,   610,   610,   611,   611,   612,   612,   612,   612,   612,
     612,   613,   613,   613,   614,   614,   614,   615,   616,   616,
     616,   617,   617,   618,   618,   618,   618,   618,   618,   619,
     619,   620,   621,   621,   621,   621,   621,   622,   622,   622,
     622,   623,   623,   623,   623,   623,   623,   623,   623,   624,
     624,   625,   625,   626,   626,   626,   627,   628,   629,   629,
     629,   629,   629,   630,   630,   630,   630,   631,   632,   632,
     633,   633,   634,   634,   634,   634,   634,   634,   634,   634,
     635,   635,   636,   637,   637,   637,   637,   638,   638,   638,
     638,   639,   640,   640,   640,   641,   642,   642,   642,   642,
     642,   642,   643,   644,   645,   645,   646,   646,   647,   648,
     648,   648,   649,   649,   650,   650,   651,   651,   651,   652,
     653,   653,   654,   654,   655,   656,   656,   656,   656,   657,
     657,   658,   658,   659,   659,   659,   660,   660,   660,   660,
     660,   660,   661,   661,   662,   662,   662,   662,   663,   664,
     664,   664,   664,   664,   664,   664,   664,   665,   665,   666,
     666,   666,   666,   666,   666,   667,   667,   667,   667,   667,
     667,   667,   667,   667,   667,   667,   667,   667,   667,   667,
     667,   667,   667,   668,   668,   668,   668,   668,   668,   669,
     669,   670,   670,   670,   671,   671,   671,   672,   672,   672,
     672,   672,   672,   673,   674,   675,   675,   676,   676,   677,
     678,   678,   679,   679,   680,   680,   681,   682,   682,   682,
     683,   683,   683,   684,   684,   685,   685,   686,   686,   687,
     687,   688,   688,   689,   689,   690,   690,   691,   691,   691,
     691,   691,   691,   691,   691,   692,   693,   693,   694,   694,
     695,   695,   696,   696,   696,   696,   696,   696,   696,   696,
     696,   696,   696,   696,   696,   696,   696,   696,   697,   698,
     698,   698,   698,   698,   699,   699,   700,   700,   701,   701,
     701,   702,   702,   702,   702,   702,   702,   702,   702,   703,
     703,   704,   704,   705,   705,   705,   705,   705,   705,   705,
     705,   705,   705,   705,   705,   705,   705,   705,   705,   705,
     705,   705,   706,   706,   707,   707,   708,   708,   709,   709,
     709,   710,   710,   711,   711,   712,   712,   712,   713,   713,
     714,   715,   715,   716,   716,   717,   717,   718,   718,   718,
     719,   719,   720,   720,   720,   720,   720,   720,   720,   720,
     720,   721,   721,   722,   722,   722,   723,   724,   724,   725,
     725,   726,   726,   726,   727,   727,   728,   728,   729,   729,
     730,   730,   731,   731,   731,   732,   732,   732,   733,   733,
     733,   733,   734,   734,   735,   735,   735,   735,   736,   736,
     737,   737,   737,   738,   738,   738,   738,   739,   739,   740,
     740,   741,   741,   741,   741,   742,   743,   743,   744,   744,
     745,   745,   746,   747,   747,   748,   748,   748,   748,   748,
     749,   750,   750,   750,   751,   751,   752,   752,   753,   753,
     754,   754,   754,   755,   755,   756,   756,   757,   757,   757,
     757,   757,   758,   759,   760,   761,   762,   762,   763,   763,
     764,   764,   765,   765,   766,   766,   767,   767,   768,   769,
     769,   769,   769,   770,   770,   771,   771,   771,   772,   772,
     773,   773,   774,   774,   775,   775,   776,   776,   777,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   779,   779,   780,   780,   780,   781,   781,
     782,   782,   782,   783,   783,   784,   784,   785,   785,   786,
     787,   787,   788,   788,   788,   788,   788,   788,   788,   788,
     788,   788,   788,   789,   789,   789,   789,   790,   790,   791,
     791,   791,   791,   791,   792,   792,   792,   792,   792,   792,
     793,   793,   794,   794,   795,   795,   795,   795,   796,   796,
     797,   798,   798,   799,   799,   800,   800,   801,   801,   802,
     802,   803,   804,   804,   805,   805,   806,   806,   807,   807,
     808,   808,   808,   808,   808,   808,   808,   808,   808,   808,
     809,   809,   810,   810,   810,   811,   811,   811,   811,   811,
     811,   811,   812,   812,   812,   812,   813,   814,   814,   815,
     815,   815,   815,   815,   815,   815,   815,   815,   815,   815,
     816,   816,   817,   817,   818,   818,   819,   820,   821,   821,
     822,   822,   823,   824,   825,   825,   825,   825,   825,   825,
     826,   826,   827,   827,   827,   827,   828,   829,   829,   829,
     830,   830,   831,   831,   832,   832,   833,   833,   834,   834,
     835,   835,   836,   836,   837,   837,   838,   838,   839,   839,
     840,   840,   841,   841,   842,   842,   843,   843,   843,   843,
     843,   843,   843,   843,   843,   843,   843,   843,   843,   843,
     843,   843,   843,   843,   843,   843,   843,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,   844,   844,   844,   844,   844,
     845,   845,   845,   845,   845,   845,   845,   845,   845,   845,
     845,   845,   845,   845,   845,   845,   845,   845,   845,   845,
     845,   845,   845,   845,   845,   846,   846,   847,   847,   847,
     847,   847,   847,   848,   848,   848,   849,   849,   849,   850,
     850,   850,   850,   850,   850,   850,   850,   850,   850,   851,
     852,   853,   854,   854,   854,   854,   854,   854,   854,   855,
     855,   856,   856,   857,   857,   857,   857,   857,   857,   857,
     857,   857,   857,   857,   857,   857,   857,   858,   858,   859,
     859,   860,   860,   860,   861,   861,   862,   862,   863,   863,
     864,   865,   865,   865,   866,   867,   867,   868,   868,   869,
     869,   869,   869,   870,   870,   871,   871,   871,   871,   871,
     872,   872,   872,   872,   872,   873,   873,   874,   874,   875,
     876,   876,   877,   877,   878,   879,   879,   880,   880,   881,
     881,   882,   882,   882,   883,   883,   884,   884,   884,   884,
     884,   884,   884,   884,   884,   884,   884,   884,   884,   884,
     885,   885,   886,   886,   887,   887,   887,   887,   887,   887,
     887,   887,   888,   888,   889,   889,   890,   890,   891,   891,
     892,   892,   893,   893,   894,   894,   895,   895,   895,   896,
     896,   897,   897,   898,   898,   898,   898,   898,   898,   898,
     898,   898,   898,   898,   898,   898,   898,   898,   899,   899,
     900,   901,   901,   902,   902,   902,   902,   902,   902,   903,
     904,   905,   905,   905,   906,   906,   906,   906,   907,   908,
     908,   909,   910,   910,   911,   911,   912,   913,   913,   558,
     558,   558,   558,   914,   914,   915,   915,   916,   916,   916,
     917,   917,   917,   917,   917,   918,   918,   919,   919,   920,
     920,   921,   921,   922,   922,   923,   923,   923,   923,   924,
     924,   925,   925,   926,   926,   927,   927,   928,   928,   929,
     930,   930,   931,   931,   932,   932,   932,   933,   934,   934,
     935,   935,   936,   936,   936,   937,   937,   938,   938,   939,
     939,   940,   940,   941,   942,   942,   943,   943,   943,   943,
     943,   943,   943,   943,   943,   943,   943,   943,   943,   943,
     944,   945,   945,   945,   946,   946,   946,   947,   947,   947,
     948,   948,   949,   949,   950,   950,   951,   952,   952,   953,
     954,   954,   955,   955,   955,   955,   955,   955,   956,   956,
     956,   957,   957,   958,   958,   958,   958,   959,   959,   960,
     961,   961,   962,   962,   963,   963,   964,   964,   965,   965,
     966,   966,   966,   966,   966,   966,   967,   967,   968,   968,
     969,   969,   970,   970,   971,   971,   971,   971,   971,   971,
     971,   971,   971,   971,   972,   972,   973,   974,   974,   974,
     974,   975,   975,   976,   976,   976,   977,   977,   977,   977,
     977,   977,   977,   977,   977,   977,   977,   977,   977,   977,
     977,   977,   977,   977,   977,   977,   977,   977,   977,   977,
     977,   977,   977,   977,   977,   977,   977,   978,   978,   978,
     979,   979,   980,   980,   981,   981,   982,   982,   982,   982,
     983,   984,   984,   985,   985,   985,   985,   985,   986,   986,
     986,   986,   987,   987,   988,   989,   989,   989,   989,   989,
     989,   989,   990,   990,   991,   991,   991,   991,   992,   992,
     993,   993,   994,   994,   994,   995,   995,   995,   995,   995,
     996,   996,   996,   996,   996,   997,   997,   998,   998,   999,
     999,  1000,  1000,  1001,  1001,  1001,  1002,  1002,  1003,  1003,
    1004,  1004,  1005,  1005,  1005,  1006,  1006,  1006,  1007,  1007,
    1008,  1008,  1009,  1009,  1009,  1009,  1009,  1010,  1010,  1011,
    1011,  1011,  1012,  1012,  1012,  1012,  1012,  1012,  1012,  1012,
    1013,  1013,  1014,  1014,  1015,  1015,  1016,  1016,  1017,  1018,
    1018,  1018,  1018,  1018,  1019,  1019,  1019,  1019,  1020,  1020,
    1020,  1021,  1021,  1021,  1022,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,  1023,
    1023,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,
    1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,
    1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,
    1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,
    1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,  1024,
    1024,  1024,  1024,  1024,  1024,  1025,  1025,  1025,  1025,  1025,
    1025,  1025,  1025,  1025,  1025,  1025,  1025,  1025,  1025,  1025,
    1025,  1025,  1025,  1025,  1025,  1025,  1025,  1025,  1025,  1025,
    1025,  1025,  1025,  1025,  1026,  1026,  1026,  1026,  1026,  1026,
    1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,
    1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,
    1026,  1026,  1026,  1026,  1026,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1027,  1027,  1027,  1027,  1027,  1027,  1027,  1027,  1028,  1028,
    1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,
    1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,
    1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,  1028,
    1028,  1028,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const yytype_uint8 yyr2[] =
{
       0,     2,     1,     3,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     0,     4,     6,     4,
       6,     4,     6,     4,     6,     1,     2,     3,     2,     1,
       3,     2,     3,     1,     3,     1,     2,     2,     1,     2,
       2,     2,     2,     5,     3,     6,     6,     3,     6,     3,
       4,     6,     6,     6,     5,     5,     6,     9,     4,     5,
       7,     6,     4,     8,     4,     2,     4,     3,     6,     4,
       2,     2,     2,     2,     1,     2,     0,     1,     2,     2,
       2,     1,     3,     4,     2,     1,     0,     2,     3,     2,
       3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
       2,     2,     1,     1,     1,     1,     1,     6,     6,     8,
       6,     8,     6,     8,     6,     8,     8,    10,     8,    10,
       1,     0,     9,     1,     4,     4,     7,     2,     1,     3,
       2,     2,     0,     4,     3,     0,     1,     0,     2,     3,
       5,     2,     2,     0,     8,     5,     0,     5,     5,     7,
       2,     0,     1,     1,     1,     3,     2,     0,     1,     0,
       1,     3,     1,     3,     1,     2,     1,     3,     2,     6,
       9,     8,     2,     4,     1,     1,     0,     1,     3,     2,
       4,     5,     5,     8,     7,     1,     0,     8,    11,    10,
       0,     1,     0,     1,     1,     0,     2,     1,     2,     1,
       3,     4,     3,     9,    12,     1,     3,     1,     3,     3,
       0,     4,     6,     1,     2,     1,     1,     0,     1,     2,
       2,     1,     2,     2,     1,     2,     3,     2,     2,     2,
       2,     3,     3,     3,     1,     3,     1,     0,     1,     2,
       2,     5,     7,     0,     2,     2,     3,     3,     2,     2,
       2,     1,     1,     0,     2,     2,     0,     2,     9,    12,
      11,     0,     2,     1,     1,     1,     1,     1,     1,     3,
       0,     1,     2,     1,     1,     2,     2,     3,     1,     1,
       2,     2,     1,     2,     3,     5,     3,     2,     5,     1,
       1,     1,     0,     5,     7,     5,     2,     3,     1,     1,
       2,     2,     0,     3,     4,     4,     0,     3,     2,     0,
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     3,     3,     1,     2,     2,     2,     2,     2,     2,
       0,     3,     3,     3,     0,     1,     2,     1,     2,     2,
       2,     2,     2,     3,     2,     2,     1,     3,     1,     1,
       1,     1,     3,     1,     2,     0,     1,     2,     0,     1,
       3,     0,     2,     0,     3,     3,     1,     5,     3,     1,
       3,     1,     2,     1,     4,     5,     5,     6,     3,     7,
       4,    11,     1,     3,     2,     2,     2,     0,     3,     1,
       1,     2,     2,     2,     2,     1,     0,     1,     2,     6,
       4,     6,     4,     6,     8,     1,     1,     1,     1,     2,
       1,     2,     1,     2,     1,     1,     1,     1,     3,     3,
       3,     3,     1,     2,     2,     1,     3,     1,     1,     1,
       3,     1,     1,     0,     1,     1,     1,     5,     8,     7,
       5,     8,     7,     4,     4,     1,     3,     1,     1,     3,
       1,     3,     1,     1,     2,     3,     8,    11,     9,     7,
       0,     3,     3,     1,     1,     3,     0,     1,     3,     1,
       0,     1,     0,     1,     0,     1,     3,     1,     1,     1,
       1,     3,     1,     1,     0,     2,     2,     0,     2,     0,
       1,     0,     1,     1,     1,     3,     3,     1,     1,     3,
       3,     3,     3,     3,     3,     4,     3,     2,     1,     1,
       1,     1,     3,     1,     1,     3,     1,     1,     3,     3,
       3,     1,     2,     4,     4,     2,     3,     5,     5,     1,
       1,     3,     0,    11,    11,    10,    12,     1,     2,     5,
       4,     4,     4,     4,     7,     5,     4,     7,     6,     9,
       9,     4,     1,     1,     1,     1,     1,     1,     1,     5,
       1,     1,     3,     1,     2,     2,     2,     3,     1,     3,
       8,     5,     0,     1,     2,     1,     3,     1,     2,     0,
       2,     0,     3,     3,     4,     4,     4,     4,     3,     2,
       1,     1,     0,     1,     1,     0,     2,     1,     5,     1,
       0,     2,     2,     0,     1,     0,     3,     5,     1,     3,
       4,     3,     1,     1,     0,     2,     2,     0,     2,     2,
       1,     1,     1,     0,     2,     4,     5,     4,     2,     3,
       1,     1,     1,     2,     2,     1,     2,     3,     0,     1,
       0,     5,     1,     4,     6,     2,     1,     0,     4,     0,
       1,     1,     3,     4,     0,     1,     1,     2,     2,     2,
       1,     1,     2,     2,     1,     1,     1,     1,     1,     1,
       3,     3,     0,     1,     3,     1,     2,     1,     1,     1,
       1,     1,     2,     4,     4,     5,     1,     1,     2,     0,
       2,     0,     1,     3,     1,     0,     1,     2,     3,     2,
       4,     2,     3,     2,     0,     1,     2,     0,     4,     5,
       1,     2,     2,     0,     1,     3,     1,     2,     2,     4,
       4,     3,     3,     3,     3,     3,     3,     3,     1,     4,
       4,     9,     9,     3,     0,     2,     2,     0,     5,     3,
       1,     1,     3,     5,     3,     1,     2,     1,     3,     5,
       1,     2,     3,     4,     5,     4,     5,     4,     6,     5,
       4,     5,     5,     5,     2,     4,     1,     1,     0,     1,
       4,     5,     4,     0,     2,     2,     2,     1,     1,     1,
       1,     0,     4,     2,     1,     2,     2,     4,     2,     6,
       2,     1,     3,     4,     0,     2,     0,     2,     0,     1,
       3,     3,     2,     0,     2,     4,     1,     1,     1,     0,
       2,     3,     5,     6,     2,     3,     1,     5,     5,     5,
       3,     3,     3,     4,     0,     1,     1,     1,     1,     1,
       2,     4,     1,     1,     1,     1,     2,     3,     0,     1,
       1,     1,     1,     1,     2,     2,     2,     2,     2,     1,
       3,     0,     1,     1,     1,     1,     5,     2,     1,     1,
       1,     1,     4,     1,     2,     2,     1,     3,     3,     2,
       1,     0,     5,     2,     5,     2,     1,     3,     3,     0,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
       3,     3,     3,     3,     3,     3,     0,     1,     3,     3,
       5,     2,     2,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     2,     2,
       3,     3,     2,     2,     3,     3,     5,     4,     6,     3,
       5,     4,     6,     4,     6,     5,     7,     3,     2,     4,
       3,     2,     4,     3,     3,     3,     3,     4,     3,     4,
       3,     4,     5,     6,     6,     7,     6,     7,     6,     7,
       3,     4,     4,     6,     1,     4,     4,     5,     4,     6,
       1,     3,     2,     2,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
       2,     5,     6,     6,     7,     1,     2,     1,     1,     1,
       2,     2,     4,     3,     1,     1,     1,     1,     2,     1,
       1,     1,     1,     1,     1,     1,     2,     4,     2,     3,
       3,     4,     3,     5,     6,     7,     9,     7,     7,     5,
       1,     1,     1,     5,     6,     6,     4,     4,     4,     4,
       6,     5,     5,     5,     4,     6,     4,     7,     9,     5,
       0,     5,     4,     0,     1,     0,     2,     0,     1,     3,
       3,     2,     2,     0,     6,     1,     0,     3,     0,     3,
       3,     3,     0,     1,     4,     2,     2,     2,     2,     2,
       3,     2,     2,     3,     0,     4,     3,     1,     5,     3,
       1,     3,     1,     2,     3,     1,     3,     1,     2,     1,
       0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     4,     1,     4,     1,     4,     1,     2,     1,     2,
       1,     2,     1,     3,     1,     3,     1,     2,     1,     3,
       1,     2,     1,     0,     1,     3,     1,     3,     3,     1,
       3,     3,     0,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     4,     3,
       2,     3,     0,     3,     3,     2,     2,     1,     0,     2,
       2,     3,     2,     1,     1,     3,     1,     1,     5,     1,
       2,     4,     2,     0,     1,     0,     1,     1,     2,     3,
       5,     7,     7,     1,     0,     0,     2,     0,     2,     3,
       3,     3,     5,     7,     7,     0,     2,     1,     0,     1,
       0,     1,     3,     1,     2,     3,     2,     1,     3,     4,
       2,     1,     3,     1,     3,     1,     2,     1,     0,     3,
       1,     3,     1,     2,     4,     2,     0,     3,     1,     3,
       1,     2,     4,     2,     0,     1,     3,     1,     3,     1,
       2,     1,     3,     1,     1,     2,     1,     1,     2,     1,
       1,     2,     7,     2,     5,     3,     3,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     2,     2,     3,     3,     0,     1,     1,     1,     5,
       3,     0,     1,     1,     1,     1,     1,     1,     4,     7,
       6,     2,     0,     1,     1,     1,     1,    13,    16,     1,
       2,     0,     1,     0,     1,     0,     2,     0,     1,     0,
       6,     8,     6,     8,     6,     8,     3,     2,     1,     0,
       6,     6,     1,     1,     1,     1,     1,     1,     2,     1,
       1,     1,     1,     1,     4,     6,     3,     2,     4,     3,
       5,     1,     0,     1,     1,     0,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     3,     1,     1,     1,     1,     1,     1,
       2,     1,     1,     2,     3,     3,     3,     3,     1,     3,
       3,     2,     3,     3,     1,     1,     1,     3,     5,     1,
       1,     1,     1,     3,     2,     4,     6,     6,     0,     1,
       1,     1,     0,     2,     2,     4,     6,     5,     4,     6,
       1,     1,     1,     1,     1,     1,     0,     1,     3,     1,
       0,     7,     3,     1,     2,     3,     2,     0,     2,     0,
       2,     4,     5,     8,     7,     2,     3,     5,     1,     0,
       2,     0,     2,     3,     3,     3,     3,     1,     1,     1,
       2,     3,     2,     2,     2,     2,     3,     4,     3,     1,
       1,     1,     1,     1,     1,     0,     1,     3,     2,     9,
      12,    11,    12,    14,     3,     4,     4,     0,     7,    10,
       9,     2,     3,     0,     4,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const yytype_uint16 yydefact[] =
{
     167,   283,     0,  1465,  1464,  1539,   283,     0,  1399,     0,
     283,   521,   426,     0,  1561,  1560,     0,   222,   283,     0,
     167,     0,  1499,     0,     0,     0,   584,   587,   585,     0,
       0,     0,   283,   630,     0,  1562,   283,     0,     0,   622,
     586,     0,  1516,     0,     0,     0,     0,     0,     2,     4,
       7,    21,    35,    31,     0,    20,    33,    18,    17,    38,
      26,     6,    24,    37,    40,    19,    25,    15,    39,    13,
      36,   560,   546,   635,   559,     0,     0,   166,   740,   567,
      34,    16,    30,     5,    11,    12,    28,    29,    27,  1422,
      43,    32,     0,    41,    22,     8,     9,    23,    42,    44,
    1563,  1559,    10,    45,    14,   282,   281,   275,     0,     0,
       0,     0,     0,  1538,     0,     0,     0,   286,   123,  1585,
    1586,  1587,  1588,  1589,  1590,  1591,  1592,  1593,  1594,  1595,
    1965,  1596,  1597,  1966,  1598,  1599,  1967,  1600,  1601,  1602,
    1911,  1912,  1968,  1913,  1914,  1603,  1604,  1605,  1606,  1607,
    1608,  1609,  1610,  1611,  1612,  1915,  1916,  1613,  1614,  1615,
    1616,  1617,  1917,  1969,  1918,  1618,  1619,  1620,  1621,  1622,
    1970,  1623,  1624,  1625,  1626,  1627,  1628,  1629,  1630,  1631,
    1971,  1632,  1633,  1634,  1635,  1636,  1637,  1638,  1639,  1640,
    1641,  1919,  1642,  1643,  1920,  1644,  1645,  1646,  1647,  1648,
    1649,  1650,  1651,  1652,  1653,  1654,  1655,  1656,  1657,  1658,
    1659,  1660,  1661,  1662,  1663,  1664,  1665,  1666,  1667,  1668,
    1669,  1670,  1921,  1671,  1672,  1673,  1674,  1675,  1676,  1922,
    1677,  1678,  1679,  1923,  1680,  1681,  1682,  1972,  1973,  1683,
    1684,  1924,  1975,  1685,  1686,  1687,  1925,  1926,  1688,  1689,
    1690,  1691,  1692,  1693,  1694,  1695,  1696,  1976,  1697,  1698,
    1699,  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1707,  1708,
    1977,  1927,  1709,  1710,  1711,  1712,  1713,  1928,  1929,  1930,
    1714,  1978,  1979,  1715,  1980,  1716,  1717,  1718,  1719,  1720,
    1721,  1722,  1981,  1723,  1982,  1724,  1725,  1726,  1727,  1728,
    1729,  1730,  1731,  1931,  1732,  1733,  1734,  1735,  1736,  1737,
    1738,  1739,  1740,  1741,  1742,  1743,  1744,  1745,  1746,  1747,
    1748,  1749,  1750,  1751,  1932,  1984,  1933,  1752,  1753,  1754,
    1934,  1755,  1756,  1985,  1757,  1935,  1758,  1936,  1759,  1760,
    1761,  1762,  1763,  1764,  1765,  1766,  1767,  1768,  1937,  1986,
    1769,  1987,  1938,  1770,  1771,  1772,  1773,  1774,  1775,  1776,
    1777,  1778,  1779,  1780,  1781,  1782,  1783,  1939,  1988,  1784,
    1785,  1940,  1786,  1787,  1788,  1789,  1790,  1791,  1792,  1793,
    1794,  1795,  1796,  1797,  1798,  1799,  1941,  1800,  1801,  1802,
    1803,  1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,
    1813,  1814,  1815,  1816,  1817,  1818,  1989,  1819,  1820,  1821,
    1942,  1822,  1823,  1824,  1825,  1826,  1827,  1828,  1829,  1830,
    1831,  1832,  1833,  1834,  1835,  1836,  1837,  1838,  1839,  1840,
    1943,  1841,  1842,  1990,  1843,  1844,  1944,  1845,  1846,  1847,
    1848,  1849,  1850,  1851,  1852,  1853,  1854,  1855,  1856,  1857,
    1858,  1945,  1859,  1946,  1860,  1861,  1862,  1992,  1863,  1864,
    1865,  1866,  1867,  1868,  1947,  1948,  1869,  1870,  1949,  1871,
    1950,  1872,  1873,  1951,  1874,  1875,  1876,  1877,  1878,  1879,
    1880,  1881,  1882,  1883,  1884,  1885,  1886,  1887,  1888,  1889,
    1890,  1952,  1953,  1891,  1892,  1993,  1893,  1894,  1895,  1896,
    1897,  1898,  1899,  1900,  1901,  1902,  1903,  1904,  1905,  1906,
    1954,  1955,  1956,  1957,  1958,  1959,  1960,  1961,  1962,  1963,
    1964,  1907,  1908,  1909,  1910,     0,  1568,     0,  1324,   124,
     125,  1346,   123,  1924,  1931,  1945,  1398,  1397,   124,     0,
     278,   520,     0,     0,     0,     0,     0,     0,   224,     0,
     420,   419,  1388,   425,     0,     0,     0,   127,   119,  1786,
     126,  1323,   117,   133,  2142,  2143,  2144,  2145,  2025,  2146,
    2147,  2148,  2149,  2026,  2150,  2027,  2028,  2029,  2030,  2031,
    2032,  2033,  2151,  2152,  2153,  2035,  2034,  2154,  2036,  2155,
    2037,  2156,  2038,  2039,  2157,  2158,  2040,  1638,  2041,  2042,
    2159,  2160,  2161,  2162,  2163,  2164,  2165,  2166,  2167,  2043,
    2044,  2168,  2169,  2045,  2170,  2171,  2046,  2172,  2047,  2048,
    2049,  2173,  2050,  2051,  2174,  2052,  2175,  2176,  2053,  2054,
    2057,  2055,  2177,  2056,  2178,  2058,  2059,  2060,  2179,  2180,
    2181,  2061,  2062,  2182,  2063,  2064,  2065,  2066,  2067,  2183,
    2068,  2184,  2069,  2070,  2185,  2186,  2187,  2188,  2189,  2072,
    2071,  2073,  2074,  2190,  2191,  2192,  2193,  2075,  2076,  2077,
    2194,  2195,  2078,  2196,  2197,  2079,  2080,  2198,  2081,  2082,
    2199,  2083,  2084,  2200,  2085,  2086,  2201,  2202,  2203,  2087,
    2204,  2088,  2089,  2205,  2206,  2090,  2091,  2207,  2092,  2208,
    2209,  2093,  2210,  2211,  2094,  2095,  2212,  2096,  2213,  2214,
    2215,  2216,  2097,  2098,  2099,  2100,  2101,  2102,  2103,  2104,
    2105,  2106,  2107,  1535,   135,   134,   136,     0,   444,   445,
       0,   455,     0,   437,   442,   438,     0,   464,   457,   465,
     446,   436,   458,   447,   435,   223,     0,   466,   452,   440,
       0,     0,     0,     0,   279,   240,   426,     0,   167,     0,
    1428,  1438,  1447,  1443,  1437,  1445,  1435,  1451,  1441,  1427,
    1449,  1436,  1440,  1433,  1450,  1431,  1448,  1446,  1434,  1442,
    1426,  1430,  1417,  1422,  1454,  1444,  1452,  1439,  1453,  1455,
    1429,  1456,  1432,     0,  1399,     0,  1917,  1969,  1922,     0,
    1935,     0,  1938,  1939,  1822,  1946,  1949,  1950,  1951,  1952,
       0,   814,   126,   121,   798,     0,   562,     0,   744,   758,
     798,   803,  1091,   826,  1092,     0,   128,  1501,  1500,  1494,
     209,  1361,  1548,  1685,  1726,  1839,  1947,  1869,  1891,  1566,
    1549,  1542,  1547,   280,   629,   627,     0,  1280,  1685,  1726,
    1826,  1839,  1947,  1891,  1473,  1478,     0,   286,  1554,   126,
     121,  1553,     0,   568,   621,     0,   287,  1515,     0,  1520,
       0,  1802,   595,   598,  1355,   596,   560,     0,     0,     1,
     167,     0,   173,     0,   625,   625,     0,   625,     0,   552,
       0,     0,   560,   555,   559,   741,  1421,  1530,     0,  1565,
    1947,  1869,  1555,  1552,  1695,     0,     0,  1695,     0,  1695,
       0,  1695,     0,     0,  1539,  1541,     0,   276,  1264,     0,
    1325,   129,     0,     0,  1410,  1406,  1411,  1407,  1412,  1405,
    1404,  1413,  1409,     0,     0,     0,   391,   424,   423,   422,
     421,   426,  1695,  1372,   220,   482,   483,     0,     0,     0,
       0,     0,     0,  1383,   120,   118,  1695,  1536,   453,   454,
       0,   443,   439,   441,     0,     0,  1695,  1350,   463,   459,
    1695,   463,  1317,  1695,     0,     0,   232,     0,   419,  1419,
    1457,  2094,  1471,     0,  1472,  1462,  1425,  1458,  1459,   167,
       0,   519,  1396,     0,     0,     0,  1212,   798,   803,     0,
       0,   816,     0,  1232,     0,  1238,     0,     0,     0,   798,
     567,     0,   758,   815,   122,   748,     0,   796,   797,   677,
     677,   630,     0,   611,     0,   677,   684,   677,   808,     0,
       0,   811,   809,     0,   811,     0,     0,     0,   811,   807,
     767,     0,   684,     0,   796,   799,   677,     0,   818,  1416,
       0,     0,     0,     0,  1545,  1543,  1544,  1550,     0,  1546,
       0,     0,  1327,  1329,  1330,  1180,  1340,  1067,     0,  1912,
    1913,  1914,  1255,  1915,  1916,  1918,  1919,  1920,  1024,  1658,
    1921,  1338,  1923,  1925,  1926,  1928,  1929,  1930,     0,  1931,
    1932,  1933,     0,  1339,  1936,  1764,  1941,  1942,  1944,  1947,
    1948,  1337,     0,  1953,     0,     0,     0,  1298,  1203,     0,
    1066,     0,     0,     0,  1257,  1265,  1059,     0,     0,   862,
     863,   884,   885,   864,   890,   891,   893,   865,     0,  1287,
     957,  1055,  1275,  1069,  1064,  1074,  1070,  1071,  1110,  1072,
    1090,  1075,  1147,  1065,     0,  1073,  1057,  1283,   611,  1281,
       0,  1058,  1326,   611,  1279,  1476,  1474,  1481,  1475,     0,
    1477,     0,     0,     0,   277,   122,  1523,  1522,  1514,  1512,
    1513,  1511,  1510,  1517,     0,  1519,  1422,  1257,  1198,  1200,
       0,   597,     0,     0,   602,   549,   548,   550,     3,     0,
       0,     0,  1675,     0,   623,   624,     0,     0,     0,     0,
       0,     0,     0,     0,   725,   650,   651,   653,   722,   726,
     734,     0,     0,     0,     0,     0,   556,     0,  1355,  1502,
    1564,  1558,  1556,     0,     0,     0,   151,   151,     0,     0,
       0,     0,     0,   111,    49,   104,     0,     0,     0,     0,
     254,   267,     0,     0,     0,     0,     0,   264,     0,     0,
     247,    51,   241,   243,     0,   151,     0,    47,     0,     0,
       0,    53,  1539,     0,     0,   519,   284,   285,  1263,     0,
     131,   132,   130,   123,     0,  2108,  1965,  1966,  1967,  1968,
    1969,  1918,  1970,  1971,     0,  1972,  1973,  1924,  1975,  1976,
    1977,  1978,  1979,  1980,  1981,  1982,  1931,  1984,  1985,  1986,
    1987,  1988,  1989,  2135,  1990,  1945,  1992,  1951,  2140,     0,
    1993,  1082,   633,  1206,   635,  1204,  1356,     0,   124,  1343,
       0,  1408,     0,     0,     0,     0,   517,     0,     0,     0,
       0,  1368,  1695,   221,   225,     0,  1695,   216,  1695,   391,
       0,  1695,     0,  1695,   391,  1695,     0,  1382,  1385,     0,
     456,   451,   449,   448,   450,  1695,   273,     0,     0,  1351,
     461,   462,     0,   430,     0,     0,   432,     0,     0,   237,
       0,   235,     0,   426,   167,     0,   248,  1467,  1468,  1466,
       0,     0,  1461,  1424,   251,   268,  1470,  1460,  1469,  1423,
    1418,     0,     0,  1414,   505,     0,     0,     0,  1213,   933,
     932,   914,   915,   930,   931,   916,   917,   924,   925,   935,
     934,   922,   923,   918,   919,   912,   913,   928,   929,   920,
     921,   926,   927,   910,   911,  1227,  1214,  1215,  1216,  1217,
    1218,  1219,  1220,  1221,  1222,  1223,  1224,  1225,  1226,     0,
       0,   757,   754,     0,     0,     0,     0,     0,     0,  1257,
       0,  1030,  1065,     0,     0,     0,  1198,  1237,     0,     0,
       0,     0,     0,     0,  1198,  1243,     0,     0,   782,   794,
       0,   670,   676,   755,   753,     0,  1280,   745,     0,   828,
     758,   756,     0,   677,   752,     0,   808,     0,   807,     0,
       0,   810,   804,     0,   805,     0,     0,     0,     0,   806,
       0,     0,     0,     0,     0,   677,     0,   794,     0,   751,
     825,  1484,  1492,   210,     0,  1347,  1994,  1995,  1996,  1997,
     872,  1998,   901,   879,   901,   901,  1999,  2000,  2001,  2002,
     868,   868,   881,  2003,  2004,  2005,  2006,  2007,   869,   870,
     906,  2008,  2009,  2010,  2011,  2012,     0,     0,  2013,   901,
    2014,   868,  2015,  2016,  2017,   873,  2018,   836,  2019,     0,
    2020,   871,   837,  2021,   909,   909,  2022,     0,  2023,   896,
    2024,     0,  1209,   846,   854,   855,   856,   857,   882,   883,
     858,   888,   889,   859,   956,     0,   868,  1348,  1349,   167,
    1551,  1567,     0,  1203,  1076,   900,   887,  1254,     0,   895,
     894,     0,  1203,   877,   876,   875,  1061,     0,   874,     0,
    1160,   901,   901,   899,   982,   878,     0,     0,     0,     0,
       0,   905,     0,   903,     0,   983,   961,   962,     0,     0,
    1297,  1306,  1198,  1202,     0,  1059,  1198,     0,  1068,  1078,
       0,  1150,  1152,     0,     0,     0,  1258,  1328,  1060,     0,
    1333,     0,     0,   956,   956,  1286,  1180,     0,  1170,  1173,
       0,     0,  1177,  1178,  1179,     0,     0,     0,  1278,     0,
    1188,  1190,     0,     0,   998,  1186,     0,  1001,     0,     0,
       0,     0,  1174,  1175,  1176,  1166,  1167,  1168,  1169,  1171,
    1172,  1184,  1165,   979,     0,  1056,     0,  1113,     0,   978,
    1284,   743,     0,  1331,   743,  1486,  1490,  1491,  1485,  1489,
       0,  1480,  1479,  1482,  1483,     0,  1524,  1508,     0,  1505,
    1201,   738,   599,  1319,     0,     0,     0,  1529,   172,   171,
       0,   231,     0,   572,   571,   644,   636,   638,   644,     0,
     570,     0,   698,   699,     0,     0,     0,     0,   731,   729,
    1327,  1340,   686,   654,   685,     0,     0,   658,     0,   690,
     957,   724,   554,   648,   649,   652,   553,     0,   727,     0,
     737,     0,   591,   593,   576,   590,   588,   573,   581,   725,
     653,     0,  1531,     0,     0,  1495,  1557,     0,     0,     0,
       0,     0,  1695,     0,     0,   839,    72,    68,    95,   341,
     150,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     103,   100,     0,     0,   101,   102,     0,     0,     0,     0,
    1347,   252,   253,   266,     0,   257,   258,   255,   259,   260,
       0,     0,   245,   246,     0,     0,     0,     0,   244,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1541,  1540,
    1532,  1259,  1264,   635,   635,   635,     0,     0,     0,     0,
     633,   634,     0,     0,     0,     0,     0,   504,   389,   399,
       0,     0,     0,  1372,   220,     0,     0,     0,     0,     0,
       0,     0,   426,  1375,  1373,  1371,  1374,  1376,     0,     0,
       0,     0,     0,   212,   215,     0,   388,   360,     0,     0,
       0,     0,  1387,     0,     0,   477,   475,   478,   467,   480,
     470,     0,  1695,   378,  1384,     0,  1537,     0,     0,   271,
     463,  1352,     0,   460,   463,  1318,     0,   463,   239,     0,
       0,  1420,  1463,   249,   269,   250,   270,   519,   514,   544,
       0,   522,   527,   502,     0,   502,     0,   524,   528,   502,
     523,     0,   502,   518,     0,  1106,     0,  1096,     0,     0,
     817,     0,     0,  1097,  1032,  1033,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1050,  1049,  1098,   821,     0,   824,
       0,     0,  1235,  1236,     0,  1099,     0,     0,  1242,     0,
       0,     0,  1104,     0,   759,     0,     0,   660,   661,   669,
     665,   672,     0,   675,   662,   611,   561,  1685,  1726,     0,
     622,   622,   622,   620,   610,     0,   702,   760,     0,   750,
       0,     0,     0,   783,     0,     0,   785,   787,     0,     0,
     790,     0,   766,   765,     0,     0,   749,     0,     0,   829,
       0,  1323,     0,     0,   211,     0,     0,     0,   854,     0,
       0,     0,   844,   840,     0,   936,   937,   938,   939,   940,
     941,   942,   943,   944,   945,   946,   947,   948,   860,  1360,
       0,   866,  1363,     0,  1364,  1365,  1362,  1359,  1366,  1367,
       0,     0,     0,     0,  1253,  1249,     0,     0,     0,     0,
       0,  1155,  1157,  1159,     0,   898,   897,  1164,  1170,  1173,
    1177,  1178,  1179,  1174,  1175,  1176,  1166,  1167,  1168,  1169,
    1171,  1172,     0,  1192,     0,  1146,     0,     0,     0,     0,
       0,     0,     0,     0,  1291,  1290,     0,  1314,     0,  1079,
    1063,     0,     0,  1153,  1080,  1288,  1298,  1266,     0,     0,
       0,  1336,  1335,   958,   967,   970,  1003,  1004,   974,   975,
     976,   980,  1358,  1357,  1285,     0,  1277,     0,     0,   959,
     984,   989,     0,  1244,  1247,  1020,  1246,     0,  1008,     0,
     997,     0,  1006,  1010,   985,  1000,     0,   981,     0,  1278,
    1189,  1191,     0,  1187,     0,   971,   972,   973,   963,   964,
     965,   966,   968,   969,   977,  1163,  1161,  1162,     0,  1264,
       0,  1276,     0,     0,  1115,     0,     0,  1005,  1282,     0,
     828,   635,   828,     0,   956,  1525,  1355,  1518,  1355,  1507,
    1199,  1320,  1354,     0,   609,     0,  1527,   158,   162,     0,
    1265,   192,   194,   743,     0,   642,   643,   647,     0,     0,
     647,   626,   569,  1942,  1822,     0,     0,     0,     0,   691,
     732,     0,   723,   688,   689,     0,   687,  1327,   692,  1326,
     693,   696,   697,   659,  1315,   733,   735,     0,   728,     0,
    1321,   575,   594,     0,     0,     0,     0,     0,   558,   557,
     739,  1502,  1502,  1504,  1503,     0,    50,     0,  1695,    74,
       0,     0,     0,     0,     0,     0,   291,    70,    71,     0,
     393,     0,    69,    65,   291,   116,  1695,   463,  1695,   463,
    1589,  1659,  1840,     0,    63,   365,   107,     0,   144,    77,
      79,   396,     0,   350,     0,     0,    97,   112,   137,     0,
       0,    52,   242,   256,   261,   140,   265,   262,  1392,   263,
     151,     0,    48,     0,   138,     0,  1390,     0,     0,    54,
     142,  1394,  1541,   519,     0,  1263,     0,   633,   633,   633,
     631,   632,  1083,     0,  1205,     0,  1207,  1208,   997,  1402,
    1401,  1403,  1400,   490,   503,     0,   390,     0,   516,   493,
     494,   504,  1370,   225,     0,   216,   391,     0,     0,   391,
       0,  1372,     0,     0,   220,   226,     0,     0,     0,     0,
       0,   389,   381,   379,   412,     0,   386,   380,     0,     0,
     336,     0,  1583,     0,  1664,   199,   204,     0,     0,     0,
       0,   484,     0,     0,     0,     0,     0,     0,   273,   274,
     429,  1353,   431,     0,   433,   238,   236,  1415,  2063,   510,
    1203,     0,   508,   515,   509,   512,   513,   507,   506,     0,
     501,     0,   537,     0,     0,     0,     0,     0,     0,     0,
       0,  1093,  1211,     0,  1230,  1229,  1031,  1038,  1041,  1045,
    1046,  1047,  1231,     0,     0,     0,  1042,  1043,  1044,  1034,
    1035,  1036,  1037,  1039,  1040,  1048,   826,     0,     0,   820,
    1240,  1239,  1233,  1234,     0,  1101,  1102,  1103,  1241,     0,
       0,   795,   664,   666,   663,     0,     0,   828,   622,   622,
     622,   622,   619,     0,     0,     0,   827,     0,   719,   680,
     681,     0,     0,   791,   789,     0,   813,     0,   786,     0,
     792,     0,   777,     0,   784,   833,   800,     0,     0,   802,
    1493,   850,     0,   845,   841,     0,     0,     0,   851,     0,
       0,     0,     0,     0,     0,     0,  1210,     0,   628,  1077,
       0,     0,     0,  1250,     0,  1025,   867,   880,  1002,     0,
    1158,  1081,     0,  1181,  1145,   908,   907,   909,   909,  1026,
       0,  1293,  1295,     0,     0,     0,     0,  1305,     0,  1028,
       0,  1199,  1149,  1151,  1306,  1062,   892,   956,     0,     0,
       0,     0,     0,     0,     0,  1009,   999,     0,  1007,  1011,
       0,     0,     0,   993,     0,     0,   991,  1021,   987,     0,
       0,  1022,  1263,     0,  1267,     0,     0,  1114,  1123,   746,
     742,   702,   633,   702,     0,  1487,  1509,  1506,     0,   607,
       0,     0,  1528,     0,   181,     0,     0,     0,     0,   184,
     198,   195,  1527,     0,     0,   637,   639,     0,  1182,   647,
     641,   695,   694,     0,   657,   730,   655,     0,   736,     0,
     592,     0,   578,     0,   769,     0,     0,  1496,  1497,     0,
       0,     0,   340,     0,     0,     0,   291,     0,   401,     0,
     408,     0,     0,   393,   372,    67,    66,    96,     0,     0,
       0,    59,   115,    88,    80,    55,    94,     0,     0,    99,
       0,    92,   109,   110,   108,   113,     0,   301,   326,     0,
       0,   337,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   519,  1534,  1264,  1264,  1260,
       0,     0,     0,   635,  1084,     0,   489,   543,   540,   541,
     539,   247,   400,     0,     0,     0,   214,   388,     0,     0,
    1387,   469,   472,  1369,   426,     0,   225,     0,   229,     0,
       0,   216,   391,     0,   364,   374,   375,   360,   387,   358,
     357,   359,     0,  1584,   240,     0,  1578,     0,   206,   202,
     391,  1386,     0,     0,   485,   476,     0,   481,     0,     0,
     479,     0,  1381,   272,   463,     0,   497,   538,   545,   525,
     530,     0,   536,   532,   531,   526,   534,   533,   529,  1094,
    1105,  1228,     0,     0,     0,     0,   819,   822,     0,  1100,
    1095,   793,     0,     0,   702,     0,     0,     0,     0,   613,
     612,   618,     0,     0,  1117,     0,   683,   788,     0,     0,
       0,   775,   764,   770,   771,     0,     0,     0,   831,   830,
     801,   854,     0,   834,   854,     0,   854,     0,   852,     0,
     861,   949,   950,   951,   952,   953,   954,   955,   886,     0,
    1252,  1248,  1154,  1156,  1193,   904,   902,  1027,  1296,  1289,
    1292,  1198,  1300,  1302,     0,     0,     0,     0,  1313,     0,
    1148,  1314,  1334,   960,     0,     0,   990,  1245,  1012,     0,
       0,     0,   986,  1181,     0,     0,     0,     0,     0,   995,
       0,  1271,  1264,     0,  1270,     0,     0,     0,     0,  1089,
     747,   719,     0,   719,     0,  1256,     0,   603,   605,   608,
     167,  1526,     0,  1521,   159,   160,   161,     0,     0,     0,
     176,   153,     0,     0,   193,   181,   169,   645,   646,     0,
     640,   656,  1316,  1322,   577,     0,  1059,     0,     0,   574,
       0,   145,   291,     0,     0,    73,     0,   410,   352,   402,
     385,   367,     0,     0,     0,   292,     0,   427,     0,     0,
     373,     0,     0,     0,     0,   353,     0,     0,   312,     0,
       0,   385,     0,   392,   308,   309,     0,    58,    89,     0,
      85,     0,   114,     0,     0,     0,     0,     0,    61,    84,
       0,    56,   839,   463,   463,    64,  1347,  1994,  1995,  1996,
    1997,  1998,  1999,  2000,  2001,  2002,  2003,  2004,  2119,  2005,
    2006,  2007,  2008,  2009,  2010,  2011,  2012,  2128,  2013,   298,
    2014,  1764,  2015,  2016,  2017,  2018,  2019,     0,  2020,   837,
    2021,  2022,  2208,  2023,  2024,  1166,  1167,   297,   296,   395,
     293,   403,   295,     0,  1348,   294,   398,   351,     0,     0,
     141,  1393,     0,   139,     0,  1391,   148,   146,   143,  1395,
    1533,     0,     0,  1087,  1088,  1085,   633,     0,     0,     0,
     519,   496,     0,     0,     0,  1583,   201,     0,     0,  1695,
       0,     0,   228,   227,   217,     0,  1387,   213,   388,     0,
     418,   336,   839,   413,     0,  1583,  1581,     0,     0,   207,
       0,   205,  1387,  1577,   468,   471,     0,     0,   560,   473,
       0,     0,     0,   434,   511,     0,   535,  1051,     0,     0,
       0,     0,   673,     0,   679,   719,   617,   616,   615,   614,
     701,  1633,  1925,  1821,     0,   705,   700,   703,   708,   710,
     709,   711,   707,   718,     0,   721,   682,   812,  1194,  1196,
       0,     0,     0,     0,   776,   778,     0,   780,     0,   832,
     848,     0,   849,     0,   847,   842,   853,  1251,  1294,  1303,
    1304,  1299,  1308,  1310,     0,     0,     0,   957,  1029,  1018,
    1016,  1013,     0,  1014,   994,     0,     0,   992,   988,     0,
    1023,     0,     0,  1268,     0,  1109,     0,  1112,  1126,  1122,
    1121,  1117,  1084,  1117,  1488,   601,   604,     0,   180,   157,
     183,   182,     0,  1265,   190,     0,     0,   181,     0,   185,
     486,     0,     0,   589,   768,   582,   583,     0,   406,    75,
       0,   385,     0,   291,   369,   368,   371,   366,   370,     0,
     428,     0,     0,   310,     0,   317,   355,   356,   354,   311,
     385,   391,   313,     0,     0,     0,    81,    60,    57,    62,
      82,     0,     0,    83,    86,   833,   838,    98,    91,  1347,
    2128,  2137,     0,     0,     0,    76,    78,     0,     0,  1262,
    1261,     0,   492,   491,   542,   488,   499,   247,     0,     0,
       0,   360,  1580,     0,     0,     0,   388,     0,   230,     0,
       0,     0,  1583,     0,     0,   288,     0,   333,     0,   233,
    1582,   200,   203,     0,     0,     0,  1569,     0,     0,  1379,
    1380,     0,   498,  1052,     0,  1053,   823,     0,     0,   671,
    1117,     0,     0,     0,   712,   706,     0,  1116,  1118,     0,
     668,  1197,   772,     0,   774,     0,   798,     0,   798,   781,
     843,   835,  1301,  1311,  1312,  1307,  1107,     0,  1015,  1019,
    1017,   996,  1264,  1264,  1272,  1269,  1111,  1125,  1128,   721,
    1332,   721,   606,   600,     0,     0,   168,     0,     0,   165,
     152,   170,  1183,   579,   580,     0,   291,     0,   384,   407,
     322,   300,     0,     0,     0,   307,   314,   417,   316,     0,
      90,   106,     0,     0,   397,   149,   147,  1086,   519,     0,
     219,  1387,   336,  1577,     0,     0,     0,     0,   360,   240,
    1579,   349,   342,   343,   344,   345,   346,   347,   348,   363,
     362,   334,   335,   208,     0,     0,     0,     0,   474,  1381,
       0,   187,   196,     0,   187,  1054,   674,     0,   721,     0,
       0,     0,   704,     0,     0,   720,     0,   565,  1195,     0,
     763,   761,     0,   762,  1309,     0,     0,     0,     0,   635,
     668,   668,   154,     0,   155,   191,     0,     0,     0,   391,
     409,   383,     0,   376,   320,   319,   321,   325,     0,   323,
       0,   339,     0,   332,   300,     0,    93,     0,   404,   487,
     495,     0,   290,  1571,   388,     0,   218,  1577,   336,  1583,
    1577,     0,  1574,     0,     0,     0,     0,   189,  1387,     0,
     189,     0,   668,   714,     0,   713,  1120,  1119,   670,   773,
       0,  1108,  1274,  1273,     0,  1132,   564,   563,     0,     0,
       0,     0,   417,     0,   361,     0,     0,   322,     0,   315,
     414,   415,   416,     0,   328,   318,   329,    87,   105,   405,
       0,   388,  1572,   289,   234,  1570,  1575,  1576,     0,   187,
     186,   644,   188,   828,   197,   644,   678,   566,   715,   667,
     779,  1127,     0,     0,     0,     0,     0,   164,   828,   175,
       0,   332,   382,   377,   299,   324,   338,     0,     0,     0,
     330,     0,   331,  1577,     0,   189,   647,  1377,   647,  1911,
    1634,  1876,     0,  1144,  1133,  1144,  1144,  1124,   156,   163,
       0,   291,   304,     0,   303,     0,   394,   327,  1573,  1387,
     644,   177,   178,     0,  1137,  1136,  1135,  1139,  1138,     0,
    1131,  1129,  1130,   828,   411,   302,   306,   305,   828,   647,
       0,     0,  1141,     0,  1142,   174,  1378,   179,  1134,  1140,
    1143
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    47,    48,    49,   760,  2713,  2714,  2715,  2323,  2312,
    2313,  1795,  1796,  1233,  3536,  2324,  1234,  1235,  2717,   761,
     811,  1177,   860,  1115,  1646,   921,  1270,  1271,   762,  1802,
     763,  2960,  2238,  2657,  3518,    54,  3254,  2241,  1191,  3257,
    3482,  2953,  3252,  2658,  3557,  3611,  3255,  2242,  2243,  3483,
    2244,   764,  2425,  3140,  3141,   765,   766,  1893,    58,  1334,
     554,  1890,  3122,  2778,  2779,   767,   768,  1369,  1370,   976,
     769,  1894,  1834,  3078,  1253,  1824,  1384,    62,  1919,   770,
     107,   917,    64,   771,  2700,  3079,  3529,  2728,  3666,  3013,
    3014,  3526,  3527,  2703,  2326,  3594,  3595,  2793,  1815,  3589,
    2412,  3469,  2332,  2306,  3015,  2420,  3428,  3130,  2327,  2995,
    2785,  2786,  2413,  3522,  1914,  2414,  3523,  3273,  2415,  1869,
    1897,  2704,  3596,  2333,  1870,  2699,  3080,  1799,  2416,  3533,
    2417,   555,  2999,   772,   751,   752,   968,  1363,   753,   773,
    1905,  1906,  1907,  1908,  1909,  1910,   952,  1911,   774,   775,
    2756,  2391,  3327,  2815,  3328,  2461,  2385,  1393,  2453,  1939,
    1872,  1394,   544,  1953,  2816,  2761,  1940,   776,  1116,    72,
      73,  1023,    74,  3267,    75,    76,  1772,  1773,  1774,   862,
     872,   873,  1726,  2946,  2947,  2651,  1479,  2024,   865,  1196,
    1741,   846,   847,  1858,   888,  1861,  1736,  1737,  2247,  2665,
    1765,  1766,  1205,  1206,  2010,  2011,  3497,  2012,  2013,  1472,
    1473,  3369,  2531,  2532,  1483,  1753,  1757,  1758,  2268,  2258,
    1744,  2528,  3175,  3176,  3177,  3178,  3179,  3180,  3181,  1117,
    2854,  3380,  1761,  1762,  1208,  1209,  1210,  1770,  2278,    78,
      79,  2220,  2639,  2640,   817,   818,  3193,  1503,  1775,  2860,
    2861,  2862,  3196,  3197,  3198,   819,  1018,  1019,  1046,  1041,
    1492,  2036,   820,   821,  1987,  1988,  2499,  1048,  2026,  2048,
    2049,  2868,  2556,  1571,  2309,  1572,  1573,  2063,  1574,  1118,
    1575,  1603,  1119,  1608,  1577,  1120,  1121,  1122,  1580,  1123,
    1124,  1125,  1126,  1596,  1127,  1128,  1621,  2065,  2066,  2067,
    2068,  2069,  2070,  2071,  2072,  2073,  2074,  2075,  2076,  2077,
    2078,  1178,  1776,  1130,  1131,  1132,  1133,  1134,  1135,  1136,
    1137,  1138,  1139,   823,  1140,  1141,  1697,  2214,  2638,  3185,
    3377,  3378,  2939,  3240,  3408,  3509,  3625,  3653,  3654,  3680,
    1142,  1143,  1641,  1642,  1643,  2101,  2102,  2103,  2104,  2208,
    1691,  1692,  1144,  3082,  1694,  2124,  3189,  3190,  1179,  1465,
    1634,  1314,  1315,  1585,  1439,  1440,  1446,  1962,  1454,  1458,
    1992,  1993,  1466,  2175,  1145,  2094,  2095,  2574,  1598,  2948,
    1146,  1269,  1647,  2934,  2211,  1695,  2168,  1153,  1147,  1154,
    1149,  1630,  2907,  2592,  2593,  1631,  2597,  2903,  2904,  2137,
    2908,  3213,  3214,  2599,  2275,  1723,  2280,  2281,   972,  1150,
    1151,  1152,  1316,   528,  1586,  3612,  1359,  1184,  1317,  2164,
     777,  1053,  2087,   778,  1331,  1885,   779,  3360,  3152,  1348,
    1915,  2429,   556,   780,   781,   537,    85,  2380,   933,    86,
      87,    88,   897,  1386,   782,  1387,  1388,   983,    89,  2817,
     985,   986,   784,   854,   855,  1512,  1711,  1513,   785,    92,
     829,  1785,   786,  1173,   869,  1174,  1176,   787,  1193,  2654,
    2236,    95,    96,    97,   116,  1265,   788,   840,   841,   878,
     100,   101,  1221,   842,   790,   791,  3356,   792,  2796,  1340,
     538,   530,   531,  1588,   725,  1319,   726
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3108
static const int yypact[] =
{
    7465,   -24,  1034, -3108, -3108,   237,   -24, 52537, 69124,   176,
     -24,   110,  1763, 55042, -3108, -3108, 49009,  4834,   -24, 58066,
   75626,   404,   373, 32700,   490, 58570, -3108, -3108, -3108, 69124,
   58066, 59074,   -24,   349, 69628, -3108,   -24, 35726, 55546,   208,
   -3108, 58066,    23,   419, 59578, 58066,  4267,   731,   281, -3108,
   -3108, -3108, -3108, -3108,   183, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108,   155, -3108,   657,   165, 32700, 32700,    73,   369, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,   485,
   -3108, -3108,   756, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, 35221, -3108, -3108, -3108, -3108, -3108, -3108, 60082, 58066,
   60586, 56050, 61090, -3108,   866,   645,  1050,   834,   204, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108,   206, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108,   705, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108,   209, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108,   548, -3108,   738, -3108,   213,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,  2187,
   -3108, -3108,  1073,  3305, 58066,   730,   900,   863, -3108, 61594,
   -3108,   896, -3108, -3108,   903,   963,  1091, -3108, -3108, 56554,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, 49513, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108,  1045, -3108, -3108,
     876, -3108,   137, -3108, -3108,   880,   848, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108,   986, -3108, -3108, -3108,
     998, 70132, 62098, 62602, -3108,   849,  1995,  5938, 75644, 31690,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108,   485, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, 58570, 69124,   869,   936,  1265,   944, 33708,
     948, 36231,   966,   975,  1330,   984,   988,  1000,  1007,   419,
   32195,  1019,   548,  1528, 63106, 63106,   -33, 33204,  1695, -3108,
   63106, 63610, -3108,  1075, -3108,  1050, -3108, -3108, -3108, -3108,
     447,  1090, -3108, 64114, 64114, 64114,  1057,  1419, 64114, -3108,
   -3108, -3108,  1114, -3108, -3108,  1355, 20238, 20238, 70636, 70636,
    1050, 70636,  1155, 70636, -3108, -3108,    62,   834, -3108,   548,
   -3108, -3108,    73, -3108, -3108, 55546, -3108, -3108,   335,  1494,
   20238, 58066,  1147, -3108,  1162,  1147,  1163,  1166,  1173, -3108,
    7465,  1532,  1420, 57058,   394,   394,  1651,   394,   913,  1085,
    5317,  2121, -3108,  1172, -3108,  1196, -3108, 58066, 58570,  1303,
    1223,  1516, -3108, -3108,  1597,   844,  1402,  1618,  5690,  1623,
     867,  1627,  1051,  1634,  1691,  1755,    36, -3108, 20238, 50017,
     548, -3108, 11265, 20238, -3108, -3108, -3108,  1387, -3108, -3108,
   -3108, -3108, -3108, 58066, 69124,  1316,  1345, -3108, -3108, -3108,
   -3108,   909,  1584, -3108, 71140, -3108, -3108,  1399, 64618, 65122,
   65626, 66130, 66634,  1789, -3108, -3108,  1725, -3108, -3108, -3108,
    1391, -3108, -3108, -3108,   179, 71644,  1728,  1357,   107, -3108,
    1731,   257, -3108,  1738,  1591, 14948, -3108,  1536, -3108, -3108,
   -3108,   419, -3108,   691, -3108, -3108, 45829, -3108, -3108, 75644,
    1450,  1377, -3108, 20238, 20238,  1380,  6661, 63106, 63610, 20238,
   58066, -3108, 20238, 25528,  1383, 20238, 20238, 11794, 20238, 30682,
   63106,  1695,  1384, -3108,   607, -3108, 58066,  1388, -3108,  1482,
    1482,   349, 32700,  1688, 32195,  1482,  1863,  1482, -3108,  1020,
    1686,  1611, -3108, 32700,  1611,  1120,  1394,  1692,  1611, -3108,
     706,  1699,  1863, 36735,  1403, -3108,  1482,  1628, -3108, -3108,
   20238, 14948, 67138,  1887, -3108, -3108, -3108, -3108,  1702, -3108,
   69124,  1407, -3108, -3108, -3108, -3108, -3108, -3108,   810,  1928,
     198,  1931, 20238,   198,   198,  1425,   214,   214, -3108,  1621,
    1430, -3108,   215,  1433,  1434,  1953,  1973,   201, 58066,   136,
    1200,   198, 20238, -3108,   214,  1457,  1983,  1458,  1985,   173,
     210, -3108,  1470,   216, 20238, 20238, 20238,   350, 20238, 10207,
   -3108, 50017,  1986, 58066,   131, -3108,   548,  1474,  1050, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108,  1475, -3108,   207,  7811,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,  1506, -3108,
   -3108, -3108, -3108,  1696, 20238, -3108, -3108,  1477,  1688, -3108,
     217, -3108, -3108,  1688, -3108, -3108, -3108, -3108, -3108,   272,
   -3108,  1902, 20238, 20238, -3108,   548, 72148, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108,   698, -3108,   485,   654, 47576,  1485,
    1495,  1147, 58066, 58066,  1560, -3108, -3108, -3108, -3108, 55546,
     192,  1802,   157,  1632, -3108, -3108,    73,    73, 15477,   775,
     646,  1253, 16006, 20767,  1860,  1740,   233,   927,  1865, -3108,
    1749,  1978, 25528, 20238, 20238,   913,  1085, 20238,  1162,   152,
   -3108, -3108, -3108,  1801, 58066, 53041,   973,  1017,  1519,  1608,
     455,   860,  1955, -3108,  1529, -3108,  1619, 58066, 74653,   228,
   -3108,  1998,   228,   228,   298,  2001,  1620,   282,  1796,    69,
     -23,  1529,  1788, -3108, 55546,   171,   859,  1529, 58066,  1633,
    1313,  1529,  1691,  1050, 69124,  1377, -3108, -3108, 43445,  2048,
   -3108, -3108, -3108,   175, 14948, -3108,  1414,  1471,  1527,  1575,
     364,   191,  1657,  1687, 14948,  1689,  1701,   180,  1711,  1730,
    1732,  1739,  1741,  1743,  1748,  1750,   154,  1752,  1756,  1761,
    1776,  1778,  1781, -3108,  1792,   185,  1804,   211,  1470, 14948,
    1807, -3108,   266, 47576,    -2, -3108, -3108,  1811,   187, -3108,
   47825, -3108,  1846,  1635,  1637, 69124,  1590, 58066,  1700,  1412,
    1925,  1981,  1810, -3108,  1879, 58066,  1813,  1788,  1819,  1561,
    2056,  1821,  2058,  1823,  1345,  1827,  1580, -3108, 72652, 50017,
   -3108, -3108, -3108, -3108, -3108,  1954,  1938, 69124, 50017,  1587,
   -3108, -3108, 69124, -3108, 58066, 58066, -3108, 58066, 69124, -3108,
     710, 47576,  2102,   969, 75644, 51529, -3108, -3108, -3108, -3108,
    1137,  1181, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108,  1050, 50017, -3108,  3215, 46459,  1592, 20238, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,  1595,
    1948, -3108, -3108,  6600,  1599, 46744,  1600, 25528, 25528,   548,
    1994, -3108, -3108, 25528,  1602, 52033, 46348,  1603,  1612, 46762,
   16535, 20238, 16535, 16535, 46873, -3108,  1614, 47117, 63106,  1604,
   58066, 30175, -3108, -3108, -3108, 20238, 20238,  1695, 57562,  1650,
    1616, -3108,  1624,  1482, -3108, 32700, -3108, 32700, -3108,  1915,
   32700, -3108, -3108,  4979, -3108, 32700,  1916, 20238, 32700, -3108,
   32700,  1864,  1867,  1631, 32700,  1482, 58066,  1639, 58066, -3108,
   -3108, 47576, -3108,  1629,   757,  1630, -3108, -3108, -3108, -3108,
   -3108, -3108,  1685, -3108,  1685,  1685, -3108, -3108, -3108, -3108,
    1640,  1640,  1643, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108,  1645,  1200, -3108,  1685,
   -3108,  1640, -3108, -3108, -3108, -3108, -3108, -3108, -3108, 74653,
   -3108, -3108, -3108, -3108,   -56,   596, -3108,  1647, -3108, -3108,
   -3108,  1648, -3108,  1652,  2132, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108,  6797,   766,  1640, -3108, -3108,  2098,
   -3108, -3108, 20238, 20238, -3108, -3108,  1653, 47576,  1697, -3108,
   -3108, 20238, 20238, -3108, -3108, -3108, -3108,  2170, -3108,   172,
   20238,  1685,  1685, -3108,  8943, -3108, 41776, 17064,  1747,  1754,
    2170, -3108,  2170, -3108, 20238,  8943,  2172,  2172,  1665, 37239,
   -3108,  1835, 47186, -3108,  1676,  1869,  7245,  1673, -3108, -3108,
    2182, -3108,  1677,  1675, 20238, 44317,   167,   548,   548, 20238,
   -3108,  2170, 20238,  6956,  6956, -3108,   200, 67138, 20238, 20238,
   20238, 20238, 20238, 20238, 20238, 20238, 48505,  1772,   181, 69124,
   20238, 20238, 29666,   989, -3108, 20238,  1926, -3108,  1693, 20238,
    1775,  1008, 20238, 20238, 20238, 20238, 20238, 20238, 20238, 20238,
   20238, -3108, -3108, 28642,   274,   672,  2032,  2060,    16,   263,
   20238,  2047, 11265, -3108,  2047, -3108, -3108, -3108, -3108, -3108,
     218, -3108, -3108,  1629,  1629, 69124, -3108, 58066,   335, 54049,
   20238, -3108, -3108,  1703,  1705,  1999,  2181,  1769, -3108, -3108,
   58066, -3108, 40263,  2013, -3108,   732,  1708, -3108, 46330,  1968,
    2013,    73, -3108, -3108, 26057,  1844,  2012,  1949, -3108, -3108,
    1927,  1929, -3108,  1717, 47873, 21296, 21296, -3108,  1337, 47576,
    1456, -3108, -3108, -3108, -3108, -3108, -3108,    79, -3108, 58066,
     113, 37743, -3108,  1720,    86, -3108,  2357,  2066,  2033,  1860,
     927,  1729, -3108, 58570, 58570, -3108, -3108,  1328,  1733, 73156,
   58066,  2027,  1980,  2036,   355, 67138, -3108,  1735, -3108, -3108,
   -3108, 58066, 69124, 67627, 73660, 50521, 58066,  2201,  2205, 50017,
   -3108, -3108,  2206,  2207, -3108, -3108, 58066,  1112, 58066,  7309,
   -3108, -3108, -3108, -3108,   228, -3108, -3108, -3108, -3108, -3108,
   69124, 58066, -3108, -3108,   228, 69124, 58066,   228, -3108,  1336,
   58066, 58066, 69124, 58066,  1338, 58066, 58066,  1050,  1755, -3108,
   -3108, -3108, 21825,    28,    28,  1971,  1988,  1989,  1757, 12832,
     266, -3108, 20238, 20238,   942,   275, 69124,  1939, -3108, -3108,
     780,  1990,   195, -3108, 69124,  1803, 58066, 58066, 58066, 58066,
   58066, 58066,   637, -3108, -3108, -3108, -3108, -3108,  2126,  2279,
    1760,  1762,  2133, -3108,  1788,  2134, 53545,   990,  1250,  2136,
   68131,  2138,  1808,  2141, 13361, -3108, -3108,  1770, -3108, -3108,
    1771,  2258,  2023, -3108, -3108,  2009, -3108, 69124,  2299, -3108,
     107, -3108, 50017, -3108,   257, -3108,  2011,   269, -3108, 14948,
   20238, -3108, -3108, -3108, -3108, -3108, -3108,  1377, 29157, -3108,
     817, -3108, -3108,  2264,  1050,  2264,   518, -3108, -3108,  2264,
   -3108,  2247,  2264, -3108, 67138, -3108,  8698, -3108, 20238, 20238,
   -3108, 20238,  2135, -3108,  2298,  2298, 67138, 25528, 25528, 25528,
   25528, 25528, 25528,   640,  1457, 25528, 25528, 25528, 25528, 25528,
   25528, 25528, 25528, 25528, 26586,   304, -3108, -3108,   829,  2269,
   20238, 20238,  2143,  2135, 20238, -3108, 67138,  1793, -3108,  1794,
    1795, 20238, -3108, 67138, -3108, 58066,  1797, -3108, -3108, -3108,
      34,  1799,  1800, -3108, -3108,  1688, -3108,   931,  1153, 58066,
     264,  3761,  4791, -3108, -3108, 20238,  2130, -3108,   380, -3108,
    4979,  4979, 32700, -3108, 20238,  1805, -3108, -3108, 32700,  2148,
   -3108,  4979, -3108, -3108, 38247,  4979, -3108, 67138,   835, -3108,
   58066, 67138,   843, 20238, -3108, 14948,  2322, 67138,  2286, 69124,
   69124,  2324,  1812,  1814,  2170,  1897, -3108,  1899,  1904,  1913,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   67138, -3108, -3108,   286, -3108, -3108, -3108, -3108, -3108, -3108,
    1828,  1829, 20238, 20238,   163, -3108,  8782,  1832,  1837, 20238,
   47228, -3108,  1840, -3108,  1838, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108,  1849, -3108,  1851, -3108,  1856,  1847,  1875,  1858,
    1859,  8834, 20238, 58066, -3108,  1861, 22354,  2028, 58066, -3108,
   -3108, 20238, 20238, 58066, -3108, 47576,  2236, -3108,  1871,  1872,
   42288, -3108, -3108, -3108,   251,   396, 47920,   263,  3265,  3265,
    3265,  8943, -3108, -3108, -3108,  1882, -3108, 25528, 25528, -3108,
    2984,  3664, 10207, -3108, -3108, -3108, -3108,  2216, -3108,  1009,
   -3108,  1874, -3108, -3108,  3821, -3108, 41776, 47960, 20238,   184,
   -3108, 20238, 29666, 20238,  1970,  3265,  3265,  3265,   348,   348,
     251,   251,   251,   396,   263, -3108, -3108, -3108,  1883, 20238,
   50017, -3108,  1884,  1885,  2255,  1458, 20238, -3108, -3108, 32700,
    1650,    -2,  1650,  2170,  6956, -3108,  1162, -3108,  1162, -3108,
   47576, 58066, -3108,  1889,   584, 32700,  1933,  2378,  2367, 69124,
   -3108, -3108,  1903,  2047,  1917, -3108, -3108,  1923, 20238,  1826,
    1923, -3108,  2013,    60,  2139,  1261,  1261,  1337,  2140, -3108,
   -3108,  1975, -3108, -3108, -3108, 20238, 13890,  1459, -3108,  1461,
   -3108, -3108, -3108, -3108, -3108,  1909, -3108,  2191, -3108, 58066,
   -3108, -3108, 25528,  2380, 20238, 38751,  2381,  2174, -3108, -3108,
   -3108,  1964,  1964, -3108, -3108,  2010,  1529, 20238,  2171, -3108,
     153,  1934,  2296,   362,  2250, 69124, -3108, -3108, -3108,   328,
     340, 50017,  1735, -3108, -3108,   220,  2303,   269,  2305,   269,
   50017, 50017, 50017,   852, -3108, -3108, -3108,  1050, -3108, -3108,
   -3108,   432,   853, -3108,  1936,  1937, -3108, -3108, -3108,  2016,
    1579,  1529,  1788, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
     190,  1690,  1529,  2026, -3108,  2029, -3108,  2031,  1698,  1529,
   -3108, -3108,  1755,  1377, 17593, 47576,   189,   266,   266,   266,
   -3108, -3108, -3108, 14948, -3108,  1943, 47576, 47576,   139, -3108,
   -3108, -3108, -3108,  1940, -3108,   296, -3108, 69124, -3108, -3108,
   -3108,  1939,  1981,  1879, 58066,  1788,  1945,  2431,  2432,  1345,
    1580, -3108,  2119,   539, 69124, -3108, 50017, 69124, 58066, 58066,
   58066, 54553, -3108, -3108, -3108,  1956,  1952, -3108,    -3,  2192,
    2189, 58066,  2000, 58066,  1961, -3108, -3108, 58066,  1963,  2448,
   58066, -3108,   873,  1580,  1580, 18122,  2339, 58066,  1938, -3108,
   -3108, -3108, -3108, 69124, -3108, -3108, 47576, -3108,  1965, -3108,
   20238, 51025, -3108, -3108, -3108, -3108, -3108, -3108, -3108, 50017,
   -3108,  1050, -3108,  1050,  2213, 69124, 44821,  1050, 45325,  1050,
    1974, -3108, 47576, 42306, 47576,  2143, -3108,   225,  2298,  1267,
    1267,  1267,  2454,  2326,   351,  1977,  1267,  1267,  1267,   387,
     387,   225,   225,   225,  2298,   304,  1075, 52033,  1979, -3108,
   47576, 47576, -3108, -3108,  1991, -3108, -3108, -3108, -3108,  1992,
    1996, -3108, -3108, -3108, -3108, 69124,   166,  1650,   208,   208,
     208,   208, -3108, 58066, 58066, 58066, 47576,  2437,  2314, -3108,
   -3108,  2489,  2002, -3108, -3108,  4979, 47576, 58066, -3108, 27624,
   -3108, 58066, -3108,  2346, -3108,  2444, -3108, 58066,   889, -3108,
   -3108, -3108,   891,  1997,  1814, 67138,   893,   895, -3108,  2170,
     127,  2003,  1573,   919,  1164,  1469, -3108, 55546, -3108, -3108,
    2004, 47276, 20238, -3108,  2385, -3108, -3108, -3108, 47576, 20238,
   20238, -3108, 41776, -3108, -3108, -3108, -3108,   427,   427, -3108,
   42355,  1861,  2006,  2014, 58066, 10207, 47528, -3108, 39255, -3108,
      38, 42395, 47576, -3108,  1835, -3108, -3108,  6956, 20238,  1297,
    3221, 20238,  2015, 20238,  2361, -3108, -3108,  2007, -3108, -3108,
   67138, 20238,  2018,  4367, 25528, 25528,  4583, -3108,  5526, 20238,
   10207, -3108, 43689,  2516,  2020,  1971, 18651, -3108,  2233,  2019,
   -3108,  2130,   266,  2130,  2021, -3108, -3108, -3108, 69124, -3108,
    2285,  2024, -3108, 20238,  2185, 69124,   594,  2929,   908, -3108,
     548, 40263,  1933, 20238,   270, -3108, -3108,  2030, -3108,  1923,
   -3108, -3108, -3108,  2257, -3108, -3108, -3108, 58066, -3108,  2034,
   -3108, 37743,  2369, 10736, -3108, 37743, 58066, -3108, -3108, 58066,
   42442,  2403, -3108, 69124, 69124, 69124, -3108, 69124,  2035,  2040,
     268,  2037,   778, -3108,  2711, -3108, -3108,   268,  2382,   267,
    1963,   282,  4590,    58, -3108, -3108, -3108,  2122, 58066, -3108,
   69124, -3108, -3108, -3108, -3108, -3108, 50521, -3108, -3108, 41271,
   50017, -3108, 50017, 20238, 20238, 58066, 58066, 58066, 58066, 69124,
   58066, 58066, 58066, 58066, 58066,  1377, -3108, 20238, 20238, -3108,
    2043,  2045,  2046,  1971, -3108,   344, -3108,  2050, -3108, -3108,
   -3108,   -23, -3108,   296,  2054,  2059, -3108, 53545,  3305, 68131,
    1808, -3108,  1771,  1981,   696, 68620,  1879, 20238, -3108,   910,
     912,  1788,  2061,  2530, -3108, -3108, -3108,   990, 53545, -3108,
   -3108, -3108,  2492, -3108,   849,   231, -3108,  2545,   290, -3108,
    1345, -3108,  3305,  1580, -3108, -3108,  2549, -3108,  2551,  3305,
   47576, 69124,  2131, -3108,   269,   920, -3108, -3108, -3108, -3108,
   -3108, 69124,  2067, -3108,  2067, -3108, -3108,  2067, -3108, -3108,
   -3108, -3108, 25528,  2423,  2074, 67138, -3108, -3108, 58066, -3108,
   -3108, -3108,   925,  2075,  2130, 58066, 58066, 58066, 58066, -3108,
   -3108, -3108, 19180, 20238,  2114, 20238, -3108, -3108,  2076, 12323,
    2402, -3108, 27115, -3108, -3108,  2079, 38247, 69124, -3108, -3108,
   -3108, -3108,  2170, -3108, -3108, 69124, -3108,  2083, -3108,  2087,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, 20238,
   47576, -3108, 47576, -3108, -3108, -3108, -3108, -3108, 58066, -3108,
   -3108,  8114, -3108,  2084,  2088, 69124, 58066,   241, -3108, 20238,
   -3108,  2028, -3108,   832, 20238, 20238,  2984, -3108, 48008, 20238,
   67138,   972,  2984,   303, 20238,  3687,  4199, 20238, 20238,  5755,
   42747, -3108, 22883, 14419, -3108,  2092, 20238, 42839, 40767, -3108,
   32700,  2314,  2095,  2314,  1050, -3108,  2096,  2097, -3108, -3108,
    2098, 47576, 20238, -3108, -3108, -3108, -3108,  2157,   434, 34716,
    2336, -3108,  2118, 69124, -3108,  2185, 47576, -3108, -3108, 41776,
   -3108, -3108, -3108, -3108, -3108,  2575,  2413,  2112,  2113, -3108,
    1386, -3108, -3108, 69124,  2115, -3108,  2116,   268, -3108, 69124,
    2153, -3108,   295,  2435,   106, -3108, 20238, -3108,  2525,  2603,
    2711,  2124, 69124, 58066, 25528, -3108,   312,   253, -3108,  2417,
   58066,  2153,  2561, -3108, -3108, -3108,   778, -3108,  2459,  2373,
   -3108,   228, -3108, 20238,   778,  2375,   242, 69124, -3108, -3108,
    2782, -3108, 67138,   269,   269, -3108,  1630,  2142,  2144,  2149,
    2156,  2158,  2159,  2162,  2163,  2164,  2165,  2166, -3108,  2167,
    2168,  2169,  2173,  2175,  2176,  2178,  2179,  1645,  2188, -3108,
    2190,  2030,  2193,  2195,  2196,  2199,  2203, 74164,  2204,  2209,
    2210,  2211,  1647,  2212,  2214,  1137,  1181, -3108, -3108, -3108,
   -3108, -3108, -3108,  1357,  2219, -3108,  2146, -3108,  2137,   994,
   -3108, -3108,  2224, -3108,  2230, -3108, -3108, -3108, -3108, -3108,
   -3108,  2151,  2177, -3108, -3108, -3108,   266,  2183,  2186, 69124,
    1377,   123, 50017, 69124,  2222,  2000, -3108,  2627,   726,  2419,
    2215,  2231, -3108, 47576, -3108, 50017,  1808, -3108, 53545,  2623,
     751,  2189, 67138, -3108,   868,  2000, -3108,  2589, 68131, -3108,
    2223,  2228,  1808,  2221, -3108,  1771,  2289, 20238,   146, -3108,
    2422, 69124,  2235, -3108, -3108, 51025,  2067,  4285, 25528, 67138,
    1024,  1031, -3108,  2721,  2374,  2314, -3108, -3108, -3108, -3108,
   -3108,  2237,    54,  2238,  9678,  2229, -3108, -3108, -3108, -3108,
   -3108, -3108, 47576, 47576, 69124,  2393, 47576, -3108, -3108,  2232,
    2239, 39759,  2704,  2241, -3108, -3108,  2566, -3108, 31186, -3108,
    1814,  2245,  1814, 67138,  1814, -3108, -3108, 47576,  1861, 20238,
   -3108, -3108, -3108,  2242,  2248, 69124, 43775,  2578, -3108,  2984,
    2984, 48008,  1035, -3108,  2984, 20238, 20238,  2984,  2984, 20238,
   -3108, 19709,   239, -3108,  1040, -3108, 42918, -3108, 75142, -3108,
   -3108,  2114,  1050,  2114, -3108, -3108, 69124,  2249,  2253, -3108,
   -3108, -3108,  2307, -3108, -3108,  1047,  2684,  2185, 20238, -3108,
   -3108,  2259, 37743, -3108, -3108, -3108, -3108, 37743,   268, -3108,
    2427,  2153,  2262, -3108, -3108, -3108, -3108, -3108, -3108, 42993,
   -3108,    41, 20238, -3108,  1744,  2454, -3108, -3108, -3108, -3108,
    2153,  1345, -3108, 58066,  2741,  2635, -3108, -3108, 47576, -3108,
   -3108,  2170,  2170, -3108, -3108,  2444, -3108, -3108, -3108,  2268,
   -3108, -3108,  1357,   611, 41271, -3108, -3108, 58066, 58066, -3108,
   -3108,  2265, -3108, -3108, -3108, -3108, -3108,   -23,  2669,  1048,
    1049,   990, -3108,  3305, 58066,  2642, 53545, 50017, -3108,  2756,
    2274, 58066,  2000,   392,   392, -3108,  2429, -3108,  2430, -3108,
   -3108, -3108, -3108,  1050,  2758,   280, -3108,  1430, 58066, -3108,
   -3108, 34212, -3108,  4285,  1054, -3108, -3108,  2280,  2283, -3108,
    2114, 20238,  2287, 20238, -3108, 23412,  2762,  2281, -3108, 20238,
    2350, 28133, -3108, 20238, -3108, 58066, 63106,  2291, 63106, -3108,
   -3108, -3108, -3108, 58066, -3108, -3108, -3108, 20238, -3108,  2984,
    2984,  2984, 20238, 20238, -3108, -3108, -3108, -3108,  2503,  2393,
   -3108,  2393, -3108, -3108, 20238,  3305,   548,  2730, 69124,    48,
   -3108, 47576, -3108, -3108, -3108, 58066, -3108, 50017, -3108,   268,
       2,  2301, 20238, 43147,  2537, -3108, -3108,  2570, -3108,  2630,
   -3108,  2364,   659,  2384, -3108, -3108, -3108, -3108,  1377,  1050,
   -3108,  1808,  2189,  2221,  2304, 58066,  1098,  3305,   990,   849,
   -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108, -3108, -3108, -3108,  3305,  2757,  2542,  2769, -3108,  2131,
   20238,    96, -3108,  1103,  2768, -3108, -3108,  2838,  2393,  2327,
   23412,  2329, -3108,  2333, 69124, 47576,  2476, -3108, -3108,  2334,
   -3108, -3108, 20238, -3108, -3108, 43817,  2337,  2338,  2801,  1971,
    2350,  2350, -3108,   434, -3108, -3108,  2771, 34212,  2729,  1345,
     268,  2354,  1109, -3108, -3108, -3108, -3108, -3108,  1788, -3108,
   43291,  2595,   226,  2585,  2301, 20238, -3108,  2433, -3108, -3108,
   -3108,  2837, -3108, -3108, 53545,  2358, -3108,  2221,  2189,  2000,
    2221,  2606, -3108,  2609,  2383, 43358, 69124, 69124,  1808, 34212,
   69124,  2356,  2350, -3108,  2366, -3108, -3108, -3108, 30175, -3108,
    2386, -3108, -3108, -3108, 20238,   714, -3108, -3108,  2438, 58066,
    1116,    63,  2570, 41271, -3108, 50017,  1782,     2,  2703, -3108,
   -3108, -3108, -3108,   305,  2619, -3108,  2622, -3108, 47576, -3108,
    3305, 53545, -3108, -3108, -3108, -3108, -3108, -3108, 34212,  2768,
   -3108,   732, -3108,  1650, -3108,   732, -3108, -3108, -3108, -3108,
   -3108,  1603, 23941, 23941, 23941,  2391,  3305, -3108,  1650, -3108,
    2531,  2585, -3108, -3108, -3108, -3108, -3108,   186,   186,  2799,
   -3108,  2465, -3108,  2221,  1122, 69124,  1923, -3108,  1923, 24999,
    2556,   194, 46397,  2779, -3108,  2779,  2779, -3108, -3108, -3108,
   40263, -3108, -3108,  2904, -3108,   249, -3108, -3108, -3108,  1808,
     732, -3108, -3108,  2894, -3108, -3108, -3108, -3108, -3108,   284,
   -3108, -3108, -3108,  1650,   268, -3108, -3108, -3108,  1650,  1923,
   24470,  2565, -3108,  2632, -3108, -3108, -3108, -3108, -3108, -3108,
   -3108
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -3108, -3108, -3108,  2057,    80, -3108, -3108,   227, -3108, -3108,
     627, -1726, -1728,  1127, -3108,   221,  -785,   631, -3108,    83,
    2313,  2641,  4388,  2208,  -523,  -893, -1279,    81,    87, -1162,
       3, -3108, -3108, -3108, -3108, -1536,  -470,   288, -3108, -3108,
    -609, -2710,  -561, -3108, -3076, -2766, -3108, -3108,  -704, -3107,
   -2129,    92, -2540, -3108, -3108,   104,     6, -2200, -3108, -1742,
      56, -2210, -3108,  -168, -2795,   105,   108,  1033, -3108, -2709,
     129,  -894, -1219,  -915, -1226, -3108,   -52, -3108,   537,   130,
    1547,  2120, -3108,     8, -2257, -3029,  -558, -3108,  -660, -3108,
    -304, -3108,  -606, -3108,  -968,  -614,  -648, -2957, -1174, -3108,
    1759,  -358, -3108,   684, -3108, -2686, -3108, -3108,   669, -3108,
    1199,  1201, -3108, -3108, -2293,   203,  -587, -2649, -2672, -2267,
    -904,   300,  -590,   273, -2205, -1064, -3108,   707, -3108,  -576,
   -3108,  -902, -1937,   138, -3108, -3108,  1654,  -916, -3108,   140,
   -3108,   576, -3108, -2231,   578, -2227,  1681,  -574,    10,    11,
   -3108, -3108, -3108, -3108, -3108,  -831,   622, -1237, -3108,   555,
   -3108, -3108, -3108, -3108,  -140,   254, -3108,    52,  3053,   -41,
     -35, -3108,   -31, -3108, -3108, -3108,   736, -3108, -3108,     1,
      53,  1841, -3108, -3108, -3108, -3108, -1054, -3108, -1673,   782,
   -3108,  2005,  2008, -1800,  -878,   -40,   285,   772, -1691, -2188,
    -636,  1242,  1818,  1822, -3108,   514, -3069, -3108,  -536, -3108,
    -690, -3108, -3108, -3108,  2017, -3108,   769,  1293, -1572, -1604,
   -3108, -1811, -3108,  -451,  -335, -3108, -3108, -3108, -3108, -3108,
   -2517, -2466,  -596,  1262, -3108,  1834, -3108, -3108, -3108, -3108,
      15, -1580,  3021,   819, -3108,    39, -3108, -3108, -3108, -3108,
     193, -3108,  1012,  -146, -3108,  -510,  -708,  -801,  2064,   -89,
    -498, -1737,   -15,   124,   566, -3108, -3108,   568, -2134, -1450,
     519,  -238,  1010, -3108,    37, -1582, -3108, -1824, -1202, -3108,
   -3108,  -780,  1121, -3108, -3108, -3108,  1976,  2308, -3108, -3108,
    2508,  2766, -3108,  -910,  3736,  -783, -1055,  2072,  -948,  2078,
    -947,  -956,  -945,  2081,  2082,  2085,  2086,  2089,  2090,  2099,
   -1577,  5290,   916,  4614, -2268, -3108, -1446, -1606,  1133,  1134,
    1141,   111, -3108, -1426,   236, -3108, -3108, -3108, -3108, -2842,
   -3108,  -406, -3108,  -401, -3108, -3108, -3108, -1760, -2821, -1789,
   -3108,  4566,   950, -3108, -3108,   516, -3108, -3108, -3108, -3108,
   -1575, -3108,  6101,   851, -3108, -2080, -3108, -3108,  -983,  -628,
    -478, -1031, -1246, -1983, -3108, -3108, -3108, -3108, -3108, -3108,
   -1518, -1840,  -211,   905, -3108, -3108,  1004, -3108, -3108,  -143,
   -1528, -1798, -2176, -3108, -3108, -3108,   915,  1636,   159,  -839,
   -1663, -3108, -1570, -3108, -3108,   961, -2486, -3108, -3108,   505,
   -2689, -3108, -3108,   199, -3108,  -709, -1148, -2550,    98,    27,
   -3108,   871, -2648, -3108, -3108,  -739, -2661, -1146,  -905, -3108,
     145, -3108,   169,   147, -1740, -3108,    17, -3108,  -366, -3108,
   -3108, -2688, -3108,   148,   149,  2328, -3108,  1251, -3108, -3108,
   -3108, -3108,  -601, -3108,  -646,  -640, -3108, -3108,    24,  -919,
    1745, -3108,   151,   473, -3108,  1068, -3108,   708,   156, -3108,
    2225,  -415,   158,  1416, -3108, -3108, -3108,    13,  -616,   474,
   -3108,  1418, -3108, -3108,  -674, -1669,   160, -3108,   407,     4,
   -3108, -3108, -3108,   103,   161,    18, -2333,   162, -2784, -1755,
      -7, -3108, -3108, -3108,  -729, -3108, -2645
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -2142
static const yytype_int16 yytable[] =
{
     529,    77,   920,    53,    99,   877,    57,  1148,    65,   724,
      68,    69,   969,    94,  1252,  1215,   529,    82,   103,  1042,
    1514,    77,  1457,   863,   789,  2014,  1838,  1272,  1850,  1989,
     988,  1837,  1326,   889,   527,  1724,  1821,  2218,   815,  1329,
    1430,  2123,   893,   971,   783,  1623,   894,  2250,  1427,  1429,
     527,  1431,    70,  2083,  2366,  1366,  1810,  2707,  2052,  2135,
    2375,  2299,  2670,  1855,  2660,  1804,  2174,  1389,   529,   529,
    1372,  1383,  1782,   750,  2552,  2153,  2151,  2152,  2319,  1921,
      50,  3083,  3117,    51,  3085,  3135,  2641,    52,  2643,   861,
     815,   815,    55,  1842,  1701,  3114,   910,   723,   875,  1704,
    2698,  3131,   527,   527,    56,    59,  2622,  1020,    60,  2902,
    2659,   562,   979,  1045,   890,   891,  2355,   755,   526,   982,
    2762,  1272,  2397,  1251,  2222,  1257,  1637,  1261,   831,    61,
      63,  2974,  2393,  2392,   822,  2979,  1066,   856,    66, -1403,
      67, -1983,   874,   874,  2176,    80,  -474,    81,    83,    84,
    1644,    90,  2502,   903,  2273,  -547,    91,  -391,    93, -1983,
      98,   102,   104,  1599,  1600,  -551,   541, -2128, -2128,  2771,
    2007,  1360, -1325,  2772,  3345,  2008,  1067,  3556,  -909,  2363,
   -1344,  1613,   989,  2764,  2270, -1974,   822,   822, -1341, -1341,
   -1991,  2099, -1345, -2119, -2119,  2766,  1441,   867, -2137, -2137,
   -1342, -1342,  2780,  -901, -2114, -2114,  -906,   906,  2748, -1344,
    -906, -1974,   826,  2310, -1991,  -909,  1066,  3212, -1345,  -868,
    -881,  -896,   826,   826, -2139, -2139,  3277,  2166,  1788,  3116,
    2166, -1164,  1376,  3431,  2554,  1161,  1966,  1066,  2909, -1164,
    1263,  1968,  1180,  1853,  1709,   960,    23,  2708,  -500,  1167,
    3662,  1066,  1204,  1854,  1800,  3260,  -547,   988,  3403,   824,
    2822,  2824,  1657,  2827, -1864,  1840,  -551,  1659,  2283,  1584,
    1351,  2863,  1272,  1800,  1657,  1705,  1376,   826,  1658,  1659,
     826,  1066,  3215,   542,  2737,  3444,  -247,  2789,  1731,  1014,
    1045,  -247,  1207,  2533,  2534,   826,   886,  1604,  1667,  2757,
    1012,   826,  1020,  2572,  2540,  2205,   881,  1745,  2544,  1352,
    1667,   824,   824,  2206,  1615,  1966,  1811,  3329,  2426,  1967,
    1968,  1360,  2006,  1791,  1822,  1783,   886,  1825,  1826,  1266,
    1474,  3332,  1669,  1360, -1185,  1481,  1165,  1484,  1168,  3136,
    3516,  3629, -1185,  1390,  1669,  3475,   113,  2523,  2524,  2525,
    2512,  3349,  1021,  -696,  1746,  3476,  1509,  2058,  2709,  1657,
    2006,  3675,  3292,  1658,  1659, -1864,  1396,  3686,  2389,  2701,
       3,     4,  2470,  3288,  1777,  1778,  1710, -2113, -2113,  1609,
     844,  -838,  1812,  2844,  2476,  3017,  1728,  2215,  2991,  3691,
    1706,    26,    27,    28,  2276,  1667,  1200,   882,  1966,  3409,
    3590,  3411,  1967,  1968,  2988,  1827,  2513,  1657,  3560,   881,
    3580,  2633, -1864,   105,  2504,  3524,  3274,    14,    15,  3312,
    2711,  2509,  3313,  3461,  3241,  1194,  3243, -1864,  3637,  1669,
     114,  1618, -1864,  3286,  1628,  2967,  1860, -1864,  3339,  2987,
    1902,  3576,  3577,  1667,  2475,  1836, -1864,  -547,  3372,   794,
    3030, -1864,  3107,  1619,  3354,  1584,  3340,  -551,    33,  3018,
    1856,  3663,  1832,    23,   106,  2545,  3692,  1620,   539,  2545,
    1361,  1329,  1813,  1202,  1748,  2503,  2992,  1669,  3462,  3525,
    1633,  2970,   845, -1864,  2833,  1793,  1833,  3463,  2698,  1353,
    2698,  3275,  1540,  3617,  1022,  3542,    38,  1162,  2566,  1629,
     882,  3644,  2894,  2968, -1864,  2702,  3137,  1169,  3287,  1170,
    1623,  3464,  2277,   793,  1480,  1707,  1228,  -838,  3150,  -547,
    1809,  3676,  3630,  3477,  1814,  1859,  1267,  1195,  3488,  -551,
      40,  3687,   995,  3645,   115,  3289,  1494,  3591,  1749,  2216,
    1499,    43,  3456,  2993,  3019,  2994,   868,  3420,  2284,  3664,
    1729,  1828,  2514, -1864,  3632,  2055, -1864,  2381,  3460,  3693,
     961,  1829, -1864,  2591,  3432,  1365,  3121,  2750,  2751,  2752,
    3278,  3517,  3144,  1727,  1163,  1719,  3145,  -716,  3665,  1779,
    2710,  3127,  2711,  1617,  3465,  3326,  2174,  1060,  1847,  1781,
     724,  3603,  1809,  1648,  2863,   935,    46,  3466,  3351,   825,
    2548,  2167, -1164, -1864,  2624,  1794,  1841,  1354,    26,    27,
      28,  2123,  2712,  2374,  1599,  1600,  3156,   918,   969,  1780,
    1361,   919,  3426,  1923,  3592,  2738,  1784,  1857, -1864,  1927,
    2390,   864,  1361,   543,  1362,  2831,  2015,  2921,  2834,  1613,
    -547,  3436,   883,  2441,  2093,  3452,   988,  2645,  3370,  2878,
    -551,  3442,   918,  2673,  2783,  1924,  1645,   955,  2039, -1983,
    1618,  2773,  2776,  2662,  2176, -1403,  3083,  1610,  1838,  3085,
    1595,  2221,  -474,  -474,  2668,    33,  2207, -1983,   957,  -547,
    1325,  -547,  1619,  -391,  2270,  1610,    35,   864,   918,  -551,
   -1325,  -551,   919,  2745,  1110,  1111,  1620,  1618, -1344,  1365,
    2447,  2105,  2106, -1974,  3504, -1185,  2758,  2759, -1991,    37,
   -1345,  2749,  3423,    38,  1601, -1864,  3694,  3424,   877,  1619,
    3108,  -901,  2762,  3392,  -906,  3268, -1864, -1344,  1931, -1974,
    1652,   879, -1991,  1622,  1008,   982, -1345,  1602,  1607,  -896,
    1702,  2223,  1380,  1381,  1983,  2567, -1864,    40, -1864, -1864,
    3549,  1604,   987,  1272,  2147,  1272,  3301,  3302,    43,    77,
    2004,  3404,   789,  3541,  3638,  3604,  2594,  1832,  1807,   877,
    1690,  1615,  3548,  2483,  2245,    44,  1584,  1685,  1686,  1687,
    1688,  1689,  1690,   984,  1365, -1864,  1380,  1381, -1864, -1864,
   -1864,  1833,   529,  2029,  3615,  2464,  -247,  -247,  2857,    45,
    2465,  3467,  1026,   529,  3468,   884,  2081,   880,  1171,  2374,
     529,  1742,  2997,    46,  2529,  2046,   545,  2304,  1978,  1979,
    1980,  1981,  1982,  1983,  2304,  1010,   527,   893,  3673,  2310,
    2941,   894,  2943,  1998,  3259,  1739,  2649,   527,  2998,   529,
     529, -1389,  2942,  1657,   527,  2845,  2846,  2847,  2848,  1011,
    1166,   974,  3160,  1216,  2530,  1501,  3250,  2510,  1808,  2246,
    2466,  2650,  2955,   529,  1687,  1688,  1689,  1690,  1166,  3698,
    3613,  1225,  3114,  2432,  1584,   545,   885,  1226,  2305,  3670,
     546,    77,  1312,    53,    99,  2695,    57,   947,    65,  3261,
      68,    69,  1172,    94,  1225,  3251,   895,    82,   103,  3622,
    1226,  3343,  2510,  1980,  1981,  1982,  1983,  1502,  3330,  2343,
     822,   529,   724,  1669,  1618,  1318,   529,  2484,  2956,  2346,
    1743,   822,  2349,   998,  1181,  2342,   948,  2485,   822,  3340,
    2169,  2634,    70,  2864,  2402,  3083,  1619,  3222,  3085,   546,
    1489,  1027,   870,  3510,  2729,  3511,  1496,   826,    23,  3101,
    3102,   856,   856,  3344,   856,   886,   856,  2730,   896,  1050,
      50,  2517,  2775,    51,  2090,  1633,  2985,    52,  1318,   874,
    1051,   898,    55,  2873,  1633,  2367,  2368,  2369,  1809,   987,
    2403,  3688,  1227,   877,    56,    59,   529,   529,    60,  2126,
      77,  3346,   529,   789,  3034,   529,   529,  1328,   529,   529,
     529,   529,  2296,   914,  2440,  1227,  3347,  2123,  2442,    61,
      63,  2444,  1584,  3094,   951,   529,  3429,   529,    66,  2457,
      67,  2148,  3562,  2452,  1372,    80,   529,    81,    83,    84,
    2912,    90,  2705,  3165,  2341,   824,    91,   815,    93,  1010,
      98,   102,   104,   529,  1318,  1587,   824,  3200,   815,   527,
    3202,   527,  3204,   824,  2352,   826,  1800,  3623,  1486,  2359,
     527,  1477,  2189,  1011,   550,   529,   978,  1801,   877,   918,
    2014,  1989,  1493,   919,  1875,  2177,  1200,  3416,  1225,  3294,
    2646,  1201,  2647,  1618,  1226,   529,  3624,  3299,   545,   552,
    1200,  2344,   553,    26,    27,    28,  2347,   529,   529,   529,
    1800,   529,   529,  2178,   724,  1619,  1811,  1811,   887,  1405,
    1406,  1803,  1648,  1876,  2463,  2091,  1838,  1584,  2467,  1622,
    3543,  2469,  2177,   550,  2097,   978,  2746,  2753,   918,  3443,
   -1325,  2679,   919,   822,  3232,   822,  1922,   529,   945,  1225,
    1228,  1933,  2614,   913,   822,  1226,  1066,  3081,   545,  3334,
    2178,   553,   546,  1202,  2668,   529,   529,   937,  1486,   938,
      33,  1733,  1734,  1228,  1740,   894,   894,  1202,   894,  3520,
    2615,  1584,  1812,  1812,  1166,   918,  3364,  3537,   916,  1645,
    1413,  1414,   934,  1584,  1922,  1935,  2190,  2426,  2739,  1227,
    1066,   529,  1638,  2209,  1031,   529,   529,  2210,    38,  3348,
    1229,  1879,  1203,  2191,  1230,   529,   529,   529,  2192,   988,
     529,   946,   546,  1584,  3602,  1374,  1203,  3605,  1375,  2179,
    1584,   941,  1717,  1255,  2378,  1718,   548,  1230, -1983,  2181,
    1032,  1587,    40,  1637,  1928,  1843,  1231,  1929,   108,  1839,
    1054,  1055,  1056,    43,  2790,  1059,  1487,  2193,  -634,  1997,
    1227,  1999,  2000,  -634,  2801,  3269,  2864,  1034,   824,  1256,
     824,   922,  1813,  1813,  1584,  2671,  2179,  1318,  1584,   824,
    1066,  2180,  1611,  1612,  1584,  1065,  2181,  1318,  1966,  -223,
     874,  2054,  1967,  1968,  2055,  1327,   944, -2142, -2142, -2142,
    2079,  2616,  -222,  2080,  1031,   953,  2617,  1584,    46,   958,
    1419,  1420,  1318,   962,  2386,  1065,  3321,  2387,  1966,  1232,
    3668,   947,  1967,  1968,  1814,  1814,   959,  1969,  1970,  1971,
     884,  1155,  1156,   963,  1158,  -634,  1160,   939,  3208,   940,
    1032,  1593,  1232,    46,  2914,  -635,   550,  1883,   551,  1884,
    -635,  2458,   724,  2642,  2459,  1327,  1495,  1228,  1886,  1887,
     948,   724,  2722,  2496,  2724,  1225,  2497,  1034,  2518,  2546,
    2519,  1226,  2547,  1225,   553,  1225,   964,  2549,   987,  1226,
    2547,  1226,   975,  2508,  -634,    77,  2725,  2731,   789,  2726,
    2732,   965,  1809,  1809,  2182,   724,   949,  1038,  3161,  2858,
     529,   885,   993,  2865,  2123,  2183,   550,  2804,   978,   984,
    2055,  2719,  2421,  2721,  3684,  2194,  1488,  1259,  1228,   950,
     109,  1230,  -635,  2870,  2083,  2871,  2547,  2874,  2080,  2876,
    2875,   110,  2875,    23,   553,  1413,  1414, -2109, -2109,  2600,
    1916,  2182,  2962,   995,  3124,  2963,  3126,  3125,   951,  2387,
     529,   529,  2183,  1260,  3154,  2682,   529,  3155,   529,  3162,
    3306,  2618,  3163,   529,   529,   529,   529,   111,  3671,   994,
    3672,  -635,  2619,  1925,  2570,  1926,  1227,   996,   529,   529,
     886,   999,  1230,  1938,  1227,  2418,  1227,  2419,   529,  3647,
     529,  1745,   527,   529, -2110, -2110,  3028,  1038,   529,  1002,
     529,   529,  3021,   529,  3659,  2770,  3223,   529,  1003,  2080,
     815,  3697,   815,  1004,  1231,   815,  1488,  1005,  3100,   112,
     815,  1006,   527,   815,   527,   815,  1232,   527,  3316,   815,
    1973,  2248,   527,  1007,  2030,   527,  2031,   527,  1746,  2033,
    1008,   527,  2895,  2896,  2037,  1013,  3020,  2040,  3029,  2041,
   -2111, -2111,  3110,  2045,  2612,  1419,  1420,  1015,  3365,  3695,
    2310,  2080,  1587,   117,  3696,  3366,  2426,   540,  2547,  3398,
    1811,  1974,  2080,  1057,  3405,   754,   822,  2055,    26,    27,
      28,  3417,  3450,  3451,  3418,  3125,  2387,  1232,  3485,   843,
    2520,  2080,  2521,   857,  1047,   529,   529,   945, -2112, -2112,
      77,  1974,  2082,  2089,   529,   529,   822,  1747,   822,  2084,
    2085,   822,  2088,   529,  3506,  3507,   822,  2883,  2885,   822,
     529,   822,  1637,  1052,  2881,   822,  2882,   529,  2884,  2886,
    2887,  3391,  3546,   887,  1228,  3125,  1812,  3558,  1584,  2984,
    3559,  2986,  1228,  3584,  1228,    33,  3585,   529,   724,  1060,
    3628,  2086,   529,  3559,  1058,   529,  3669,  1061,  1748,  3559,
    1587,   529,   529,   529,   529,   529,   529,   529,   529,   724,
     946,  1159,  1312,   529,   529,   529,  1175,  1197,   529,  1199,
   -2115, -2115,   529,    38,  1182,   529,   529,   529,   529,   529,
     529,   529,   529,   529,  2295,  1183,   529,  1185,  1230,  1846,
    1186,   824,  2350,   529,  2357,  1318,  1230,  1187,  1230,   527,
   -2116, -2116, -2117, -2117,  2814,  1189,  2252,    40,  2271,  2272,
     894,  1198,  1749,   529, -2118, -2118,  1813,  1190,    43,  1217,
    1231,   824,   988,   824, -2120, -2120,   824,  1220,  2351,  1222,
    2358,   824,  3081,  1028,   824,    44,   824,   529,  1029,  2668,
     824,  1223,  1172, -2121, -2121, -2122, -2122,  2163,   529,   529,
    1224,  2218, -2123, -2123, -2124, -2124, -2125, -2125,  1236,    45,
    1875, -2126, -2126, -2127, -2127, -2129, -2129,  2147,  1814, -2130,
   -2130,  1237,  1584,    46, -2131, -2131,  1254, -2142, -2142, -2142,
    1258,  1978,  1979,  1980,  1981,  1982,  1983,  1262,  1587, -2132,
   -2132, -2133, -2133,  1232, -2134, -2134,  1264,  1030,   724,  1876,
     113,  1232,   724,  1232,  3028, -2136, -2136,  1975,  1976,  1977,
    1321,  1978,  1979,  1980,  1981,  1982,  1983, -2138, -2138,  3001,
   -2141, -2141,  1633,  1238,  1862,  1863,  1811,  -691,  -691,  1238,
    -695,  -695,  -694,  -694,  2107,  1877,  1809,  1584,  1415,  1416,
    1324,  2108,  2109,  1239,  2978,   529,  2110,  2111,  2112,  1239,
    1419,  1420,  1318,  3265,  3266,   529,   529,  1385,  1878,  2806,
    2808,  1330,  3004,  3655,  3656,  2058,  3681,  3682,  1325,  1031,
    1713,  1714,  3118,  3325,  1335,  3106,  2687,  2688,  1349,  1347,
    1350,  1357,  1358,  1368,  1364,  1391,  2325,  1879,  2300,  1240,
    2331,  1367,  1812,  1587,  1373,  1240,  3142,  1318,  3153,  2314,
    1392,  2317,  3234,  1397,  2328,  1032,  1455,  1471,  1468,  1478,
    1482,  1470,  1490,  1491,  2336,   724,  2338,  1497,  1498,  1450,
    3646,  1033,  1318,   529,  3648,  1504,  1508,  1510,  1589,  2345,
    1592,   987,  1034,  -872,  2348,  3484,  -879,  1811,  2353,  2354,
    1590,  2356,   545,  2360,  2361,  1811,  1584,  1587,  1601,  1605,
    2422,   529,   529,    46,   529,  2736,  -716,  -717,  -869,  1587,
     529,   529,   529,   529,   529,   529,  1035, -1389,   529,   529,
     529,   529,   529,   529,   529,   529,   529,   529,  -870,  3689,
    1616,  1617,  1813,   529,   529,  1241,  1584,   529,  -873,  1587,
    -871,  1241,  1696,  1624,   529,  1639,  1587,  1649,  1651,  1654,
    1698,  3081,  1065,  1812,  1700,  1966,   546,  1712,  2668,  1967,
    1968,  1812,  1720,  1036,  1969,  1970,  1971,  -560,   529,  1721,
    1037,  3434,  1725,  1730,  1732,   529,  3008,   529,  1201,  1203,
    1385,   529,  -560,  1767,  1814,  1242,  1769,  -560,  1771,  1786,
    1587,  1242,  1805,  1806,  1587,  1243,   529,   815,  1318,  1816,
    1587,  1243,  1584,   815,  1818,  1831,  1817,  1244,  1823,   527,
     547,  1830,  1038,  1244,  1835,   527,  2740,  1852,  1845,  1865,
    1866,  2535,  1867,  1587,  2744,  1871,  3009,  2538,  1881,  1889,
     548,  1039,  1882,  1874,  1896,   529,   529,  1888,  -560,  1245,
    1892,  3484,   529,  1813,  3010,  1245,  1895,  1898,  1899,  1900,
    1901,  1813,  1809,  1904,  1903,  3088,  3297,  1917,  3448,  -560,
    1385,  1918,  1922,  1385,  1385,  1930,  1955,  3307,  3308,  1957,
    2667,  1958,  2014,  1960,  1963,   529,  1986,  2005,  3199,   529,
    1994,   877,  2025,  3484,   529,   529,  1995,  1584,  2002,   549,
    2027,  2032,  2038,   822,  1247,  1814,  -222,  2028,  2042,   822,
    1247,  2043,  1040,  1814,  2044,  2056,  2053,  1595,  -560,  1028,
     529,   529,  2050,  1602,  1029,   529,  1607,  -560,  2057,  1248,
    2059,  2060,  2062,  1576,   545,  1248,  2092,  2061,  2093,  1066,
    2127,   529,  3484,  1657,   529,   529,   529,  2128,  2132,  1250,
     550,  1637,   551,  2136,  1972,  1250,  3011,    11,  2139, -1389,
    2141,  2142,   529,   724,  2143,  2165,  3012,  2144,  2185,   529,
    2188,  3539,   529,  1809,  2212,   552,  2186,  1973,   553,   527,
    2219,  1809,  2234,  1030,  2213,    14,    15,  2233,   529,  2232,
    2231,  2235,   885,   828,   815,  2248,  2251,  3500,   546,  2260,
    2261,   529,  2262,  2263,  2265,  2264,   527,  2282,  2286,  1584,
     815,  1934,  1936,  2290,  2287,  2301,  2297,  2302,   529,   529,
    2311,  2329,   527,  3283,  2303,  2330,  2334,  2335,   824,   886,
     923,    23,  2370,  2371,   824,   529,  2384,   529,  2394,  2404,
    2388,  2372,  2405,  2406,  1584,  2407,  2408,  2409,  1974,  2423,
     529,  2427,   977,  2428,  2430,  1031,   924,  2433,  2434,  2435,
    2436,  2437,  2439,  2443,   724,  2460,  3634,  2468,  1991,  1966,
    2498,  1990,  2527,   724,   724,   724,  2539,  2505,  2506,  2507,
    -560,  2511,  2515,  2516,   915,  2551,  2553,  2558,  2537,  1925,
     822,  1032,  2562,  2559,  2563,  2560,  2113,  2114,  2115,  2564,
    2116,  2117,  2118,  2119,  2120,  2121,   822,  1033,  2565,  1584,
     858,  2569,  2568,  2585,   866,  1584,  2576,   529,  1034,  1576,
    1838,  2577,   925,  1964,  1965,  1065,  1318,  2580,  1966,  1985,
    2581,   549,  1967,  1968,  2582,  2583,  1584,  1969,  1970,  1971,
    2584,  2586,  2587,  2588,  2598,  1629,  2594,  3437,  2608,  2613,
     918,   926,  1035,  1185,   919,  2605,  2606,  2620,  1883,   724,
    1884,  2325,  2325,  2325,  1587,  2629,  2630,  2635,  2636,  1886,
    1887,  2637,  2648,  1214,   902,  2653,    26,    27,    28,  2655,
    1584,   905,   550,   908,   978,   912,   988,  2656,   529,  2663,
    2661,  2664,  -697,  2674,  2675,   927,  2677,  2678,  1784,  1036,
    2681,  2685,  2686,   529,   987,  2689,  1037,   552,  2691,  2694,
     553,  2735,   724,  1648,  2697,   824,  2718,  2693,  2720,  2733,
    2734,  2741,  1065,  2755,  2742,  1966,  2743,  2754,  2767,  1967,
    1968,   824,  2768,  2769,  1969,  1970,  1971,  2774,  2098,  2788,
    2787,  2792,  2791,    33,  2798,  2795,  1809,  2777,  1038,  2802,
     529,  2129,  2811,  2130,    35,  2821,  1610,  2852,  2829,  2832,
    2835,  2853,  2838,  2855,  1975,  1976,  1977,  1039,  1978,  1979,
    1980,  1981,  1982,  1983,  2866,  2839,  2840,    37,  2872,  2794,
    2841,    38,  2149,  2147,   527,  2867,  2856,  2880,  2888,  2891,
    2920,  1584,   529,  2898,  2919,  2932,  2938,  2949,  2899,  2917,
    1938,    39,  2923,  2933,  3499,  2944,  2940,  2950,  1587,  2952,
    2971,  2975,  1166,  2969,   877,    40,  2983,  2285,  2973,  3016,
    2996,  -560,  2989,   928,  2990,   529,    43,  3103,  3032,  3104,
    3105,  3129,   529,   529,   929,  3109,  -560,  3112,  1040,  3134,
    1973,  -560,  3113,    44,  3128,  3501,  3138,  3503,   529,   877,
    3146,  3621,  3147,  3151,  2387,  2935,  3158,  3159,  3184,  3164,
    3187,   529,  3191,  3195,   529,  3205,   529,    45,   822,  3206,
     930,  3209,  3210,  1587,   529,  3582,  3235,   529,   529,  3242,
    3245,    46,   529,   529,  3246,  3249,  2269,  2269,  3256,   529,
    3258,  3575,  -560,   931,  3586,  3262,  3263,  3264,  3272,  3270,
    3271,  3276,  2977,  3280,  3281,  3290,   529,  3282,   525,   536,
    3293,  1974,  3295,  -560,   560,  3296,   529,  3300,  3314,  3317,
     560,  3315,   932,  3570,   812,  3318,   827, -2108,  3333, -2109,
     830,   560,   839,  3319, -2110,   839,   529,  1973,   859,   859,
    1576, -2111,   859, -2112, -2113,   560,   560, -2114, -2115, -2116,
   -2117, -2118, -2120, -2121, -2122,  1385,  3335,  3350, -2123,  3320,
   -2124, -2125,  -560, -2126, -2127,  1385,  3355,  3322,  1385,  2961,
    3323,  -560,  3357, -2129,  3358, -2130,   812,   812, -2131,   724,
   -2132, -2133,  3084,   724, -2134,   724,   529,   529, -2135, -2136,
    3367,  3368,  3379,   824, -2137, -2138, -2139, -2140,  3336, -2141,
     529,   529,   859,  3489, -1342,  3491,  3331,  3352,  1974,   859,
     560,   859,   859,   859,  3337,  3353,  3375,   877,  3361,  3381,
    3371,  3373,  1587,  3382,  3385,  3386,  3387,  3390,  3149,  3393,
     529,  3397,  3394,  3413,  3415,  3341,  3419,  3425,  1576,  1883,
    3414,  1884,  3439,  3422,  2980,  3427,  3001,  2981,  3440,  3447,
    1886,  1887,  3002, -1341,  3449,  3455,    23,  3457,  3458,  3474,
    1584,  3471,  3472,  3493,  3486,  3003,  3487,  2325,  3494,  1385,
    3490,  3086,  3496,  2331,  3502,  3508,  3033,  3610,   877,  3289,
    3115,  3532,  3534,  1238,  3528,   529,  3535,  3544,  1587,  3004,
    3538,  3005,  3551,  3090,  3091,  3092,  3093,  3552,  3095,  3096,
    3097,  3098,  3099,  1239,  3553,   529,   529,  3561,   529,  3556,
    3568,  3563,   529,  3565,  3143,   529,  3238,   936,  3569,  3572,
    3573,  3574,   943,  3581,  -560,  3579,  3583,  1975,  1976,  1977,
    3588,  1978,  1979,  1980,  1981,  1982,  1983,  3593,  3600,  3599,
    3616,  3601,   529,  2477,  2478,  2479,  2480,  2481,  2482,  1240,
    3618,  2486,  2487,  2488,  2489,  2490,  2491,  2492,  2493,  2494,
    2495,  3606,   529,    23,  3607,  3626,  3608,   529,   529,  3636,
    3620,  3639,   529,  1587,  3641,  3657,  1576,   529,   877,  3006,
     529,   529,  3637,  3660,  3638,   529,  1318,  3674,  3679,   529,
    3685,  3690,  3700,   529,   918,  2561,  3699,  1188,   919,  2706,
    3031,    26,    27,    28,  2337,   529,  2716,  3035,  3515,  2964,
    3614,    77,  3578,  2082,  2089,   815,  3683,  3338,   920,  3024,
    2084,  2085,  2445,  2088,  1975,  1976,  1977,   527,  1978,  1979,
    1980,  1981,  1982,  1983,  3303,  2813,  3597,  1164,  3667,  1477,
    3435,  3635,  3642,  3661,  1798,  1241,  3470,  2696,  3007,   529,
    2723,  3133,  1656,  3008,  2307,  1657,  2308,   529,  3633,  1658,
    1659,   991,  2086,  3000,  3640,  3087,  3631,  2692,    33,  2805,
    1880,  1920,  2807,  2763,  2818,  3362,   529,  3111,  2680,  3089,
    2666,  1576,  2289,  1722,  1764,  1587,  1475,  1763,  1578,  1476,
    2843,  1667,  3619,  1049,  2676,  1242,  3513,  2257, -2142,  3564,
    3492,  2288,  1768,  3009,   816,  1243,    38,  2957,    26,    27,
      28,   822,  3389,    71,  2652,  3194,  2543,  1244,  1157,  1505,
    3084,  3010,  1442,  2837,  2836,  1669,  2869,  3441,  1426,  3305,
    2557,  2454,  2455,    71,  1428,  1576,   814,  1432,  1433,  2456,
      40,  1434,  1435,  2609,  2610,  1436,  1437,  1576,  3567,  1245,
      71,    43,  3566,  2603,  2644,  1438,  2893,  2627,  2573,   876,
    2669,  3284,    23,  3412,  2625,   724,   828,  2604,    44,  2911,
    3218,  3248,  2016,  3554,  1001,    33,  2382,  1576,   724,  3247,
    1932,  2550,   992,  1219,  1576,  1587,  2672,  2672,   814,   814,
     892,  1587,    45,   877,  2227,     0,  2965,  2229,     0,     0,
     529,     0,     0,     0,  1247,     0,    46,     0,   987,     0,
       0,   529,  1587,    38,    71,     0,     0,     0,     0,     0,
       0,     0, -2142,  3011,     0,     0,     0,   529,  1576,  1248,
       0,     0,  1576,  3012,     0,     0,   824,     0,  1576, -2142,
       0,  3342,     0,     0, -2142,   859,     0,    40,     0,  1250,
     859,     0,     0,  2777,  1382,     0,  1587,     0,    43,     0,
     560,  1576,   529,     0,  1425,     0,  2777,     0,     0,     0,
    1218,     0,     0,     0,  1578,    44,     0,     0,   529,   529,
       0,     0,   529, -2142,   529,     0,     0,     0,     0,  1065,
       0,     0,  1966,     0,     0,  2958,  1967,  1968,     0,    45,
       0,  1969,  1970,  1971,     0,     0,  1322,    26,    27,    28,
       0,   529,     0,    46,     0,     0,     0,     0,  2915,     0,
       0,  1337,  1339,  1342,  1344,  1346,     0,     0,     0,     0,
       0,  1941,     0,  1656,     0,   529,  1657,     0,  1678,     0,
    1658,  1659,     0,     0,     0, -2142, -2142, -2142,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3084,     0,     0,
       0,     0,  1667,  1444,    33,     0,     0,     0,  1942,  1668,
       0,     0,     0,     0,     0,     0,  1650,     0,     0,     0,
     724,     0,     0,     0,     0,     0,  1653,     0,     0,  1943,
       0,     0,     0,     0,     0,     0,  1669,     0,     0,     0,
       0,     0,    38,     0,   529,     0,     0,  1944,  1703,     0,
    1579,  1945,     0,     0,   529,     0,   529,  1708,   529,     0,
       0,     0,   529,     0,   529,     0,   529,     0,     0,     0,
       0, -2142,     0,     0,  1946,  3453,    40,  1947,   527,     0,
     529,  3438,   967,   560,   560,   529,   529,    43,     0,     0,
       0,     0,     0,  1948,     0,     0,     0,   529,     0,     0,
       0,     0,     0,     0,    44,  3445,  3446,     0,  2777,     0,
     724,     0,     0,     0,     0,   529,     0,     0,     0,     0,
    2877,  2879,     0,     0,   990,   536,     0,     0,    45,  3459,
     525,     0,   859,  1670,  1973,     0,     0,     0,     0,     0,
       0,   812,  2959,     0,     0,  1017,  1017,     0,   812,     0,
    1671,  1017,  1044,     0,     0,  1672,     0,  3512,     0,  3514,
       0,  1848,   822,   529,   839,   839,   839,     0,    23,   839,
       0,     0,     0,   529,     0,     0,     0,  1114,  1114,   839,
     839, -2142,   839,     0,   839,   529,     0,  1949,  1685,  1686,
    1687,  1688,  1689,  1690,  1675,  1950,   859,     0,  3521,  3547,
     529,     0,   560,     0,     0,  1974,     0,     0,     0,     0,
       0,     0,     0,     0,   859,     0,  3550,  1951,   529,     0,
       0,     0,  1576,     0,     0,  1578,     0,  1787,   859,   827,
    2925,  2926,     0,     0,   527,     0,  1579,     0,     0,     0,
    1819,     0,   529,     0,     0,     0,     0,  1952,     0,  1678,
    1581,     0,     0,     0,     0,     0,     0,   529,     0,     0,
       0,  1844,     0,     0,   859,  1323,  3084,     0,   724,     0,
       0,     0,     0,     0,     0,  1333,   527,     0,     0,   859,
     859,   859,   859,   859,     0,     0,    71,   824,     0,  1937,
    1385,   529,     0,     0,     0,     0,  1356,     0,     0,     0,
       0,     0,     0,     0,     0,   529,   529,   529,     0,     0,
       0,     0,     0,    26,    27,    28,     0,     0,   822,     0,
       0,     0,     0,  1578,     0,   527,     0,     0,  1017,  1044,
    1873,   859,   529,     0,  1449,     0,     0,     0,  1891,     0,
    1017,  1017,  3643,     0,     0,     0,     0,   560,     0,     0,
       0,     0,  1680,   812,     0,   812,  3521,     0,     0,     0,
     822,     0,  1656,     0,   812,  1657,  1576,  3627,  3658,  1658,
    1659,     0,     0,   529,   560,     0,     0,     0,     0,     0,
      33,     0,     0,     0,     0,  1065,     0,     0,  1966,     0,
       0,  1591,  1967,  1968,     0,     0,     0,  1969,  1970,  1971,
       0,  1667,     0,     0,     0,     0,     0,     0, -2142,   822,
       0,     0,     0,     0,  3225,     0,     0,     0,    38,   560,
       0,  1975,  1976,  1977,     0,  1978,  1979,  1980,  1981,  1982,
    1983,  1576,     0,  3201,     0,  1669,  1581,     0,  3157,     0,
       0,     0,     0,   824,   560,     0,     0,     0,     0,     0,
       0, -1866,    40,     0,     0,     0,     0,     0,     0,     0,
       0,  1578,  1681,    43,     0, -2142, -2142, -2142,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,     0,     0,     0,     0,
      44,  2023,     0,     0,     0,   824,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1716,     0,     0,
    2611,    71,   876,     0,    45,     0,     0,     0,  1582,     0,
       0,     0,     0,   560,   560,     0,     0,     0,    46,  1656,
     859,     0,  1657,     0,     0,     0,  1658,  1659,     0,     0,
       0,     0, -2142,     0,   824,     0,     0,     0,     0,     0,
    1576,     0,   997,  1449,  1114,  1114,     0,     0,     0, -2142,
       0,     0, -1866,  1009, -2142,   859,  1797,  1579,  1667,     0,
    1025,     0,     0,     0,     0, -2142,  1578,     0,   859,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1576,     0,  1385,     0,     0,   859,     0,  1385,     0,   859,
       0,     0,  1669, -2142,     0,  1849,     0,     0,     0, -1866,
    1973,     0,     0,     0,     0,   892,     0,     0,  2224,     0,
    3285,     0,     0,     0, -1866,     0,     0,     0,     0, -1866,
    1578,     0,     0,    71, -1866,     0,     0,     0,     0,     0,
       0,     0,  1578, -1866,     0,     0,  1934,  1936, -1866,     0,
       0,     0,     0,     0,     0,     0,  1576,     0,  1678,     0,
       0,     0,     0,     0,     0,  1579,  1868,  2621,   859,     0,
       0,     0,  1578,     0,     0,     0,   859,     0,     0,  1578,
   -1866,  1974,     0,     0,     0,     0,     0,     0,     0,  1913,
       0,  2292,  2294,     0,     0,     0,     0,     0,   967, -2142,
       0, -1866,     0,   967,  1582,   560,   560,     0,   560,   967,
       0,     0,     0,     0,     0,     0, -2142,     0,     0,     0,
       0, -2142,     0,  1578,     0,     0,     0,  1578,     0,     0,
    2226,     0,  2228,  1578,     0,     0,     0,     0,     0,     0,
       0,  1576,    71,  2237,     0,     0,     0,     0,     0,     0,
   -1866,     0,     0, -1866,     0,  2362,  1578,     0,     0, -1866,
   -2142, -2142,     0,     0,     0,     0,     0,  1581,     0,     0,
       0,     0,  2379,  2379,  3363,   814,     0,  1009,     0,     0,
       0,     0,  2274,     0,     0,     0,   814,     0,  1449,  1449,
       0,     0,     0,     0,  1449,     0,   525,     0,     0,     0,
   -1866,     0,     0,  1579,     0,     0,     0,     0,     0,  1017,
       0,   560,  2009,     0,     0,  1678,  1114,  1114,     0,   859,
       0,  1594,     0,     0,     0, -1866,   812,     0,   812,     0,
       0,   812,     0,  1606,     0,     0,   812,     0,  1114,   812,
       0,   812,     0,     0,     0,   812,  1382,   560,     0,   560,
       0,     0,  2462,  1576,     0,     0,     0,     0,     0,     0,
       0,     0,  1635,     0,     0,  1581,     0,     0,     0,     0,
       0, -2142,  1934,  1936,     0,     0,     0,     0,  1685,  1686,
    1687,  1688,  1689,  1690,   864,  1385,     0,     0,  1576,  2395,
    2396,  2398,  2399,  2400,  2401,     0,     0,  1975,  1976,  1977,
       0,  1978,  1979,  1980,  1981,  1982,  1983,  1065,  1579,     0,
    1966,     0, -1866,     0,  1967,  1968,     0,     0, -2142,  1969,
    1970,  1971,     0, -1866,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3226,     0,     0,     0,
       0,     0,     0, -1866,     0, -1866, -1866,     0,     0,   892,
     892,     0,   892,  1576,     0,     0,     0,  2122,     0,  1576,
       0,     0,  1579,     0,     0,     0,     0,     0,     0,     0,
     560,     0,     0,     0,  1579,     0,     0,     0,     0,     0,
    1576,     0, -1866,     0,     0, -1866, -1866, -1866,     0,     0,
       0,     0,     0,  1065,     0,     0,  1966,     0,     0,     0,
    1967,  1968,     0,  1581,  1579,  1969,  1970,  1971,     0,     0,
     967,  1579,     0,  1449,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1576,  1582,     0,     0, -2142,     0,
       0,     0,  2522,     0,     0,  1685,  1686,  1687,  1688,  1689,
    1690,  1114,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1579,  2225,     0,   859,  1579,
     859,     0,     0,     0,     0,  1579,     0,     0,     0,     0,
       0,   859,     0,  2240,     0,  1656,     0,     0,  1657,     0,
       0,     0,  1658,  1659,     0,  1449,     0,  1578,  1579,     0,
       0,     0,     0,     0,    14,    15,     0,     0,     0,     0,
       0,   561,     0,     0,     0,     0,     0,   561,  1581,     0,
     859,   813,   560,     0,  1667,     0,     0,     0,   561,     0,
       0, -2142,  1973,  1582,  2291,  2293,     0,    71,     0,     0,
    1797,   560,   561,   561,     0,  1576,     0,     0,     0,     0,
      23,     0,   560,  2315,   560,  1797,     0,   560,  1669,     0,
       0,     0,     0,     0,  1385,     0,     0,   560,     0,   560,
       0,     0,  1581,   813,   813,     0,     0,     0,     0,     0,
       0,   967,   560,     0,  1581,     0,   967,   560,     0,     0,
       0,   560,   560,  1797,   560,     0,   560,   560,     0,     0,
       0,     0,     0,  1974,     0,     0,     0,   561,     0,     0,
       0,     0,     0,     0,  1581,     0,     0,  2383, -2142,     0,
       0,  1581,     0,  2924,     0,  1333,     0,   859,   859,   859,
     859,   859,   859,     0,     0,     0,     0,     0,     0,     0,
       0,  1578,     0,     0,     0,  2727,     0,  2411,   814,     0,
     814,     0,     0,   814,     0, -2142,     0,     0,   814,     0,
       0,   814,     0,   814,     0,  1581,     0,   814,  2438,  1581,
       0,  1582, -2142,     0,     0,  1581,     0, -2142,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1974,
       0,     0,     0,     0,     0,    26,    27,    28,  1581,     0,
       0,  1656,     0,  2760,  1657,     0,  1578,     0,  1658,  1659,
       0,     0,     0,     0,     0,     0, -2142,     0,  1449,  1449,
    1449,  1449,  1449,  1449,     0,     0,  1449,  1449,  1449,  1449,
    1449,  1449,  1449,  1449,  1449,  1449,     0,     0,     0,     0,
    1667,  1238,     0,     0,     0,     0,     0, -2142,     0,     0,
       0,     0,    71,     0,     0,     0,   560,     0,     0,     0,
       0,  1239,    33,     0,     0,     0,     0,     0,     0,  1382,
     859,  1678,     0,    35,  1669,     0,  1582,     0,     0,  2819,
       0,  2820,     0,   812,     0,  2825,     0,  2828,     0,   812,
       0,     0,     0,     0,     0,   560,    37,     0,     0,     0,
      38,   560,     0,     0,     0,     0,     0,  1240,  3022,     0,
    2555,  2555,     0,     0,  1576,  1578,     0,  2765,  3023,  1975,
    1976,  1977,     0,  1978,  1979,  1980,  1981,  1982,  1983,  1579,
    1582,  2781,  2782,  2784,    40,  2173,     0,     0,     0,  2927,
       0,     0,  1582,     0,     0,    43,  2797,     0,     0,     0,
    2800,     0,     0,  2803,     0,  1578,     0,     0,     0,     0,
    2812,     0,    44,     0,     0,     0,     0,     0,     0,     0,
       0, -2142,  1582,     0, -2142,     0,     0,  3024,     0,  1582,
       0,     0,     0,     0,   560,     0,    45,     0, -2142,   560,
       0,     0,     0, -2142,   560,     0,     0,     0,  1583,     0,
      46, -1881,     0,  1241,   892,  1975,  1976,  1977,     0,  1978,
    1979,  1980,  1981,  1982,  1983,     0,     0,     0,  1449,  1449,
       0,  1578,     0,  1582,     0,     0,     0,  1582,     0,     0,
       0,     0, -2142,  1582,     0,     0,     0,  2122,     0,     0,
       0,     0,     0,  1449,     0,     0,  2849,  2850,  2851,     0,
       0,     0,     0,  1242,     0,     0,  1582,     0,     0,     0,
       0,     0,     0,  1243,     0,     0,     0,     0,     0,   727,
     812,     0,     0,  1579,     0,  1244,     0,  3025,     0,     0,
       0,     0,   560,     0, -2142,     0,   812,  1678,     0,     0,
    2240,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,     0,
       0,     0, -1881,     0,     0,     0,  1578,  1245,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   728,     0,     0,  1581,
     560,     0,     0,  1449,     0,  1114,   560,     0,  1579,     0,
       0,     0,   729,     0,     0,     0,     0,  3077,     0, -1881,
       0,     0,     0,     0,     0,     0,  1868,   561,     0,     0,
       0,    71,  1247,     0, -1881,     0,     0,     0,     0, -1881,
       0,     0,     0,     0, -1881,     0,     0,     0,     0,     0,
       0,  2760,     0, -1881,  1583,     0,     0,  1248, -1881,     0,
   -2142,   730,     0,     0,     0,     0,     0,     0,     0,     0,
    2972,   731,     0,     0,     0,     0,     0,  1250,     0,  3026,
       0,     0,  3027,     0,   732,     0,  3139,     0,  1578,   733,
   -1881,     0,     0,     0,     0,     0,     0,  1028,     0,     0,
       0,     0,  1029,     0,     0,     0,     0,     0,  1868,     0,
       0, -1881,     0,     0,     0,   859,     0,  1579,   734,     0,
       0,     0,     0,  1578,     0,  1333,     0,     0,  1868,   859,
     859,   859,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   560,  1581,   859,     0,     0,     0,   859,     0,
       0,   859,     0,     0,     0,     0,     0,  1579,   859,     0,
   -1881,  1030,   735, -1881,   967,   814,   736,     0,  3120, -1881,
   -2142,   814,     0,     0,     0,     0,     0,  1685,  1686,  1687,
    1688,  1689,  1690,     0,     0,     0,  1868,  1868,  1578,  1868,
       0,     0,     0,  1809,  1578,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1581,     0,
   -1881,     0,     0,     0,     0,  1578,     0,     0,   525,     0,
     561,   561,     0,  1579,     0,     0,     0,     0,     0,     0,
       0,   548,  3244,  1031,     0, -1881,  2842,   737,  3166,  3167,
    3168,  3169,     0,     0,   859,   859,   859,     0,     0,     0,
       0,     0,   738,     0,     0,     0,     0,  1582,   560,  1578,
    1449,     0,   560,     0,     0,     0,     0,     0,   560,  1032,
       0,     0,     0,     0,     0,     0,     0,     0,   813,     0,
       0,     0,     0,     0,     0,  1033,     0,   739,   859,     0,
     740,     0,     0,     0,   864,     0,  1034,     0,     0,     0,
       0,   741,     0,  2122,   742,  1635,     0,     0,  1579,     0,
       0,     0,     0,     0,     0,   560,     0,  1581,     0,   560,
       0,     0, -1881,   743,     0,  2173,     0,     0,     0,     0,
    1035,     0,     0, -1881,     0,     0,     0,   744,     0,   561,
       0,  2631,     0,   745,   746,  1449,  1449,     0,     0,     0,
       0,  2034,   814, -1881,   747, -1881, -1881,  1581,     0,     0,
     748,     0,     0,     0,     0,     0,     0,     0,   814,  2945,
    1578,     0,     0,     0,     0,  1583,  2954,  1036,     0,     0,
       0,     0,  2240,     0,  1037,     0,     0,     0,     0,   749,
       0,     0, -1881,     0,     0, -1881, -1881, -1881,   859,     0,
       0,  1582,   560,  3291,  1114,     0,   560,   560,     0,     0,
     560,     0,     0,     0,  1868,  1797,  1868,     0,  1913,     0,
    1579,     0,     0,  1581,     0,     0,  1038,     0,     0,     0,
       0,     0,     0,     0,     0,  1028,     0,     0,     0,   560,
    1029,  1797,     0,  1382,     0,  1039,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1579,   560,   560,   560,   560,
    1797,   560,   560,   560,   560,   560,  1582,     0,     0,     0,
       0,     0,     0,  1583,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1469,     0,     0,     0,  2411,     0,
     813,     0,   813,     0,     0,     0,   859,     0,     0,  1030,
       0,   813,     0,     0,     0,     0,     0,     0,  1581,  3132,
       0,  1507,     0,     0,     0,     0,  1040,     0,     0,     0,
    1579,  2035,     0,     0,     0,     0,  1579,     0,     0,     0,
    3410,     0,  1913,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1868,     0,     0,     0,     0,  1579,     0,     0,
       0,     0,     0,  1449,     0,     0,   561,  2799,     0,   560,
       0,     0,     0,     0,     0,     0,   859,   859,   859,   859,
       0,  1031,     0,     0,     0,  1582,     0,     0,     0,  1211,
    1449,  1640,     0,  1449,     0,     0,     0,   560,   967,     0,
       0,  1579,     0,     0,     0,     0,  3203,     0,     0,     0,
       0,     0,  3077,     0,     0,     0,     0,  1032,     0,     0,
       0,  1583,     0,     0,  1656,  1582,     0,  1657,     0,   560,
    1581,  1658,  1659,  1033,     0,     0,  3211,   560,     0,     0,
       0,     0,     0,     0,  1034,     0,     0,     0,     0,  1578,
       0,  3473,     0,     0,     0,     0,     0,     0,     0,  1452,
     561,   561,     0,  1667,     0,  1581,     0,     0,     0,  3239,
   -2142,   812,     0,     0,     0,     0,     0,     0,  1035,     0,
       0,     0,     0,  1114,     0,     0,     0,     0,     0,     0,
    3253,  1582,     0,     0,  2240,     0,     0,  1669,     0,  1212,
    2122,     0,     0,     0,     0,     0,     0,  1451,     0,     0,
       0,     0,  1579,     0,  1797,     0,     0,     0,     0,     0,
    1868,     0,     0,     0,     0,  1036,  1583,     0,     0,     0,
    1581,     0,  1037,   967,   560,  1449,  1581,  3454,  1635,     0,
       0,   859,     0,     0,     0,     0,     0,  3540,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1581,  3304,     0,
       0,  3479,  2928,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1635,  1038,     0,  1582,     0,     0,     0,
    1583,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1583,  1039, -2142,     0,     0,     0,     0,     0,
      71,  1581,     0,     0,     0,     0,     0,  1225,     0,     0,
       0, -2142,     0,  1226,     0,     0, -2142,     0,     0,     0,
       0,  1238,  1583,     0,     0,     0,  2976,     0,  3519,  1583,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3324,  1239,   561,   561,  1868,   561,     0,     0,     0,     0,
       0,     0,     0,  1656,     0, -2142,  1657,     0,  3545,  2411,
    1658,  1659,     0,     0,  1040,     0,     0,     0,  1452,  1213,
       0,     0,     0,  1583,     0,     0,     0,  1583,     0,     0,
       0,  3077,  3359,  1583,     0,     0,     0,  1240,  1582,  1449,
       0,     0,  1667,     0,     0,     0,     0,     0,     0, -2142,
       0,     0,     0,     0,     0,     0,  1583,  1760,     0,     0,
    1678,    71,  1581,     0,     0,  3376,  1451,     0,  1227,     0,
       0,     0,   560,  1582,     0,     0,  1669,     0,     0,   560,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   876,     0,     0,     0,    71,  3395,     0,   561,     0,
       0,     0,  3148,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   813,     0,   813,     0,     0,   813,  3407,
       0,     0,     0,   813,     0,     0,   813,  2945,   813,     0,
       0,  1579,   813,  1241,  2047,     0,  2051,     0,  1582,     0,
       0,  3229,     0,   560,  1582,     0,     0,     0,   560,     0,
       0,     0,  1635,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0, -2142,     0,  1582,     0,     0,     0,     0,
       0,     0,     0, -2142,   560,     0,     0,     0,     0,     0,
       0,     0,     0,  1242,     0,     0,     0,     0,     0,     0,
   -2142,     0,     0,  1243,     0, -2142,     0,     0,   560,   560,
       0,     0,     0,   727,     0,  1244,     0,     0,     0,  1582,
       0,     0,     0,     0,     0,   859,     0,  3132,     0,     0,
       0,     0,   560,     0,     0,     0,  1228,     0,     0,     0,
       0,     0,     0,   814, -2142,     0,     0,  1245,     0,   859,
       0,     0,  3481,    71,     0,     0,     0,     0,     0,     0,
       0,     0,   876,  1452,  1452,     0,     0,  2134,     0,  1452,
     728,     0,  1449,     0,  1114,     0,   560,  1017,     0,  1017,
       0,     0,     0, -2142,   560,     0,   729,     0,     0,     0,
    1685,  1686,  1687,  1688,  1689,  1690,  1246,     0,     0,  1678,
    1230,     0,  1247,     0,     0,  1114,     0,     0,     0,  3253,
       0,  1451,  1451,     0,     0,     0,   859,  1451,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1248,     0,     0,
    1582,     0,  1249,     0,     0,   730,     0,     0,     0,     0,
       0,  1581,     0,     0,     0,   731,   859,  1250,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   732,     0,
       0,     0,     0,   733,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3376,  1129,  1129,     0,     0,
       0,     0,   734,  1114,     0,     0,     0,  1583,     0,     0,
       0,     0, -2142,     0,     0,  1232,     0,     0,  3481,   561,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   561,     0,
       0,     0,    71,     0,     0,  3132,   735,     0,     0,   561,
     736,   561,     0,     0,   561,     0,     0,   967,   967,     0,
    3481,   967,     0,     0,   561,     0,   561,     0,  1268,  2009,
       0,     0,  1313,  1320,     0,     0,     0,     0,     0,   561,
     560,     0,     0,     0,   561,     0,     0,  1635,   561,   561,
       0,   561,     0,   561,   561,     0,     0,     0,     0,     0,
       0,     0,  3132,     0,     0,     0,     0,     0,     0,  3481,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   737, -2142,     0,  2217,  1371,     0,     0,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,   738,     0,     0,     0,
       0,     0,     0,  1395,     0,     0,   967,     0,     0,  1443,
       0,  1583,  1445,     0,     0,  1456,  1459,  1464,  1467,     0,
       0,  2240,     0,     0,     0,     0,     0,     0,     0,     0,
    1452,   739,     0,     0,   740,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   741,     0,     0,   742,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1511,  1313,     0,     0,     0,     0,     0,   743,     0,  1582,
       0,     0,     0,     0,     0,     0,  1583,     0,  2259,     0,
       0,   744,  1597,     0,     0,     0,     0,     0,   746,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   747,     0,
       0,     0,  1614,     0,   748,     0,    71,     0,     0,     0,
       0,     0,     0,   561,  1625,  1626,  1627,     0,  1632,  1636,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3478,     0,     0,   749,     0,     0,     0,     0,     0,     0,
     813,     0,     0,     0,     0,     0,   813,     0,     0,     0,
       0,     0,  2542,     0,  1699,     0,     0,     0,  2051,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1511,  1511,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1583,     0,     0,    71,     0,
      71,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1738,     0,
       0,     0,  1754,  1759,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1129,  1129,  1583,     0,     0,     0,     0,
      71,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2134,     0,     0,     0,     0,   561,    71,     0,     0,
       0,  1640,     0,  1452,  1452,  1452,  1452,  1452,  1452,     0,
       0,  1452,  1452,  1452,  1452,  1452,  1452,  1452,  1452,  1452,
    1452,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1313,     0,     0,     0,     0,     0,
       0,  1583,     0,     0,  1313,     0,     0,     0,     0,     0,
       0,  1451,  1451,  1451,  1451,  1451,  1451,     0,     0,  1451,
    1451,  1451,  1451,  1451,  1451,  1451,  1451,  1451,  1451,  1313,
       0,     0,     0,     0,     0,     0,     0,   813,  1656,     0,
       0,  1657,     0,     0,     0,  1658,  1659,  1660,  1661,   561,
    1662,  1663,  1664,   813,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1665,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1667,     0,     0,
       0,     0,     0,    71,  1668,     0,  1583,     0,     0,     0,
       0,     0,     0,     0,  1398,     0,   826,   561,     0,     0,
       0,     0,     0,  2684,     0,     0,     0,     0,     0,    71,
       0,  1669,     0,     0,     0,     0,     0,  1956,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1399,  1400,     0,  1452,  1452,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1464,     0,  1464,  1464,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1129,  1129,     0,  1583,     0,
       0,  1401,  1402,     0,     0,  1403,  1404,     0,  1670,     0,
       0,  1451,  1451,     0,     0,     0,     0,  1129,     0,     0,
       0,     0,     0,     0,     0,  1671,     0,     0,     0,     0,
    1672,     0,     0,  1583,     0,     0,     0,     0,     0,   561,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1673,  1674,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1675,
       0,     0,     0,     0,     0,     0,     0,     0,  1452,     0,
       0,  1405,  1406,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1399,  1400,  1583,     0,
       0,     0,     0,     0,  1583,     0,     0,  1676,     0,     0,
    1677,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2096,     0,     0,  1678,  1583,  1451,  1679,     0,     0,
    2100,     0,     0,     0,     0,     0,     0,  1401,  1402,     0,
       0,  1403,  1404,     0,  2131,     0,  1407,  1408,  1409,  1410,
    1411,  1412,  1413,  1414,     0,   561,  1415,  1416,     0,   561,
       0,     0,     0,     0,  2145,  2047,     0,     0,     0,  1583,
       0,     0,  2150,     0,     0,     0,     0,     0,  2154,  2155,
    2156,  2157,  2158,  2159,  2160,  2161,     0,     0,     0,     0,
    2170,  2171,     0,     0,     0,  2184,     0,     0,     0,  2187,
       0,     0,  2195,  2196,  2197,  2198,  2199,  2200,  2201,  2202,
    2203,     0,  2900,  2204,     0,     0,  2134,  1405,  1406,     0,
    1129,     0,  1313,     0,     0,     0,     0,  1680,     0,     0,
       0,  1417,  1418,     0,     0,     0,     0,     0,     0,     0,
    2230,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1399,  1400,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1419,  1420,     0,  1626,  1627,     0,     0,     0,
    1583,     0,  1407,  1408,  1409,  1410,  1411,  1412,  1413,  1414,
       0,     0,  1415,  1416,     0,     0,  1401,  1402,     0,   561,
    1403,  1404,     0,   561,   561,     0,     0,   561,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1453,     0,   561,  1681,     0,     0,
    1682,  1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,
       0,     0,     0,   561,   561,   561,   561,  1959,   561,   561,
     561,   561,   561,     0,     0,     0,     0,  1417,  1418,     0,
    1421,  1422,  2365,     0,     0,     0,  1405,  1406,     0,  1313,
       0,     0,  2376,  2377,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1423,  1424,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1419,  1420,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1452,  1452,     0,     0,  1313,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1407,  1408,  1409,  1410,  1411,  1412,  1413,  1414,  1371,
    2446,  1415,  1416,     0,     0,     0,  2047,     0,     0,     0,
    1693,     0,     0,     0,     0,     0,     0,     0,  1451,  1451,
       0,     0,     0,     0,     0,     0,     0,     0,  2472,  2473,
       0,  2474,     0,  1656,  2542,     0,  1657,     0,     0,     0,
    1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,
       0,     0,     0,     0,     0,     0,  1421,  1422,     0,  1693,
    2500,  2501,  1665,     0,  2230,     0,  2134,     0,     0,     0,
       0,     0,  1667,     0,  2134,     0,  1417,  1418,     0,  1668,
    1423,  1424,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1453,     0,  2526,     0,     0,     0,  1583,
    2064,     0,     0,     0,  2536,     0,  1669,     0,   813,     0,
       0,     0,     0,     0,     0,     0,  1225,  1419,  1420,     0,
       0,     0,  1226,  1511,     0,  1313,     0,     0,     0,     0,
    1238,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1693,
    1239,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2571,     0,     0,     0,     0,     0,  2578,
       0,   561,     0,     0,     0,     0,     0,     0,  1452,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1693,     0,  1240,     0,     0,     0,
       0,  1693,  2590,  1670,     0,  1452,  2596,     0,     0,     0,
       0,  2601,  2602,     0,     0,  1421,  1422,     0,     0,     0,
    1671,     0,     0,     0,     0,  1672,  1451,  1227,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1423,
    1424,     0,     0,     0,     0,   -46,     0,     0,  1673,  1674,
       0,     0,  1693,  3188,     0,     0,     0,     0,  2623,     0,
       0,  2626,     0,  2628,  1675,     0,     0,     0,     1,     0,
       0,     0,     0,     0,     0,     0,  1693,     0,     2,  2632,
       3,     4,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1241,     5,     0,     0,     0,     0,     6,     0,
       0,     0,  1676,  3217,     0,  1677,     0,     7,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1738,  1678,
       0,     8,  1679,     0,  1693,     0,  1693,     0,  1453,  1453,
       9,  1984,    10,     0,  1453,  1759,  2202,  1693,     0,     0,
    1693,     0,  1242,     0,    11,  1693,    12,     0,  1693,     0,
    1452,     0,  1243,     0,  1129,     0,     0,    13,     0,  3384,
       0,     0,     0,     0,  1244,     0,  2542,  2690,     0,     0,
       0,     0,    14,    15,    16,     0,     0,     0,     0,     0,
       0,     0,     0,    17,     0,  1228,     0,     0,     0,    18,
       0,     0,  1693,     0,     0,     0,  1245,    19,  1451,    20,
      21,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    22,     0,     0,     0,    23,     0,
       0,     0,  1680,     0,     0,     0,     0,     0,     0,     0,
     561,     0,     0,     0,  1627,   561,     0,     0,     0,     0,
       0,     0,     0,  1313,    24,  2339,     0,     0,     0,  1230,
       0,  1247,     0,     0,     0,     0,     0,     0,     0,     0,
   -1498,   561,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1248,     0,  1693,     0,
       0,  2340,     0,     0,     0,   561,   561,    25,     0,     0,
       0,     0,     0,     0,     0,  1693,  1250,     0,     0,     0,
       0,     0,     0,     0,  1452,  2810,  1693,  1693,  1693,   561,
       0,     0,     0,  1693,     0,     0,     0,  1693,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,     0,     0,     0,  2140,
       0,     0,  1451,   561,  1232,     0,     0,     0,     0,     0,
       0,  2134,     0,    26,    27,    28,     0,     0,     0,     0,
       0,    29,     0,     0,    30,     0,     0,     0,     0,     0,
    1693,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1655,     0,     0,     0,     0,  1656,
       0,     0,  1657,     0,     0,    31,  1658,  1659,  1660,  1661,
       0,  1662,  1663,  1664,    32,     0,     0,     0,     0,  1693,
       0,     0,     0,     0,     0,     0,     0,     0,  1665,     0,
      33,     0,  1666,     0,     0,  1693,     0,    34,  1667,     0,
    1693,    35,  2890,     0,     0,  1668,     0,     0,     0,  2892,
    2100,     0,    36,     0,     0,     0,     0,  1984,     0,     0,
       0,     0,     0,     0,    37,  2901,     0,     0,    38,     0,
       0,     0,  1669,     0,     0,     0,     0,     0,  2913,     0,
       0,  2916,     0,  2918,     0,     0,     0,     0,    39,     0,
       0,  2922,     0,     0,     0,     0,     0,     0,     0,  2929,
    2930,     0,    40,     0,     0,    41,  2937,     0,    42,     0,
       0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2951,     0,     0,     0,  1452,     0,     0,
      44,     0,     0,  2966,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   561,     0,     0,
       0,     0,     0,  1129,    45,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    46,  1670,
       0,   -46,     0,     0,     0,  3498,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1671,     0,     0,     0,
       0,  1672,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1738,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1673,  1674,     0,  2365,  2365,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1675,     0,     0,     0,     0,     0,     0,  1693,     0,     0,
       0,     0,     0,     0,     0,  1984,  1984,  3123,  1453,  1453,
    1453,  1453,  1453,  1453,     0,     0,  1453,  1453,  1453,  1453,
    1453,  1453,  1453,  1453,  1453,  1453,  1984,     0,  1676,     0,
       0,  1677,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1678,     0,     0,  1679,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1656,     0,     0,  1657,     0,     0,     0,  1658,
    1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,     0,
       0,     0,  3182,  3183,     0,  3186,     0,     0,     0,     0,
       0,  1665,     0,     0,     0,  2905,     0,     0,     0,     0,
       0,  1667,     0,     0,     0,     0,     0,     0,  1668,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3207,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1669,     0,  1693,     0,  3216,
       0,  1693,     0,     0,  3219,  3220,     0,     0,  1680,  3221,
       0,     0,     0,     0,  3224,     0,     0,  3227,  3228,     0,
       0,     0,  2365,  1313,     0,     0,  3236,     0,     0,     0,
       0,     0,  1693,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1129,     0,     0,     0,  1693,     0,     0,     0,
       0,  1693,     0,     0,     0,  1693,  1693,  1693,  1693,  1693,
    1693,  1693,  1693,     0,     0,     0,     0,     0,  1453,  1453,
       0,  1693,  1693,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1693,  3279,     0,  1693,     0,
       0,     0,  1670,     0,     0,     0,  1693,  1693,  1693,  1693,
    1693,  1693,  1693,  1693,  1693,  1693,     0,     0,     0,  1671,
       0,     0,     0,  3298,  1672,     0,     0,     0,  1681,     0,
       0,  1682,  1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,
    1690,  1693,     0,     0,     0,     0,     0,  1673,  1674,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1675,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1453,     0,     0,     0,     0,     0,     0,
       0,  1676,     0,     0,  1677,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1678,     0,
       0,  1679,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2810,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1636,     0,  1693,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1693,  1693,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2596,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1680,     0,     0,     0,  3399,  3400,     0,     0,  3401,
       0,  1627,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1693,  3421,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3433,  1693,  1693,  1693,     0,     0,  1984,  1984,
    1984,  1984,  1984,  1984,     0,     0,     0,  1984,  1984,  1984,
    1984,  1984,  1984,  1984,  1984,  1984,  1984,     0,     0,     0,
       0,  1693,  1693,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1681,     0,     0,  1682,  1683,  1684,  1693,  1685,  1686,
    1687,  1688,  1689,  1690,     0,     0,     0,  1693,  2140,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3182,     0,     0,     0,  3495,
       0,     0,  1693,  1129,     0,     0,     0,     0,     0,  1693,
       0,     0,     0,     0,     0,     0,     0,  3505,     0,     0,
       0,  1693,  2365,  2365,     0,     0,     0,  1693,     0,     0,
       0,     0,  1693,  1693,  1129,     0,  1656,     0,     0,  1657,
    1984,  1984,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,
    1664,     0,  3530,     0,  1693,  1453,  1453,  1693,     0,  1693,
       0,     0,     0,  1693,     0,  1665,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1667,     0,     0,     0,     0,
       0,     0,  1668,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3555,     0,     0,     0,     0,     0,     0,     0,     0,  1669,
    3182,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1656,  1693,  1129,  1657,     0,     0,     0,  1658,  1659,  1660,
    1661,     0,  1662,  1663,  1664,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1665,
       0,     0,     0,     0,     0,  3598,     0,     0,     0,  1667,
       0,     0,     0,     0,     0,     0,  1668,     0,     0,     0,
       0,     0,  1656,     0,     0,  1657,     0,     0,     0,  1658,
    1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,     0,
       0,     0,     0,  1669,     0,     0,     0,     0,     0,     0,
       0,  1665,     0,     0,     0,     0,  1670,     0,     0,     0,
       0,  1667,     0,     0,     0,     0,     0,     0,  1668,     0,
       0,     0,     0,  1671,     0,     0,     0,     0,  1672,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1693,  3652,  3652,  3652,  1669,     0,     0,     0,     0,
       0,  1673,  1674,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1453,     0,     0,     0,  1675,     0,  3652,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1656,     0,     0,  1657,     0,     0,     0,  1658,  1659,
    1670,     0,     0,  1662,  1663,  1664,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1676,     0,  1671,  1677,     0,
    3652,     0,  1672,     0,     0,     0,     0,     0,     0,     0,
    1667,  1693,  1678,  1693,     0,  1679,     0,  1668,     0,     0,
       0,     0,  1693,     0,     0,  1673,  1674,     0,     0,     0,
       0,     0,  1670,     0,  1693,     0,     0,  1693,     0,  1693,
       0,  1675,     0,  1693,  1669,     0,  1984,  1984,     0,  1671,
    1693,  1693,     0,     0,  1672,     0,     0,     0,  1693,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1693,     0,     0,     0,     0,  1673,  1674,  1676,
       0,     0,  1677,     0,     0,     0,     0,  1693,     0,     0,
       0,     0,     0,  1675,     0,     0,  1678,     0,     0,  1679,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1680,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1453,     0,     0,     0,     0,
       0,  1676,     0,     0,  1677,     0,     0,     0,     0,     0,
       0,  1670,     0,     0,     0,     0,     0,     0,  1678,     0,
       0,  1679,     0,     0,     0,     0,     0,     0,  1671,     0,
       0,     0,     0,  1672,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1673,  1674,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1680,
       0,     0,  1675,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1681,     0,     0,  1682,  1683,
    1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,
    1676,     0,  2471,  1677,  1693,     0,     0,     0,     0,     0,
       0,  1680,     0,     0,     0,     0,     0,  1678,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1984,  1453,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1693,  1693,     0,     0,  1693,     0,  1681,
       0,     0,  1682,  1683,  1684,     0,  1685,  1686,  1687,  1688,
    1689,  1690,     0,     0,     0,     0,  2575,     0,  1693,     0,
       0,     0,     0,     0,     0,     0,     0,  1693,     0,     0,
    1693,  1693,  1693,     0,     0,  1693,     0,     0,  1693,  1693,
       0,     0,     0,     0,     0,     0,     0,  1693,     0,     0,
    1680,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,  1686,
    1687,  1688,  1689,  1690,     0,     0,     0,     0,  2589,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1693,     0,     0,     0,     0,     0,  1984,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1693,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1681,     0,     0,  1682,  1683,  1684,     0,  1685,  1686,  1687,
    1688,  1689,  1690,     0,  1984,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1693,  1693,  1693,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1693,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1693,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1693,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1693,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1693,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1693,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   118,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1693,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,  1068,     0,
       0,   130,   131,   132,     0,   133,   134,   135,   136,   137,
     138,   139,   140,  1069,   142,  1070,  1071,     0,   145,   146,
     147,   148,   149,   150,  1072,   795,   151,   152,   153,   154,
    1073,  1074,   157,  1693,   158,   159,   160,   161,   796,     0,
     797,     0,  1075,   165,   166,   167,   168,   169,   170,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,  1076,   192,   193,  1077,   195,  1078,   196,     0,   197,
     198,   199,   200,   201,   202,    14,    15,   203,   204,   205,
     206,     0,     0,   207,   208,  1079,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,  1080,   223,   224,   225,   226,   227,   228,   798,  1081,
     230,     0,   231,   232,  1082,   234,     0,   235,     0,   236,
     237,    23,   238,   239,   240,   241,   242,   243,   244,   245,
       0,  1083,  1084,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,   270,   271,
     272,   273,   274,   275,   276,  1085,  1086,     0,  1087,     0,
     280,   281,   282,   283,   284,   285,   286,   287,  1088,   288,
     289,   290,     0,     0,   291,   292,   293,   294,     0,   295,
     296,   297,   298,   299,   300,   301,   302,  1089,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,  1090,   325,
    1091,   327,   328,   329,   330,  1092,   331,   332,   333,   334,
    1093,   800,   336,  1094,   338,   339,   340,     0,   341,   342,
       0,     0,  1095,   344,   345,     0,     0,   346,   347,   348,
     349,   350,   351,   802,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,    26,    27,    28,     0,
     365,   366,   803,   368,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,  1096,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,   406,   407,   408,   409,  1097,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,    33,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,    35,   433,   434,   435,  1098,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   451,   452,   805,    37,     0,   454,
     455,    38,   456,   457,   458,   459,   460,   461,   462,     0,
     463,  1099,  1100,     0,     0,   466,   467,   806,   469,   807,
    1101,   471,   472,   808,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,  1102,    40,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   809,  1103,   493,     0,
     494,   495,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,    44,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,  1104,     0,    45,     0,     0,
       0,     0,  1105,  1106,  1107,     0,     0,     0,     0,  1108,
       0,  1109,  3374,     0,     0,     0,  1110,  1111,  1112,  1113,
     118,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,  1068,     0,     0,
     130,   131,   132,     0,   133,   134,   135,   136,   137,   138,
     139,   140,  1069,   142,  1070,  1071,     0,   145,   146,   147,
     148,   149,   150,  1072,   795,   151,   152,   153,   154,  1073,
    1074,   157,     0,   158,   159,   160,   161,   796,     0,   797,
       0,  1075,   165,   166,   167,   168,   169,   170,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
    1076,   192,   193,  1077,   195,  1078,   196,     0,   197,   198,
     199,   200,   201,   202,    14,    15,   203,   204,   205,   206,
       0,     0,   207,   208,  1079,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
    1080,   223,   224,   225,   226,   227,   228,   798,  1081,   230,
       0,   231,   232,  1082,   234,     0,   235,     0,   236,   237,
      23,   238,   239,   240,   241,   242,   243,   244,   245,     0,
    1083,  1084,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,   270,   271,   272,
     273,   274,   275,   276,  1085,  1086,     0,  1087,     0,   280,
     281,   282,   283,   284,   285,   286,   287,  1088,   288,   289,
     290,     0,     0,   291,   292,   293,   294,     0,   295,   296,
     297,   298,   299,   300,   301,   302,  1089,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,  1090,   325,  1091,
     327,   328,   329,   330,  1092,   331,   332,   333,   334,  1093,
     800,   336,  1094,   338,   339,   340,     0,   341,   342,     0,
       0,  1095,   344,   345,     0,     0,   346,   347,   348,   349,
     350,   351,   802,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,    26,    27,    28,     0,   365,
     366,   803,   368,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,  1096,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,   406,   407,   408,   409,  1097,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,    33,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    35,   433,   434,   435,  1098,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   451,   452,   805,    37,     0,   454,   455,
      38,   456,   457,   458,   459,   460,   461,   462,     0,   463,
    1099,  1100,     0,     0,   466,   467,   806,   469,   807,  1101,
     471,   472,   808,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,  1102,    40,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   809,  1103,   493,     0,   494,
     495,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,    44,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,  1104,     0,    45,     0,     0,     0,
       0,  1105,  1106,  1107,     0,     0,     0,     0,  1108,     0,
    1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,
    1062,   826,  1063,  1064,  1065,  1066,  1067,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,  1068,     0,     0,   130,
     131,   132,     0,   133,   134,   135,   136,   137,   138,   139,
     140,  1069,   142,  1070,  1071,     0,   145,   146,   147,   148,
     149,   150,  1072,   795,   151,   152,   153,   154,  1073,  1074,
     157,     0,   158,   159,   160,   161,   796,     0,   797,     0,
    1075,   165,   166,   167,   168,   169,   170,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,  1076,
     192,   193,  1077,   195,  1078,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,  1079,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,  1080,
     223,   224,   225,   226,   227,   228,   798,  1081,   230,     0,
     231,   232,  1082,   234,     0,   235,     0,   236,   237,    23,
     238,   239,   240,   241,   242,   243,   244,   245,     0,  1083,
    1084,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
     274,   275,   276,  1085,  1086,     0,  1087,     0,   280,   281,
     282,   283,   284,   285,   286,   287,  1088,   288,   289,   290,
       0,     0,   291,   292,   293,   294,     0,   295,   296,   297,
     298,   299,   300,   301,   302,  1089,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,  1090,   325,  1091,   327,
     328,   329,   330,  1092,   331,   332,   333,   334,  1093,   800,
     336,  1094,   338,   339,   340,     0,   341,   342,     0,     0,
    1095,   344,   345,     0,     0,   346,   347,   348,   349,   350,
     351,   802,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,    26,    27,    28,     0,   365,   366,
     803,   368,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,  1096,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,   406,   407,   408,   409,  1097,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,    33,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,   433,   434,   435,  1098,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   805,     0,     0,   454,   455,    38,
     456,   457,   458,   459,   460,   461,   462,     0,   463,  1099,
    1100,     0,     0,   466,   467,   806,   469,   807,  1101,   471,
     472,   808,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,  1102,    40,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   809,  1103,   493,     0,   494,   495,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,    44,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,  1104,     0,    45,     0,     0,     0,     0,
    1105,  1106,  1107,     0,     0,     0,     0,  1108,     0,  1109,
       0,     0,     0,     0,  1110,  1111,  1112,  1113,  1273,  1062,
     826,  1063,  1064,  1065,  1066,  1067,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,  1274,   127,   128,   129,
       0,     0,     0,  1275,     0,  1068,     0,     0,  1276,   131,
     132,     0,  1277,   134,   135,  1278,   137,   138,   139,   140,
    1069,  1279,  1070,  1071,     0,   145,   146,   147,   148,   149,
     150,  1072,   795,   151,   152,   153,   154,  1073,  1074,   157,
       0,   158,   159,   160,   161,   796,     0,  1280,     0,  1281,
     165,   166,   167,   168,   169,  1282,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,  1283,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,  1076,   192,
     193,  1077,   195,  1078,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,  1284,     0,
     207,   208,  1079,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,  1080,   223,
     224,   225,   226,   227,   228,   798,  1081,   230,     0,   231,
     232,  1082,   234,     0,   235,     0,   236,  1285,     0,  1286,
     239,   240,  1287,  1288,   243,   244,   245,     0,  1083,  1084,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
    1289,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,  1290,   271,   272,   273,   274,
     275,   276,  1085,  1086,     0,  1087,     0,   280,  1291,  1292,
     283,  1293,   285,   286,   287,  1088,   288,   289,   290,     0,
       0,   291,  1294,   293,  1295,     0,   295,   296,   297,   298,
     299,   300,   301,   302,  1296,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,  1090,  1297,  1091,   327,   328,
     329,   330,  1092,   331,   332,  1298,   334,  1093,   800,   336,
    1094,   338,   339,   340,     0,   341,   342,     0,     0,  1095,
     344,   345,     0,   886,   346,   347,   348,  1299,   350,  1300,
     802,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   803,
    1301,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
    1096,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,  1302,   407,   408,   409,  1097,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,  1303,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,  1304,   434,   435,  1098,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,  1305,   452,   805,     0,     0,   454,   455,     0,   456,
    1306,   458,   459,   460,   461,   462,     0,   463,  1099,  1100,
       0,     0,   466,   467,   806,   469,   807,  1101,   471,   472,
    1307,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,  1308,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,  1103,   493,  1309,   494,  1310,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,  1104,     0,     0,     0,     0,     0,     0,  1105,
    1106,  1107,     0,     0,     0,     0,  1108,     0,  1109,  1311,
       0,     0,     0,  1110,  1111,  1112,  1113,   118,  1062,   826,
    1063,  1064,  1065,  1066,  1067,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,  1068,     0,     0,   130,   131,   132,
       0,   133,   134,   135,   136,   137,   138,   139,   140,  1069,
     142,  1070,  1071,  1460,   145,   146,   147,   148,   149,   150,
    1072,   795,   151,   152,   153,   154,  1073,  1074,   157,     0,
     158,   159,   160,   161,   796,     0,   797,     0,  1075,   165,
     166,   167,   168,   169,   170,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,  1076,   192,   193,
    1077,   195,  1078,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,  1079,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,  1080,   223,   224,
     225,   226,   227,   228,   798,  1081,   230,     0,   231,   232,
    1082,   234,     0,   235,     0,   236,   237,  1461,   238,   239,
     240,   241,   242,   243,   244,   245,     0,  1083,  1084,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,   270,   271,   272,   273,   274,   275,
     276,  1085,  1086,     0,  1087,     0,   280,   281,   282,   283,
     284,   285,   286,   287,  1088,   288,   289,   290,     0,  1462,
     291,   292,   293,   294,     0,   295,   296,   297,   298,   299,
     300,   301,   302,  1089,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,  1090,   325,  1091,   327,   328,   329,
     330,  1092,   331,   332,   333,   334,  1093,   800,   336,  1094,
     338,   339,   340,     0,   341,   342,     0,     0,  1095,   344,
     345,     0,     0,   346,   347,   348,   349,   350,   351,   802,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   803,   368,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,  1096,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,   406,   407,   408,   409,  1097,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,   433,   434,   435,  1098,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   805,     0,     0,   454,   455,     0,   456,   457,
     458,   459,   460,   461,   462,     0,   463,  1099,  1100,     0,
    1463,   466,   467,   806,   469,   807,  1101,   471,   472,   808,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
    1102,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,  1103,   493,     0,   494,   495,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,  1104,     0,     0,     0,     0,     0,     0,  1105,  1106,
    1107,     0,     0,     0,     0,  1108,     0,  1109,     0,     0,
       0,     0,  1110,  1111,  1112,  1113,   118,  1062,   826,  1063,
    1064,     0,  1066,  1067,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,  1068,     0,     0,   130,   131,   132,     0,
     133,   134,   135,   136,   137,   138,   139,   140,  1069,   142,
    1070,  1071,     0,   145,   146,   147,   148,   149,   150,  1072,
     795,   151,   152,   153,   154,  1073,  1074,   157,     0,   158,
     159,   160,   161,   796,     0,   797,     0,   164,   165,   166,
     167,   168,   169,   170,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,  1076,   192,   193,  1077,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
      14,    15,   203,   204,   205,   206,     0,     0,   207,   208,
    1079,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,  1080,   223,   224,   225,
     226,   227,   228,   798,  1081,   230,     0,   231,   232,  1082,
     234,     0,   235,     0,   236,   237,    23,   238,   239,   240,
     241,   242,   243,   244,   245,     0,  1083,  1084,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,   270,   271,   272,   273,   274,   275,   276,
    1085,  1086,     0,  1087,     0,   280,   281,   282,   283,   284,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
     292,   293,   294,     0,   295,   296,   297,   298,   299,   300,
     301,   302,  1089,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,  1090,   325,  1091,   327,   328,   329,   330,
       0,   331,   332,   333,   334,  1093,   800,   336,  1094,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,   348,   349,   350,   351,   802,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,    26,    27,    28,     0,   365,   366,   803,   368,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,  1096,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
     406,   407,   408,   409,  1097,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,    33,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,    35,
     433,   434,   435,  1098,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
     452,   805,    37,     0,   454,   455,    38,   456,   457,   458,
     459,   460,   461,   462,     0,   463,  1099,  1100,     0,     0,
     466,   467,   806,   469,   807,  1101,   471,   472,   808,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,     0,
      40,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   809,  1103,   493,     0,   494,   495,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,    44,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
       0,     0,    45,     0,     0,  1273,  1062,   826,  1063,  1064,
    1065,  1066,  1067,     0,  1108,     0,  1109,     0,     0,     0,
       0,  1110,  1111,  1112,  1113,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
    1275,     0,  1068,     0,     0,  1276,   131,   132,     0,  1277,
     134,   135,  1278,   137,   138,   139,   140,  1069,  1279,  1070,
    1071,     0,   145,   146,   147,   148,   149,   150,  1072,   795,
     151,   152,   153,   154,  1073,  1074,   157,     0,   158,   159,
     160,   161,   796,     0,  1280,     0,  1281,   165,   166,   167,
     168,   169,  1282,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,  1283,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,  1076,   192,   193,  1077,   195,
    1078,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,  1079,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,  1080,   223,   224,   225,   226,
     227,   228,   798,  1081,   230,     0,   231,   232,  1082,   234,
       0,   235,     0,   236,  1285,     0,  1286,   239,   240,  1287,
    1288,   243,   244,   245,     0,  1083,  1084,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,  1289,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,  1290,   271,   272,   273,   274,   275,   276,  1085,
    1086,     0,  1087,     0,   280,  1291,  1292,   283,  1293,   285,
     286,   287,  1088,   288,   289,   290,     0,     0,   291,  1294,
     293,  1295,     0,   295,   296,   297,   298,   299,   300,   301,
     302,  1296,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,  1090,  1297,  1091,   327,   328,   329,   330,  1092,
     331,   332,  1298,   334,  1093,   800,   336,  1094,   338,   339,
     340,     0,   341,   342,     0,     0,  1095,   344,   345,     0,
       0,   346,   347,   348,  1299,   350,  1300,   802,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   803,  1301,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,  1096,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,  1302,
     407,   408,   409,  1097,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,  1303,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,  1304,
     434,   435,  1098,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,  1305,   452,
     805,     0,     0,   454,   455,     0,   456,  1306,   458,   459,
     460,   461,   462,     0,   463,  1099,  1100,     0,     0,   466,
     467,   806,   469,   807,  1101,   471,   472,  1307,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,  1308,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,  1103,   493,  2373,   494,  1310,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,  1104,
       0,     0,     0,     0,     0,     0,  1105,  1106,  1107,     0,
       0,     0,     0,  1108,     0,  1109,     0,     0,     0,     0,
    1110,  1111,  1112,  1113,  1273,  1062,   826,  1063,  1064,  1065,
    1066,  1067,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,  1275,
       0,  1068,     0,     0,  1276,   131,   132,     0,  1277,   134,
     135,  1278,   137,   138,   139,   140,  1069,  1279,  1070,  1071,
       0,   145,   146,   147,   148,   149,   150,  1072,   795,   151,
     152,   153,   154,  1073,  1074,   157,     0,   158,   159,   160,
     161,   796,     0,  1280,     0,  1281,   165,   166,   167,   168,
     169,  1282,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,  1283,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,  1076,   192,   193,  1077,   195,  1078,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,  1079,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,  1080,   223,   224,   225,   226,   227,
     228,   798,  1081,   230,     0,   231,   232,  1082,   234,     0,
     235,     0,   236,  1285,     0,  1286,   239,   240,  1287,  1288,
     243,   244,   245,     0,  1083,  1084,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,  1289,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,  1290,   271,   272,   273,   274,   275,   276,  1085,  1086,
       0,  1087,     0,   280,  1291,  1292,   283,  1293,   285,   286,
     287,  1088,   288,   289,   290,     0,     0,   291,  1294,   293,
    1295,     0,   295,   296,   297,   298,   299,   300,   301,   302,
    1296,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,  1090,  1297,  1091,   327,   328,   329,   330,  1092,   331,
     332,  1298,   334,  1093,   800,   336,  1094,   338,   339,   340,
       0,   341,   342,     0,     0,  1095,   344,   345,     0,     0,
     346,   347,   348,  1299,   350,  1300,   802,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   803,  1301,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,  1096,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,  1302,   407,
     408,   409,  1097,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,  1303,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,  1304,   434,
     435,  1098,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,  1305,   452,   805,
       0,     0,   454,   455,     0,   456,  1306,   458,   459,   460,
     461,   462,     0,   463,  1099,  1100,     0,     0,   466,   467,
     806,   469,   807,  1101,   471,   472,  1307,   474,   475,   476,
     477,   478,     0,     0,   479,   480,   481,  1308,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
    1103,   493,     0,   494,  1310,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,  1104,     0,
       0,     0,     0,     0,     0,  1105,  1106,  1107,     0,     0,
       0,     0,  1108,     0,  1109,  2431,     0,     0,     0,  1110,
    1111,  1112,  1113,   118,  1062,   826,  1063,  1064,  1065,  1066,
    1067,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126, -1171,   127,   128,   129,     0,     0,     0,     0, -1171,
    1068,     0,     0,   130,   131,   132,     0,   133,   134,   135,
     136,   137,   138,   139,   140,  1069,   142,  1070,  1071,     0,
     145,   146,   147,   148,   149,   150,  1072,   795,   151,   152,
     153,   154,  1073,  1074,   157,     0,   158,   159,   160,   161,
     796,     0,   797,     0,  1075,   165,   166,   167,   168,   169,
     170,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,  1076,   192,   193,  1077,   195,  1078,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,  1079,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,  1080,   223,   224,   225,   226,   227,   228,
     798,  1081,   230,     0,   231,   232,  1082,   234,     0,   235,
       0,   236,   237,     0,   238,   239,   240,   241,   242,   243,
     244,   245,     0,  1083,  1084,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
     270,   271,   272,   273,   274,   275,   276,  1085,  1086,     0,
    1087,     0,   280,   281,   282,   283,   284,   285,   286,   287,
    1088,   288,   289,   290,     0,     0,   291,   292,   293,   294,
       0,   295,   296,   297,   298,   299,   300,   301,   302,  1089,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
    1090,   325,  1091,   327,   328,   329,   330,  1092,   331,   332,
     333,   334,  1093,   800,   336,  1094,   338,   339,   340,     0,
     341,   342,     0,     0,  1095,   344,   345,     0,     0,   346,
     347,   348,   349,   350,   351,   802,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   803,   368,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,  1096,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,   406,   407,   408,
     409,  1097,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,   433,   434,   435,
    1098,   437, -1171,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   805,     0,
       0,   454,   455,     0,   456,   457,   458,   459,   460,   461,
     462,     0,   463,  1099,  1100,     0,     0,   466,   467,   806,
     469,   807,  1101,   471,   472,   808,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,  1102,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,  1103,
     493,     0,   494,   495,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,  1104,     0,     0,
       0,     0,     0,     0,  1105,  1106,  1107,     0,     0,     0,
       0,  1108,     0,  1109,     0,     0,     0,     0,  1110,  1111,
    1112,  1113,  1273,  1062,   826,  1063,  1064,  1065,  1066,  1067,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     0,     0,     0,  1275,     0,  1068,
       0,     0,  1276,   131,   132,     0,  1277,   134,   135,  1278,
     137,   138,   139,   140,  1069,  1279,  1070,  1071,     0,   145,
     146,   147,   148,   149,   150,  1072,   795,   151,   152,   153,
     154,  1073,  1074,   157,     0,   158,   159,   160,   161,   796,
       0,  1280,     0,  1281,   165,   166,   167,   168,   169,  1282,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,  1283,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,  1076,   192,   193,  1077,   195,  1078,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,  1079,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,  1080,   223,   224,   225,   226,   227,   228,   798,
    1081,   230,     0,   231,   232,  1082,   234,     0,   235,     0,
     236,  1285,     0,  1286,   239,   240,  1287,  1288,   243,   244,
     245,     0,  1083,  1084,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,  1289,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,  1290,
     271,   272,   273,   274,   275,   276,  1085,  1086,     0,  1087,
       0,   280,  1291,  1292,   283,  1293,   285,   286,   287,  1088,
     288,   289,   290,     0,     0,   291,  1294,   293,  1295,     0,
     295,   296,   297,   298,   299,   300,   301,   302,  1296,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,  1090,
    1297,  1091,   327,   328,   329,   330,  1092,   331,   332,  1298,
     334,  1093,   800,   336,  1094,   338,   339,   340,     0,   341,
     342,     0,     0,  1095,   344,   345,     0,     0,   346,   347,
     348,  1299,   350,  1300,   802,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   803,  1301,   369,   370,   371,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,  1096,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,  1302,   407,   408,   409,
    1097,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,  1303,   424,   425,   426,   427,
     428,   429,   430,   431,   432,     0,  1304,   434,   435,  1098,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,  1305,   452,   805,     0,     0,
     454,   455,     0,   456,  1306,   458,   459,   460,   461,   462,
       0,   463,  1099,  1100,     0,     0,   466,   467,   806,   469,
     807,  1101,   471,   472,  1307,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,  1308,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   491,  1103,   493,
       0,   494,  1310,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,  1104,     0,     0,     0,
       0,     0,     0,  1105,  1106,  1107,     0,     0,     0,     0,
    1108,     0,  1109,  3233,     0,     0,     0,  1110,  1111,  1112,
    1113,  1273,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,  1275,     0,  1068,     0,
       0,  1276,   131,   132,     0,  1277,   134,   135,  1278,   137,
     138,   139,   140,  1069,  1279,  1070,  1071,     0,   145,   146,
     147,   148,   149,   150,  1072,   795,   151,   152,   153,   154,
    1073,  1074,   157,     0,   158,   159,   160,   161,   796,     0,
    1280,     0,  1281,   165,   166,   167,   168,   169,  1282,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
    1283,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,  1076,   192,   193,  1077,   195,  1078,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,  1079,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,  1080,   223,   224,   225,   226,   227,   228,   798,  1081,
     230,     0,   231,   232,  1082,   234,     0,   235,     0,   236,
    1285,     0,  1286,   239,   240,  1287,  1288,   243,   244,   245,
       0,  1083,  1084,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,  1289,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,  1290,   271,
     272,   273,   274,   275,   276,  1085,  1086,     0,  1087,     0,
     280,  1291,  1292,   283,  1293,   285,   286,   287,  1088,   288,
     289,   290,     0,     0,   291,  1294,   293,  1295,     0,   295,
     296,   297,   298,   299,   300,   301,   302,  1296,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,  1090,  1297,
    1091,   327,   328,   329,   330,  1092,   331,   332,  1298,   334,
    1093,   800,   336,  1094,   338,   339,   340,     0,   341,   342,
       0,     0,  1095,   344,   345,     0,     0,   346,   347,   348,
    1299,   350,  1300,   802,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   803,  1301,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,  1096,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,  1302,   407,   408,   409,  1097,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,  1303,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,  1304,   434,   435,  1098,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,  1305,   452,   805,     0,     0,   454,
     455,     0,   456,  1306,   458,   459,   460,   461,   462,     0,
     463,  1099,  1100,     0,     0,   466,   467,   806,   469,   807,
    1101,   471,   472,  1307,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,  1308,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,  1103,   493,     0,
     494,  1310,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,  1104,     0,     0,     0,     0,
       0,     0,  1105,  1106,  1107,     0,     0,     0,     0,  1108,
       0,  1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,
     118,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,  1735,   127,
     128,   129,     0,     0,     0,     0,     0,  1068,     0,     0,
     130,   131,   132,     0,   133,   134,   135,   136,   137,   138,
     139,   140,  1069,   142,  1070,  1071,     0,   145,   146,   147,
     148,   149,   150,  1072,   795,   151,   152,   153,   154,  1073,
    1074,   157,     0,   158,   159,   160,   161,   796,     0,   797,
       0,  1075,   165,   166,   167,   168,   169,   170,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
    1076,   192,   193,  1077,   195,  1078,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,  1079,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
    1080,   223,   224,   225,   226,   227,   228,   798,  1081,   230,
       0,   231,   232,  1082,   234,     0,   235,     0,   236,   237,
       0,   238,   239,   240,   241,   242,   243,   244,   245,     0,
    1083,  1084,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,   270,   271,   272,
     273,   274,   275,   276,  1085,  1086,     0,  1087,     0,   280,
     281,   282,   283,   284,   285,   286,   287,  1088,   288,   289,
     290,     0,     0,   291,   292,   293,   294,     0,   295,   296,
     297,   298,   299,   300,   301,   302,  1089,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,  1090,   325,  1091,
     327,   328,   329,   330,  1092,   331,   332,   333,   334,  1093,
     800,   336,  1094,   338,   339,   340,     0,   341,   342,     0,
       0,  1095,   344,   345,     0,     0,   346,   347,   348,   349,
     350,   351,   802,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   803,   368,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,  1096,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,   406,   407,   408,   409,  1097,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,   433,   434,   435,  1098,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   451,   452,   805,     0,     0,   454,   455,
       0,   456,   457,   458,   459,   460,   461,   462,     0,   463,
    1099,  1100,     0,     0,   466,   467,   806,   469,   807,  1101,
     471,   472,   808,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,  1102,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,  1103,   493,     0,   494,
     495,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,  1104,     0,     0,     0,     0,     0,
       0,  1105,  1106,  1107,     0,     0,     0,     0,  1108,     0,
    1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,
    1750,   826,  1063,  1064,  1065,  1751,  1067,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,  1752,   127,   128,
     129,     0,     0,     0,     0,     0,  1068,     0,     0,   130,
     131,   132,     0,   133,   134,   135,   136,   137,   138,   139,
     140,  1069,   142,  1070,  1071,     0,   145,   146,   147,   148,
     149,   150,  1072,   795,   151,   152,   153,   154,  1073,  1074,
     157,     0,   158,   159,   160,   161,   796,     0,   797,     0,
    1075,   165,   166,   167,   168,   169,   170,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,  1076,
     192,   193,  1077,   195,  1078,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,  1079,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,  1080,
     223,   224,   225,   226,   227,   228,   798,  1081,   230,     0,
     231,   232,  1082,   234,     0,   235,     0,   236,   237,     0,
     238,   239,   240,   241,   242,   243,   244,   245,     0,  1083,
    1084,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
     274,   275,   276,  1085,  1086,     0,  1087,     0,   280,   281,
     282,   283,   284,   285,   286,   287,  1088,   288,   289,   290,
       0,     0,   291,   292,   293,   294,     0,   295,   296,   297,
     298,   299,   300,   301,   302,  1089,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,  1090,   325,  1091,   327,
     328,   329,   330,  1092,   331,   332,   333,   334,  1093,   800,
     336,  1094,   338,   339,   340,     0,   341,   342,     0,     0,
    1095,   344,   345,     0,     0,   346,   347,   348,   349,   350,
     351,   802,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     803,   368,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,  1096,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,   406,   407,   408,   409,  1097,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,   433,   434,   435,  1098,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   805,     0,     0,   454,   455,     0,
     456,   457,   458,   459,   460,   461,   462,     0,   463,  1099,
    1100,     0,     0,   466,   467,   806,   469,   807,  1101,   471,
     472,   808,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,  1102,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,  1103,   493,     0,   494,   495,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,  1104,     0,     0,     0,     0,     0,     0,
    1105,  1106,  1107,     0,     0,     0,     0,  1108,     0,  1109,
       0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,  1062,
     826,  1063,  1064,  1065,  1066,  1067,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,  1068,     0,     0,   130,   131,
     132,     0,   133,   134,   135,   136,   137,   138,   139,   140,
    1069,   142,  1070,  1071,     0,   145,   146,   147,   148,   149,
     150,  1072,   795,   151,   152,   153,   154,  1073,  1074,   157,
       0,   158,   159,   160,   161,   796,     0,   797,     0,  1075,
     165,   166,   167,   168,   169,   170,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,  1076,   192,
     193,  1077,   195,  1078,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,  1079,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,  1080,   223,
     224,   225,   226,   227,   228,   798,  1081,   230,     0,   231,
     232,  1082,   234,     0,   235,     0,   236,   237,  1461,   238,
     239,   240,   241,   242,   243,   244,   245,     0,  1083,  1084,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,   270,   271,   272,   273,   274,
     275,   276,  1085,  1086,     0,  1087,     0,   280,   281,   282,
     283,   284,   285,   286,   287,  1088,   288,   289,   290,     0,
       0,   291,   292,   293,   294,     0,   295,   296,   297,   298,
     299,   300,   301,   302,  1089,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,  1090,   325,  1091,   327,   328,
     329,   330,  1092,   331,   332,   333,   334,  1093,   800,   336,
    1094,   338,   339,   340,     0,   341,   342,     0,     0,  1095,
     344,   345,     0,     0,   346,   347,   348,   349,   350,   351,
     802,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   803,
     368,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
    1096,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,   406,   407,   408,   409,  1097,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,   433,   434,   435,  1098,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   451,   452,   805,     0,     0,   454,   455,     0,   456,
     457,   458,   459,   460,   461,   462,     0,   463,  1099,  1100,
       0,     0,   466,   467,   806,   469,   807,  1101,   471,   472,
     808,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,  1102,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,  1103,   493,     0,   494,   495,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,  1104,     0,     0,     0,     0,     0,     0,  1105,
    1106,  1107,     0,     0,     0,     0,  1108,     0,  1109,     0,
       0,     0,     0,  1110,  1111,  1112,  1113,   118,  1062,   826,
    1063,  1064,  1065,  1066,  1067,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,  1068,     0,     0,   130,   131,   132,
       0,   133,   134,   135,   136,   137,   138,   139,   140,  1069,
     142,  1070,  1071,     0,   145,   146,   147,   148,   149,   150,
    1072,   795,   151,   152,   153,   154,  1073,  1074,   157,     0,
     158,   159,   160,   161,   796,     0,   797,     0,  1075,   165,
     166,   167,   168,   169,   170,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,  1076,   192,   193,
    1077,   195,  1078,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,  1079,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,  1080,   223,   224,
     225,   226,   227,   228,   798,  1081,   230,     0,   231,   232,
    1082,   234,     0,   235,     0,   236,   237,     0,   238,   239,
     240,   241,   242,   243,   244,   245,     0,  1083,  1084,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,   270,   271,   272,   273,   274,   275,
     276,  1085,  1086,     0,  1087,     0,   280,   281,   282,   283,
     284,   285,   286,   287,  1088,   288,   289,   290,     0,     0,
     291,   292,   293,   294,     0,   295,   296,   297,   298,   299,
     300,   301,   302,  1089,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,  1090,   325,  1091,   327,   328,   329,
     330,  1092,   331,   332,   333,   334,  1093,   800,   336,  1094,
     338,   339,   340,     0,   341,   342,     0,     0,  1095,   344,
     345,     0,     0,   346,   347,   348,   349,   350,   351,   802,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   803,   368,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,  1096,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,   406,   407,   408,   409,  1097,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,   433,   434,   435,  1098,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   805,     0,     0,   454,   455,     0,   456,   457,
     458,   459,   460,   461,   462,     0,   463,  1099,  1100,     0,
       0,   466,   467,   806,   469,   807,  1101,   471,   472,   808,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
    1102,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,  1103,   493,     0,   494,   495,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,  1104,     0,     0,     0,     0,     0,     0,  1105,  1106,
    1107,     0,     0,     0,     0,  1108,     0,  1109,  2125,     0,
       0,     0,  1110,  1111,  1112,  1113,   118,  1062,   826,  1063,
    1064,  1065,  1066,  1067,     0,     0,     0,     0,     0,     0,
       0,     0,  2747,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,  1068,     0,     0,   130,   131,   132,     0,
     133,   134,   135,   136,   137,   138,   139,   140,  1069,   142,
    1070,  1071,     0,   145,   146,   147,   148,   149,   150,  1072,
     795,   151,   152,   153,   154,  1073,  1074,   157,     0,   158,
     159,   160,   161,   796,     0,   797,     0,  1075,   165,   166,
     167,   168,   169,   170,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,  1076,   192,   193,  1077,
     195,  1078,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
    1079,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,  1080,   223,   224,   225,
     226,   227,   228,   798,  1081,   230,     0,   231,   232,  1082,
     234,     0,   235,     0,   236,   237,     0,   238,   239,   240,
     241,   242,   243,   244,   245,     0,  1083,  1084,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,   270,   271,   272,   273,   274,   275,   276,
    1085,  1086,     0,  1087,     0,   280,   281,   282,   283,   284,
     285,   286,   287,  1088,   288,   289,   290,     0,     0,   291,
     292,   293,   294,     0,   295,   296,   297,   298,   299,   300,
     301,   302,  1089,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,  1090,   325,  1091,   327,   328,   329,   330,
    1092,   331,   332,   333,   334,  1093,   800,   336,  1094,   338,
     339,   340,     0,   341,   342,     0,     0,  1095,   344,   345,
       0,     0,   346,   347,   348,   349,   350,   351,   802,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,   803,   368,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,  1096,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
     406,   407,   408,   409,  1097,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,     0,
     433,   434,   435,  1098,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
     452,   805,     0,     0,   454,   455,     0,   456,   457,   458,
     459,   460,   461,   462,     0,   463,  1099,  1100,     0,     0,
     466,   467,   806,   469,   807,  1101,   471,   472,   808,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,  1102,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   491,  1103,   493,     0,   494,   495,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
    1104,     0,     0,     0,     0,     0,     0,  1105,  1106,  1107,
       0,     0,     0,     0,  1108,     0,  1109,     0,     0,     0,
       0,  1110,  1111,  1112,  1113,   118,  1062,   826,  1063,  1064,
    1065,  1066,  1067,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,  1068,     0,     0,   130,   131,   132,     0,   133,
     134,   135,   136,   137,   138,   139,   140,  1069,   142,  1070,
    1071,     0,   145,   146,   147,   148,   149,   150,  1072,   795,
     151,   152,   153,   154,  1073,  1074,   157,     0,   158,   159,
     160,   161,   796,     0,   797,     0,  1075,   165,   166,   167,
     168,   169,   170,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,   180,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,  1076,   192,   193,  1077,   195,
    1078,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,  1079,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,  1080,   223,   224,   225,   226,
     227,   228,   798,  1081,   230,     0,   231,   232,  1082,   234,
       0,   235,     0,   236,   237,     0,   238,   239,   240,   241,
     242,   243,   244,   245,     0,  1083,  1084,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,   270,   271,   272,   273,   274,   275,   276,  1085,
    1086,     0,  1087,     0,   280,   281,   282,   283,   284,   285,
     286,   287,  1088,   288,   289,   290,     0,     0,   291,   292,
     293,   294,     0,   295,   296,   297,   298,   299,   300,   301,
     302,  1089,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,  1090,   325,  1091,   327,   328,   329,   330,  1092,
     331,   332,   333,   334,  1093,   800,   336,  1094,   338,   339,
     340,     0,   341,   342,     0,     0,  1095,   344,   345,     0,
       0,   346,   347,   348,   349,   350,   351,   802,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   803,   368,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,  1096,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,   406,
     407,   408,   409,  1097,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,   433,
     434,   435,  1098,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
     805,     0,     0,   454,   455,  2809,   456,   457,   458,   459,
     460,   461,   462,     0,   463,  1099,  1100,     0,     0,   466,
     467,   806,   469,   807,  1101,   471,   472,   808,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,  1102,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,  1103,   493,     0,   494,   495,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,  1104,
       0,     0,     0,     0,     0,     0,  1105,  1106,  1107,     0,
       0,     0,     0,  1108,     0,  1109,     0,     0,     0,     0,
    1110,  1111,  1112,  1113,   118,  1062,   826,  1063,  1064,  1065,
    1066,  1067,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,     0,
       0,  1068,     0,     0,   130,   131,   132,     0,   133,   134,
     135,   136,   137,   138,   139,   140,  1069,   142,  1070,  1071,
       0,   145,   146,   147,   148,   149,   150,  1072,   795,   151,
     152,   153,   154,  1073,  1074,   157,     0,   158,   159,   160,
     161,   796,     0,   797,     0,  1075,   165,   166,   167,   168,
     169,   170,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,  1076,   192,   193,  1077,   195,  1078,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,  1079,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,  1080,   223,   224,   225,   226,   227,
     228,   798,  1081,   230,     0,   231,   232,  1082,   234,     0,
     235,     0,   236,   237,     0,   238,   239,   240,   241,   242,
     243,   244,   245,     0,  1083,  1084,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,   270,   271,   272,   273,   274,   275,   276,  1085,  1086,
       0,  1087,     0,   280,   281,   282,   283,   284,   285,   286,
     287,  1088,   288,   289,   290,     0,     0,   291,   292,   293,
     294,     0,   295,   296,   297,   298,   299,   300,   301,   302,
    1089,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,  1090,   325,  1091,   327,   328,   329,   330,  1092,   331,
     332,   333,   334,  1093,   800,   336,  1094,   338,   339,   340,
       0,   341,   342,     0,     0,  1095,   344,   345,     0,     0,
     346,   347,   348,   349,   350,   351,   802,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   803,   368,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,  1096,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,   406,   407,
     408,   409,  1097,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,   433,   434,
     435,  1098,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   451,   452,   805,
       0,     0,   454,   455,     0,   456,   457,   458,   459,   460,
     461,   462,     0,   463,  1099,  1100,     0,     0,   466,   467,
     806,   469,   807,  1101,   471,   472,   808,   474,   475,   476,
     477,   478,     0,     0,   479,   480,   481,  1102,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
    1103,   493,     0,   494,   495,   496,   497,   498,   499,   500,
     501,   502,     0,  2936,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,  1104,     0,
       0,     0,     0,     0,     0,  1105,  1106,  1107,     0,     0,
       0,     0,  1108,     0,  1109,     0,     0,     0,     0,  1110,
    1111,  1112,  1113,   118,  1062,   826,  1063,  1064,  1065,  1066,
    1067,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,  3170,   127,   128,   129,     0,     0,     0,     0,     0,
    1068,     0,     0,   130,   131,   132,     0,   133,   134,   135,
     136,   137,   138,   139,   140,  1069,   142,  1070,  1071,     0,
     145,   146,   147,   148,   149,   150,  1072,   795,   151,   152,
     153,   154,  1073,  1074,   157,     0,   158,   159,   160,   161,
     796,     0,   797,     0,  1075,   165,   166,   167,   168,   169,
     170,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,   180,   181,  3171,   183,   184,   185,   186,   187,
     188,   189,   190,  1076,   192,   193,  1077,   195,  1078,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,  1079,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,  1080,   223,   224,   225,   226,   227,   228,
     798,  1081,   230,     0,   231,   232,  1082,   234,     0,   235,
       0,   236,   237,     0,   238,   239,   240,   241,   242,   243,
     244,   245,     0,  3172,  1084,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
     270,   271,   272,   273,   274,   275,   276,  1085,  1086,     0,
    1087,     0,   280,   281,   282,   283,   284,   285,   286,   287,
    1088,   288,   289,   290,     0,     0,   291,   292,   293,   294,
       0,   295,   296,   297,   298,   299,   300,   301,   302,  1089,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
    1090,   325,  1091,   327,   328,   329,   330,  1092,   331,   332,
     333,   334,  1093,   800,   336,  1094,   338,   339,   340,     0,
     341,   342,     0,     0,  1095,   344,   345,     0,     0,   346,
     347,   348,   349,   350,   351,   802,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   803,   368,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,  1096,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,   406,   407,   408,
    3173,  1097,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,   433,   434,   435,
    1098,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   805,     0,
       0,   454,   455,     0,   456,   457,   458,   459,   460,   461,
     462,     0,   463,  1099,  1100,     0,     0,   466,   467,   806,
     469,   807,  1101,   471,   472,   808,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,  1102,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,  1103,
     493,     0,   494,   495,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,  1104,     0,     0,
       0,     0,     0,     0,  1105,  1106,  1107,     0,     0,     0,
       0,  1108,     0,  3174,     0,     0,     0,     0,  1110,  1111,
    1112,  1113,   118,  1062,   826,  1063,  1064,  1065,  1066,  1067,
       0,     0,     0,     0,     0,     0,     0,     0,  3402,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     0,     0,     0,     0,     0,  1068,
       0,     0,   130,   131,   132,     0,   133,   134,   135,   136,
     137,   138,   139,   140,  1069,   142,  1070,  1071,     0,   145,
     146,   147,   148,   149,   150,  1072,   795,   151,   152,   153,
     154,  1073,  1074,   157,     0,   158,   159,   160,   161,   796,
       0,   797,     0,  1075,   165,   166,   167,   168,   169,   170,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,  1076,   192,   193,  1077,   195,  1078,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,  1079,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,  1080,   223,   224,   225,   226,   227,   228,   798,
    1081,   230,     0,   231,   232,  1082,   234,     0,   235,     0,
     236,   237,     0,   238,   239,   240,   241,   242,   243,   244,
     245,     0,  1083,  1084,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,   270,
     271,   272,   273,   274,   275,   276,  1085,  1086,     0,  1087,
       0,   280,   281,   282,   283,   284,   285,   286,   287,  1088,
     288,   289,   290,     0,     0,   291,   292,   293,   294,     0,
     295,   296,   297,   298,   299,   300,   301,   302,  1089,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,  1090,
     325,  1091,   327,   328,   329,   330,  1092,   331,   332,   333,
     334,  1093,   800,   336,  1094,   338,   339,   340,     0,   341,
     342,     0,     0,  1095,   344,   345,     0,     0,   346,   347,
     348,   349,   350,   351,   802,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   803,   368,   369,   370,   371,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,  1096,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,   406,   407,   408,   409,
    1097,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,     0,   424,   425,   426,   427,
     428,   429,   430,   431,   432,     0,   433,   434,   435,  1098,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   451,   452,   805,     0,     0,
     454,   455,     0,   456,   457,   458,   459,   460,   461,   462,
       0,   463,  1099,  1100,     0,     0,   466,   467,   806,   469,
     807,  1101,   471,   472,   808,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,  1102,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   491,  1103,   493,
       0,   494,   495,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,  1104,     0,     0,     0,
       0,     0,     0,  1105,  1106,  1107,     0,     0,     0,     0,
    1108,     0,  1109,     0,     0,     0,     0,  1110,  1111,  1112,
    1113,   118,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,  1068,     0,
       0,   130,   131,   132,     0,   133,   134,   135,   136,   137,
     138,   139,   140,  1069,   142,  1070,  1071,     0,   145,   146,
     147,   148,   149,   150,  1072,   795,   151,   152,   153,   154,
    1073,  1074,   157,     0,   158,   159,   160,   161,   796,     0,
     797,     0,  1075,   165,   166,   167,   168,   169,   170,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,  1076,   192,   193,  1077,   195,  1078,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,  1079,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,  1080,   223,   224,   225,   226,   227,   228,   798,  1081,
     230,     0,   231,   232,  1082,   234,     0,   235,     0,   236,
     237,     0,   238,   239,   240,   241,   242,   243,   244,   245,
       0,  1083,  1084,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,   270,   271,
     272,   273,   274,   275,   276,  1085,  1086,     0,  1087,     0,
     280,   281,   282,   283,   284,   285,   286,   287,  1088,   288,
     289,   290,     0,     0,   291,   292,   293,   294,     0,   295,
     296,   297,   298,   299,   300,   301,   302,  1089,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,  1090,   325,
    1091,   327,   328,   329,   330,  1092,   331,   332,   333,   334,
    1093,   800,   336,  1094,   338,   339,   340,     0,   341,   342,
       0,     0,  1095,   344,   345,     0,     0,   346,   347,   348,
     349,   350,   351,   802,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   803,   368,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,  1096,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,   406,   407,   408,   409,  1097,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,   433,   434,   435,  1098,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   451,   452,   805,     0,     0,   454,
     455,     0,   456,   457,   458,   459,   460,   461,   462,     0,
     463,  1099,  1100,     0,     0,   466,   467,   806,   469,   807,
    1101,   471,   472,   808,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,  1102,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,  1103,   493,     0,
     494,   495,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,  1104,     0,     0,     0,     0,
       0,     0,  1105,  1106,  1107,     0,     0,     0,     0,  1108,
       0,  1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,
     118,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,  1068,     0,     0,
     130,   131,   132,     0,   133,   134,   135,   136,   137,   138,
     139,   140,  1069,   142,  1070,  1071,     0,   145,   146,   147,
     148,   149,   150,  1072,   795,   151,   152,   153,   154,  1073,
    1074,   157,     0,   158,   159,   160,   161,   796,     0,   797,
       0,  1075,   165,   166,   167,   168,   169,   170,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
    1076,   192,   193,  1077,   195,  1078,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,  1079,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
    1080,   223,   224,   225,   226,   227,   228,   798,  1081,   230,
       0,   231,   232,  1082,   234,     0,   235,     0,   236,   237,
       0,   238,   239,   240,   241,   242,   243,   244,   245,     0,
    1083,  1084,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,   270,   271,   272,
     273,   274,   275,   276,  1085,  1086,     0,  1087,     0,   280,
     281,   282,   283,   284,   285,   286,   287,  1088,   288,   289,
     290,     0,     0,   291,   292,   293,   294,     0,   295,   296,
     297,   298,   299,   300,   301,   302,  1089,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,  1090,   325,  1091,
     327,   328,   329,   330,  1092,   331,   332,   333,   334,  1093,
     800,   336,  1094,   338,   339,   340,     0,   341,   342,     0,
       0,  1095,   344,   345,     0,     0,   346,   347,   348,   349,
     350,   351,   802,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   803,   368,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,  1096,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,   406,   407,   408,   409,  1097,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,   433,   434,   435,  1098,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   451,   452,   805,     0,     0,   454,   455,
       0,   456,   457,   458,   459,   460,   461,   462,     0,   463,
    1099,  1100,     0,     0,   466,   467,   806,   469,   807,  1101,
     471,   472,   808,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,  1102,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,  1103,   493,     0,   494,
     495,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,  1104,     0,     0,     0,     0,     0,
       0,  1755,  1756,  1107,     0,     0,     0,     0,  1108,     0,
    1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,
    2267,   826,  1063,  1064,  1065,  1066,  1067,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,  1068,     0,     0,   130,
     131,   132,     0,   133,   134,   135,   136,   137,   138,   139,
     140,  1069,   142,  1070,  1071,     0,   145,   146,   147,   148,
     149,   150,  1072,   795,   151,   152,   153,   154,  1073,  1074,
     157,     0,   158,   159,   160,   161,   796,     0,   797,     0,
    1075,   165,   166,   167,   168,   169,   170,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,  1076,
     192,   193,  1077,   195,  1078,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,  1079,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,  1080,
     223,   224,   225,   226,   227,   228,   798,  1081,   230,     0,
     231,   232,  1082,   234,     0,   235,     0,   236,   237,     0,
     238,   239,   240,   241,   242,   243,   244,   245,     0,  1083,
    1084,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
     274,   275,   276,  1085,  1086,     0,  1087,     0,   280,   281,
     282,   283,   284,   285,   286,   287,  1088,   288,   289,   290,
       0,     0,   291,   292,   293,   294,     0,   295,   296,   297,
     298,   299,   300,   301,   302,  1089,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,  1090,   325,  1091,   327,
     328,   329,   330,  1092,   331,   332,   333,   334,  1093,   800,
     336,  1094,   338,   339,   340,     0,   341,   342,     0,     0,
    1095,   344,   345,     0,     0,   346,   347,   348,   349,   350,
     351,   802,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     803,   368,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,  1096,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,   406,   407,   408,   409,  1097,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,   433,   434,   435,  1098,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   805,     0,     0,   454,   455,     0,
     456,   457,   458,   459,   460,   461,   462,     0,   463,  1099,
    1100,     0,     0,   466,   467,   806,   469,   807,  1101,   471,
     472,   808,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,  1102,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,  1103,   493,     0,   494,   495,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,  1104,     0,     0,     0,     0,     0,     0,
    1105,  1106,  1107,     0,     0,     0,     0,  1108,     0,  1109,
       0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,  1062,
     826,  1063,  1064,  1065,  1066,  1067,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,  1068,     0,     0,   130,   131,
     132,     0,   133,   134,   135,   136,   137,   138,   139,   140,
    1069,   142,  1070,  1071,     0,   145,   146,   147,   148,   149,
     150,  1072,   795,   151,   152,   153,   154,  1073,  1074,   157,
       0,   158,   159,   160,   161,   796,     0,   797,     0,  1075,
     165,   166,   167,   168,   169,   170,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,  1076,   192,
     193,  1077,   195,  1078,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,  1079,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,  1080,   223,
     224,   225,   226,   227,   228,   798,  1081,   230,     0,   231,
     232,  1082,   234,     0,   235,     0,   236,   237,     0,   238,
     239,   240,   241,   242,   243,   244,   245,     0,  1083,  1084,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,   270,   271,   272,   273,   274,
     275,   276,  1085,  1086,     0,  1087,     0,   280,   281,   282,
     283,   284,   285,   286,   287,  1088,   288,   289,   290,     0,
       0,   291,   292,   293,   294,     0,   295,   296,   297,   298,
     299,   300,   301,   302,  1089,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,  1090,   325,  1091,   327,   328,
     329,   330,  1092,   331,   332,   333,   334,  1093,   800,   336,
    1094,   338,   339,   340,     0,   341,   342,     0,     0,  1095,
     344,   345,     0,     0,   346,   347,   348,   349,   350,   351,
     802,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   803,
     368,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
    1096,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,   406,   407,   408,   409,  1097,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,   433,   434,   435,  1098,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   451,   452,   805,     0,     0,   454,   455,     0,   456,
     457,   458,   459,   460,   461,   462,     0,   463,  1099,  1100,
       0,     0,   466,   467,   806,   469,   807,  1101,   471,   472,
     808,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,  1102,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,  1103,   493,     0,   494,   495,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,  1104,     0,     0,     0,     0,     0,     0,  1105,
    2364,  1107,     0,     0,     0,     0,  1108,     0,  1109,     0,
       0,     0,     0,  1110,  1111,  1112,  1113,   118,  1062,   826,
    1063,  1064,  1065,  1066,  1067,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,  1068,     0,     0,   130,   131,   132,
       0,   133,   134,   135,   136,   137,   138,   139,   140,  1069,
     142,  1070,  1071,     0,   145,   146,   147,   148,   149,   150,
    1072,   795,   151,   152,   153,   154,  1073,  1074,   157,     0,
     158,   159,   160,   161,   796,     0,   797,     0,  1075,   165,
     166,   167,   168,   169,   170,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,  1076,   192,   193,
    1077,   195,  1078,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,  1079,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,  1080,   223,   224,
     225,   226,   227,   228,   798,  1081,   230,     0,   231,   232,
    1082,   234,     0,   235,     0,   236,   237,     0,   238,   239,
     240,   241,   242,   243,   244,   245,     0,  1083,  1084,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,   270,   271,   272,   273,   274,   275,
     276,  1085,  1086,     0,  1087,     0,   280,   281,   282,   283,
     284,   285,   286,   287,  1088,   288,   289,   290,     0,     0,
     291,   292,   293,   294,     0,   295,   296,   297,   298,   299,
     300,   301,   302,  1089,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,  1090,   325,  1091,   327,   328,   329,
     330,  1092,   331,   332,   333,   334,  1093,   800,   336,  1094,
     338,   339,   340,     0,   341,   342,     0,     0,  1095,   344,
     345,     0,     0,   346,   347,   348,   349,   350,   351,   802,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   803,   368,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,  1096,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,   406,   407,   408,   409,  1097,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,   433,   434,   435,  1098,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   805,     0,     0,   454,   455,     0,   456,   457,
     458,   459,   460,   461,   462,     0,   463,  1099,  1100,     0,
       0,   466,   467,   806,   469,   807,  1101,   471,   472,   808,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
    1102,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,  1103,   493,     0,   494,   495,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,  1104,     0,     0,     0,     0,     0,     0,  1105,  1106,
    1107,     0,     0,     0,     0,  1108,     0,  2595,     0,     0,
       0,     0,  1110,  1111,  1112,  1113,   118,  1062,   826,  1063,
    1064,  1065,  1066,  1067,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,  1068,     0,     0,   130,   131,   132,     0,
     133,   134,   135,   136,   137,   138,   139,   140,  1069,   142,
    1070,  1071,     0,   145,   146,   147,   148,   149,   150,  1072,
     795,   151,   152,   153,   154,  1073,  1074,   157,     0,   158,
     159,   160,   161,   796,     0,   797,     0,  1075,   165,   166,
     167,   168,   169,   170,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,  1076,   192,   193,  1077,
     195,  1078,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
    1079,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,  1080,   223,   224,   225,
     226,   227,   228,   798,  1081,   230,     0,   231,   232,  1082,
     234,     0,   235,     0,   236,   237,     0,   238,   239,   240,
     241,   242,   243,   244,   245,     0,  1083,  1084,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,   270,   271,   272,   273,   274,   275,   276,
    1085,  1086,     0,  1087,     0,   280,   281,   282,   283,   284,
     285,   286,   287,  1088,   288,   289,   290,     0,     0,   291,
     292,   293,   294,     0,   295,   296,   297,   298,   299,   300,
     301,   302,  1089,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,  1090,   325,  1091,   327,   328,   329,   330,
    1092,   331,   332,   333,   334,  1093,   800,   336,  1094,   338,
     339,   340,     0,   341,   342,     0,     0,  1095,   344,   345,
       0,     0,   346,   347,   348,   349,   350,   351,   802,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,   803,   368,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,  1096,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
     406,   407,   408,   409,  1097,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,     0,
     433,   434,   435,  1098,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
     452,   805,     0,     0,   454,   455,     0,   456,   457,   458,
     459,   460,   461,   462,     0,   463,  1099,  1100,     0,     0,
     466,   467,   806,   469,   807,  1101,   471,   472,   808,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,  1102,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   491,  1103,   493,     0,   494,   495,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
    1104,     0,     0,     0,     0,     0,     0,  1105,  3231,  1107,
       0,     0,     0,     0,  1108,     0,  1109,     0,     0,     0,
       0,  1110,  1111,  1112,  1113,   118,  1062,   826,  1063,  1064,
    1065,  1066,  1067,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,  1068,     0,     0,   130,   131,   132,     0,   133,
     134,   135,   136,   137,   138,   139,   140,  1069,   142,  1070,
    1071,     0,   145,   146,   147,   148,   149,   150,  1072,   795,
     151,   152,   153,   154,  1073,  1074,   157,     0,   158,   159,
     160,   161,   796,     0,   797,     0,  1075,   165,   166,   167,
     168,   169,   170,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,   180,   181,  3171,   183,   184,   185,
     186,   187,   188,   189,   190,  1076,   192,   193,  1077,   195,
    1078,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,  1079,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,  1080,   223,   224,   225,   226,
     227,   228,   798,  1081,   230,     0,   231,   232,  1082,   234,
       0,   235,     0,   236,   237,     0,   238,   239,   240,   241,
     242,   243,   244,   245,     0,  3172,  1084,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,   270,   271,   272,   273,   274,   275,   276,  1085,
    1086,     0,  1087,     0,   280,   281,   282,   283,   284,   285,
     286,   287,  1088,   288,   289,   290,     0,     0,   291,   292,
     293,   294,     0,   295,   296,   297,   298,   299,   300,   301,
     302,  1089,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,  1090,   325,  1091,   327,   328,   329,   330,  1092,
     331,   332,   333,   334,  1093,   800,   336,  1094,   338,   339,
     340,     0,   341,   342,     0,     0,  1095,   344,   345,     0,
       0,   346,   347,   348,   349,   350,   351,   802,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   803,   368,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,  1096,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,   406,
     407,   408,  3173,  1097,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,   433,
     434,   435,  1098,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
     805,     0,     0,   454,   455,     0,   456,   457,   458,   459,
     460,   461,   462,     0,   463,  1099,  1100,     0,     0,   466,
     467,   806,   469,   807,  1101,   471,   472,   808,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,  1102,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,  1103,   493,     0,   494,   495,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,  1104,
       0,     0,     0,     0,     0,     0,  1105,  1106,  1107,     0,
       0,     0,     0,  1108,     0,  3174,     0,     0,     0,     0,
    1110,  1111,  1112,  1113,   118,  1062,   826,  1063,  1064,  1065,
    1066,  1067,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,     0,
       0,  1068,     0,     0,   130,   131,   132,     0,   133,   134,
     135,   136,   137,   138,   139,  3649,  1069,   142,  1070,  1071,
       0,   145,   146,   147,   148,   149,   150,  1072,   795,   151,
     152,   153,   154,  1073,  1074,   157,     0,   158,   159,   160,
     161,   796,     0,   797,     0,  1075,   165,   166,   167,   168,
     169,   170,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,   180,   181,   182,  3650,   184,   185,   186,
     187,   188,   189,   190,  1076,   192,   193,  1077,   195,  1078,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,  1079,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,  1080,   223,   224,   225,   226,   227,
     228,   798,  1081,   230,     0,   231,   232,  1082,   234,     0,
     235,     0,   236,   237,     0,   238,   239,   240,   241,   242,
     243,   244,   245,     0,  1083,  1084,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,   270,   271,   272,   273,   274,   275,   276,  1085,  1086,
       0,  1087,     0,   280,   281,   282,   283,   284,   285,   286,
     287,  1088,   288,   289,   290,     0,     0,   291,   292,   293,
     294,     0,   295,   296,   297,   298,   299,   300,   301,   302,
    1089,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,  1090,   325,  1091,   327,   328,   329,   330,  1092,   331,
     332,   333,   334,  1093,   800,   336,  1094,   338,   339,   340,
       0,   341,   342,     0,     0,  1095,   344,   345,     0,     0,
     346,   347,   348,   349,   350,   351,   802,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   803,   368,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,  1096,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,   406,   407,
     408,   409,  1097,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,   433,   434,
     435,  1098,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   451,   452,   805,
       0,     0,   454,   455,     0,   456,   457,   458,   459,   460,
     461,   462,     0,   463,  1099,  1100,     0,     0,   466,   467,
     806,   469,   807,  1101,   471,   472,   808,   474,   475,  3651,
     477,   478,     0,     0,   479,   480,   481,  1102,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
    1103,   493,     0,   494,   495,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,  1104,     0,
       0,     0,     0,     0,     0,  1105,  1106,  1107,     0,     0,
       0,     0,  1108,     0,  1109,     0,     0,     0,     0,  1110,
    1111,  1112,  1113,   118,  1062,   826,  1063,  1064,  1065,  1066,
    1067,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
    1068,     0,     0,   130,   131,   132,     0,   133,   134,   135,
     136,   137,   138,   139,   140,  1069,   142,  1070,  1071,     0,
     145,   146,   147,   148,   149,   150,  1072,   795,   151,   152,
     153,   154,  1073,  1074,   157,     0,   158,   159,   160,   161,
     796,     0,   797,     0,  1075,   165,   166,   167,   168,   169,
     170,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,   180,   181,   182,  3650,   184,   185,   186,   187,
     188,   189,   190,  1076,   192,   193,  1077,   195,  1078,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,  1079,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,  1080,   223,   224,   225,   226,   227,   228,
     798,  1081,   230,     0,   231,   232,  1082,   234,     0,   235,
       0,   236,   237,     0,   238,   239,   240,   241,   242,   243,
     244,   245,     0,  1083,  1084,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
     270,   271,   272,   273,   274,   275,   276,  1085,  1086,     0,
    1087,     0,   280,   281,   282,   283,   284,   285,   286,   287,
    1088,   288,   289,   290,     0,     0,   291,   292,   293,   294,
       0,   295,   296,   297,   298,   299,   300,   301,   302,  1089,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
    1090,   325,  1091,   327,   328,   329,   330,  1092,   331,   332,
     333,   334,  1093,   800,   336,  1094,   338,   339,   340,     0,
     341,   342,     0,     0,  1095,   344,   345,     0,     0,   346,
     347,   348,   349,   350,   351,   802,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   803,   368,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,  1096,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,   406,   407,   408,
     409,  1097,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,   433,   434,   435,
    1098,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   805,     0,
       0,   454,   455,     0,   456,   457,   458,   459,   460,   461,
     462,     0,   463,  1099,  1100,     0,     0,   466,   467,   806,
     469,   807,  1101,   471,   472,   808,   474,   475,  3651,   477,
     478,     0,     0,   479,   480,   481,  1102,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,  1103,
     493,     0,   494,   495,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,  1104,     0,     0,
       0,     0,     0,     0,  1105,  1106,  1107,     0,     0,     0,
       0,  1108,     0,  1109,     0,     0,     0,     0,  1110,  1111,
    1112,  1113,   118,  1062,   826,  1063,  1064,  1065,  1066,  1067,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     0,     0,     0,     0,     0,  1068,
       0,     0,   130,   131,   132,     0,   133,   134,   135,   136,
     137,   138,   139, -2142,  1069,   142,  1070,  1071,     0,   145,
     146,   147,   148,   149,   150,  1072,   795,   151,   152,   153,
     154,  1073,  1074,   157,     0,   158,   159,   160,   161,   796,
       0,   797,     0,  1075,   165,   166,   167,   168,   169,   170,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,   180,   181,   182,  3650,   184,   185,   186,   187,   188,
     189,   190,  1076,   192,   193,  1077,   195,  1078,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,  1079,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,  1080,   223,   224,   225,   226,   227,   228,   798,
    1081,   230,     0,   231,   232,  1082,   234,     0,   235,     0,
     236,   237,     0,   238,   239,   240,   241, -2142,   243,   244,
     245,     0,  1083,  1084,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256, -2142,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,   270,
     271,   272,   273,   274,   275,   276,  1085,  1086,     0,  1087,
       0,   280,     0,     0,   283,   284,   285,   286,   287,  1088,
     288,   289,   290,     0,     0,   291,   292,   293, -2142,     0,
     295,   296,   297,   298,   299,   300,   301,   302,  1089,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,  1090,
     325,  1091,   327,   328,   329,   330,     0,   331,   332,     0,
     334,  1093,   800,   336,  1094,   338,   339,   340,     0,   341,
     342,     0,     0,  1095,   344,   345,     0,     0,   346,   347,
     348,   349,   350,   351,   802,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   803,   368,   369,   370,   371,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,  1096,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,   406,   407,   408,   409,
    1097,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,     0,   424,   425,   426,   427,
     428,   429,   430,   431,   432,     0, -2142,   434,   435,  1098,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   451,   452,   805,     0,     0,
     454,   455,     0,   456,   457,   458,   459,   460,   461,   462,
       0,   463,  1099,  1100,     0,     0,   466,   467,   806,   469,
     807,  1101,   471,   472,   808,   474,   475,  3651,   477,   478,
       0,     0,   479,   480,   481,  1102,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   491,  1103,   493,
       0,   494,   495,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524, -2142,     0,     0,     0,
       0,     0,     0,  1105,  1106,  1107,     0,     0,     0,     0,
    1108,     0,  1109,     0,     0,     0,     0,  1110,  1111,  1112,
    1113,   118,  1062,   826,  1063,  1064,  1065,  1066,  1067,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,  1068,     0,
       0,   130,   131,   132,     0,   133,   134,   135,   136,   137,
     138,   139,   140,  1069,   142,  1070,  1071,     0,   145,   146,
     147,   148,   149,   150,  1072,   795,   151,   152,   153,   154,
    1073,  1074,   157,     0,   158,   159,   160,   161,   796,     0,
     797,     0,   164,   165,   166,   167,   168,   169,   170,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,  1076,   192,   193,  1077,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,  1079,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,  1080,   223,   224,   225,   226,   227,   228,   798,  1081,
     230,     0,   231,   232,  1082,   234,     0,   235,     0,   236,
     237,     0,   238,   239,   240,   241,   242,   243,   244,   245,
       0,  1083,  1084,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,   270,   271,
     272,   273,   274,   275,   276,  1085,  1086,     0,  1087,     0,
     280,   281,   282,   283,   284,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,   292,   293,   294,     0,   295,
     296,   297,   298,   299,   300,   301,   302,  1089,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,  1090,   325,
    1091,   327,   328,   329,   330,     0,   331,   332,   333,   334,
    1093,   800,   336,  1094,   338,   339,   340,     0,   341,   342,
       0,     0,  1095,   344,   345,     0,     0,   346,   347,   348,
     349,   350,   351,   802,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   803,   368,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,  1096,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,   406,   407,   408,   409,  1097,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,   433,   434,   435,  1098,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   451,   452,   805,     0,     0,   454,
     455,     0,   456,   457,   458,   459,   460,   461,   462,     0,
     463,  1099,  1100,     0,     0,   466,   467,   806,   469,   807,
    1101,   471,   472,   808,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,  1103,   493,     0,
     494,   495,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,     0,     0,     0,     0,     0,
       0,     0,  1447,  1448,     0,     0,     0,     0,     0,  1108,
       0,  1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,
     118,  1062,   826,  1063,  1064,     0,  1066,  1067,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,  1068,     0,     0,
     130,   131,   132,     0,   133,   134,   135,   136,   137,   138,
     139,   140,  1069,   142,  1070,  1071,     0,   145,   146,   147,
     148,   149,   150,  1072,   795,   151,   152,   153,   154,  1073,
    1074,   157,     0,   158,   159,   160,   161,   796,     0,   797,
       0,   164,   165,   166,   167,   168,   169,   170,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
    1076,   192,   193,  1077,   195,     0,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,  1079,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
    1080,   223,   224,   225,   226,   227,   228,   798,  1081,   230,
       0,   231,   232,  1082,   234,     0,   235,     0,   236,   237,
       0,   238,   239,   240,   241,   242,   243,   244,   245,     0,
    1083,  1084,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,   270,   271,   272,
     273,   274,   275,   276,  1085,  1086,     0,  1087,     0,   280,
     281,   282,   283,   284,   285,   286,   287,     0,   288,   289,
     290,     0,     0,   291,   292,   293,   294,     0,   295,   296,
     297,   298,   299,   300,   301,   302,  1089,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,  1090,   325,  1091,
     327,   328,   329,   330,     0,   331,   332,   333,   334,  1093,
     800,   336,  1094,   338,   339,   340,     0,   341,   342,     0,
       0,   343,   344,   345,     0,     0,   346,   347,   348,   349,
     350,   351,   802,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   803,   368,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,  1096,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,   406,   407,   408,   409,  2253,  2254,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,   433,   434,   435,  1098,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   451,   452,   805,     0,     0,   454,   455,
       0,   456,   457,   458,   459,   460,   461,   462,     0,   463,
    1099,  1100,     0,     0,   466,   467,   806,   469,   807,  1101,
     471,   472,   808,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,     0,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,  1103,   493,     0,   494,
     495,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,     0,     0,     0,     0,     0,     0,
       0,  2255,  2256,     0,     0,     0,     0,     0,  1108,     0,
    1109,     0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,
    1062,   826,  1063,  1064,  1065,  1066,  1067,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,  1068,     0,     0,   130,
     131,   132,     0,   133,   134,   135,   136,   137,   138,   139,
     140,  1069,   142,  1070,  1071,     0,   145,   146,   147,   148,
     149,   150,  1072,   795,   151,   152,   153,   154,  1073,  1074,
     157,     0,   158,   159,   160,   161,   796,     0,   797,     0,
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,  1076,
     192,   193,  1077,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,  1079,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,  1080,
     223,   224,   225,   226,   227,   228,   798,  1081,   230,     0,
     231,   232,  1082,   234,     0,   235,     0,   236,   237,     0,
     238,   239,   240,   241,   242,   243,   244,   245,     0,  1083,
    1084,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
     274,   275,   276,  1085,  1086,     0,  1087,     0,   280,     0,
     282,   283,   284,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,   292,   293,   294,     0,   295,   296,   297,
     298,   299,   300,   301,   302,  1089,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,  1090,   325,  1091,   327,
     328,   329,   330,     0,   331,   332,   333,   334,  1093,   800,
     336,  1094,   338,   339,   340,     0,   341,   342,     0,     0,
    1095,   344,   345,     0,     0,   346,   347,   348,   349,   350,
     351,   802,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     803,   368,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,  1096,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,   406,   407,   408,   409,  1097,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,   433,   434,   435,  1098,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   805,     0,     0,   454,   455,     0,
     456,   457,   458,   459,   460,   461,   462,     0,   463,  1099,
    1100,     0,     0,   466,   467,   806,   469,   807,  1101,   471,
     472,   808,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,  1103,   493,     0,   494,   495,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,     0,     0,     0,     0,     0,     0,     0,
    1447,  1448,     0,     0,     0,     0,     0,  1108,     0,  1109,
       0,     0,     0,     0,  1110,  1111,  1112,  1113,   118,  1062,
     826,  1063,  1064,     0,  1066,  1067,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,  1068,     0,     0,   130,   131,
     132,     0,   133,   134,   135,   136,   137,   138,   139,   140,
    1069,   142,  1070,  1071,     0,   145,   146,   147,   148,   149,
     150,  1072,   795,   151,   152,   153,   154,  1073,  1074,   157,
       0,   158,   159,   160,   161,   796,     0,   797,     0,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,  1076,   192,
     193,  1077,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,  1079,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,  1080,   223,
     224,   225,   226,   227,   228,   798,  1081,   230,     0,   231,
     232,  1082,   234,     0,   235,     0,   236,   237,     0,   238,
     239,   240,   241,   242,   243,   244,   245,  3192,  1083,  1084,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,   270,   271,   272,   273,   274,
     275,   276,  1085,  1086,     0,  1087,     0,   280,   281,   282,
     283,   284,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,   292,   293,   294,     0,   295,   296,   297,   298,
     299,   300,   301,   302,  1089,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,  1090,   325,  1091,   327,   328,
     329,   330,     0,   331,   332,   333,   334,  1093,   800,   336,
    1094,   338,   339,   340,     0,   341,   342,     0,     0,   343,
     344,   345,     0,     0,   346,   347,   348,   349,   350,   351,
     802,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   803,
     368,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
    1096,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,   433,   434,   435,  1098,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   451,   452,   805,     0,     0,   454,   455,     0,   456,
     457,   458,   459,   460,   461,   462,     0,   463,  1099,  1100,
       0,     0,   466,   467,   806,   469,   807,  1101,   471,   472,
     808,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,     0,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,  1103,   493,     0,   494,   495,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,     0,     0,     0,     0,     0,   118,  1062,   826,
    1063,  1064,     0,  1066,  1067,     0,  1108,     0,  2859,     0,
       0,     0,     0,  1110,  1111,  1112,  1113,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,  1068,     0,     0,   130,   131,   132,
       0,   133,   134,   135,   136,   137,   138,   139,   140,  1069,
     142,  1070,  1071,     0,   145,   146,   147,   148,   149,   150,
    1072,   795,   151,   152,   153,   154,  1073,  1074,   157,     0,
     158,   159,   160,   161,   796,     0,   797,     0,   164,   165,
     166,   167,   168,   169,   170,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,  1076,   192,   193,
    1077,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,  1079,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,  1080,   223,   224,
     225,   226,   227,   228,   798,  1081,   230,     0,   231,   232,
    1082,   234,     0,   235,     0,   236,   237,     0,   238,   239,
     240,   241,   242,   243,   244,   245,     0,  1083,  1084,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,   270,   271,   272,   273,   274,   275,
     276,  1085,  1086,     0,  1087,     0,   280,   281,   282,   283,
     284,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,   292,   293,   294,     0,   295,   296,   297,   298,   299,
     300,   301,   302,  1089,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,  1090,   325,  1091,   327,   328,   329,
     330,     0,   331,   332,   333,   334,  1093,   800,   336,  1094,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,   349,   350,   351,   802,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   803,   368,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,  1096,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,   433,   434,   435,  1098,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   805,     0,     0,   454,   455,     0,   456,   457,
     458,   459,   460,   461,   462,     0,   463,  1099,  1100,     0,
       0,   466,   467,   806,   469,   807,  1101,   471,   472,   808,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,  1103,   493,     0,   494,   495,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,     0,     0,     0,     0,     0,   118,  1062,   826,  1063,
    1064,     0,  1066,  1067,     0,  1108,     0,  2859,     0,     0,
       0,     0,  1110,  1111,  1112,  1113,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,  1068,     0,     0,   130,   131,   132,     0,
     133,   134,   135,   136,   137,   138,   139,   140,  1069,   142,
    1070,  1071,     0,   145,   146,   147,   148,   149,   150,  1072,
     795,   151,   152,   153,   154,  1073,  1074,   157,     0,   158,
     159,   160,   161,   796,     0,   797,     0,   164,   165,   166,
     167,   168,   169,   170,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,  1076,   192,   193,  1077,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
    1079,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,  1080,   223,   224,   225,
     226,   227,   228,   798,  1081,   230,     0,   231,   232,  1082,
     234,     0,   235,     0,   236,   237,     0,   238,   239,   240,
     241,   242,   243,   244,   245,     0,  1083,  1084,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,   270,   271,   272,   273,   274,   275,   276,
    1085,  1086,     0,  1087,     0,   280,   281,   282,   283,   284,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
     292,   293,   294,     0,   295,   296,   297,   298,   299,   300,
     301,   302,  1089,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,  1090,   325,  1091,   327,   328,   329,   330,
       0,   331,   332,   333,   334,  1093,   800,   336,  1094,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,   348,   349,   350,   351,   802,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,   803,   368,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,  1096,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
     406,   407,   408,   409,  1097,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,     0,
     433,   434,   435,  1098,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
     452,   805,     0,     0,   454,   455,     0,   456,   457,   458,
     459,   460,   461,   462,     0,   463,  1099,  1100,     0,     0,
     466,   467,   806,   469,   807,  1101,   471,   472,   808,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,     0,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   491,  1103,   493,     0,   494,   495,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
       0,     0,     0,     0,     0,   118,  1062,   826,  1063,  1064,
    1065,  1066,  1067,     0,  1108,     0,  1109,     0,     0,     0,
       0,  1110,  1111,  1112,  1113,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,  1068,     0,     0,   130,   131,   132,     0,   133,
     134,   135,   136,   137,   138,   139,     0,  1069,   142,  1070,
    1071,     0,   145,   146,   147,   148,   149,   150,  1072,   795,
     151,   152,   153,   154,  1073,  1074,   157,     0,   158,   159,
     160,   161,   796,     0,   797,     0,  1075,   165,   166,   167,
     168,   169,   170,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,   180,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,  1076,   192,   193,  1077,   195,
    1078,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,  1079,
     210,   211,     0,   212,   213,   214,     0,   215,     0,   217,
       0,   218,   219,   220,   221,  1080,   223,   224,   225,   226,
     227,   228,   798,  1081,   230,     0,   231,   232,  1082,   234,
       0,   235,     0,   236,   237,     0,   238,   239,   240,   241,
       0,   243,   244,   245,     0,  1083,  1084,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,   270,   271,   272,   273,   274,   275,   276,  1085,
    1086,     0,  1087,     0,   280,     0,     0,   283,   284,   285,
     286,   287,  1088,   288,   289,   290,     0,     0,   291,   292,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,  1089,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,  1090,   325,  1091,   327,   328,   329,   330,     0,
     331,   332,     0,   334,  1093,   800,   336,  1094,   338,   339,
     340,     0,   341,   342,     0,     0,  1095,   344,   345,     0,
       0,   346,   347,   348,   349,   350,   351,   802,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   803,   368,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,  1096,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,   406,
     407,   408,   409,  1097,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,  1098,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
     805,     0,     0,   454,   455,     0,   456,   457,   458,   459,
     460,   461,   462,     0,   463,  1099,  1100,     0,     0,   466,
     467,   806,   469,   807,  1101,   471,   472,   808,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,  1102,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,  1103,   493,     0,   494,   495,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,     0,
       0,     0,     0,     0,     0,     0,  1105,  1106,  1107,     0,
     980,  1376,   826,  1108,     0,  1109,  1066,     0,     0,     0,
    1110,  1111,  1112,  1113,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,   568,     0,     0,     0,     0,
     573,   131,   132,     0,   575,   134,   135,   576,   137,   138,
     139,   577,   578,   579,   580,   581,     0,   145,   146,   147,
     148,   149,   150,     0,     0,   151,   152,   153,   154,   585,
     586,   157,     0,   158,   159,   160,   161,   588,     0,   590,
       0,   592,   165,   166,   167,   168,   169,   593,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,   596,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     598,   192,   193,   599,   195,     0,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,   209,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
     609,   223,   224,   225,   226,   227,   228,   610,  1377,   230,
       0,   231,   232,   613,   234,     0,   235,     0,   236,   616,
       0,   618,   239,   240,   619,   620,   243,   244,   245,     0,
     622,   623,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,   625,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,   628,   629,   272,
     273,   274,   275,   276,   630,   631,     0,   633,     0,   280,
     635,   636,   283,   637,   285,   286,   287,     0,   288,   289,
     290,     0,     0,   291,   641,   293,   642,     0,   295,   296,
     297,   298,   299,   300,   301,   302,  2448,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   645,   646,   647,
     327,   328,   329,   648,     0,   331,   332,   650,   334,     0,
     652,   336,   653,   338,   339,   340,     0,   341,   342,  1378,
       0,   343,   344,   345,     0,     0,   346,   347,   659,   660,
     350,   661,   662,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   667,   668,   369,   370,   669,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,   672,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,   675,   407,   408,   409,   676,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,   678,   424,   425,   426,   427,   428,   429,
     679,   431,   432,     0,   681,   434,   435,   682,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   684,   452,   685,     0,     0,   454,   455,
       0,   456,   689,   458,   459,   460,   461,   462,     0,   463,
     691,   692,     0,     0,   466,   467,   695,   469,   696,  1379,
     471,   472,   698,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,   701,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   704,   705,   493,     0,   494,
     707,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   712,
     713,   714,   715,   716,   717,   718,   719,   720,   721,   722,
     521,   522,   523,   524,     0,     0,     0,     0,     0,   118,
       0,  1380,  1381,  2449,     0,     0,  1067,     0,  2450,     0,
    2451,     0,     0,     0,     0,     0,     0,     0,  1113,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,  1068,     0,     0,   130,
     131,   132,     0,   133,   134,   135,   136,   137,   138,   139,
     140,   141,   142,   143,   144,     0,   145,   146,   147,   148,
     149,   150,  1072,   795,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   796,     0,   797,     0,
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   798,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,   237,     0,
     238,   239,   240,   241,   242,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,   281,
     282,   283,   284,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,   292,   293,   294,     0,   295,   296,   297,
     298,   299,   300,   301,   302,  1089,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
     328,   329,   330,     0,   331,   332,   333,   334,     0,   800,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,   349,   350,
     351,   802,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     803,   368,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,   433,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   805,     0,     0,   454,   455,     0,
     456,   457,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   806,   469,   807,     0,   471,
     472,   808,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,   495,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,     0,     0,     0,     0,     0,   532,  2007,
       0,     0,     0,     0,  2008,  1067,     0,  1108,     0,  2172,
       0,     0,     0,     0,  1110,  1111,  1112,  1113,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   131,
     132,     0,     0,   134,   135,     0,   137,   138,   139,   140,
     141,     0,   143,   144,     0,   145,   146,   147,   148,   149,
     150,     0,     0,   151,   152,   153,   154,   155,   156,   157,
       0,   158,   159,   160,   161,   162,     0,     0,     0,   164,
     165,   166,   167,   168,   169,     0,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,     0,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,     0,   230,     0,   231,
     232,   233,   234,     0,   235,     0,   236,     0,     0,     0,
     239,   240,   533,     0,   243,   244,   245,     0,   246,   247,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
       0,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,     0,   271,   272,   273,   274,
     275,   276,   277,   278,     0,   279,     0,   280,     0,     0,
     283,     0,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,     0,   293,     0,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   534,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,     0,   326,   327,   328,
     329,   330,     0,   331,   332,     0,   334,     0,   335,   336,
     337,   338,   339,   340,     0,   341,   342,     0,     0,   343,
     344,   345,     0,     0,   346,   347,   348,     0,   350,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   367,
       0,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     386,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,     0,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,     0,   434,   435,   436,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   535,   452,   453,     0,     0,   454,   455,     0,   456,
       0,   458,   459,   460,   461,   462,     0,   463,   464,   465,
       0,     0,   466,   467,   468,   469,   470,     0,   471,   472,
     473,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,     0,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,   492,   493,     0,   494,     0,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,     0,     0,     0,   532,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1110,  1111,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,  1016,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
    -560,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,  -560,   231,   232,   233,   234,
    -560,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,  -560,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,  -560,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,  -560,   341,   342,     0,     0,   343,   344,   345,     0,
    -560,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,  -560,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1185,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   980,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2541,
    3388,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     3,     4,     0,   568,     0,
       0,     0,     0,   573,   131,   132,     0,   575,   134,   135,
     576,   137,   138,   139,   577,   578,   579,   580,   581,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   585,   586,   157,     0,   158,   159,   160,   161,
     588,     0,   590,     0,   592,   165,   166,   167,   168,   169,
     593,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,   596,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   598,   192,   193,   599,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,    14,    15,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   609,   223,   224,   225,   226,   227,   228,
     610,     0,   230,     0,   231,   232,   613,   234,     0,   235,
       0,   236,   616,    23,   618,   239,   240,   619,   620,   243,
     244,   245,     0,   622,   623,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,   625,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
     628,   629,   272,   273,   274,   275,   276,   630,   631,     0,
     633,     0,   280,   635,   636,   283,   637,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,   641,   293,   642,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   644,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     645,   646,   647,   327,   328,   329,   648,     0,   331,   332,
     650,   334,     0,   652,   336,   653,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   659,   660,   350,   661,   662,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,    26,    27,
      28,     0,   365,   366,   667,   668,   369,   370,   669,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   672,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,   675,   407,   408,
     409,   676,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,    33,   678,   424,   425,   426,
     427,   428,   429,   679,   431,   432,    35,   681,   434,   435,
     682,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   684,   452,   685,    37,
       0,   454,   455,    38,   456,   689,   458,   459,   460,   461,
     462,     0,   463,   691,   692,     0,     0,   466,   467,   695,
     469,   696,     0,   471,   472,   698,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,   701,    40,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   981,   705,
     493,     0,   494,   707,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,    44,   504,   505,   506,   507,
     508,   509,   712,   713,   714,   715,   716,   717,   718,   719,
     720,   721,   722,   521,   522,   523,   524,     0,   118,    45,
     557,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    46,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,     0,     0,     0,   130,   131,
     132,     0,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,     0,   145,   146,   147,   148,   149,
     150,     0,   795,   151,   152,   153,   154,   155,   156,   157,
       0,   158,   159,   160,   161,   796,     0,   797,     0,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,    14,    15,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   798,     0,   230,     0,   231,
     232,   233,   234,     0,   235,     0,   236,   237,    23,   238,
     239,   240,   241,   242,   243,   244,   245,     0,   246,   247,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,     0,   279,     0,   280,   281,   282,
     283,   284,   285,   286,   287,     0,   288,   289,   290,   799,
       0,   291,   292,   293,   294,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
     329,   330,     0,   331,   332,   333,   334,     0,   800,   336,
     337,   338,   339,   340,     0,   341,   342,     0,   801,   343,
     344,   345,     0,     0,   346,   347,   348,   349,   350,   351,
     802,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,    26,    27,    28,     0,   365,   366,   803,
     368,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     386,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,   406,   407,   408,   409,   410,   804,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
      33,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,    35,   433,   434,   435,   436,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   451,   452,   805,    37,     0,   454,   455,    38,   456,
     457,   458,   459,   460,   461,   462,     0,   463,   464,   465,
       0,     0,   466,   467,   806,   469,   807,     0,   471,   472,
     808,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,     0,    40,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   809,   492,   493,     0,   494,   495,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
      44,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,     0,   118,    45,   557,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,   130,   131,   132,     0,   133,   134,   135,
     136,   137,   138,   139,   140,   141,   142,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,   795,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     796,     0,   797,     0,   164,   165,   166,   167,   168,   169,
     170,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     798,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,   237,     0,   238,   239,   240,   241,   242,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,   281,   282,   283,   284,   285,   286,   287,
       0,   288,   289,   290,   799,     0,   291,   292,   293,   294,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,   331,   332,
     333,   334,     0,   800,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   801,   343,   344,   345,     0,     0,   346,
     347,   348,   349,   350,   351,   802,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   803,   368,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,   406,   407,   408,
     409,   410,   804,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,   433,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   805,     0,
       0,   454,   455,     0,   456,   457,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   806,
     469,   807,     0,   471,   472,   808,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   809,   492,
     493,     0,   494,   495,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   118,     0,   557,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   810,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,   130,   131,   132,
       0,   133,   134,   135,   136,   137,   138,   139,   140,   141,
     142,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,   795,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   796,     0,   797,     0,   164,   165,
     166,   167,   168,   169,   170,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   798,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,   237,     0,   238,   239,
     240,   241,   242,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,   281,   282,   283,
     284,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,   292,   293,   294,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
     330,     0,   331,   332,   333,   334,     0,   800,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   801,   343,   344,
     345,     0,     0,   346,   347,   348,   349,   350,   351,   802,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   803,   368,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,   406,   407,   408,   409,   410,   804,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,   433,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   805,     0,     0,   454,   455,     0,   456,   457,
     458,   459,   460,   461,   462,     0,   463,   464,   465,     0,
       0,   466,   467,   806,   469,   807,     0,   471,   472,   808,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,   495,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   118,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1024,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,     0,
       0,   130,   131,   132,     0,   133,   134,   135,   136,   137,
     138,   139,   140,   141,   142,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,   795,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   796,     0,
     797,     0,   164,   165,   166,   167,   168,   169,   170,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   798,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
     237,     0,   238,   239,   240,   241,   242,   243,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,   281,   282,   283,   284,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,   292,   293,   294,     0,   295,
     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,   328,   329,   330,     0,   331,   332,   333,   334,
       0,   800,   336,   337,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,   348,
     349,   350,   351,   802,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   803,   368,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,   406,   407,   408,   409,   410,
     804,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,   433,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   451,   452,   805,     0,     0,   454,
     455,     0,   456,   457,   458,   459,   460,   461,   462,     0,
     463,   464,   465,     0,     0,   466,   467,   806,   469,   807,
       0,   471,   472,   808,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   493,     0,
     494,   495,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   118,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    46,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,   130,   131,   132,     0,   133,
     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,   795,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   796,     0,   797,     0,   164,   165,   166,   167,
     168,   169,   170,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,   180,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   798,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,   237,     0,   238,   239,   240,   241,
     242,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,   281,   282,   283,   284,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,   292,
     293,   294,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,     0,
     331,   332,   333,   334,     0,   800,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,   349,   350,   351,   802,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   803,   368,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,   433,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
     805,     0,     0,   454,   455,     0,   456,   457,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   806,   469,   807,     0,   471,   472,   808,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,   495,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3480,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,    14,    15,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,    23,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,    26,    27,    28,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,    33,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,    35,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,    37,     0,   454,   455,    38,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,    40,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   809,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,    44,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,     0,   532,    45,   557,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,   899,   127,   128,   129,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   131,   132,     0,     0,   134,
     135,     0,   137,   138,   139,   140,   141,     0,   143,   144,
       0,   145,   146,   147,   148,   149,   150,     0,     0,   151,
     152,   153,   154,   155,   156,   157,     0,   158,   159,   160,
     161,   162,     0,     0,     0,   164,   165,   166,   167,   168,
     169,     0,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,     0,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,     0,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,   209,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,     0,   230,     0,   231,   232,   233,   234,     0,
     235,     0,   236,     0,    23,     0,   239,   240,   533,     0,
     243,   244,   245,     0,   246,   247,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,     0,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,     0,   271,   272,   273,   274,   275,   276,   277,   278,
       0,   279,     0,   280,     0,     0,   283,     0,   285,   286,
     287,     0,   288,   289,   290,     0,     0,   291,     0,   293,
       0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
     534,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,     0,   326,   327,   328,   329,   330,     0,   331,
     332,     0,   334,     0,   335,   336,   337,   338,   339,   340,
       0,   341,   342,     0,     0,   343,   344,   345,     0,     0,
     346,   347,   348,     0,   350,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,    26,
      27,    28,     0,   365,   366,   367,     0,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,   386,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,     0,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,    33,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,     0,   434,
     435,   436,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   535,   452,   453,
       0,     0,   454,   455,    38,   456,     0,   458,   459,   460,
     461,   462,     0,   463,   900,   465,     0,     0,   901,   467,
     468,   469,   470,     0,   471,   472,   473,   474,   475,   476,
     477,   478,     0,     0,   479,   480,   481,     0,    40,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   809,
     492,   493,     0,   494,     0,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,    44,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,     0,   532,
      45,   557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    46,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,    23,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,    26,    27,    28,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,    33,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,    38,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,    40,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   809,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,    44,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,     0,   532,    45,   557,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   131,   132,     0,     0,   134,
     135,     0,   137,   138,   139,   140,   141,     0,   143,   144,
       0,   145,   146,   147,   148,   149,   150,     0,     0,   151,
     152,   153,   154,   155,   156,   157,     0,   158,   159,   160,
     161,   162,     0,     0,     0,   164,   165,   166,   167,   168,
     169,     0,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,     0,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,     0,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,   209,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,     0,   230,     0,   231,   232,   233,   234,     0,
     235,     0,   236,     0,     0,     0,   239,   240,   533,     0,
     243,   244,   245,     0,   246,   247,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,     0,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,     0,   271,   272,   273,   274,   275,   276,   277,   278,
       0,   279,     0,   280,     0,     0,   283,     0,   285,   286,
     287,     0,   288,   289,   290,     0,     0,   291,     0,   293,
       0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
     534,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,     0,   326,   327,   328,   329,   330,     0,   331,
     332,     0,   334,     0,   335,   336,   337,   338,   339,   340,
       0,   341,   342,     0,     0,   343,   344,   345,     0,     0,
     346,   347,   348,     0,   350,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   367,     0,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,   386,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,     0,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,     0,   434,
     435,   436,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   535,   452,   453,
       0,     0,   454,   455,     0,   456,     0,   458,   459,   460,
     461,   462,     0,   463,   464,   465,     0,     0,   466,   467,
     468,   469,   470,     0,   471,   472,   473,   474,   475,   476,
     477,   478,     0,     0,   479,   480,   481,     0,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
     492,   493,     0,   494,     0,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   532,     0,
     557,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1000,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   131,
     132,     0,     0,   134,   135,     0,   137,   138,   139,   140,
     141,     0,   143,   144,     0,   145,   146,   147,   148,   149,
     150,     0,     0,   151,   152,   153,   154,   155,   156,   157,
       0,   158,   159,   160,   161,   162,     0,     0,     0,   164,
     165,   166,   167,   168,   169,     0,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,     0,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,     0,   230,     0,   231,
     232,   233,   234,     0,   235,     0,   236,     0,     0,     0,
     239,   240,   533,     0,   243,   244,   245,     0,   246,   247,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
       0,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,     0,   271,   272,   273,   274,
     275,   276,   277,   278,     0,   279,     0,   280,     0,     0,
     283,     0,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,     0,   293,     0,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   534,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,     0,   326,   327,   328,
     329,   330,     0,   331,   332,     0,   334,     0,   335,   336,
     337,   338,   339,   340,     0,   341,   342,     0,     0,   343,
     344,   345,     0,     0,   346,   347,   348,     0,   350,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   367,
       0,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     386,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,     0,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,     0,   434,   435,   436,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   535,   452,   453,     0,     0,   454,   455,     0,   456,
       0,   458,   459,   460,   461,   462,     0,   463,   464,   465,
       0,     0,   466,   467,   468,   469,   470,     0,   471,   472,
     473,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,     0,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,   492,   493,     0,   494,     0,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   532,     0,   557,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1506,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   131,   132,     0,     0,   134,   135,     0,
     137,   138,   139,   140,   141,     0,   143,   144,     0,   145,
     146,   147,   148,   149,   150,     0,     0,   151,   152,   153,
     154,   155,   156,   157,     0,   158,   159,   160,   161,   162,
       0,     0,     0,   164,   165,   166,   167,   168,   169,     0,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,     0,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,     0,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,   209,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
       0,   230,     0,   231,   232,   233,   234,     0,   235,     0,
     236,     0,     0,     0,   239,   240,   533,     0,   243,   244,
     245,     0,   246,   247,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,     0,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,     0,
     271,   272,   273,   274,   275,   276,   277,   278,     0,   279,
       0,   280,     0,     0,   283,     0,   285,   286,   287,     0,
     288,   289,   290,     0,     0,   291,     0,   293,     0,     0,
     295,   296,   297,   298,   299,   300,   301,   302,   534,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
       0,   326,   327,   328,   329,   330,     0,   331,   332,     0,
     334,     0,   335,   336,   337,   338,   339,   340,     0,   341,
     342,     0,     0,   343,   344,   345,     0,     0,   346,   347,
     348,     0,   350,     0,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   367,     0,   369,   370,   371,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,   386,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,     0,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,     0,   424,   425,   426,   427,
     428,   429,   430,   431,   432,     0,     0,   434,   435,   436,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   535,   452,   453,     0,     0,
     454,   455,     0,   456,     0,   458,   459,   460,   461,   462,
       0,   463,   464,   465,     0,     0,   466,   467,   468,   469,
     470,     0,   471,   472,   473,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,     0,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   491,   492,   493,
       0,   494,     0,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   532,     0,   557,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2133,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   131,   132,     0,
       0,   134,   135,     0,   137,   138,   139,   140,   141,     0,
     143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
       0,   151,   152,   153,   154,   155,   156,   157,     0,   158,
     159,   160,   161,   162,     0,     0,     0,   164,   165,   166,
     167,   168,   169,     0,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,     0,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
     209,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   229,     0,   230,     0,   231,   232,   233,
     234,     0,   235,     0,   236,     0,     0,     0,   239,   240,
     533,     0,   243,   244,   245,     0,   246,   247,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,     0,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,     0,   271,   272,   273,   274,   275,   276,
     277,   278,     0,   279,     0,   280,     0,     0,   283,     0,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
       0,   293,     0,     0,   295,   296,   297,   298,   299,   300,
     301,   302,   534,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,     0,   326,   327,   328,   329,   330,
       0,   331,   332,     0,   334,     0,   335,   336,   337,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,   348,     0,   350,     0,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,   367,     0,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,   386,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
       0,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,     0,
       0,   434,   435,   436,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   535,
     452,   453,     0,     0,   454,   455,     0,   456,     0,   458,
     459,   460,   461,   462,     0,   463,   464,   465,     0,     0,
     466,   467,   468,   469,   470,     0,   471,   472,   473,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,     0,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   491,   492,   493,     0,   494,     0,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     532,     0,   557,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2279,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   131,   132,     0,     0,   134,   135,     0,   137,   138,
     139,   140,   141,     0,   143,   144,     0,   145,   146,   147,
     148,   149,   150,     0,     0,   151,   152,   153,   154,   155,
     156,   157,     0,   158,   159,   160,   161,   162,     0,     0,
       0,   164,   165,   166,   167,   168,   169,     0,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,     0,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,     0,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,   209,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,     0,   230,
       0,   231,   232,   233,   234,     0,   235,     0,   236,     0,
       0,     0,   239,   240,   533,     0,   243,   244,   245,     0,
     246,   247,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,     0,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,     0,   271,   272,
     273,   274,   275,   276,   277,   278,     0,   279,     0,   280,
       0,     0,   283,     0,   285,   286,   287,     0,   288,   289,
     290,     0,     0,   291,     0,   293,     0,     0,   295,   296,
     297,   298,   299,   300,   301,   302,   534,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,     0,   326,
     327,   328,   329,   330,     0,   331,   332,     0,   334,     0,
     335,   336,   337,   338,   339,   340,     0,   341,   342,     0,
       0,   343,   344,   345,     0,     0,   346,   347,   348,     0,
     350,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   367,     0,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,   386,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,     0,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,     0,   434,   435,   436,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   535,   452,   453,     0,     0,   454,   455,
       0,   456,     0,   458,   459,   460,   461,   462,     0,   463,
     464,   465,     0,     0,   466,   467,   468,   469,   470,     0,
     471,   472,   473,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,     0,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,   492,   493,     0,   494,
       0,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   532,     0,   557,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   131,   132,     0,     0,   134,
     135,     0,   137,   138,   139,   140,   141,     0,   143,   144,
       0,   145,   146,   147,   148,   149,   150,     0,     0,   151,
     152,   153,   154,   155,   156,   157,     0,   158,   159,   160,
     161,   162,     0,     0,     0,   164,   165,   166,   167,   168,
     169,     0,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,     0,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,     0,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,   209,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,     0,   230,     0,   231,   232,   233,   234,     0,
     235,     0,   236,     0,     0,     0,   239,   240,   533,     0,
     243,   244,   245,     0,   246,   247,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,     0,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,     0,   271,   272,   273,   274,   275,   276,   277,   278,
       0,   279,     0,   280,     0,     0,   283,     0,   285,   286,
     287,     0,   288,   289,   290,     0,     0,   291,     0,   293,
       0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
     534,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,     0,   326,   327,   328,   329,   330,     0,   331,
     332,     0,   334,     0,   335,   336,   337,   338,   339,   340,
       0,   341,   342,     0,     0,   343,   344,   345,     0,     0,
     346,   347,   348,     0,   350,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   367,     0,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,   386,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,     0,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,     0,   434,
     435,   436,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   535,   452,   453,
       0,     0,   454,   455,     0,   456,     0,   458,   459,   460,
     461,   462,     0,   463,   464,   465,     0,     0,   466,   467,
     468,   469,   470,     0,   471,   472,   473,   474,   475,   476,
     477,   478,     0,     0,   479,   480,   481,     0,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
     492,   493,     0,   494,     0,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   532,     0,
     557,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2683,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   131,
     132,     0,     0,   134,   135,     0,   137,   138,   139,   140,
     141,     0,   143,   144,     0,   145,   146,   147,   148,   149,
     150,     0,     0,   151,   152,   153,   154,   155,   156,   157,
       0,   158,   159,   160,   161,   162,     0,     0,     0,   164,
     165,   166,   167,   168,   169,     0,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,     0,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,     0,   230,     0,   231,
     232,   233,   234,     0,   235,     0,   236,     0,     0,     0,
     239,   240,   533,     0,   243,   244,   245,     0,   246,   247,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
       0,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,     0,   271,   272,   273,   274,
     275,   276,   277,   278,     0,   279,     0,   280,     0,     0,
     283,     0,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,     0,   293,     0,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   534,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,     0,   326,   327,   328,
     329,   330,     0,   331,   332,     0,   334,     0,   335,   336,
     337,   338,   339,   340,     0,   341,   342,     0,     0,   343,
     344,   345,     0,     0,   346,   347,   348,     0,   350,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   367,
       0,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     386,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,     0,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,     0,   434,   435,   436,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   535,   452,   453,     0,     0,   454,   455,     0,   456,
       0,   458,   459,   460,   461,   462,     0,   463,   464,   465,
       0,     0,   466,   467,   468,   469,   470,     0,   471,   472,
     473,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,     0,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,   492,   493,     0,   494,     0,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   532,     0,   557,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2906,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   131,   132,     0,     0,   134,   135,     0,
     137,   138,   139,   140,   141,     0,   143,   144,     0,   145,
     146,   147,   148,   149,   150,     0,     0,   151,   152,   153,
     154,   155,   156,   157,     0,   158,   159,   160,   161,   162,
       0,     0,     0,   164,   165,   166,   167,   168,   169,     0,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,     0,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,     0,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,   209,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
       0,   230,     0,   231,   232,   233,   234,     0,   235,     0,
     236,     0,     0,     0,   239,   240,   533,     0,   243,   244,
     245,     0,   246,   247,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,     0,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,     0,
     271,   272,   273,   274,   275,   276,   277,   278,     0,   279,
       0,   280,     0,     0,   283,     0,   285,   286,   287,     0,
     288,   289,   290,     0,     0,   291,     0,   293,     0,     0,
     295,   296,   297,   298,   299,   300,   301,   302,   534,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
       0,   326,   327,   328,   329,   330,     0,   331,   332,     0,
     334,     0,   335,   336,   337,   338,   339,   340,     0,   341,
     342,     0,     0,   343,   344,   345,     0,     0,   346,   347,
     348,     0,   350,     0,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   367,     0,   369,   370,   371,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,   386,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,     0,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,     0,   424,   425,   426,   427,
     428,   429,   430,   431,   432,     0,     0,   434,   435,   436,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   535,   452,   453,     0,     0,
     454,   455,     0,   456,     0,   458,   459,   460,   461,   462,
       0,   463,   464,   465,     0,     0,   466,   467,   468,   469,
     470,     0,   471,   472,   473,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,     0,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   491,   492,   493,
       0,   494,     0,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   532,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3383,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   131,   132,     0,
       0,   134,   135,     0,   137,   138,   139,   140,   141,     0,
     143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
       0,   151,   152,   153,   154,   155,   156,   157,     0,   158,
     159,   160,   161,   162,     0,     0,     0,   164,   165,   166,
     167,   168,   169,     0,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,     0,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
     209,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   229,     0,   230,     0,   231,   232,   233,
     234,     0,   235,     0,   236,     0,     0,     0,   239,   240,
     533,     0,   243,   244,   245,     0,   246,   247,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,     0,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,     0,   271,   272,   273,   274,   275,   276,
     277,   278,     0,   279,     0,   280,     0,     0,   283,     0,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
       0,   293,     0,     0,   295,   296,   297,   298,   299,   300,
     301,   302,   534,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,     0,   326,   327,   328,   329,   330,
       0,   331,   332,     0,   334,     0,   335,   336,   337,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,   348,     0,   350,     0,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,   367,     0,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,   386,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
       0,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,     0,
       0,   434,   435,   436,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   535,
     452,   453,     0,     0,   454,   455,     0,   456,     0,   458,
     459,   460,   461,   462,     0,   463,   464,   465,     0,     0,
     466,   467,   468,   469,   470,     0,   471,   472,   473,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,     0,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   491,   492,   493,     0,   494,     0,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     532,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2239,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   131,   132,     0,     0,   134,   135,     0,   137,   138,
     139,   140,   141,     0,   143,   144,     0,   145,   146,   147,
     148,   149,   150,     0,     0,   151,   152,   153,   154,   155,
     156,   157,     0,   158,   159,   160,   161,   162,     0,     0,
       0,   164,   165,   166,   167,   168,   169,     0,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,     0,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,     0,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,   209,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,     0,   230,
       0,   231,   232,   233,   234,     0,   235,     0,   236,     0,
       0,     0,   239,   240,   533,     0,   243,   244,   245,     0,
     246,   247,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,     0,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,     0,   271,   272,
     273,   274,   275,   276,   277,   278,     0,   279,     0,   280,
       0,     0,   283,     0,   285,   286,   287,     0,   288,   289,
     290,     0,     0,   291,     0,   293,     0,     0,   295,   296,
     297,   298,   299,   300,   301,   302,   534,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,     0,   326,
     327,   328,   329,   330,     0,   331,   332,     0,   334,     0,
     335,   336,   337,   338,   339,   340,     0,   341,   342,     0,
       0,   343,   344,   345,     0,     0,   346,   347,   348,     0,
     350,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   367,     0,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,   386,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,     0,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,     0,   434,   435,   436,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   535,   452,   453,     0,     0,   454,   455,
       0,   456,     0,   458,   459,   460,   461,   462,     0,   463,
     464,   465,     0,     0,   466,   467,   468,   469,   470,     0,
     471,   472,   473,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,     0,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,   492,   493,     0,   494,
       0,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,  3036,  1376,   826,     0,     0,  2107,
    1066,     0,     0,     0,     0,     0,  2108,  2109,     0,     0,
    3238,  2110,  2111,  2112,   119,   120,   121,   122,   123,   124,
     125,   126,   564,   127,   128,   129,   565,   566,   567,  3037,
     569,   570,   571,   572,  3038,   131,   132,   574,  3039,   134,
     135,  3040,   137,   138,   139,     0,  1520,  3041,  1522,  1523,
     582,   145,   146,   147,   148,   149,   150,   583,   584,   151,
     152,   153,   154,  1524,  1525,   157,   587,   158,   159,   160,
     161,     0,   589,  3042,   591,  3043,   165,   166,   167,   168,
     169,  3044,   171,   172,   173,   594,   174,   175,   176,   177,
     178,   179,   595,  3045,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,  1530,   192,   193,  1531,   195,   600,
     196,   601,   197,   198,   199,   200,   201,   202,   602,   603,
     203,   204,   205,   206,   604,   605,   207,   208,  1079,   210,
     211,   606,   212,   213,   214,   607,   215,   216,   217,   608,
     218,   219,   220,   221,     0,   223,   224,   225,   226,   227,
     228,     0,   611,   230,   612,   231,   232,  1532,   234,   614,
     235,   615,   236,  3046,   617,  3047,   239,   240,  3048,  3049,
     243,   244,   245,   621,     0,     0,   248,   249,   624,   250,
     251,   252,   253,   254,   255,   256,  3050,   258,   259,   260,
     261,   626,   262,   263,   264,   265,   266,   267,   268,   627,
     269,  3051,     0,   272,   273,   274,   275,   276,  1538,  1539,
     632,  1540,   634,   280,  3052,  3053,   283,  3054,   285,   286,
     287,   638,   288,   289,   290,   639,   640,   291,  3055,   293,
    3056,   643,   295,   296,   297,   298,   299,   300,   301,   302,
    3057,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,  1547,  3058,  1549,   327,   328,   329,  3059,   649,   331,
     332,  3060,   334,   651,     0,   336,  1551,   338,   339,   340,
     654,   341,   342,   655,   656,  3061,   344,   345,   657,   658,
     346,   347,     0,  3062,   350,  3063,     0,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   663,
     664,   665,   666,   365,   366,     0,  3064,   369,   370,     0,
     372,   373,   374,   670,   375,   376,   377,   378,   379,   380,
     671,   381,   382,   383,   384,   385,  1555,   387,   388,   389,
     390,   673,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   674,   404,   405,  3065,   407,
     408,   409,  1557,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,   677,  3066,   424,   425,
     426,   427,   428,   429,  3067,   431,   432,   680,  3068,   434,
     435,  1561,   437,   683,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,  3069,   452,     0,
     686,   687,   454,   455,   688,   456,  3070,   458,   459,   460,
     461,   462,   690,   463,  1564,  1565,   693,   694,   466,   467,
       0,   469,     0,   697,   471,   472,  3071,   474,   475,   476,
     477,   478,  3072,   700,   479,   480,   481,  3073,   702,   482,
     483,   484,   485,   703,   486,   487,   488,   489,   490,     0,
    1569,   493,   706,   494,  3074,   496,   497,   498,   499,   500,
     501,   502,   708,   709,   503,   710,   711,   504,   505,   506,
     507,   508,   509,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   521,   522,   523,   524,     0,   532,
       0,  2113,  2114,  2115,  2107,  3075,  3076,  2118,  2119,  2120,
    2121,  2108,  2109,     0,     0,     0,  2110,  2111,  2112,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,     0,     0,     0,  2113,  2114,  2115,     0,
    2116,  2117,  2118,  2119,  2120,  2121,  1656,     0,     0,  1657,
       0,     0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,
    1664,     0,     0,     0,  1656,     0,     0,  1657,     0,     0,
       0,  1658,  1659,  1660,  1661,  1665,  1662,  1663,  1664,     0,
       0,     0,     0,     0,     0,  1667,     0,     0,     0,     0,
       0,     0,  1668,  1665,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1667,     0,     0,     0,     0,     0,     0,
    1668,     0,     0,  1656,     0,     0,  1657,     0,     0,  1669,
    1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1669,     0,     0,
       0,     0,  1665,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1667,  1656,     0,     0,  1657,     0,     0,  1668,
    1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1665,     0,     0,     0,  1669,     0,     0,     0,
       0,     0,  1667,     0,     0,     0,     0,     0,     0,  1668,
    1656,     0,     0,  1657,     0,     0,     0,  1658,  1659,  1660,
    1661,     0,  1662,  1663,  1664,     0,  1670,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1669,     0,     0,  1665,
       0,     0,     0,  1671,  1670,     0,     0,     0,  1672,  1667,
       0,     0,     0,     0,     0,     0,  1668,     0,     0,     0,
       0,  1671,     0,     0,     0,     0,  1672,     0,     0,     0,
       0,  1673,  1674,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1669,     0,     0,     0,  1675,     0,  1673,
    1674,     0,     0,  1670,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1675,     0,     0,     0,     0,
    1671,     0,     0,     0,     0,  1672,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1676,     0,     0,  1677,     0,
       0,     0,     0,  1670,     0,     0,     0,     0,  1673,  1674,
       0,     0,  1678,  1676,     0,  1679,  1677,     0,     0,     0,
    1671,     0,     0,     0,  1675,  1672,     0,     0,     0,     0,
    1678,     0,     0,  1679,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1673,  1674,
    1670,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1676,     0,  1675,  1677,     0,  1671,     0,     0,
       0,     0,  1672,     0,     0,     0,     0,     0,     0,  1678,
       0,     0,  1679,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1673,  1674,     0,     0,     0,
       0,     0,  1676,     0,     0,  1677,     0,     0,     0,     0,
       0,  1675,     0,     0,     0,  1680,     0,     0,     0,  1678,
       0,     0,  1679,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1680,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1676,
       0,     0,  1677,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1678,     0,     0,  1679,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1680,     0,     0,  1656,     0,     0,  1657,     0,
       0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1665,     0,     0,     0,     0,     0,
       0,     0,  1680,     0,  1667,  1681,     0,     0,  1682,  1683,
    1684,  1668,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,
       0,     0,  2607,  1681,     0,     0,  1682,  1683,  1684,     0,
    1685,  1686,  1687,  1688,  1689,  1690,     0,     0,  1669,     0,
    2830,     0,     0,     0,     0,     0,     0,     0,     0,  1680,
       0,     0,     0,     0,     0,     0,     0,  1656,     0,     0,
    1657,     0,     0,     0,  1658,  1659,  1660,  1661,     0,  1662,
    1663,  1664,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,  1665,     0,     0,  2897,
       0,     0,     0,     0,     0,     0,  1667,     0,     0,     0,
       0,     0,     0,  1668,     0,     0,     0,     0,     0,     0,
       0,     0,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,     0,     0,     0,  2910,
    1669,     0,     0,     0,     0,  1670,  1656,     0,     0,  1657,
       0,     0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,
    1664,     0,  1671,     0,     0,     0,     0,  1672,     0,  1681,
       0,     0,  1682,  1683,  1684,  1665,  1685,  1686,  1687,  1688,
    1689,  1690,     0,     0,     0,  1667,  2982,     0,     0,     0,
    1673,  1674,  1668,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1675,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1669,
       0,  1656,     0,     0,  1657,     0,     0,     0,  1658,  1659,
    1660,  1661,     0,  1662,  1663,  1664,     0,  1670,     0,     0,
       0,     0,     0,     0,  1676,     0,     0,  1677,     0,     0,
    1665,     0,     0,     0,  1671,     0,     0,     0,     0,  1672,
    1667,  1678,     0,     0,  1679,     0,     0,  1668,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1673,  1674,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1669,     0,     0,     0,  1675,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1670,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1671,     0,     0,  1676,     0,  1672,  1677,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1678,     0,     0,  1679,     0,     0,     0,
       0,  1673,  1674,     0,  1680,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1656,     0,  1675,  1657,     0,
       0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,
       0,  1670,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1665,     0,     0,     0,  1671,     0,
       0,     0,     0,  1672,  1667,  1676,     0,     0,  1677,     0,
       0,  1668,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1678,     0,     0,  1679,  1673,  1674,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1669,     0,
       0,     0,  1675,     0,     0,     0,  1680,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1681,     0,     0,  1682,  1683,  1684,
       0,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,     0,
    1676,  3230,     0,  1677,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1678,     0,     0,
    1679,     0,     0,     0,     0,     0,     0,     0,     0,  1656,
       0,     0,  1657,     0,     0,     0,  1658,  1659,  1660,  1661,
       0,  1662,  1663,  1664,     0,  1680,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1670,     0,     0,  1665,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1667,     0,
       0,     0,  1671,     0,     0,  1668,  1681,  1672,     0,  1682,
    1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,
       0,     0,     0,  3237,     0,     0,  1656,     0,     0,  1657,
    1673,  1674,  1669,  1658,  1659,  1660,  1661,     0,  1662,  1663,
    1664,     0,     0,     0,     0,     0,  1675,     0,     0,     0,
    1680,     0,     0,     0,     0,  1665,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1667,     0,     0,     0,     0,
       0,     0,  1668,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1676,  1681,     0,  1677,  1682,  1683,
    1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,  1669,
       0,  1678,  3406,     0,  1679,     0,     0,     0,     0,     0,
       0,     0,     0,  1656,     0,     0,  1657,     0,     0,     0,
    1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,  1670,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1665,     0,     0,     0,  1671,     0,     0,     0,
       0,  1672,  1667,     0,     0,     0,     0,     0,     0,  1668,
    1681,     0,     0,  1682,  1683,  1684,     0,  1685,  1686,  1687,
    1688,  1689,  1690,     0,  1673,  1674,     0,  3430,     0,     0,
       0,     0,     0,     0,     0,     0,  1669,     0,     0,     0,
    1675,     0,     0,     0,     0,     0,  1670,     0,     0,     0,
       0,     0,     0,     0,  1680,     0,     0,     0,     0,     0,
       0,     0,     0,  1671,     0,     0,     0,     0,  1672,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1676,     0,
       0,  1677,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1673,  1674,     0,     0,  1678,     0,     0,  1679,     0,
       0,     0,     0,     0,     0,     0,     0,  1675,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1670,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1676,     0,     0,  1677,     0,
    1671,     0,     0,     0,     0,  1672,     0,     0,     0,     0,
       0,     0,  1678,     0,  1681,  1679,     0,  1682,  1683,  1684,
       0,  1685,  1686,  1687,  1688,  1689,  1690,     0,  1673,  1674,
       0,  3531,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1675,     0,     0,     0,  1680,     0,
       0,     0,     0,     0,     0,     0,     0,  1656,     0,     0,
    1657,     0,     0,     0,  1658,  1659,  1660,  1661,     0,  1662,
    1663,  1664,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1676,     0,     0,  1677,  1665,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1667,     0,     0,  1678,
       0,     0,  1679,  1668,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1680,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1669,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1656,     0,     0,  1657,     0,     0,     0,
    1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,  1681,     0,
       0,  1682,  1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,
    1690,     0,  1665,     0,     0,  3587,     0,     0,     0,     0,
       0,     0,  1667,     0,     0,  1656,     0,     0,  1657,  1668,
       0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,
       0,     0,  1680,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1665,     0,  1669,     0,     0,     0,
       0,     0,     0,     0,  1667,  1681,     0,  1670,  1682,  1683,
    1684,  1668,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,
       0,     0,  3609,     0,  1671,     0,     0,     0,     0,  1672,
       0,     0,     0,     0,     0,     0,     0,     0,  1669,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1673,  1674,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1675,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1681,  1670,     0,  1682,  1683,  1684,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,  1676,  1851,     0,  1677,
    1671,     0,     0,     0,     0,  1672,     0,     0,     0,     0,
       0,     0,     0,  1678,     0,     0,  1679,     0,     0,     0,
       0,     0,     0,     0,     0,  1670,     0,     0,  1673,  1674,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1671,     0,  1675,     0,     0,  1672,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1673,  1674,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1676,     0,     0,  1677,  1675,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1678,
       0,     0,  1679,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1680,     0,     0,     0,
       0,     0,     0,     0,  1676,     0,     0,  1677,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1678,     0,     0,  1679,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1680,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1681,     0,     0,  1682,
    1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,
       0,  2931,     0,     0,  1680,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,     0,  3396,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     563,     0,     0,     0,  1681,     0,     0,  1682,  1683,  1684,
       0,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,  3571,
     119,   120,   121,   122,   123,   124,   125,   126,   564,   127,
     128,   129,   565,   566,   567,   568,   569,   570,   571,   572,
     573,   131,   132,   574,   575,   134,   135,   576,   137,   138,
     139,   577,   578,   579,   580,   581,   582,   145,   146,   147,
     148,   149,   150,   583,   584,   151,   152,   153,   154,   585,
     586,   157,   587,   158,   159,   160,   161,   588,   589,   590,
     591,   592,   165,   166,   167,   168,   169,   593,   171,   172,
     173,   594,   174,   175,   176,   177,   178,   179,   595,   596,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     598,   192,   193,   599,   195,   600,   196,   601,   197,   198,
     199,   200,   201,   202,   602,   603,   203,   204,   205,   206,
     604,   605,   207,   208,   209,   210,   211,   606,   212,   213,
     214,   607,   215,   216,   217,   608,   218,   219,   220,   221,
     609,   223,   224,   225,   226,   227,   228,   610,   611,   230,
     612,   231,   232,   613,   234,   614,   235,   615,   236,   616,
     617,   618,   239,   240,   619,   620,   243,   244,   245,   621,
     622,   623,   248,   249,   624,   250,   251,   252,   253,   254,
     255,   256,   625,   258,   259,   260,   261,   626,   262,   263,
     264,   265,   266,   267,   268,   627,   269,   628,   629,   272,
     273,   274,   275,   276,   630,   631,   632,   633,   634,   280,
     635,   636,   283,   637,   285,   286,   287,   638,   288,   289,
     290,   639,   640,   291,   641,   293,   642,   643,   295,   296,
     297,   298,   299,   300,   301,   302,   644,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   645,   646,   647,
     327,   328,   329,   648,   649,   331,   332,   650,   334,   651,
     652,   336,   653,   338,   339,   340,   654,   341,   342,   655,
     656,   343,   344,   345,   657,   658,   346,   347,   659,   660,
     350,   661,   662,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   663,   664,   665,   666,   365,
     366,   667,   668,   369,   370,   669,   372,   373,   374,   670,
     375,   376,   377,   378,   379,   380,   671,   381,   382,   383,
     384,   385,   672,   387,   388,   389,   390,   673,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   674,   404,   405,   675,   407,   408,   409,   676,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,   677,   678,   424,   425,   426,   427,   428,   429,
     679,   431,   432,   680,   681,   434,   435,   682,   437,   683,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   684,   452,   685,   686,   687,   454,   455,
     688,   456,   689,   458,   459,   460,   461,   462,   690,   463,
     691,   692,   693,   694,   466,   467,   695,   469,   696,   697,
     471,   472,   698,   474,   475,   476,   477,   478,   699,   700,
     479,   480,   481,   701,   702,   482,   483,   484,   485,   703,
     486,   487,   488,   489,   490,   704,   705,   493,   706,   494,
     707,   496,   497,   498,   499,   500,   501,   502,   708,   709,
     503,   710,   711,   504,   505,   506,   507,   508,   509,   712,
     713,   714,   715,   716,   717,   718,   719,   720,   721,   722,
     521,   522,   523,   524,   532,     0,     0,     0,     0,     0,
       0,     0,     0,  2146,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   131,   132,     0,     0,   134,
     135,     0,   137,   138,   139,   140,   141,     0,   143,   144,
       0,   145,   146,   147,   148,   149,   150,     0,     0,   151,
     152,   153,   154,   155,   156,   157,     0,   158,   159,   160,
     161,   162,     0,     0,     0,   164,   165,   166,   167,   168,
     169,     0,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,     0,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,     0,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,   209,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,     0,   230,     0,   231,   232,   233,   234,     0,
     235,     0,   236,     0,     0,     0,   239,   240,   533,     0,
     243,   244,   245,     0,   246,   247,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,     0,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,     0,   271,   272,   273,   274,   275,   276,   277,   278,
       0,   279,     0,   280,     0,     0,   283,     0,   285,   286,
     287,     0,   288,   289,   290,     0,     0,   291,     0,   293,
       0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
     534,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,     0,   326,   327,   328,   329,   330,     0,   331,
     332,     0,   334,     0,   335,   336,   337,   338,   339,   340,
       0,   341,   342,     0,     0,   343,   344,   345,     0,     0,
     346,   347,   348,     0,   350,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   367,     0,   369,   370,   371,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,   386,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,     0,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,     0,   434,
     435,   436,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   535,   452,   453,
       0,     0,   454,   455,     0,   456,     0,   458,   459,   460,
     461,   462,     0,   463,   464,   465,     0,     0,   466,   467,
     468,   469,   470,     0,   471,   472,   473,   474,   475,   476,
     477,   478,     0,     0,   479,   480,   481,     0,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
     492,   493,     0,   494,     0,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   532,     0,
       0,     0,     0,     0,     0,     0,     0,  2823,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   131,
     132,     0,     0,   134,   135,     0,   137,   138,   139,   140,
     141,     0,   143,   144,     0,   145,   146,   147,   148,   149,
     150,     0,     0,   151,   152,   153,   154,   155,   156,   157,
       0,   158,   159,   160,   161,   162,     0,     0,     0,   164,
     165,   166,   167,   168,   169,     0,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,     0,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,     0,   230,     0,   231,
     232,   233,   234,     0,   235,     0,   236,     0,     0,     0,
     239,   240,   533,     0,   243,   244,   245,     0,   246,   247,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
       0,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,     0,   271,   272,   273,   274,
     275,   276,   277,   278,     0,   279,     0,   280,     0,     0,
     283,     0,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,     0,   293,     0,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   534,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,     0,   326,   327,   328,
     329,   330,     0,   331,   332,     0,   334,     0,   335,   336,
     337,   338,   339,   340,     0,   341,   342,     0,     0,   343,
     344,   345,     0,     0,   346,   347,   348,     0,   350,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   367,
       0,   369,   370,   371,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     386,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,     0,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,     0,   434,   435,   436,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   535,   452,   453,     0,     0,   454,   455,     0,   456,
       0,   458,   459,   460,   461,   462,     0,   463,   464,   465,
       0,     0,   466,   467,   468,   469,   470,     0,   471,   472,
     473,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,     0,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,   492,   493,     0,   494,     0,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   980,  1376,   826,     0,     0,     0,  1066,     0,
       0,  2826,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     0,     0,     0,   568,     0,     0,
       0,     0,   573,   131,   132,     0,   575,   134,   135,   576,
     137,   138,   139,   577,   578,   579,   580,   581,     0,   145,
     146,   147,   148,   149,   150,     0,     0,   151,   152,   153,
     154,   585,   586,   157,     0,   158,   159,   160,   161,   588,
       0,   590,     0,   592,   165,   166,   167,   168,   169,   593,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,   596,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   598,   192,   193,   599,   195,     0,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,   209,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,   609,   223,   224,   225,   226,   227,   228,   610,
    1377,   230,     0,   231,   232,   613,   234,     0,   235,     0,
     236,   616,     0,   618,   239,   240,   619,   620,   243,   244,
     245,     0,   622,   623,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,   625,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,   628,
     629,   272,   273,   274,   275,   276,   630,   631,     0,   633,
       0,   280,   635,   636,   283,   637,   285,   286,   287,     0,
     288,   289,   290,     0,     0,   291,   641,   293,   642,     0,
     295,   296,   297,   298,   299,   300,   301,   302,   644,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   645,
     646,   647,   327,   328,   329,   648,     0,   331,   332,   650,
     334,     0,   652,   336,   653,   338,   339,   340,     0,   341,
     342,  1378,     0,   343,   344,   345,     0,     0,   346,   347,
     659,   660,   350,   661,   662,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   667,   668,   369,   370,   669,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,   672,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,   675,   407,   408,   409,
     676,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,   678,   424,   425,   426,   427,
     428,   429,   679,   431,   432,     0,   681,   434,   435,   682,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   684,   452,   685,     0,     0,
     454,   455,     0,   456,   689,   458,   459,   460,   461,   462,
       0,   463,   691,   692,     0,     0,   466,   467,   695,   469,
     696,  1379,   471,   472,   698,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,   701,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   704,   705,   493,
       0,   494,   707,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   712,   713,   714,   715,   716,   717,   718,   719,   720,
     721,   722,   521,   522,   523,   524,     0,     0,  1656,     0,
       0,  1657,     0,  1380,  1381,  1658,  1659,  1660,  1661,     0,
    1662,  1663,  1664,     0,     0,     0,  1656,     0,     0,  1657,
       0,     0,     0,  1658,  1659,  1660,  1661,  1665,  1662,  1663,
    1664,     0,  2245,     0,     0,     0,     0,  1667,     0,     0,
       0,     0,     0,     0,  1668,  1665,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1667,     0,     0,     0,     0,
       0,     0,  1668,     0,     0,  1656,     0,     0,  1657,     0,
       0,  1669,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1669,
       0,     0,     0,     0,  1665,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1667,     0,     0,     0,     0,     0,
       0,  1668,     0,     0,     0,     0,     0,  2246,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1656,     0,     0,
    1657,     0,     0,     0,  1658,  1659,  1660,  1661,  1669,  1662,
    1663,  1664,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1665,     0,     0,     0,
    1954,     0,     0,     0,     0,     0,  1667,     0,  1670,     0,
       0,     0,     0,  1668,     0,     0,  1990,     0,     0,     0,
       0,  1991,     0,     0,     0,  1671,  1670,     0,     0,     0,
    1672,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1669,     0,     0,  1671,     0,     0,     0,     0,  1672,     0,
       0,     0,     0,  1673,  1674,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3677,     0,     0,     0,     0,  1675,
       0,  1673,  1674,     0,     0,  1670,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1675,     0,     0,
       0,     0,  1671,     0,     0,     0,     0,  1672,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1676,     0,     0,
    1677,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1673,  1674,     0,     0,  1678,  1676,     0,  1679,  1677,     0,
       0,     0,     0,     0,     0,     0,  1675,  1670,     0,     0,
       0,     0,  1678,     0,     0,  1679,     0,     0,     0,     0,
       0,     0,     0,     0,  1671,     0,     0,     0,     0,  1672,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1676,     0,     0,  1677,     0,     0,
       0,     0,  1673,  1674,     0,     0,     0,     0,     0,     0,
       0,  1678,     0,     0,  1679,     0,     0,     0,  1675,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3678,     0,     0,  1680,     0,     0,
       0,     0,     0,     0,     0,     0,  1676,     0,     0,  1677,
       0,     0,     0,     0,     0,  1680,     0,     0,     0,     0,
       0,     0,  1656,  1678,     0,  1657,  1679,     0,     0,  1658,
    1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,     0,
    1656,     0,     0,  1657,     0,     0,     0,  1658,  1659,  1660,
    1661,  1665,  1662,  1663,  1664,     0,     0,     0,     0,     0,
       0,  1667,  2249,     0,  1680,     0,     0,     0,  1668,  1665,
       0,     0,     0,  1996,     0,     0,     0,     0,     0,  1667,
       0,     0,     0,     0,     0,     0,  1668,     0,     0,     0,
       0,     0,     0,     0,     0,  1669,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1681,     0,     0,
    1682,  1683,  1684,  1669,  1685,  1686,  1687,  1688,  1689,  1690,
       0,     0,     0,     0,     0,  1681,  1680,     0,  1682,  1683,
    1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1656,     0,     0,  1657,     0,     0,     0,  1658,  1659,
    1660,  1661,     0,  1662,  1663,  1664,     0,     0,     0,     0,
       0,     0,     0,     0,  1681,     0,     0,  1682,  1683,  1684,
    1665,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,     0,
    1667,     0,  1670,     0,     0,     0,     0,  1668,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1671,
    1670,     0,     0,     0,  1672,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1669,     0,     0,  1671,     0,     0,
       0,     0,  1672,     0,     0,     0,  1681,  1673,  1674,  1682,
    1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,
       0,     0,     0,  1675,     0,  1673,  1674,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1675,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1676,     0,     0,  1677,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1678,  1676,
       0,  1679,  1677,     0,     0,     0,  2001,     0,     0,     0,
       0,  1670,     0,     0,     0,     0,  1678,     0,     0,  1679,
       0,     0,     0,     0,     0,  1961,     0,     0,  1671,     0,
       0,     0,     0,  1672,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1673,  1674,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1675,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1656,     0,     0,  1657,     0,
       0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,
       0,  1680,     0,     0,     0,     0,     0,     0,     0,     0,
    1676,     0,     0,  1677,  1665,     0,     0,     0,  2003,  1680,
       0,     0,     0,     0,  1667,     0,     0,  1678,     0,     0,
    1679,  1668,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1656,     0,     0,  1657,  1669,     0,
       0,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1665,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1667,     0,     0,  1656,     0,     0,  1657,
    1668,     0,     0,  1658,  1659,  1660,  1661,  2579,  1662,  1663,
    1664,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,  1686,
    1687,  1688,  1689,  1690,     0,  1665,     0,  1669,     0,  1681,
    1680,     0,  1682,  1683,  1684,  1667,  1685,  1686,  1687,  1688,
    1689,  1690,  1668,     0,  1656,     0,     0,  1657,     0,     0,
       0,  1658,  1659,  1660,  1661,  1670,  1662,  1663,  1664,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1669,
       0,     0,  1671,  1665,     0,     0,     0,  1672,     0,     0,
       0,     0,     0,  1667,     0,     0,     0,     0,     0,     0,
    1668,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1673,  1674,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2138,     0,  1675,  1669,     0,     0,
       0,     0,     0,     0,  1670,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1681,  1671,     0,  1682,  1683,  1684,  1672,  1685,  1686,  1687,
    1688,  1689,  1690,     0,  1676,     0,     0,  1677,     0,     0,
       0,     0,     0,     0,     0,     0,  1670,     0,     0,  1673,
    1674,  1678,     0,     0,  1679,     0,     0,     0,     0,     0,
       0,     0,     0,  1671,     0,  1675,     0,     0,  1672,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1673,  1674,     0,  1670,     0,     0,     0,     0,     0,
       0,     0,     0,  1676,     0,     0,  1677,  1675,     0,     0,
       0,  1671,     0,     0,     0,     0,  1672,     0,     0,     0,
    1678,     0,     0,  1679,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1673,
    1674,     0,     0,     0,     0,  1676,     0,     0,  1677,     0,
       0,     0,     0,     0,  1680,  1675,     0,     0,     0,     0,
       0,     0,  1678,     0,     0,  1679,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1656,     0,     0,  1657,
       0,     0,     0,  1658,  1659,  1660,  1661,     0,  1662,  1663,
    1664,     0,     0,  1676,     0,     0,  1677,     0,     0,     0,
       0,     0,     0,     0,     0,  1665,     0,     0,     0,  2905,
    1678,     0,     0,  1679,     0,  1667,     0,     0,     0,     0,
       0,     0,  1668,  1680,  1656,     0,     0,  1657,     0,     0,
       0,  1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1669,
       0,     0,     0,  1665,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1667,  1681,  1680,     0,  1682,  1683,  1684,
    1668,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1669,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1680,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1681,     0,     0,  1682,  1683,  1684,     0,
    1685,  1686,  1687,  1688,  1689,  1690,  1670,  2889,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1671,     0,     0,     0,     0,  1672,     0,
       0,     0,     0,     0,     0,  1681,     0,     0,  1682,  1683,
    1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,     0,     0,
       0,  1673,  1674,     0,  1670,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1675,     0,     0,
       0,  1671,     0,     0,     0,     0,  1672,     0,     0,     0,
       0,     0,     0,  1681,     0,     0,  1682,  1683,  1684,     0,
    1685,  1686,  1687,  1688,  1689,  1690,     0,     0,     0,  1673,
    1674,     0,     0,     0,     0,  1676,     0,     0,  1677,     0,
       0,     0,     0,     0,     0,  1675,     0,     0,     0,     0,
       0,     0,  1678,     0,     0,  1679,     0,     0,     0,     0,
       0,     0,     0,  1656,     0,     0,  1657,     0,     0,     0,
    1658,  1659,  1660,  1661,     0,  1662,  1663,  1664,     0,     0,
       0,     0,     0,  1676,     0,     0,  1677,     0,     0,     0,
       0,     0,  1665,     0,     0,     0,     0,     0,     0,     0,
    1678,     0,  1667,  1679,     0,     0,     0,     0,     0,  1668,
       0,  1656,     0,     0,  1657,     0,     0,     0,  1658,  1659,
    1660,  1661,     0,  1662,  1663,  1664,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1669,     0,     0,     0,
    1665,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1667,     0,     0,     0,     0,  1680,     0,  1668,  1656,     0,
       0,  1657,     0,     0,     0,  1658,  1659,     0,     0,     0,
    1662,  1663,  1664,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1669,     0,     0,  1665,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1667,  1656,     0,
       0,  1657,     0,  1680,  1668,  1658,  1659,     0,     0,     0,
    1662,  1663,  1664,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1665,     0,     0,
       0,  1669,     0,  1670,     0,     0,     0,  1667,     0,     0,
       0,     0,     0,     0,  1668,     0,  1656,     0,     0,  1657,
    1671,     0,     0,  1658,  1659,  1672,     0,     0,  1662,  1663,
    1664,     0,     0,     0,     0,  1681,     0,     0,  1682,  1683,
    1684,  1669,  1685,  1686,  1687,  1688,  1689,  1690,  1864,  1674,
       0,  1670,     0,     0,     0,  1667,     0,     0,     0,     0,
       0,     0,  1668,     0,  1675,     0,     0,     0,  1671,     0,
       0,     0,     0,  1672,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1681,     0,     0,  1682,  1683,  1684,  1669,
    1685,  1686,  1687,  1688,  1689,  1690,  1673,  1674,  1670,     0,
       0,     0,  1676,     0,     0,  1677,     0,     0,     0,     0,
       0,     0,  1675,     0,     0,  1671,     0,     0,     0,  1678,
    1672,     0,  1679,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1670,     0,
       0,     0,     0,  1673,  1674,     0,     0,     0,     0,     0,
    1676,     0,     0,  1677,     0,  1671,     0,     0,     0,  1675,
    1672,     0,     0,     0,     0,     0,     0,  1678,     0,     0,
    1679,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1673,  1674,     0,  1670,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1676,     0,  1675,
    1677,     0,     0,  1671,     0,     0,     0,     0,  1672,     0,
       0,     0,     0,     0,  1678,     0,     0,  1679,     0,     0,
       0,     0,  1680,     0,     0,     0,     0,     0,     0,     0,
       0, -2142, -2142,     0,     0,     0,     0,  1676,     0,     0,
    1677,     0,     0,     0,     0,     0,     0,  1675,     0,     0,
       0,     0,     0,     0,  1678,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1680,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0, -2142,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1678,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1680,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1681,     0,     0,  1682,  1683,  1684,     0,  1685,
    1686,  1687,  1688,  1689,  1690,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1680,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1681,     0,     0,  1682,  1683,  1684,     0,  1685,  1686,  1687,
    1688,  2266,  1690,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1680,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1681,     0,     0,
    1682,  1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1681,     0,     0,
    1682,  1683,  1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   563,     0,
    2162,     0,     0,     0,     0,  1681,     0,     0,  1682,  1683,
    1684,     0,  1685,  1686,  1687,  1688,  1689,  1690,   119,   120,
     121,   122,   123,   124,   125,   126,   564,   127,   128,   129,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   131,
     132,   574,   575,   134,   135,   576,   137,   138,   139,   577,
     578,   579,   580,   581,   582,   145,   146,   147,   148,   149,
     150,   583,   584,   151,   152,   153,   154,   585,   586,   157,
     587,   158,   159,   160,   161,   588,   589,   590,   591,   592,
     165,   166,   167,   168,   169,   593,   171,   172,   173,   594,
     174,   175,   176,   177,   178,   179,   595,   596,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   598,   192,
     193,   599,   195,   600,   196,   601,   197,   198,   199,   200,
     201,   202,   602,   603,   203,   204,   205,   206,   604,   605,
     207,   208,   209,   210,   211,   606,   212,   213,   214,   607,
     215,   216,   217,   608,   218,   219,   220,   221,   609,   223,
     224,   225,   226,   227,   228,   610,   611,   230,   612,   231,
     232,   613,   234,   614,   235,   615,   236,   616,   617,   618,
     239,   240,   619,   620,   243,   244,   245,   621,   622,   623,
     248,   249,   624,   250,   251,   252,   253,   254,   255,   256,
     625,   258,   259,   260,   261,   626,   262,   263,   264,   265,
     266,   267,   268,   627,   269,   628,   629,   272,   273,   274,
     275,   276,   630,   631,   632,   633,   634,   280,   635,   636,
     283,   637,   285,   286,   287,   638,   288,   289,   290,   639,
     640,   291,   641,   293,   642,   643,   295,   296,   297,   298,
     299,   300,   301,   302,   644,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   645,   646,   647,   327,   328,
     329,   648,   649,   331,   332,   650,   334,   651,   652,   336,
     653,   338,   339,   340,   654,   341,   342,   655,   656,   343,
     344,   345,   657,   658,   346,   347,   659,   660,   350,   661,
     662,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   663,   664,   665,   666,   365,   366,   667,
     668,   369,   370,   669,   372,   373,   374,   670,   375,   376,
     377,   378,   379,   380,   671,   381,   382,   383,   384,   385,
     672,   387,   388,   389,   390,   673,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   674,
     404,   405,   675,   407,   408,   409,   676,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
     677,   678,   424,   425,   426,   427,   428,   429,   679,   431,
     432,   680,   681,   434,   435,   682,   437,   683,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   684,   452,   685,   686,   687,   454,   455,   688,   456,
     689,   458,   459,   460,   461,   462,   690,   463,   691,   692,
     693,   694,   466,   467,   695,   469,   696,   697,   471,   472,
     698,   474,   475,   476,   477,   478,   699,   700,   479,   480,
     481,   701,   702,   482,   483,   484,   485,   703,   486,   487,
     488,   489,   490,   704,   705,   493,   706,   494,   707,   496,
     497,   498,   499,   500,   501,   502,   708,   709,   503,   710,
     711,   504,   505,   506,   507,   508,   509,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   521,   522,
     523,   524,   563,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
     564,   127,   128,   129,   565,   566,   567,   568,   569,   570,
     571,   572,   573,   131,   132,   574,   575,   134,   135,   576,
     137,   138,   139,   577,   578,   579,   580,   581,   582,   145,
     146,   147,   148,   149,   150,   583,   584,   151,   152,   153,
     154,   585,   586,   157,   587,   158,   159,   160,   161,   588,
     589,   590,   591,   592,   165,   166,   167,   168,   169,   593,
     171,   172,   173,   594,   174,   175,   176,   177,   178,   179,
     595,   596,   181,   182,   183,   184,   185,   186,   597,   188,
     189,   190,   598,   192,   193,   599,   195,   600,   196,   601,
     197,   198,   199,   200,   201,   202,   602,   603,   203,   204,
     205,   206,   604,   605,   207,   208,   209,   210,   211,   606,
     212,   213,   214,   607,   215,   216,   217,   608,   218,   219,
     220,   221,   609,   223,   224,   225,   226,   227,   228,   610,
     611,   230,   612,   231,   232,   613,   234,   614,   235,   615,
     236,   616,   617,   618,   239,   240,   619,   620,   243,   244,
     245,   621,   622,   623,   248,   249,   624,   250,   251,   252,
     253,   254,   255,   256,   625,   258,   259,   260,   261,   626,
     262,   263,   264,   265,   266,   267,   268,   627,   269,   628,
     629,   272,   273,   274,   275,   276,   630,   631,   632,   633,
     634,   280,   635,   636,   283,   637,   285,   286,   287,   638,
     288,   289,   290,   639,   640,   291,   641,   293,   642,   643,
     295,   296,   297,   298,   299,   300,   301,   302,   644,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   645,
     646,   647,   327,   328,   329,   648,   649,   331,   332,   650,
     334,   651,   652,   336,   653,   338,   339,   340,   654,   341,
     342,   655,   656,   343,   344,   345,   657,   658,   346,   347,
     659,   660,   350,   661,   662,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   663,   664,   665,
     666,   365,   366,   667,   668,   369,   370,   669,   372,   373,
     374,   670,   375,   376,   377,   378,   379,   380,   671,   381,
     382,   383,   384,   385,   672,   387,   388,   389,   390,   673,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   674,   404,   405,   675,   407,   408,   409,
     676,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,   677,   678,   424,   425,   426,   427,
     428,   429,   679,   431,   432,   680,   681,   434,   435,   682,
     437,   683,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   684,   452,   685,   686,   687,
     454,   455,   688,   456,   689,   458,   459,   460,   461,   462,
     690,   463,   691,   692,   693,   694,   466,   467,   695,   469,
     696,   697,   471,   472,   698,   474,   475,   476,   477,   478,
     699,   700,   479,   480,   481,   701,   702,   482,   483,   484,
     485,   703,   486,   487,   488,   489,   490,   704,   705,   493,
     706,   494,   707,   496,   497,   498,   499,   500,   501,   502,
     708,   709,   503,   710,   711,   504,   505,   506,   507,   508,
     509,   712,   713,   714,   715,   716,   717,   718,   719,   720,
     721,   722,   521,   522,   523,   524,   563,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,   564,   127,   128,   129,   565,   566,
     567,   568,   569,   570,   571,   572,   573,   131,   132,   574,
     575,   134,   135,   576,   137,   138,   139,   577,   578,   579,
     580,   581,   582,   145,   146,   147,   148,   149,   150,   583,
     584,   151,   152,   153,   154,   585,   586,   157,   587,   158,
     159,   160,   161,   588,   589,   590,   591,   592,   165,   166,
     167,   168,   169,   593,   171,   172,   173,   594,   174,   175,
     176,   177,   178,   179,   595,   596,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   598,   192,   193,   599,
     195,   600,   196,   601,   197,   198,   199,   200,   201,   202,
     602,   603,   203,   204,   205,   206,   604,   605,   207,   208,
     209,   210,   211,   606,   212,   213,   214,   607,   215,   216,
     217,   608,   218,   219,   220,   221,   609,   223,   224,   225,
     226,   227,   228,   610,   611,   230,   612,   231,   232,   613,
     234,   614,   235,   615,   236,   616,   617,   618,   239,   240,
     619,   620,   243,   244,   245,   621,   622,   623,   248,   249,
     624,   250,   251,   252,   253,   254,   956,   256,   625,   258,
     259,   260,   261,   626,   262,   263,   264,   265,   266,   267,
     268,   627,   269,   628,   629,   272,   273,   274,   275,   276,
     630,   631,   632,   633,   634,   280,   635,   636,   283,   637,
     285,   286,   287,   638,   288,   289,   290,   639,   640,   291,
     641,   293,   642,   643,   295,   296,   297,   298,   299,   300,
     301,   302,   644,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   645,   646,   647,   327,   328,   329,   648,
     649,   331,   332,   650,   334,   651,   652,   336,   653,   338,
     339,   340,   654,   341,   342,   655,   656,   343,   344,   345,
     657,   658,   346,   347,   659,   660,   350,   661,   662,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   663,   664,   665,   666,   365,   366,   667,   668,   369,
     370,   669,   372,   373,   374,   670,   375,   376,   377,   378,
     379,   380,   671,   381,   382,   383,   384,   385,   672,   387,
     388,   389,   390,   673,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   674,   404,   405,
     675,   407,   408,   409,   676,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,   677,   678,
     424,   425,   426,   427,   428,   429,   679,   431,   432,   680,
     681,   434,   435,   682,   437,   683,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   684,
     452,   685,   686,   687,   454,   455,   688,   456,   689,   458,
     459,   460,   461,   462,   690,   463,   691,   692,   693,   694,
     466,   467,   695,   469,   696,   697,   471,   472,   698,   474,
     475,   476,   477,   478,   699,   700,   479,   480,   481,   701,
     702,   482,   483,   484,   485,   703,   486,   487,   488,   489,
     490,   704,   705,   493,   706,   494,   707,   496,   497,   498,
     499,   500,   501,   502,   708,   709,   503,   710,   711,   504,
     505,   506,   507,   508,   509,   712,   713,   714,   715,   716,
     717,   718,   719,   720,   721,   722,   521,   522,   523,   524,
     563,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,   564,   127,
     128,   129,   565,   566,   567,   568,   569,   570,   571,   572,
     573,   131,   132,   574,   575,   134,   135,   576,   137,   138,
     139,   577,   578,   579,   580,   581,   582,   145,   146,   147,
     148,   149,   150,   583,   584,   151,   152,   153,   154,   585,
     586,   157,   587,   158,   159,   160,   161,   588,   589,   590,
     591,   592,   165,   166,   167,   168,   169,   593,   171,   172,
     173,   594,   174,   175,   176,   177,   178,   179,   595,   596,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     598,   192,   193,   599,   195,   600,   196,   601,   197,   198,
     199,   200,   201,   202,   602,   603,   203,   204,   205,   206,
     604,   605,   207,   208,   209,   210,   211,   606,   212,   213,
     214,   607,   215,   216,   217,   608,   218,   219,   220,   221,
     609,   223,   224,   225,   226,   227,   228,   610,   611,   230,
     612,   231,   232,   613,   234,   614,   235,   615,   236,   616,
     617,   618,   239,   240,   619,   620,   243,   244,   245,   621,
     622,   623,   248,   249,   624,   250,   251,   252,   253,   254,
     255,   256,   625,   258,   259,   260,   261,   626,   262,   263,
     264,   265,   266,   267,   268,   627,   269,   628,   629,   272,
     273,   274,   275,   276,   630,   631,   632,   633,   634,   280,
     635,   636,   283,   637,   285,   286,   287,   638,   288,   289,
     290,   639,   640,   291,   641,   293,   642,   643,   295,   296,
     297,   298,   299,   300,   301,   302,   644,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   645,   646,   647,
     327,   328,   329,   648,   649,   331,   332,   650,   334,   651,
     652,   336,   653,   338,   339,   340,   654,   341,   342,   655,
     656,   343,   344,   345,   657,   658,   346,   347,   659,   660,
     350,   661,   662,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   663,   664,   665,   666,   365,
     366,   667,   668,   369,   370,   669,   372,   373,   374,   670,
     375,   376,   377,   378,   379,   380,   671,   381,   382,   383,
     384,   385,   672,   387,   388,   389,   390,   673,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   674,   404,   405,   675,   407,   408,   409,   676,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,   677,   678,   424,   425,   426,   427,   428,   429,
     679,   431,   432,   680,   681,   434,   435,   682,   437,   683,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   684,   452,   685,   686,   687,   454,   455,
     688,   456,   689,   458,   459,   460,   461,   462,   690,   463,
     691,   692,   693,   694,   466,   467,   695,   469,   696,   697,
     471,   472,   698,   474,   475,   476,   477,   478,   699,   700,
     479,   480,   481,   701,   702,   482,   483,   484,   485,   703,
     486,   487,   488,   489,   490,   704,   705,   493,   706,   494,
     707,   496,   497,   498,   499,   500,   501,   502,   708,   709,
     503,   710,   711,   504,   505,   506,   507,   508,   509,   712,
     713,   714,   715,   716,   717,   718,   719,   720,   721,   722,
     521,   522,   523,   524,   563,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,  2320,   124,
     125,   126,   564,   127,   128,   129,   565,   566,   567,   568,
     569,   570,   571,   572,   573,   131,   132,   574,   575,   134,
     135,   576,   137,   138,   139,   577,   578,   579,   580,   581,
     582,   145,   146,   147,   148,   149,   150,   583,   584,   151,
     152,   153,   154,   585,   586,   157,   587,   158,   159,   160,
     161,   588,   589,   590,   591,   592,   165,   166,   167,   168,
     169,   593,   171,   172,   173,   594,   174,   175,   176,   177,
     178,   179,   595,   596,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   598,   192,   193,   599,   195,   600,
     196,   601,   197,   198,   199,   200,   201,   202,   602,   603,
     203,   204,   205,   206,   604,   605,   207,   208,   209,  2321,
     211,   606,   212,   213,   214,   607,   215,   216,   217,   608,
     218,   219,   220,   221,   609,   223,   224,   225,   226,   227,
     228,   610,   611,   230,   612,   231,   232,   613,   234,   614,
     235,   615,   236,   616,   617,   618,   239,   240,   619,   620,
     243,   244,   245,   621,   622,   623,   248,   249,   624,   250,
     251,   252,   253,   254,   255,   256,   625,   258,   259,   260,
     261,   626,   262,   263,   264,   265,   266,   267,   268,   627,
     269,   628,   629,   272,   273,   274,   275,   276,   630,   631,
     632,   633,   634,   280,   635,   636,   283,   637,   285,   286,
     287,   638,   288,   289,   290,   639,   640,   291,   641,   293,
     642,   643,   295,   296,   297,   298,   299,   300,   301,   302,
     644,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   645,   646,   647,   327,   328,   329,   648,   649,   331,
     332,   650,   334,   651,   652,   336,   653,   338,   339,   340,
     654,   341,   342,   655,   656,   343,   344,   345,   657,   658,
     346,   347,   659,   660,   350,   661,   662,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   663,
     664,   665,   666,   365,   366,   667,   668,   369,   370,   669,
     372,   373,   374,   670,   375,   376,   377,   378,   379,   380,
     671,   381,   382,   383,   384,   385,   672,   387,   388,   389,
     390,   673,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   674,   404,   405,   675,   407,
     408,   409,   676,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,   677,   678,   424,   425,
     426,   427,   428,  2322,   679,   431,   432,   680,   681,   434,
     435,   682,   437,   683,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   684,   452,   685,
     686,   687,   454,   455,   688,   456,   689,   458,   459,   460,
     461,   462,   690,   463,   691,   692,   693,   694,   466,   467,
     695,   469,   696,   697,   471,   472,   698,   474,   475,   476,
     477,   478,   699,   700,   479,   480,   481,   701,   702,   482,
     483,   484,   485,   703,   486,   487,   488,   489,   490,   704,
     705,   493,   706,   494,   707,   496,   497,   498,   499,   500,
     501,   502,   708,   709,   503,   710,   711,   504,   505,   506,
     507,   508,   509,   712,   713,   714,   715,   716,   717,   718,
     719,   720,   721,   722,   521,   522,   523,   524,   980,     0,
     826,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,   568,     0,     0,     0,     0,   573,   131,
     132,     0,   575,   134,   135,   576,   137,   138,   139,   577,
     578,   579,   580,   581,     0,   145,   146,   147,   148,   149,
     150,     0,     0,   151,   152,   153,   154,   585,   586,   157,
       0,   158,   159,   160,   161,   588,     0,   590,     0,   592,
     165,   166,   167,   168,   169,   593,   171,   172,   173,     0,
     174,   175,   176,   177,   178,   179,     0,   596,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   598,   192,
     193,   599,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   609,   223,
     224,   225,   226,   227,   228,   610,  1377,   230,     0,   231,
     232,   613,   234,     0,   235,     0,   236,   616,     0,   618,
     239,   240,   619,   620,   243,   244,   245,     0,   622,   623,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
     625,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,   628,   629,   272,   273,   274,
     275,   276,   630,   631,     0,   633,     0,   280,   635,   636,
     283,   637,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,   641,   293,   642,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   644,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   645,   646,   647,   327,   328,
     329,   648,     0,   331,   332,   650,   334,     0,   652,   336,
     653,   338,   339,   340,     0,   341,   342,  1378,     0,   343,
     344,   345,     0,     0,   346,   347,   659,   660,   350,   661,
     662,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   667,
     668,   369,   370,   669,   372,   373,   374,     0,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     672,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,   675,   407,   408,   409,   676,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,   678,   424,   425,   426,   427,   428,   429,   679,   431,
     432,     0,   681,   434,   435,   682,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   684,   452,   685,     0,     0,   454,   455,     0,   456,
     689,   458,   459,   460,   461,   462,     0,   463,   691,   692,
       0,     0,   466,   467,   695,   469,   696,  1379,   471,   472,
     698,   474,   475,   476,   477,   478,     0,     0,   479,   480,
     481,   701,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   704,   705,   493,     0,   494,   707,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   521,   522,
     523,   524,   980,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     3,     4,     0,   568,     0,     0,
       0,     0,   573,   131,   132,     0,   575,   134,   135,   576,
     137,   138,   139,   577,   578,   579,   580,   581,     0,   145,
     146,   147,   148,   149,   150,     0,     0,   151,   152,   153,
     154,   585,   586,   157,     0,   158,   159,   160,   161,   588,
       0,   590,     0,   592,   165,   166,   167,   168,   169,   593,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,   596,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   598,   192,   193,   599,   195,     0,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,   209,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,   609,   223,   224,   225,   226,   227,   228,   610,
       0,   230,     0,   231,   232,   613,   234,     0,   235,     0,
     236,   616,     0,   618,   239,   240,   619,   620,   243,   244,
     245,     0,   622,   623,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,   625,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,   628,
     629,   272,   273,   274,   275,   276,   630,   631,     0,   633,
       0,   280,   635,   636,   283,   637,   285,   286,   287,     0,
     288,   289,   290,     0,     0,   291,   641,   293,   642,     0,
     295,   296,   297,   298,   299,   300,   301,   302,   644,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   645,
     646,   647,   327,   328,   329,   648,     0,   331,   332,   650,
     334,     0,   652,   336,   653,   338,   339,   340,     0,   341,
     342,     0,     0,   343,   344,   345,     0,     0,   346,   347,
     659,   660,   350,   661,   662,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   667,   668,   369,   370,   669,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,   672,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,   675,   407,   408,   409,
     676,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,   678,   424,   425,   426,   427,
     428,   429,   679,   431,   432,     0,   681,   434,   435,   682,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   684,   452,   685,     0,     0,
     454,   455,     0,   456,   689,   458,   459,   460,   461,   462,
       0,   463,   691,   692,     0,     0,   466,   467,   695,   469,
     696,     0,   471,   472,   698,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,   701,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   704,   705,   493,
       0,   494,   707,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   712,   713,   714,   715,   716,   717,   718,   719,   720,
     721,   722,   521,   522,   523,   524,   118,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,     0,     0,     0,     0,     0,   130,   131,   132,     0,
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
     143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
     795,   151,   152,   153,   154,   155,   156,   157,     0,   158,
     159,   160,   161,   796,     0,   797,     0,   164,   165,   166,
     167,   168,   169,   170,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
     209,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   798,     0,   230,     0,   231,   232,   233,
     234,     0,   235,     0,   236,   237,     0,   238,   239,   240,
     241,   242,   243,   244,   245,     0,   246,   247,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,     0,   279,     0,   280,   281,   282,   283,   284,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
     292,   293,   294,     0,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
       0,   331,   332,   333,   334,     0,   800,   336,   337,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,   348,   349,   350,   351,   802,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,   803,   368,   369,
     370,   371,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,   386,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,     0,
     424,   425,   426,   427,   428,   429,   430,   431,   432,     0,
     433,   434,   435,   436,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
     452,   805,     0,     0,   454,   455,     0,   456,   457,   458,
     459,   460,   461,   462,     0,   463,   464,   465,     0,     0,
     466,   467,   806,   469,   807,     0,   471,   472,   808,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,     0,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,   491,   492,   493,     0,   494,   495,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     118,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,     0,     0,     0,
     130,   131,   132,     0,   133,   134,   135,   136,   137,   138,
     139,   140,   141,   142,   143,   144,     0,   145,   146,   147,
     148,   149,   150,     0,     0,   151,   152,   153,   154,   155,
     156,   157,     0,   158,   159,   160,   161,   162,     0,   163,
       0,   164,   165,   166,   167,   168,   169,   170,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,     0,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,   209,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,     0,   230,
       0,   231,   232,   233,   234,     0,   235,     0,   236,   237,
       0,   238,   239,   240,   241,   242,   243,   244,   245,     0,
     246,   247,   248,   249,     0,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,     0,   279,     0,   280,
     281,   282,   283,   284,   285,   286,   287,     0,   288,   289,
     290,     0,     0,   291,   292,   293,   294,     0,   295,   296,
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,     0,   331,   332,   333,   334,     0,
     335,   336,   337,   338,   339,   340,     0,   341,   342,     0,
       0,   343,   344,   345,     0,     0,   346,   347,   348,   349,
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   367,   368,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,   386,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,   433,   434,   435,   436,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   451,   452,   453,     0,     0,   454,   455,
       0,   456,   457,   458,   459,   460,   461,   462,     0,   463,
     464,   465,     0,     0,   466,   467,   468,   469,   470,     0,
     471,   472,   473,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,     0,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,   492,   493,     0,   494,
     495,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   532,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   131,   132,     0,     0,   134,
     135,     0,   137,   138,   139,   140,   141,     0,   143,   144,
       0,   145,   146,   147,   148,   149,   150,     0,     0,   151,
     152,   153,   154,   155,   156,   157,  1788,   158,   159,   160,
     161,   162,     0,     0,  1789,   164,   165,   166,   167,   168,
     169,     0,   171,   172,   173,  1790,   174,   175,   176,   177,
     178,   179,     0,     0,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,     0,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,   209,   210,
     211,     0,   212,   213,   214,     0,   215,   216,   217,     0,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,     0,   230,     0,   231,   232,   233,   234,     0,
     235,  1791,   236,     0,     0,     0,   239,   240,   533,     0,
     243,   244,   245,     0,   246,   247,   248,   249,     0,   250,
     251,   252,   253,   254,  1792,   256,     0,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,     0,   271,   272,   273,   274,   275,   276,   277,   278,
       0,   279,     0,   280,     0,     0,   283,     0,   285,   286,
     287,     0,   288,   289,   290,     0,     0,   291,     0,   293,
       0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
     534,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,     0,   326,   327,   328,   329,   330,     0,   331,
     332,     0,   334,     0,   335,   336,   337,   338,   339,   340,
       0,   341,   342,     0,     0,   343,   344,   345,     0,     0,
     346,   347,   348,     0,   350,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,   367,     0,   369,   370,   371,
     372,   373,   374,  1793,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,   386,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,     0,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,     0,   424,   425,
     426,   427,   428,   429,   430,   431,   432,     0,     0,   434,
     435,   436,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,   535,   452,   453,
       0,     0,   454,   455,     0,   456,     0,   458,   459,   460,
     461,   462,     0,   463,   464,   465,     0,     0,   466,   467,
     468,   469,   470,     0,   471,   472,   473,   474,   475,   476,
     477,   478,     0,  1794,   479,   480,   481,     0,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,   491,
     492,   493,     0,   494,     0,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   532,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
     121,   122,   123,   124,   125,   126,     0,   127,   128,   129,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   131,
     132,     0,     0,   134,   135,     0,   137,   138,   139,   140,
     141,     0,   143,   144,     0,   145,   146,   147,   148,   149,
     150,     0,     0,   151,   152,   153,   154,   155,   156,   157,
    1788,   158,   159,   160,   161,   162,     0,     0,     0,   164,
     165,   166,   167,   168,   169,     0,   171,   172,   173,  1790,
     174,   175,   176,   177,   178,   179,     0,     0,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,     0,   196,     0,   197,   198,   199,   200,
     201,   202,     0,     0,   203,   204,   205,   206,     0,     0,
     207,   208,   209,   210,   211,     0,   212,   213,   214,     0,
     215,   216,   217,     0,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,     0,   230,     0,   231,
     232,   233,   234,     0,   235,  1791,   236,     0,     0,     0,
     239,   240,   533,     0,   243,   244,   245,     0,   246,   247,
     248,   249,     0,   250,   251,   252,   253,   254,   255,   256,
       0,   258,   259,   260,   261,     0,   262,   263,   264,   265,
     266,   267,   268,     0,   269,     0,   271,   272,   273,   274,
     275,   276,   277,   278,     0,   279,     0,   280,     0,     0,
     283,     0,   285,   286,   287,     0,   288,   289,   290,     0,
       0,   291,     0,   293,  2410,     0,   295,   296,   297,   298,
     299,   300,   301,   302,   534,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,     0,   326,   327,   328,
     329,   330,     0,   331,   332,     0,   334,     0,   335,   336,
     337,   338,   339,   340,     0,   341,   342,     0,     0,   343,
     344,   345,     0,     0,   346,   347,   348,     0,   350,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,     0,     0,     0,     0,   365,   366,   367,
       0,   369,   370,   371,   372,   373,   374,  1793,   375,   376,
     377,   378,   379,   380,     0,   381,   382,   383,   384,   385,
     386,   387,   388,   389,   390,     0,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,     0,
     404,   405,     0,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
       0,     0,   424,   425,   426,   427,   428,   429,   430,   431,
     432,     0,     0,   434,   435,   436,   437,     0,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,   535,   452,   453,     0,     0,   454,   455,     0,   456,
       0,   458,   459,   460,   461,   462,     0,   463,   464,   465,
       0,     0,   466,   467,   468,   469,   470,     0,   471,   472,
     473,   474,   475,   476,   477,   478,     0,  1794,   479,   480,
     481,     0,     0,   482,   483,   484,   485,     0,   486,   487,
     488,   489,   490,   491,   492,   493,     0,   494,     0,   496,
     497,   498,   499,   500,   501,   502,     0,     0,   503,     0,
       0,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   532,     0,   557,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   119,   120,   121,   122,   123,   124,   125,   126,
       0,   127,   128,   129,     3,     4,     0,     0,     0,     0,
       0,     0,     0,   131,   132,     0,     0,   134,   135,     0,
     137,   138,   139,   140,   141,     0,   143,   144,     0,   145,
     146,   147,   148,   149,   150,     0,     0,   151,   152,   153,
     154,   155,   156,   157,     0,   158,   159,   160,   161,   162,
       0,     0,     0,   164,   165,   166,   167,   168,   169,     0,
     171,   172,   173,     0,   174,   175,   176,   177,   178,   179,
       0,     0,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,     0,   196,     0,
     197,   198,   199,   200,   201,   202,     0,     0,   203,   204,
     205,   206,     0,     0,   207,   208,   209,   210,   211,     0,
     212,   213,   214,     0,   215,   216,   217,     0,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
       0,   230,     0,   231,   232,   233,   234,     0,   235,     0,
     236,     0,     0,     0,   239,   240,   533,     0,   243,   244,
     245,     0,   246,   247,   248,   249,     0,   250,   251,   252,
     253,   254,   255,   256,     0,   258,   259,   260,   261,     0,
     262,   263,   264,   265,   266,   267,   268,     0,   269,     0,
     271,   272,   273,   274,   275,   276,   277,   278,     0,   279,
       0,   280,     0,     0,   283,     0,   285,   286,   287,     0,
     288,   289,   290,     0,     0,   291,     0,   293,     0,     0,
     295,   296,   297,   298,   299,   300,   301,   302,   534,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
       0,   326,   327,   328,   329,   330,     0,   331,   332,     0,
     334,     0,   335,   336,   337,   338,   339,   340,     0,   341,
     342,     0,     0,   343,   344,   345,     0,     0,   346,   347,
     348,     0,   350,     0,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,     0,     0,     0,
       0,   365,   366,   367,     0,   369,   370,   371,   372,   373,
     374,     0,   375,   376,   377,   378,   379,   380,     0,   381,
     382,   383,   384,   385,   386,   387,   388,   389,   390,     0,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,     0,   404,   405,     0,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
     420,   421,   422,   423,     0,     0,   424,   425,   426,   427,
     428,   429,   430,   431,   432,     0,     0,   434,   435,   436,
     437,     0,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,   535,   452,   453,     0,     0,
     454,   455,     0,   456,     0,   458,   459,   460,   461,   462,
       0,   463,   464,   465,     0,     0,   466,   467,   468,   469,
     470,     0,   471,   472,   473,   474,   475,   476,   477,   478,
       0,     0,   479,   480,   481,     0,     0,   482,   483,   484,
     485,     0,   486,   487,   488,   489,   490,   491,   492,   493,
       0,   494,     0,   496,   497,   498,   499,   500,   501,   502,
       0,     0,   503,     0,     0,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
     519,   520,   521,   522,   523,   524,  1515,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,  1516,     0,     0,  -839,     0,  1517,   131,   132,     0,
    1518,   134,   135,  1519,   137,   138,   139,     0,  1520,  1521,
    1522,  1523,     0,   145,   146,   147,   148,   149,   150,     0,
       0,   151,   152,   153,   154,  1524,  1525,   157,     0,   158,
     159,   160,   161,     0,     0,  1526,     0,  1527,   165,   166,
     167,   168,   169,  1528,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,  1529,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,  1530,   192,   193,  1531,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
    1079,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,     0,   223,   224,   225,
     226,   227,   228,     0,     0,   230,     0,   231,   232,  1532,
     234,     0,   235,     0,   236,  1533,     0,  1534,   239,   240,
    -839,  1535,   243,   244,   245,     0,     0,     0,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,  1536,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,  1537,     0,   272,   273,   274,   275,   276,
    1538,  1539,     0,  1540,     0,   280,  1541,  1542,   283,  1543,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
    1544,   293,  1545,     0,   295,   296,   297,   298,   299,   300,
     301,   302,  1546,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,  1547,  1548,  1549,   327,   328,   329,     0,
       0,   331,   332,  1550,   334,     0,     0,   336,  1551,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,     0,  1552,   350,  1553,     0,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,     0,  1554,   369,
     370,     0,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,  1555,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
    1556,   407,   408,   409,  1557,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,  1558,
     424,   425,   426,   427,   428,   429,  1559,   431,   432,     0,
    1560,   434,   435,  1561,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,  1562,
     452,     0,     0,     0,   454,   455,     0,   456,  1563,   458,
     459,   460,   461,   462,     0,   463,  1564,  1565,     0,     0,
     466,   467,     0,   469,     0,     0,   471,   472,  1566,   474,
     475,   476,   477,   478,  1567,     0,   479,   480,   481,  1568,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,     0,  1569,   493,     0,   494,  1570,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   532,     0,   557,     0,     0,
       0,     0,     0,     0,     0,     0,   521,   522,   523,   524,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,   558,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   559,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   801,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,   557,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,   909,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   801,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,   557,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,   954,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   464,   465,     0,
       0,   466,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   532,     0,   557,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   131,   132,     0,     0,   134,   135,     0,   137,
     138,   139,   140,   141,     0,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   162,     0,
       0,     0,   164,   165,   166,   167,   168,   169,     0,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
       0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,  1192,   228,   229,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
       0,     0,     0,   239,   240,   533,     0,   243,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,     0,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,     0,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,     0,     0,   283,     0,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,     0,   293,     0,     0,   295,
     296,   297,   298,   299,   300,   301,   302,   534,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,     0,
     326,   327,   328,   329,   330,     0,   331,   332,     0,   334,
       0,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   801,   343,   344,   345,     0,     0,   346,   347,   348,
       0,   350,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   367,     0,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,     0,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,     0,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   535,   452,   453,     0,     0,   454,
     455,     0,   456,     0,   458,   459,   460,   461,   462,     0,
     463,   464,   465,     0,     0,   466,   467,   468,   469,   470,
       0,   471,   472,   473,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   493,     0,
     494,     0,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   532,     0,   557,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,  2017,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   255,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,  2018,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,  2019,   456,     0,   458,  2020,
     460,  2021,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,  2022,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,   826,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,   832,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   833,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   834,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   835,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   836,   465,     0,
       0,   837,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   838,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   532,     0,   557,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   131,   132,     0,     0,   134,   135,     0,   137,
     138,   139,   140,   141,     0,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   162,     0,
       0,     0,   164,   165,   166,   167,   168,   169,     0,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
       0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
       0,     0,     0,   239,   240,   533,     0,   243,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,     0,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,     0,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,     0,     0,   283,     0,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,     0,   293,     0,     0,   295,
     296,   297,   298,   299,   300,   301,   302,   534,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,     0,
     326,   327,   328,   329,   330,     0,   331,   332,     0,   334,
       0,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,   348,
       0,   350,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   367,     0,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   871,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,     0,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,     0,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   535,   452,   453,     0,     0,   454,
     455,     0,   456,     0,   458,   459,   460,   461,   462,     0,
     463,   464,   465,     0,     0,   466,   467,   468,   469,   470,
       0,   471,   472,   473,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   493,     0,
     494,     0,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   532,     0,   557,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   904,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   907,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,   557,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,   911,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,   557,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,   942,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   464,   465,     0,
       0,   466,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   532,     0,   557,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   131,   132,     0,     0,   134,   135,     0,   137,
     138,   139,   140,   141,     0,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   162,     0,
       0,     0,   164,   165,   166,   167,   168,   169,     0,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
       0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
       0,     0,     0,   239,   240,   533,     0,   243,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,   970,   256,     0,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,     0,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,     0,     0,   283,     0,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,     0,   293,     0,     0,   295,
     296,   297,   298,   299,   300,   301,   302,   534,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,     0,
     326,   327,   328,   329,   330,     0,   331,   332,     0,   334,
       0,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,   348,
       0,   350,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   367,     0,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,     0,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,     0,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   535,   452,   453,     0,     0,   454,
     455,     0,   456,     0,   458,   459,   460,   461,   462,     0,
     463,   464,   465,     0,     0,   466,   467,   468,   469,   470,
       0,   471,   472,   473,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   493,     0,
     494,     0,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   532,     0,   557,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   973,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,  1016,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,  1043,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,   255,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,   832,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   836,   465,     0,
       0,   837,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   532,     0,   557,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   131,   132,     0,     0,   134,   135,     0,   137,
     138,   139,   140,   141,     0,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   162,     0,
       0,     0,   164,   165,   166,   167,   168,   169,     0,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
       0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
       0,     0,     0,   239,   240,   533,     0,   243,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,  1336,   256,     0,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,     0,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,     0,     0,   283,     0,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,     0,   293,     0,     0,   295,
     296,   297,   298,   299,   300,   301,   302,   534,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,     0,
     326,   327,   328,   329,   330,     0,   331,   332,     0,   334,
       0,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,   348,
       0,   350,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   367,     0,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,     0,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
     429,   430,   431,   432,     0,     0,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   535,   452,   453,     0,     0,   454,
     455,     0,   456,     0,   458,   459,   460,   461,   462,     0,
     463,   464,   465,     0,     0,   466,   467,   468,   469,   470,
       0,   471,   472,   473,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   493,     0,
     494,     0,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   532,     0,   557,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,  1338,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,  1341,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,   557,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,  1343,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,   557,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,  1345,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   464,   465,     0,
       0,   466,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,  1515,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,  1516,     0,     0,     0,
       0,  1517,   131,   132,     0,  1518,   134,   135,  1519,   137,
     138,   139,     0,  1520,  1521,  1522,  1523,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
    1524,  1525,   157,     0,   158,   159,   160,   161,     0,     0,
    1526,     0,  1527,   165,   166,   167,   168,   169,  1528,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
    1529,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,  1530,   192,   193,  1531,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,  1079,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,     0,   223,   224,   225,   226,   227,   228,     0,     0,
     230,     0,   231,   232,  1532,   234,     0,   235,     0,   236,
    1533,     0,  1534,   239,   240,     0,  1535,   243,   244,   245,
       0,     0,     0,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,  1536,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,  1537,     0,
     272,   273,   274,   275,   276,  1538,  1539,     0,  1540,     0,
     280,  1541,  1542,   283,  1543,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,  1544,   293,  1545,     0,   295,
     296,   297,   298,   299,   300,   301,   302,  1546,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,  1547,  1548,
    1549,   327,   328,   329,     0,     0,   331,   332,  1550,   334,
       0,     0,   336,  1551,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,     0,
    1552,   350,  1553,     0,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,     0,  1554,   369,   370,     0,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,  1555,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,  1556,   407,   408,   409,  1557,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,  1558,   424,   425,   426,   427,   428,
     429,  1559,   431,   432,     0,  1560,   434,   435,  1561,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,  1562,   452,     0,     0,     0,   454,
     455,     0,   456,  1563,   458,   459,   460,   461,   462,     0,
     463,  1564,  1565,     0,     0,   466,   467,     0,   469,     0,
       0,   471,   472,  1566,   474,   475,   476,   477,   478,  1567,
       0,   479,   480,   481,  1568,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,     0,  1569,   493,     0,
     494,  1570,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     532,     0,   557,     0,     0,     0,     0,     0,     0,     0,
       0,   521,   522,   523,   524,     0,     0,     0,     0,     0,
     119,   120,   121,   122,   123,   124,   125,   126,     0,   127,
     128,   129,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   131,   132,     0,     0,   134,   135,     0,   137,   138,
     139,   140,   141,     0,   143,   144,     0,   145,   146,   147,
     148,   149,   150,     0,     0,   151,   152,   153,   154,   155,
     156,   157,     0,   158,   159,   160,   161,   162,     0,     0,
       0,   164,   165,   166,   167,   168,   169,     0,   171,   172,
     173,     0,   174,   175,   176,   177,   178,   179,     0,     0,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,     0,   196,     0,   197,   198,
     199,   200,   201,   202,     0,     0,   203,   204,   205,   206,
       0,     0,   207,   208,   209,   210,   211,     0,   212,   213,
     214,     0,   215,   216,   217,     0,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,     0,   230,
       0,   231,   232,   233,   234,     0,   235,     0,   236,     0,
       0,     0,   239,   240,   533,     0,   243,   244,   245,     0,
     246,   247,   248,   249,     0,   250,   251,   252,   253,   254,
    2316,   256,     0,   258,   259,   260,   261,     0,   262,   263,
     264,   265,   266,   267,   268,     0,   269,     0,   271,   272,
     273,   274,   275,   276,   277,   278,     0,   279,     0,   280,
       0,     0,   283,     0,   285,   286,   287,     0,   288,   289,
     290,     0,     0,   291,     0,   293,     0,     0,   295,   296,
     297,   298,   299,   300,   301,   302,   534,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,     0,   326,
     327,   328,   329,   330,     0,   331,   332,     0,   334,     0,
     335,   336,   337,   338,   339,   340,     0,   341,   342,     0,
       0,   343,   344,   345,     0,     0,   346,   347,   348,     0,
     350,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,     0,     0,     0,     0,   365,
     366,   367,     0,   369,   370,   371,   372,   373,   374,     0,
     375,   376,   377,   378,   379,   380,     0,   381,   382,   383,
     384,   385,   386,   387,   388,   389,   390,     0,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,     0,   404,   405,     0,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
     422,   423,     0,     0,   424,   425,   426,   427,   428,   429,
     430,   431,   432,     0,     0,   434,   435,   436,   437,     0,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,   535,   452,   453,     0,     0,   454,   455,
       0,   456,     0,   458,   459,   460,   461,   462,     0,   463,
     464,   465,     0,     0,   466,   467,   468,   469,   470,     0,
     471,   472,   473,   474,   475,   476,   477,   478,     0,     0,
     479,   480,   481,     0,     0,   482,   483,   484,   485,     0,
     486,   487,   488,   489,   490,   491,   492,   493,     0,   494,
       0,   496,   497,   498,   499,   500,   501,   502,     0,     0,
     503,     0,     0,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
     521,   522,   523,   524,  1515,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   119,   120,   121,   122,   123,   124,
     125,   126,     0,   127,   128,   129,     0,     0,     0,  1516,
       0,     0,     0,     0,  1517,   131,   132,     0,  1518,   134,
     135,  1519,   137,   138,   139,     0,  1520,  1521,  1522,  1523,
       0,   145,   146,   147,   148,   149,   150,     0,     0,   151,
     152,   153,   154,  1524,  1525,   157,     0,   158,   159,   160,
     161,     0,     0,  1526,     0,  1527,   165,   166,   167,   168,
     169,  1528,   171,   172,   173,     0,   174,   175,   176,   177,
     178,   179,     0,  1529,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,  1530,   192,   193,  1531,   195,     0,
     196,     0,   197,   198,   199,   200,   201,   202,     0,     0,
     203,   204,   205,   206,     0,     0,   207,   208,  1079,   210,
     211,     0,   212,   213,   214,     0,  2424,   216,   217,     0,
     218,   219,   220,   221,     0,   223,   224,   225,   226,   227,
     228,     0,     0,   230,     0,   231,   232,  1532,   234,     0,
     235,     0,   236,  1533,     0,  1534,   239,   240,     0,  1535,
     243,   244,   245,     0,     0,     0,   248,   249,     0,   250,
     251,   252,   253,   254,   255,   256,  1536,   258,   259,   260,
     261,     0,   262,   263,   264,   265,   266,   267,   268,     0,
     269,  1537,     0,   272,   273,   274,   275,   276,  1538,  1539,
       0,  1540,     0,   280,  1541,  1542,   283,  1543,   285,   286,
     287,     0,   288,   289,   290,     0,     0,   291,  1544,   293,
    1545,     0,   295,   296,   297,   298,   299,   300,   301,   302,
    1546,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,  1547,  1548,  1549,   327,   328,   329,     0,     0,   331,
     332,  1550,   334,     0,     0,   336,  1551,   338,   339,   340,
       0,   341,   342,     0,     0,   343,   344,   345,     0,     0,
     346,   347,     0,  1552,   350,  1553,     0,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
       0,     0,     0,   365,   366,     0,  1554,   369,   370,     0,
     372,   373,   374,     0,   375,   376,   377,   378,   379,   380,
       0,   381,   382,   383,   384,   385,  1555,   387,   388,   389,
     390,     0,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,     0,   404,   405,  1556,   407,
     408,   409,  1557,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   420,   421,   422,   423,     0,  1558,   424,   425,
     426,   427,   428,   429,  1559,   431,   432,     0,  1560,   434,
     435,  1561,   437,     0,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,  1562,   452,     0,
       0,     0,   454,   455,     0,   456,  1563,   458,   459,   460,
     461,   462,     0,   463,  1564,  1565,     0,     0,   466,   467,
       0,   469,     0,     0,   471,   472,  1566,   474,   475,   476,
     477,   478,  1567,     0,   479,   480,   481,  1568,     0,   482,
     483,   484,   485,     0,   486,   487,   488,   489,   490,     0,
    1569,   493,     0,   494,  1570,   496,   497,   498,   499,   500,
     501,   502,     0,     0,   503,     0,     0,   504,   505,   506,
     507,   508,   509,   532,     0,   557,     0,     0,     0,     0,
       0,     0,     0,     0,   521,   522,   523,   524,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,  3119,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   464,   465,     0,
       0,   466,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   532,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   131,   132,     0,     0,   134,   135,     0,   137,
     138,   139,   140,   141,     0,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   162,     0,
       0,     0,   164,   165,   166,   167,   168,   169,     0,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
       0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
       0,     0,     0,   239,   240,   533,     0,   848,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,     0,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,     0,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,     0,     0,   283,     0,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,     0,   293,     0,     0,   295,
     296,   849,   298,   299,   300,   301,   302,   534,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,     0,
     326,   327,   328,   329,   330,     0,   331,   332,     0,   334,
       0,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,   348,
       0,   350,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   367,     0,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,     0,   407,   408,   409,   410,
     411,   412,   413,   414,   850,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   851,
     429,   430,   431,   432,     0,     0,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   535,   452,   453,     0,     0,   454,
     455,     0,   456,     0,   458,   459,   460,   461,   462,     0,
     463,   852,   465,     0,     0,   466,   467,   468,   469,   470,
       0,   471,   472,   473,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   853,     0,
     494,     0,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   532,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,   966,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,   255,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   850,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   852,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,  1332,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   532,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   131,   132,
       0,     0,   134,   135,     0,   137,   138,   139,   140,   141,
       0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,   155,   156,   157,     0,
     158,   159,   160,   161,   162,     0,     0,     0,   164,   165,
     166,   167,   168,   169,     0,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,     0,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,   209,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,     0,   230,     0,   231,   232,
     233,   234,     0,   235,     0,   236,     0,     0,     0,   239,
     240,   533,     0,   243,   244,   245,     0,   246,   247,   248,
     249,     0,   250,   251,   252,   253,   254,  1355,   256,     0,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,     0,   271,   272,   273,   274,   275,
     276,   277,   278,     0,   279,     0,   280,     0,     0,   283,
       0,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,     0,   293,     0,     0,   295,   296,   297,   298,   299,
     300,   301,   302,   534,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,     0,   326,   327,   328,   329,
     330,     0,   331,   332,     0,   334,     0,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,   348,     0,   350,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,   367,     0,
     369,   370,   371,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,     0,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
       0,   424,   425,   426,   427,   428,   429,   430,   431,   432,
       0,     0,   434,   435,   436,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     535,   452,   453,     0,     0,   454,   455,     0,   456,     0,
     458,   459,   460,   461,   462,     0,   463,   464,   465,     0,
       0,   466,   467,   468,   469,   470,     0,   471,   472,   473,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
       0,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,   491,   492,   493,     0,   494,     0,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
     524,   532,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   119,   120,   121,   122,   123,   124,   125,   126,     0,
     127,   128,   129,     0,     0,     0,     0,     0,     0,  1715,
       0,     0,   131,   132,     0,     0,   134,   135,     0,   137,
     138,   139,   140,   141,     0,   143,   144,     0,   145,   146,
     147,   148,   149,   150,     0,     0,   151,   152,   153,   154,
     155,   156,   157,     0,   158,   159,   160,   161,   162,     0,
       0,     0,   164,   165,   166,   167,   168,   169,     0,   171,
     172,   173,     0,   174,   175,   176,   177,   178,   179,     0,
       0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,     0,   196,     0,   197,
     198,   199,   200,   201,   202,     0,     0,   203,   204,   205,
     206,     0,     0,   207,   208,   209,   210,   211,     0,   212,
     213,   214,     0,   215,   216,   217,     0,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,     0,
     230,     0,   231,   232,   233,   234,     0,   235,     0,   236,
       0,     0,     0,   239,   240,   533,     0,   243,   244,   245,
       0,   246,   247,   248,   249,     0,   250,   251,   252,   253,
     254,   255,   256,     0,   258,   259,   260,   261,     0,   262,
     263,   264,   265,   266,   267,   268,     0,   269,     0,   271,
     272,   273,   274,   275,   276,   277,   278,     0,   279,     0,
     280,     0,     0,   283,     0,   285,   286,   287,     0,   288,
     289,   290,     0,     0,   291,     0,   293,     0,     0,   295,
     296,   297,   298,   299,   300,   301,   302,   534,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,     0,
     326,   327,   328,   329,   330,     0,   331,   332,     0,   334,
       0,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,     0,   343,   344,   345,     0,     0,   346,   347,   348,
       0,   350,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,     0,     0,     0,     0,
     365,   366,   367,     0,   369,   370,   371,   372,   373,   374,
       0,   375,   376,   377,   378,   379,   380,     0,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,     0,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,     0,   404,   405,     0,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
       0,   430,   431,   432,     0,     0,   434,   435,   436,   437,
       0,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   535,   452,   453,     0,     0,   454,
     455,     0,   456,     0,   458,   459,   460,   461,   462,     0,
     463,   464,   465,     0,     0,   466,   467,   468,   469,   470,
       0,   471,   472,   473,   474,   475,   476,   477,   478,     0,
       0,   479,   480,   481,     0,     0,   482,   483,   484,   485,
       0,   486,   487,   488,   489,   490,   491,   492,   493,     0,
     494,     0,   496,   497,   498,   499,   500,   501,   502,     0,
       0,   503,     0,     0,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
     520,   521,   522,   523,   524,   532,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,   248,   249,     0,
     250,   251,   252,   253,   254,  1912,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,   532,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   119,
     120,   121,   122,   123,   124,   125,   126,     0,   127,   128,
     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     131,   132,     0,     0,   134,   135,     0,   137,   138,   139,
     140,   141,     0,   143,   144,     0,   145,   146,   147,   148,
     149,   150,     0,     0,   151,   152,   153,   154,   155,   156,
     157,     0,   158,   159,   160,   161,   162,     0,     0,     0,
     164,   165,   166,   167,   168,   169,     0,   171,   172,   173,
       0,   174,   175,   176,   177,   178,   179,     0,     0,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,     0,   196,     0,   197,   198,   199,
     200,   201,   202,     0,     0,   203,   204,   205,   206,     0,
       0,   207,   208,   209,   210,   211,     0,   212,   213,   214,
       0,   215,   216,   217,     0,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,     0,   230,     0,
     231,   232,   233,   234,     0,   235,     0,   236,     0,     0,
       0,   239,   240,   533,     0,   243,   244,   245,     0,   246,
     247,   248,   249,     0,   250,   251,   252,   253,   254,  2298,
     256,     0,   258,   259,   260,   261,     0,   262,   263,   264,
     265,   266,   267,   268,     0,   269,     0,   271,   272,   273,
     274,   275,   276,   277,   278,     0,   279,     0,   280,     0,
       0,   283,     0,   285,   286,   287,     0,   288,   289,   290,
       0,     0,   291,     0,   293,     0,     0,   295,   296,   297,
     298,   299,   300,   301,   302,   534,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,     0,   326,   327,
     328,   329,   330,     0,   331,   332,     0,   334,     0,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,     0,
     343,   344,   345,     0,     0,   346,   347,   348,     0,   350,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,     0,     0,     0,     0,   365,   366,
     367,     0,   369,   370,   371,   372,   373,   374,     0,   375,
     376,   377,   378,   379,   380,     0,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,     0,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
       0,   404,   405,     0,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,     0,     0,   424,   425,   426,   427,   428,   429,   430,
     431,   432,     0,     0,   434,   435,   436,   437,     0,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   535,   452,   453,     0,     0,   454,   455,     0,
     456,     0,   458,   459,   460,   461,   462,     0,   463,   464,
     465,     0,     0,   466,   467,   468,   469,   470,     0,   471,
     472,   473,   474,   475,   476,   477,   478,     0,     0,   479,
     480,   481,     0,     0,   482,   483,   484,   485,     0,   486,
     487,   488,   489,   490,   491,   492,   493,     0,   494,     0,
     496,   497,   498,   499,   500,   501,   502,     0,     0,   503,
       0,     0,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
     522,   523,   524,   532,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
     126,     0,   127,   128,   129,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   131,   132,     0,     0,   134,   135,
       0,   137,   138,   139,   140,   141,     0,   143,   144,     0,
     145,   146,   147,   148,   149,   150,     0,     0,   151,   152,
     153,   154,   155,   156,   157,     0,   158,   159,   160,   161,
     162,     0,     0,     0,   164,   165,   166,   167,   168,   169,
       0,   171,   172,   173,     0,   174,   175,   176,   177,   178,
     179,     0,     0,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
       0,   197,   198,   199,   200,   201,   202,     0,     0,   203,
     204,   205,   206,     0,     0,   207,   208,   209,   210,   211,
       0,   212,   213,   214,     0,   215,   216,   217,     0,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,     0,   230,     0,   231,   232,   233,   234,     0,   235,
       0,   236,     0,     0,     0,   239,   240,   533,     0,   243,
     244,   245,     0,   246,   247,   248,   249,     0,   250,   251,
     252,   253,   254,  2318,   256,     0,   258,   259,   260,   261,
       0,   262,   263,   264,   265,   266,   267,   268,     0,   269,
       0,   271,   272,   273,   274,   275,   276,   277,   278,     0,
     279,     0,   280,     0,     0,   283,     0,   285,   286,   287,
       0,   288,   289,   290,     0,     0,   291,     0,   293,     0,
       0,   295,   296,   297,   298,   299,   300,   301,   302,   534,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,     0,   326,   327,   328,   329,   330,     0,   331,   332,
       0,   334,     0,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,     0,   343,   344,   345,     0,     0,   346,
     347,   348,     0,   350,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
       0,     0,   365,   366,   367,     0,   369,   370,   371,   372,
     373,   374,     0,   375,   376,   377,   378,   379,   380,     0,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
       0,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,     0,   404,   405,     0,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,     0,     0,   424,   425,   426,
     427,   428,   429,   430,   431,   432,     0,     0,   434,   435,
     436,   437,     0,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   535,   452,   453,     0,
       0,   454,   455,     0,   456,     0,   458,   459,   460,   461,
     462,     0,   463,   464,   465,     0,     0,   466,   467,   468,
     469,   470,     0,   471,   472,   473,   474,   475,   476,   477,
     478,     0,     0,   479,   480,   481,     0,     0,   482,   483,
     484,   485,     0,   486,   487,   488,   489,   490,   491,   492,
     493,     0,   494,     0,   496,   497,   498,   499,   500,   501,
     502,     0,     0,   503,     0,     0,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,  3309,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   119,   120,   121,
     122,   123,   124,   125,   126,     0,   127,   128,   129,     0,
       0,     0,  3037,     0,     0,     0,     0,  3038,   131,   132,
       0,  3039,   134,   135,  3040,   137,   138,   139,     0,  1520,
    3041,  1522,  1523,     0,   145,   146,   147,   148,   149,   150,
       0,     0,   151,   152,   153,   154,  1524,  1525,   157,     0,
     158,   159,   160,   161,     0,     0,  3042,     0,  3043,   165,
     166,   167,   168,   169,  3044,   171,   172,   173,     0,   174,
     175,   176,   177,   178,   179,     0,  3045,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,  1530,   192,   193,
    1531,   195,     0,   196,     0,   197,   198,   199,   200,   201,
     202,     0,     0,   203,   204,   205,   206,     0,     0,   207,
     208,  1079,   210,   211,     0,   212,   213,   214,     0,   215,
     216,   217,     0,   218,   219,   220,   221,     0,   223,   224,
     225,   226,   227,   228,     0,     0,   230,     0,   231,   232,
    1532,   234,     0,   235,     0,   236,  3046,     0,  3047,   239,
     240,  3048,  3049,   243,   244,   245,     0,     0,     0,   248,
     249,     0,   250,   251,   252,   253,   254,   255,   256,  3050,
     258,   259,   260,   261,     0,   262,   263,   264,   265,   266,
     267,   268,     0,   269,  3051,     0,   272,   273,   274,   275,
     276,  1538,  1539,     0,  1540,     0,   280,  3052,  3053,   283,
    3054,   285,   286,   287,     0,   288,   289,   290,     0,     0,
     291,  3055,   293,  3056,     0,   295,   296,   297,   298,   299,
     300,   301,   302,  3310,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,  1547,  3058,  1549,   327,   328,   329,
       0,     0,   331,   332,  3060,   334,     0,     0,   336,  1551,
     338,   339,   340,     0,   341,   342,     0,     0,   343,   344,
     345,     0,     0,   346,   347,     0,  3062,   350,  3063,     0,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,     0,     0,     0,     0,   365,   366,     0,  3064,
     369,   370,     0,   372,   373,   374,     0,   375,   376,   377,
     378,   379,   380,     0,   381,   382,   383,   384,   385,  1555,
     387,   388,   389,   390,     0,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,     0,   404,
     405,  3065,   407,   408,   409,     0,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,     0,
    3066,   424,   425,   426,   427,   428,   429,     0,   431,   432,
       0,  3068,   434,   435,  1561,   437,     0,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
    3311,   452,     0,     0,     0,   454,   455,     0,   456,  3070,
     458,   459,   460,   461,   462,     0,   463,  1564,  1565,     0,
       0,   466,   467,     0,   469,     0,     0,   471,   472,  3071,
     474,   475,   476,   477,   478,     0,     0,   479,   480,   481,
    3073,     0,   482,   483,   484,   485,     0,   486,   487,   488,
     489,   490,     0,  1569,   493,     0,   494,  3074,   496,   497,
     498,   499,   500,   501,   502,     0,     0,   503,     0,     0,
     504,   505,   506,   507,   508,   509,  1820,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   521,   522,   523,
     524,     0,     0,     0,     0,     0,   119,   120,   121,   122,
     123,   124,   125,   126,     0,   127,   128,   129,     0,     0,
       0,  1516,     0,     0,     0,     0,  1517,   131,   132,     0,
    1518,   134,   135,  1519,   137,   138,   139,     0,  1520,  1521,
    1522,  1523,     0,   145,   146,   147,   148,   149,   150,     0,
       0,   151,   152,   153,   154,  1524,  1525,   157,     0,   158,
     159,   160,   161,     0,     0,  1526,     0,  1527,   165,   166,
     167,   168,   169,  1528,   171,   172,   173,     0,   174,   175,
     176,   177,   178,   179,     0,  1529,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,  1530,   192,   193,  1531,
     195,     0,   196,     0,   197,   198,   199,   200,   201,   202,
       0,     0,   203,   204,   205,   206,     0,     0,   207,   208,
    1079,   210,   211,     0,   212,   213,   214,     0,   215,   216,
     217,     0,   218,   219,   220,   221,     0,   223,   224,   225,
     226,   227,   228,     0,     0,   230,     0,   231,   232,  1532,
     234,     0,   235,     0,   236,  1533,     0,  1534,   239,   240,
       0,  1535,   243,   244,   245,     0,     0,     0,   248,   249,
       0,   250,   251,   252,   253,   254,   255,   256,  1536,   258,
     259,   260,   261,     0,   262,   263,   264,   265,   266,   267,
     268,     0,   269,  1537,     0,   272,   273,   274,   275,   276,
    1538,  1539,     0,  1540,     0,   280,  1541,  1542,   283,  1543,
     285,   286,   287,     0,   288,   289,   290,     0,     0,   291,
    1544,   293,  1545,     0,   295,   296,   297,   298,   299,   300,
     301,   302,     0,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,  1547,  1548,  1549,   327,   328,   329,     0,
       0,   331,   332,  1550,   334,     0,     0,   336,  1551,   338,
     339,   340,     0,   341,   342,     0,     0,   343,   344,   345,
       0,     0,   346,   347,     0,  1552,   350,  1553,     0,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,     0,     0,     0,     0,   365,   366,     0,  1554,   369,
     370,     0,   372,   373,   374,     0,   375,   376,   377,   378,
     379,   380,     0,   381,   382,   383,   384,   385,  1555,   387,
     388,   389,   390,     0,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,     0,   404,   405,
    1556,   407,   408,   409,     0,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   423,     0,  1558,
     424,   425,   426,   427,   428,   429,     0,   431,   432,     0,
    1560,   434,   435,  1561,   437,     0,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,     0,
     452,     0,     0,     0,   454,   455,     0,   456,  1563,   458,
     459,   460,   461,   462,     0,   463,  1564,  1565,     0,     0,
     466,   467,     0,   469,     0,     0,   471,   472,  1566,   474,
     475,   476,   477,   478,     0,     0,   479,   480,   481,  1568,
       0,   482,   483,   484,   485,     0,   486,   487,   488,   489,
     490,     0,  1569,   493,     0,   494,  1570,   496,   497,   498,
     499,   500,   501,   502,     0,     0,   503,     0,     0,   504,
     505,   506,   507,   508,   509,   532,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   521,   522,   523,   524,
       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
     124,   125,   126,     0,   127,   128,   129,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   131,   132,     0,     0,
     134,   135,     0,   137,   138,   139,   140,   141,     0,   143,
     144,     0,   145,   146,   147,   148,   149,   150,     0,     0,
     151,   152,   153,   154,   155,   156,   157,     0,   158,   159,
     160,   161,   162,     0,     0,     0,   164,   165,   166,   167,
     168,   169,     0,   171,   172,   173,     0,   174,   175,   176,
     177,   178,   179,     0,     0,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
       0,   196,     0,   197,   198,   199,   200,   201,   202,     0,
       0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
     210,   211,     0,   212,   213,   214,     0,   215,   216,   217,
       0,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,     0,   230,     0,   231,   232,   233,   234,
       0,   235,     0,   236,     0,     0,     0,   239,   240,   533,
       0,   243,   244,   245,     0,   246,   247,     0,   249,     0,
     250,   251,   252,   253,   254,   255,   256,     0,   258,   259,
     260,   261,     0,   262,   263,   264,   265,   266,   267,   268,
       0,   269,     0,   271,   272,   273,   274,   275,   276,   277,
     278,     0,   279,     0,   280,     0,     0,   283,     0,   285,
     286,   287,     0,   288,   289,   290,     0,     0,   291,     0,
     293,     0,     0,   295,   296,   297,   298,   299,   300,   301,
     302,   534,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,     0,   326,   327,   328,   329,   330,     0,
     331,   332,     0,   334,     0,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,     0,   343,   344,   345,     0,
       0,   346,   347,   348,     0,   350,     0,   352,   353,   354,
     355,   356,   357,   358,     0,   360,   361,   362,   363,   364,
       0,     0,     0,     0,   365,   366,   367,     0,   369,   370,
     371,   372,   373,   374,     0,   375,   376,   377,   378,   379,
     380,     0,   381,   382,   383,     0,   385,   386,   387,   388,
     389,   390,     0,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,     0,   404,   405,     0,
     407,   408,   409,   410,     0,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,     0,     0,   424,
     425,   426,   427,   428,   429,   430,   431,   432,     0,     0,
     434,   435,   436,   437,     0,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   535,   452,
     453,     0,     0,   454,   455,     0,   456,     0,   458,   459,
     460,   461,   462,     0,   463,   464,   465,     0,     0,   466,
     467,   468,   469,   470,     0,   471,   472,   473,   474,   475,
     476,   477,   478,     0,     0,   479,   480,   481,     0,     0,
     482,   483,   484,   485,     0,   486,   487,   488,   489,   490,
     491,   492,   493,     0,   494,     0,   496,   497,   498,   499,
     500,   501,   502,     0,     0,   503,     0,     0,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
     516,   517,   518,   519,   520,   521,   522,   523,   524,     1,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
       0,     3,     4,     0,     0,     0,     0,     1,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     2,     0,     6,
       0,     0,     0,     0,     0,     0,     0,     0,     7,     0,
       0,     0,     0,     0,     0,     0,     0,     6,     0,     0,
       0,     0,     8,     0,     0,     0,     7,     0,     0,     0,
       0,     0,     0,    10,     0,     0,     0,     0,     0,     0,
       8,     0,     0,     0,     0,    11,     0,   756,     0,     0,
       0,    10,     0,     0,     0,     0,     0,     0,    13,     0,
       0,     0,     0,    11,     0,   756,     0,     0,     0,     0,
       0,     0,     0,    14,    15,     0,    13,     0,     0,     0,
       0,     0,     0,     0,   757,     0,     0,     0,     0,     0,
      18,    14,    15,     0,     0,     0,     0,     0,    19,     0,
       0,     0,   757,     0,     0,     0,     0,     0,    18,     0,
       0,     0,     0,     0,     0,    22,    19,     0,     0,    23,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    22,     0,     0,     0,    23,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0, -1498,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0, -1498,
       0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    25,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    26,    27,    28,     0,     0,     0,
       0,     0,    29,     0,     0,    30,     0,     0,     0,     0,
       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
      29,     0,     0,    30,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
       0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
       0,    33,     0,    32,     0,     0,     0,     0,    34,     0,
       0,     0,    35,     0,     0,     0,     0,     0,     0,    33,
       0,     0,     0,    36,     0,     0,    34,     0,     0,     0,
      35,     0,     0,     0,     0,    37,     0,     0,     0,    38,
       0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    37,     0,     0,     0,    38,     0,    39,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    40,     0,     0,     0,    39,     0,    42,
       0,     0,     0,     0,    43,     0,     0,     0,     0,   758,
       0,    40,     0,     0,     0,     0,     0,    42,     0,     0,
       0,    44,    43,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
       0,     0,     0,     0,     0,    45,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   759,
       0,     0,     0,    45,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    46
};

static const yytype_int16 yycheck[] =
{
       7,     0,   525,     0,     0,    46,     0,   846,     0,    16,
       0,     0,   751,     0,   908,   893,    23,     0,     0,   820,
    1051,    20,  1005,    38,    20,  1471,  1252,   920,  1265,  1455,
     759,  1250,   936,    73,     7,  1183,  1238,  1700,    23,   941,
     996,  1616,    77,   752,    20,  1100,    77,  1738,   996,   996,
      23,   996,     0,  1589,  1852,   971,  1230,  2314,  1508,  1629,
    1860,  1789,  2250,  1309,  2240,  1227,  1672,   986,    75,    76,
     975,   986,  1218,    17,  2057,  1657,  1653,  1654,  1804,  1358,
       0,  2729,  2770,     0,  2729,  2794,  2220,     0,  2222,    37,
      75,    76,     0,  1255,  1148,  2767,   111,    16,    45,  1153,
    2305,  2787,    75,    76,     0,     0,  2186,   815,     0,  2595,
    2239,    13,   758,   821,    75,    76,  1842,    19,     7,   759,
    2387,  1014,  1877,   908,  1704,   910,  1109,   912,    30,     0,
       0,  2681,  1874,  1873,    23,  2685,     9,    34,     0,     0,
       0,     5,    44,    45,  1672,     0,     0,     0,     0,     0,
      19,     0,  1992,   101,  1758,     0,     0,     0,     0,     5,
       0,     0,     0,  1073,  1074,     0,    56,    13,    14,  2400,
       4,    64,     5,  2400,  3131,     9,    10,    81,     5,  1848,
       5,  1091,   783,  2393,  1756,     5,    75,    76,    13,    14,
       5,    19,     5,    13,    14,  2395,   997,   174,    13,    14,
      13,    14,  2407,     5,    13,    14,     5,   109,    19,     5,
       9,     5,     5,  1795,     5,     5,     9,  2906,     5,     5,
       5,     5,     5,     5,    13,    14,   120,    46,    75,  2769,
      46,    31,     4,   192,  2058,   173,    11,     9,   200,    39,
     914,    16,   870,  1274,  1159,   108,   173,    27,   125,   865,
      64,     9,   888,  1284,    83,  2965,   101,   986,    19,    23,
    2465,  2466,    11,  2468,     0,    94,   101,    16,   182,  1052,
      91,  2539,  1165,    83,    11,     3,     4,     5,    15,    16,
       5,     9,    41,   173,    94,  3314,     4,   290,  1192,   812,
     998,     9,   888,  2030,  2031,     5,   298,  1077,    47,     3,
     810,     5,  1010,   140,  2041,    31,   123,   228,  2045,   130,
      47,    75,    76,    39,  1094,    11,   247,  3112,  1900,    15,
      16,    64,  1470,   170,  1239,   173,   298,  1242,  1243,   293,
    1020,  3115,    81,    64,    31,  1025,   859,  1027,     3,   108,
     292,   278,    39,   989,    81,    65,   109,  2020,  2021,  2022,
     316,  3135,   385,   293,   275,    75,  1046,  1559,   138,    11,
    1508,   167,  3011,    15,    16,   101,   994,   118,   173,    41,
      35,    36,  1954,   120,  1213,  1214,  1159,    13,    14,  1088,
      31,    41,   313,  2517,  1966,   118,   194,   371,   120,   105,
     118,   318,   319,   320,   281,    47,   163,   214,    11,  3241,
     174,  3243,    15,    16,  2697,   107,   372,    11,  3484,   123,
    3517,  2209,   148,   437,  1996,   413,   121,   127,   128,  3067,
     362,  2003,  3083,    31,  2941,    31,  2943,   163,   123,    81,
     193,   487,   168,   121,    84,   165,  1314,   173,  3126,  2696,
    1344,  3510,  3511,    47,  1962,   376,   182,   292,   394,    76,
     392,   187,   108,   509,  3142,  1238,  3128,   292,   385,   192,
     194,   275,   485,   173,   488,  2047,   182,   523,   292,  2051,
     363,  1373,   403,   240,   395,  1993,   208,    81,    86,   477,
    1108,  2669,   133,   219,   133,   332,   509,    95,  2693,   310,
    2695,   196,   220,  3562,   527,  3452,   423,   435,  2080,   149,
     214,  3608,  2582,   233,   240,   177,   275,   172,   196,   174,
    1565,   119,   399,   109,  1024,   243,   296,   177,  2811,   364,
     523,   327,   459,   243,   455,   527,   490,   133,  3370,   364,
     457,   282,   168,  3609,   297,   282,  1034,   311,   459,   523,
    1038,   468,  3337,   275,   277,   277,   523,  3257,   462,   363,
     358,   253,   518,   289,  3583,   527,   292,   282,  3342,   275,
     423,   263,   298,  2133,   523,   527,  2776,  2367,  2368,  2369,
     464,   523,  2803,  1189,   512,  1176,  2803,   523,   392,  1215,
     360,  2781,   362,   523,   192,   462,  2192,   525,  1262,  1217,
     597,  3548,   523,  1116,  2862,   543,   523,   205,  3138,   109,
    2050,   420,   402,   339,   420,   452,   435,   428,   318,   319,
     320,  2186,   392,  1859,  1524,  1525,  2821,   521,  1357,  1215,
     363,   525,  3271,  1362,   398,   435,   474,   361,   364,  1368,
     435,   423,   363,   523,   527,  2475,  1475,  2620,   287,  1549,
     485,  3290,   459,  1922,   481,  3331,  1375,  2224,  3165,   522,
     485,  3312,   521,  2257,  2409,  1364,   525,   559,  1497,   523,
     487,  2401,  2404,  2243,  2192,   526,  3314,   531,  1894,  3314,
     472,  1702,   526,   527,  2249,   385,   402,   523,   597,   524,
     523,   526,   509,   526,  2256,   531,   396,   423,   521,   524,
     523,   526,   525,  2362,   528,   529,   523,   487,   523,   527,
    1937,  1611,  1612,   523,  3393,   402,   410,   411,   523,   419,
     523,   522,  3262,   423,   523,   451,   432,  3267,   759,   509,
     376,   523,  2989,  3209,   523,  2982,   462,   523,  1374,   523,
     523,     0,   523,   523,   523,  1375,   523,   523,   523,   523,
     523,   523,   514,   515,   519,   459,   482,   457,   484,   485,
    3459,  1531,   759,  1646,  1647,  1648,   514,   515,   468,   758,
    1468,   522,   758,  3451,   459,  3549,   525,   485,   313,   810,
     519,  1551,  3458,   133,    42,   485,  1559,   514,   515,   516,
     517,   518,   519,   759,   527,   521,   514,   515,   524,   525,
     526,   509,   799,  1483,  3560,   277,   514,   515,  2535,   509,
     282,   409,   817,   810,   412,   148,  1586,   526,   473,  2055,
     817,   165,    34,   523,   434,  1505,   179,   462,   514,   515,
     516,   517,   518,   519,   462,   810,   799,   862,  3649,  2411,
    2641,   862,  2643,  1461,  2963,    60,   252,   810,    60,   846,
     847,   204,  2642,    11,   817,  2518,  2519,  2520,  2521,   810,
     865,   753,  2835,   893,   474,   149,   422,  2005,   403,   127,
     342,   277,   268,   870,   516,   517,   518,   519,   883,  3690,
    3558,    27,  3544,  1904,  1657,   179,   219,    33,   523,  3645,
     243,   880,   922,   880,   880,   523,   880,   348,   880,  2969,
     880,   880,   868,   880,    27,   461,   527,   880,   880,   185,
      33,   150,  2050,   516,   517,   518,   519,   201,  3113,  1824,
     799,   918,   919,    81,   487,   922,   923,   277,   324,  1834,
     274,   810,  1837,   799,   871,  1819,   387,   287,   817,  3601,
    1669,  2210,   880,  2539,   297,  3583,   509,  2920,  3583,   243,
    1029,   817,   523,  3409,   512,  3411,  1035,     5,   173,  2747,
    2748,   848,   849,   202,   851,   298,   853,   525,   473,   512,
     880,  2015,   423,   880,  1592,  1593,  2694,   880,   975,   871,
     523,   215,   880,  2555,  1602,  1853,  1854,  1855,   523,   986,
    1882,  3669,   138,  1024,   880,   880,   993,   994,   880,  1617,
     989,   123,   999,   989,  2720,  1002,  1003,   941,  1005,  1006,
    1007,  1008,  1787,   358,  1920,   138,   138,  2582,  1924,   880,
     880,  1927,  1795,  2739,   475,  1022,  3273,  1024,   880,  1938,
     880,  1649,  3488,  1938,  1929,   880,  1033,   880,   880,   880,
    2607,   880,  2311,  2844,  1819,   799,   880,  1022,   880,  1024,
     880,   880,   880,  1050,  1051,  1052,   810,  2871,  1033,  1022,
    2874,  1024,  2876,   817,  1839,     5,    83,   343,    38,  1844,
    1033,  1022,    54,  1024,   427,  1072,   429,    94,  1109,   521,
    2516,  2497,  1033,   525,   348,   133,   163,  3253,    27,  3016,
    2226,   168,  2228,   487,    33,  1092,   372,  3024,   179,   452,
     163,  1830,   455,   318,   319,   320,  1835,  1104,  1105,  1106,
      83,  1108,  1109,   161,  1111,   509,   247,   247,   451,   190,
     191,    94,  1635,   387,  1945,  1593,  2342,  1900,  1949,   523,
    3453,  1952,   133,   427,  1602,   429,  2363,  2373,   521,   518,
     523,  2279,   525,  1022,  2932,  1024,   525,  1144,   175,    27,
     296,     4,   133,   277,  1033,    33,     9,  2729,   179,   423,
     161,   455,   243,   240,  2729,  1162,  1163,   427,    38,   429,
     385,  1196,  1197,   296,  1199,  1196,  1197,   240,  1199,  3426,
     161,  1954,   313,   313,  1189,   521,  3159,   518,   344,   525,
     261,   262,   109,  1966,   525,     4,   178,  2769,  2350,   138,
       9,  1198,  1111,   521,   174,  1202,  1203,   525,   423,   331,
     356,   475,   289,   195,   360,  1212,  1213,  1214,   200,  1938,
    1217,   248,   243,  1996,  3547,   524,   289,  3550,   527,   277,
    2003,   358,   524,   356,   282,   527,   317,   360,   523,   287,
     210,  1238,   457,  2216,   524,   376,   392,   527,   204,  1254,
     833,   834,   835,   468,  2418,   838,   226,   239,   163,  1460,
     138,  1462,  1463,   168,  2428,  2983,  2862,   237,  1022,   392,
    1024,   523,   403,   403,  2047,     4,   277,  1274,  2051,  1033,
       9,   282,    72,    73,  2057,     8,   287,  1284,    11,   383,
    1182,   524,    15,    16,   527,   376,   383,    20,    21,    22,
     524,   282,   383,   527,   174,   204,   287,  2080,   523,   254,
     381,   382,  1309,   423,   524,     8,  3106,   527,    11,   465,
    3643,   348,    15,    16,   455,   455,   440,    20,    21,    22,
     148,   848,   849,   475,   851,   240,   853,   427,  2898,   429,
     210,   521,   465,   523,    37,   163,   427,  1331,   429,  1331,
     168,   524,  1349,  2221,   527,   376,   226,   296,  1331,  1331,
     387,  1358,  2320,   524,  2322,    27,   527,   237,   427,   524,
     429,    33,   527,    27,   455,    27,   380,   524,  1375,    33,
     527,    33,   523,  2001,   289,  1374,   524,   524,  1374,   527,
     527,   383,   523,   523,   442,  1392,   423,   367,  2838,  2537,
    1397,   219,   523,  2541,  2969,   453,   427,   524,   429,  1375,
     527,  2317,   152,  2319,  3661,   397,   386,   356,   296,   446,
     376,   360,   240,   524,  2950,   524,   527,   524,   527,   524,
     527,   387,   527,   173,   455,   261,   262,    13,    14,  2138,
    1349,   442,   524,   168,   524,   527,   524,   527,   475,   527,
    1447,  1448,   453,   392,   524,  2284,  1453,   527,  1455,   524,
    3032,   442,   527,  1460,  1461,  1462,  1463,   423,  3646,   523,
    3648,   289,   453,  1365,  2092,  1367,   138,   523,  1475,  1476,
     298,   523,   360,  1392,   138,   485,   138,   487,  1485,  3613,
    1487,   228,  1455,  1490,    13,    14,  2712,   367,  1495,   523,
    1497,  1498,  2711,  1500,  3628,  2399,   524,  1504,   523,   527,
    1485,  3689,  1487,   173,   392,  1490,   386,   523,  2745,   475,
    1495,   523,  1485,  1498,  1487,  1500,   465,  1490,   524,  1504,
     223,   527,  1495,   523,  1485,  1498,  1487,  1500,   275,  1490,
     523,  1504,  2587,  2588,  1495,   516,  2710,  1498,  2712,  1500,
      13,    14,  2761,  1504,  2172,   381,   382,    19,   524,  3683,
    3132,   527,  1559,     6,  3688,   524,  3138,    10,   527,   524,
     247,   294,   527,   506,   524,    18,  1455,   527,   318,   319,
     320,   524,   524,   524,   527,   527,   527,   465,   524,    32,
     427,   527,   429,    36,   509,  1592,  1593,   175,    13,    14,
    1589,   294,  1589,  1589,  1601,  1602,  1485,   344,  1487,  1589,
    1589,  1490,  1589,  1610,  3402,  3403,  1495,  2563,  2564,  1498,
    1617,  1500,  2595,   523,  2562,  1504,  2563,  1624,  2563,  2564,
    2565,  3203,   524,   451,   296,   527,   313,   524,  2411,  2693,
     527,  2695,   296,   524,   296,   385,   527,  1644,  1645,   525,
     524,  1589,  1649,   527,   225,  1652,   524,   292,   395,   527,
    1657,  1658,  1659,  1660,  1661,  1662,  1663,  1664,  1665,  1666,
     248,   506,  1702,  1670,  1671,  1672,   172,   885,  1675,   887,
      13,    14,  1679,   423,   527,  1682,  1683,  1684,  1685,  1686,
    1687,  1688,  1689,  1690,   356,   523,  1693,   524,   360,   376,
     524,  1455,   356,  1700,   356,  1702,   360,   524,   360,  1672,
      13,    14,    13,    14,  2443,   173,  1741,   457,   371,   372,
    1741,    60,   459,  1720,    13,    14,   403,   297,   468,   523,
     392,  1485,  2451,  1487,    13,    14,  1490,   424,   392,   506,
     392,  1495,  3314,    38,  1498,   485,  1500,  1744,    43,  3314,
    1504,   225,  1718,    13,    14,    13,    14,  1666,  1755,  1756,
     153,  3414,    13,    14,    13,    14,    13,    14,   356,   509,
     348,    13,    14,    13,    14,    13,    14,  2660,   455,    13,
      14,   153,  2555,   523,    13,    14,   153,   510,   511,   512,
     153,   514,   515,   516,   517,   518,   519,   153,  1795,    13,
      14,    13,    14,   465,    13,    14,    41,   102,  1805,   387,
     109,   465,  1809,   465,  3030,    13,    14,   510,   511,   512,
     423,   514,   515,   516,   517,   518,   519,    13,    14,    75,
      13,    14,  2450,    41,    13,    14,   247,   371,   372,    41,
     371,   372,   371,   372,     8,   423,   523,  2620,   265,   266,
     524,    15,    16,    61,  2683,  1852,    20,    21,    22,    61,
     381,   382,  1859,   467,   468,  1862,  1863,   986,   446,  2433,
    2434,   277,   118,  3623,  3624,  3067,  3655,  3656,   523,   174,
    1162,  1163,  2774,  3110,   475,  2753,  2291,  2292,   153,    90,
     489,   153,   525,   292,   153,   435,  1805,   475,  1790,   107,
    1809,   153,   313,  1900,   358,   107,  2800,  1904,  2814,  1801,
     523,  1803,  2933,   523,  1806,   210,   523,   425,   524,   221,
      47,   523,   226,   302,  1816,  1922,  1818,   523,   226,  1003,
    3611,   226,  1929,  1930,  3615,   226,   523,   299,    41,  1831,
     523,  1938,   237,     5,  1836,  3361,     5,   247,  1840,  1841,
     238,  1843,   179,  1845,  1846,   247,  2729,  1954,   523,   328,
    1898,  1958,  1959,   523,  1961,   376,   523,   523,     5,  1966,
    1967,  1968,  1969,  1970,  1971,  1972,   271,   204,  1975,  1976,
    1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,     5,  3670,
     523,   523,   403,  1990,  1991,   203,  2769,  1994,     5,  1996,
       5,   203,   486,   523,  2001,     9,  2003,   523,   523,  1128,
     304,  3583,     8,   313,   527,    11,   243,   105,  3583,    15,
      16,   313,   527,   318,    20,    21,    22,   148,  2025,   524,
     325,   277,   462,   221,   392,  2032,   282,  2034,   168,   289,
    1159,  2038,   163,   168,   455,   253,   287,   168,    60,   238,
    2047,   253,   523,   435,  2051,   263,  2053,  2032,  2055,    94,
    2057,   263,  2835,  2038,   435,   435,   527,   275,    60,  2032,
     297,    60,   367,   275,   268,  2038,   376,    19,   435,   223,
     435,  2032,   435,  2080,   376,   485,   332,  2038,   153,   200,
     317,   386,   101,   383,   523,  2092,  2093,   277,   219,   307,
     277,  3517,  2099,   403,   350,   307,   277,    41,   277,    41,
     277,   403,   523,   523,   277,  2733,  3021,   153,  3327,   240,
    1239,   173,   525,  1242,  1243,    13,   524,  3033,  3034,   524,
     294,   173,  3568,   524,   524,  2132,   524,   523,  2867,  2136,
     527,  2172,   482,  3559,  2141,  2142,   524,  2920,   524,   376,
     524,   226,   226,  2032,   362,   455,   383,   523,   284,  2038,
     362,   284,   457,   455,   523,   525,   527,   472,   289,    38,
    2167,  2168,   523,   523,    43,  2172,   523,   298,   523,   387,
     523,   523,    40,  1052,   179,   387,   523,   525,   481,     9,
     433,  2188,  3608,    11,  2191,  2192,  2193,   433,   523,   407,
     427,  3174,   429,   358,   200,   407,   452,    99,   522,   204,
     527,    19,  2209,  2210,   527,   433,   462,   532,   282,  2216,
     435,  3448,  2219,   523,   182,   452,   523,   223,   455,  2192,
     173,   523,    41,   102,   164,   127,   128,   228,  2235,   524,
     527,   462,   219,    25,  2219,   527,   268,  3385,   243,   395,
     228,  2248,   293,   316,   527,   316,  2219,   527,   182,  3032,
    2235,  1380,  1381,   524,   221,   228,   523,   277,  2265,  2266,
     525,    60,  2235,  3002,   228,    60,    60,    60,  2032,   298,
      83,   173,   284,   284,  2038,  2282,   337,  2284,   475,   153,
     290,   524,     3,   523,  3067,   523,   153,   153,   294,   153,
    2297,   153,   297,   485,   153,   174,   109,   527,   527,    41,
     277,   292,     3,   292,  2311,    41,   524,    60,   173,    11,
      41,   168,   182,  2320,  2321,  2322,   168,   524,   524,   524,
     451,   524,   523,   523,   116,     3,    40,     3,   523,  2231,
    2219,   210,   435,   521,   435,   521,   510,   511,   512,   435,
     514,   515,   516,   517,   518,   519,  2235,   226,   435,  3132,
      37,   522,   524,   506,    41,  3138,   524,  2364,   237,  1238,
    3586,   524,   175,  1447,  1448,     8,  2373,   527,    11,  1453,
     532,   376,    15,    16,   525,   524,  3159,    20,    21,    22,
     524,   506,   524,   524,   356,   149,   525,  3291,   506,   173,
     521,   204,   271,   524,   525,   524,   524,   523,  2392,  2406,
    2392,  2320,  2321,  2322,  2411,   435,   523,   523,   523,  2392,
    2392,   156,   523,   292,   101,   482,   318,   319,   320,    41,
    3203,   108,   427,   110,   429,   112,  3155,    60,  2435,   512,
     527,   508,   293,   293,   459,   248,   527,   246,   474,   318,
      60,    60,   268,  2450,  2451,   435,   325,   452,   277,   153,
     455,   435,  2459,  2976,   204,  2219,   153,   523,   153,   523,
     523,   435,     8,   523,   435,    11,   435,   524,   523,    15,
      16,  2235,    41,    41,    20,    21,    22,   358,  1607,   527,
     524,   292,   290,   385,   523,   485,   523,  2406,   367,    41,
    2497,  1620,   153,  1622,   396,   282,   531,    60,   524,   173,
     523,   187,   523,    14,   510,   511,   512,   386,   514,   515,
     516,   517,   518,   519,   168,   524,   524,   419,   521,  2421,
     524,   423,  1651,  3416,  2497,    81,   524,   524,   524,   144,
     523,  3314,  2539,   527,   173,    19,   303,   252,   524,   524,
    2459,   443,   524,   523,  3383,   524,   527,   523,  2555,   364,
     293,   182,  2567,   523,  2595,   457,   153,   200,   524,   177,
     523,   148,   527,   376,   524,  2572,   468,   524,   446,   524,
     524,    41,  2579,  2580,   387,   525,   163,   523,   457,    87,
     223,   168,   523,   485,   523,  3386,    41,  3388,  2595,  2630,
      41,  3574,    41,   462,   527,  2635,   173,   523,   484,   524,
     524,  2608,   200,   524,  2611,   522,  2613,   509,  2497,   522,
     423,   527,   524,  2620,  2621,  3519,   524,  2624,  2625,   524,
     524,   523,  2629,  2630,   527,   468,  1755,  1756,   292,  2636,
     512,  3509,   219,   446,  3528,    60,   524,   524,   485,   524,
     524,   206,  2683,   118,    41,   228,  2653,   523,     7,     8,
      89,   294,   193,   240,    13,   282,  2663,   282,   512,   435,
      19,   524,   475,  3502,    23,   435,    25,   525,    41,   525,
      29,    30,    31,   522,   525,    34,  2683,   223,    37,    38,
    1559,   525,    41,   525,   525,    44,    45,   525,   525,   525,
     525,   525,   525,   525,   525,  1824,   277,   108,   525,   522,
     525,   525,   289,   525,   525,  1834,   485,   524,  1837,  2657,
     524,   298,   423,   525,   292,   525,    75,    76,   525,  2726,
     525,   525,  2729,  2730,   525,  2732,  2733,  2734,   525,   525,
       9,   357,   339,  2497,   525,   525,   525,   525,   523,   525,
    2747,  2748,   101,  3371,   525,  3373,   524,   524,   294,   108,
     109,   110,   111,   112,   523,   527,   527,  2798,   523,   527,
     523,   523,  2769,   524,    60,   524,   200,   522,  2809,   527,
    2777,   193,   524,   524,   467,   152,    92,   350,  1657,  2773,
     527,  2773,    41,   524,  2686,   523,    75,  2689,   153,   524,
    2773,  2773,    81,   525,   125,   153,   173,    41,   524,    41,
    3583,   372,   372,    41,   524,    94,   523,  2726,   527,  1938,
     523,  2730,   462,  2732,   523,   312,  2718,  3556,  2859,   282,
    2768,   251,   192,    41,   523,  2832,   462,   523,  2835,   118,
     446,   120,    75,  2735,  2736,  2737,  2738,   295,  2740,  2741,
    2742,  2743,  2744,    61,    75,  2852,  2853,     9,  2855,    81,
     374,   524,  2859,   524,  2802,  2862,   523,   544,   524,   522,
     522,    60,   549,   134,   451,    94,   512,   510,   511,   512,
     275,   514,   515,   516,   517,   518,   519,   292,    41,   446,
     524,   523,  2889,  1967,  1968,  1969,  1970,  1971,  1972,   107,
     524,  1975,  1976,  1977,  1978,  1979,  1980,  1981,  1982,  1983,
    1984,   295,  2909,   173,   295,   467,   523,  2914,  2915,   206,
     524,   292,  2919,  2920,   292,   524,  1795,  2924,  2959,   208,
    2927,  2928,   123,   392,   459,  2932,  2933,   371,   149,  2936,
      26,    37,   300,  2940,   521,  2064,   371,   880,   525,  2312,
    2713,   318,   319,   320,  1817,  2952,  2315,  2726,  3418,  2661,
    3559,  2950,  3513,  2950,  2950,  2940,  3660,  3125,  3481,   177,
    2950,  2950,  1929,  2950,   510,   511,   512,  2940,   514,   515,
     516,   517,   518,   519,  3026,  2438,  3534,   857,  3638,  2940,
    3284,  3587,  3596,  3631,  1225,   203,  3344,  2303,   277,  2996,
    2321,  2788,     8,   282,  1795,    11,  1795,  3004,  3585,    15,
      16,   793,  2950,  2703,  3594,  2732,  3582,  2300,   385,  2433,
    1329,  1357,  2434,  2391,  2459,  3155,  3023,  2763,  2282,  2734,
    2248,  1900,  1780,  1182,  1206,  3032,  1021,  1205,  1052,  1021,
    2516,    47,  3568,   825,  2265,   253,   306,  1744,    54,  3490,
    3375,  1779,  1208,   332,    23,   263,   423,   118,   318,   319,
     320,  2940,  3198,     0,  2235,  2862,  2044,   275,   850,  1042,
    3067,   350,   998,  2497,  2496,    81,  2547,  3305,   996,  3032,
    2060,  1938,  1938,    20,   996,  1954,    23,   996,   996,  1938,
     457,   996,   996,  2167,  2168,   996,   996,  1966,  3494,   307,
      37,   468,  3493,  2143,  2223,   996,  2580,  2192,  2094,    46,
    2249,  3003,   173,  3246,  2189,  3112,   898,  2146,   485,  2604,
    2911,  2952,  1476,  3479,   801,   385,  1865,  1996,  3125,  2950,
    1375,  2053,   794,   898,  2003,  3132,  2255,  2256,    75,    76,
      77,  3138,   509,  3174,  1718,    -1,  2662,  1719,    -1,    -1,
    3147,    -1,    -1,    -1,   362,    -1,   523,    -1,  3155,    -1,
      -1,  3158,  3159,   423,   101,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   178,   452,    -1,    -1,    -1,  3174,  2047,   387,
      -1,    -1,  2051,   462,    -1,    -1,  2940,    -1,  2057,   195,
      -1,  3129,    -1,    -1,   200,   544,    -1,   457,    -1,   407,
     549,    -1,    -1,  3112,   986,    -1,  3203,    -1,   468,    -1,
     559,  2080,  3209,    -1,   996,    -1,  3125,    -1,    -1,    -1,
     897,    -1,    -1,    -1,  1238,   485,    -1,    -1,  3225,  3226,
      -1,    -1,  3229,   239,  3231,    -1,    -1,    -1,    -1,     8,
      -1,    -1,    11,    -1,    -1,   306,    15,    16,    -1,   509,
      -1,    20,    21,    22,    -1,    -1,   933,   318,   319,   320,
      -1,  3258,    -1,   523,    -1,    -1,    -1,    -1,    37,    -1,
      -1,   948,   949,   950,   951,   952,    -1,    -1,    -1,    -1,
      -1,    56,    -1,     8,    -1,  3282,    11,    -1,   294,    -1,
      15,    16,    -1,    -1,    -1,    20,    21,    22,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3314,    -1,    -1,
      -1,    -1,    47,  1000,   385,    -1,    -1,    -1,   103,    54,
      -1,    -1,    -1,    -1,    -1,    -1,  1118,    -1,    -1,    -1,
    3337,    -1,    -1,    -1,    -1,    -1,  1128,    -1,    -1,   124,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
      -1,    -1,   423,    -1,  3361,    -1,    -1,   142,  1150,    -1,
    1052,   146,    -1,    -1,  3371,    -1,  3373,  1159,  3375,    -1,
      -1,    -1,  3379,    -1,  3381,    -1,  3383,    -1,    -1,    -1,
      -1,   397,    -1,    -1,   169,  3333,   457,   172,  3361,    -1,
    3397,  3293,   751,   752,   753,  3402,  3403,   468,    -1,    -1,
      -1,    -1,    -1,   188,    -1,    -1,    -1,  3414,    -1,    -1,
      -1,    -1,    -1,    -1,   485,  3317,  3318,    -1,  3337,    -1,
    3427,    -1,    -1,    -1,    -1,  3432,    -1,    -1,    -1,    -1,
    2559,  2560,    -1,    -1,   793,   794,    -1,    -1,   509,  3341,
     799,    -1,   801,   178,   223,    -1,    -1,    -1,    -1,    -1,
      -1,   810,   523,    -1,    -1,   814,   815,    -1,   817,    -1,
     195,   820,   821,    -1,    -1,   200,    -1,  3415,    -1,  3417,
      -1,  1263,  3361,  3480,   833,   834,   835,    -1,   173,   838,
      -1,    -1,    -1,  3490,    -1,    -1,    -1,   846,   847,   848,
     849,   507,   851,    -1,   853,  3502,    -1,   282,   514,   515,
     516,   517,   518,   519,   239,   290,   865,    -1,  3427,  3457,
    3517,    -1,   871,    -1,    -1,   294,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   883,    -1,  3474,   312,  3535,    -1,
      -1,    -1,  2411,    -1,    -1,  1559,    -1,  1224,   897,   898,
    2624,  2625,    -1,    -1,  3517,    -1,  1238,    -1,    -1,    -1,
    1237,    -1,  3559,    -1,    -1,    -1,    -1,   342,    -1,   294,
    1052,    -1,    -1,    -1,    -1,    -1,    -1,  3574,    -1,    -1,
      -1,  1258,    -1,    -1,   933,   934,  3583,    -1,  3585,    -1,
      -1,    -1,    -1,    -1,    -1,   944,  3559,    -1,    -1,   948,
     949,   950,   951,   952,    -1,    -1,   543,  3361,    -1,  1391,
    2729,  3608,    -1,    -1,    -1,    -1,   965,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3622,  3623,  3624,    -1,    -1,
      -1,    -1,    -1,   318,   319,   320,    -1,    -1,  3517,    -1,
      -1,    -1,    -1,  1657,    -1,  3608,    -1,    -1,   997,   998,
    1327,  1000,  3649,    -1,  1003,    -1,    -1,    -1,  1335,    -1,
    1009,  1010,  3600,    -1,    -1,    -1,    -1,  1016,    -1,    -1,
      -1,    -1,   397,  1022,    -1,  1024,  3585,    -1,    -1,    -1,
    3559,    -1,     8,    -1,  1033,    11,  2555,  3579,  3626,    15,
      16,    -1,    -1,  3690,  1043,    -1,    -1,    -1,    -1,    -1,
     385,    -1,    -1,    -1,    -1,     8,    -1,    -1,    11,    -1,
      -1,  1060,    15,    16,    -1,    -1,    -1,    20,    21,    22,
      -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,  3608,
      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,   423,  1088,
      -1,   510,   511,   512,    -1,   514,   515,   516,   517,   518,
     519,  2620,    -1,  2872,    -1,    81,  1238,    -1,  2832,    -1,
      -1,    -1,    -1,  3517,  1113,    -1,    -1,    -1,    -1,    -1,
      -1,     0,   457,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1795,   507,   468,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    -1,    -1,    -1,    -1,
     485,  1478,    -1,    -1,    -1,  3559,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1166,    -1,    -1,
     146,   758,   759,    -1,   509,    -1,    -1,    -1,  1052,    -1,
      -1,    -1,    -1,  1182,  1183,    -1,    -1,    -1,   523,     8,
    1189,    -1,    11,    -1,    -1,    -1,    15,    16,    -1,    -1,
      -1,    -1,   178,    -1,  3608,    -1,    -1,    -1,    -1,    -1,
    2729,    -1,   799,  1212,  1213,  1214,    -1,    -1,    -1,   195,
      -1,    -1,   101,   810,   200,  1224,  1225,  1559,    47,    -1,
     817,    -1,    -1,    -1,    -1,    54,  1900,    -1,  1237,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2769,    -1,  3021,    -1,    -1,  1254,    -1,  3026,    -1,  1258,
      -1,    -1,    81,   239,    -1,  1264,    -1,    -1,    -1,   148,
     223,    -1,    -1,    -1,    -1,   862,    -1,    -1,  1710,    -1,
    3004,    -1,    -1,    -1,   163,    -1,    -1,    -1,    -1,   168,
    1954,    -1,    -1,   880,   173,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1966,   182,    -1,    -1,  3075,  3076,   187,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2835,    -1,   294,    -1,
      -1,    -1,    -1,    -1,    -1,  1657,  1325,   146,  1327,    -1,
      -1,    -1,  1996,    -1,    -1,    -1,  1335,    -1,    -1,  2003,
     219,   294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1348,
      -1,  1783,  1784,    -1,    -1,    -1,    -1,    -1,  1357,   178,
      -1,   240,    -1,  1362,  1238,  1364,  1365,    -1,  1367,  1368,
      -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,
      -1,   200,    -1,  2047,    -1,    -1,    -1,  2051,    -1,    -1,
    1717,    -1,  1719,  2057,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2920,   989,  1730,    -1,    -1,    -1,    -1,    -1,    -1,
     289,    -1,    -1,   292,    -1,  1847,  2080,    -1,    -1,   298,
     239,   397,    -1,    -1,    -1,    -1,    -1,  1559,    -1,    -1,
      -1,    -1,  1864,  1865,  3158,  1022,    -1,  1024,    -1,    -1,
      -1,    -1,  1769,    -1,    -1,    -1,  1033,    -1,  1447,  1448,
      -1,    -1,    -1,    -1,  1453,    -1,  1455,    -1,    -1,    -1,
     339,    -1,    -1,  1795,    -1,    -1,    -1,    -1,    -1,  1468,
      -1,  1470,  1471,    -1,    -1,   294,  1475,  1476,    -1,  1478,
      -1,  1068,    -1,    -1,    -1,   364,  1485,    -1,  1487,    -1,
      -1,  1490,    -1,  1080,    -1,    -1,  1495,    -1,  1497,  1498,
      -1,  1500,    -1,    -1,    -1,  1504,  1938,  1506,    -1,  1508,
      -1,    -1,  1944,  3032,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1109,    -1,    -1,  1657,    -1,    -1,    -1,    -1,
      -1,   507,  3301,  3302,    -1,    -1,    -1,    -1,   514,   515,
     516,   517,   518,   519,   423,  3314,    -1,    -1,  3067,  1876,
    1877,  1878,  1879,  1880,  1881,    -1,    -1,   510,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,     8,  1900,    -1,
      11,    -1,   451,    -1,    15,    16,    -1,    -1,   397,    20,
      21,    22,    -1,   462,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
      -1,    -1,    -1,   482,    -1,   484,   485,    -1,    -1,  1196,
    1197,    -1,  1199,  3132,    -1,    -1,    -1,  1616,    -1,  3138,
      -1,    -1,  1954,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1629,    -1,    -1,    -1,  1966,    -1,    -1,    -1,    -1,    -1,
    3159,    -1,   521,    -1,    -1,   524,   525,   526,    -1,    -1,
      -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,
      15,    16,    -1,  1795,  1996,    20,    21,    22,    -1,    -1,
    1669,  2003,    -1,  1672,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3203,  1559,    -1,    -1,   507,    -1,
      -1,    -1,  2019,    -1,    -1,   514,   515,   516,   517,   518,
     519,  1700,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2047,  1715,    -1,  1717,  2051,
    1719,    -1,    -1,    -1,    -1,  2057,    -1,    -1,    -1,    -1,
      -1,  1730,    -1,  1732,    -1,     8,    -1,    -1,    11,    -1,
      -1,    -1,    15,    16,    -1,  1744,    -1,  2411,  2080,    -1,
      -1,    -1,    -1,    -1,   127,   128,    -1,    -1,    -1,    -1,
      -1,    13,    -1,    -1,    -1,    -1,    -1,    19,  1900,    -1,
    1769,    23,  1771,    -1,    47,    -1,    -1,    -1,    30,    -1,
      -1,    54,   223,  1657,  1783,  1784,    -1,  1374,    -1,    -1,
    1789,  1790,    44,    45,    -1,  3314,    -1,    -1,    -1,    -1,
     173,    -1,  1801,  1802,  1803,  1804,    -1,  1806,    81,    -1,
      -1,    -1,    -1,    -1,  3583,    -1,    -1,  1816,    -1,  1818,
      -1,    -1,  1954,    75,    76,    -1,    -1,    -1,    -1,    -1,
      -1,  1830,  1831,    -1,  1966,    -1,  1835,  1836,    -1,    -1,
      -1,  1840,  1841,  1842,  1843,    -1,  1845,  1846,    -1,    -1,
      -1,    -1,    -1,   294,    -1,    -1,    -1,   109,    -1,    -1,
      -1,    -1,    -1,    -1,  1996,    -1,    -1,  1866,   223,    -1,
      -1,  2003,    -1,   146,    -1,  1874,    -1,  1876,  1877,  1878,
    1879,  1880,  1881,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2555,    -1,    -1,    -1,  2327,    -1,  1896,  1485,    -1,
    1487,    -1,    -1,  1490,    -1,   178,    -1,    -1,  1495,    -1,
      -1,  1498,    -1,  1500,    -1,  2047,    -1,  1504,  1917,  2051,
      -1,  1795,   195,    -1,    -1,  2057,    -1,   200,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   294,
      -1,    -1,    -1,    -1,    -1,   318,   319,   320,  2080,    -1,
      -1,     8,    -1,  2385,    11,    -1,  2620,    -1,    15,    16,
      -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,  1967,  1968,
    1969,  1970,  1971,  1972,    -1,    -1,  1975,  1976,  1977,  1978,
    1979,  1980,  1981,  1982,  1983,  1984,    -1,    -1,    -1,    -1,
      47,    41,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,
      -1,    -1,  1589,    -1,    -1,    -1,  2005,    -1,    -1,    -1,
      -1,    61,   385,    -1,    -1,    -1,    -1,    -1,    -1,  2451,
    2019,   294,    -1,   396,    81,    -1,  1900,    -1,    -1,  2461,
      -1,  2463,    -1,  2032,    -1,  2467,    -1,  2469,    -1,  2038,
      -1,    -1,    -1,    -1,    -1,  2044,   419,    -1,    -1,    -1,
     423,  2050,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,
    2059,  2060,    -1,    -1,  3583,  2729,    -1,  2394,   118,   510,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,  2411,
    1954,  2408,  2409,  2410,   457,  1672,    -1,    -1,    -1,   146,
      -1,    -1,  1966,    -1,    -1,   468,  2423,    -1,    -1,    -1,
    2427,    -1,    -1,  2430,    -1,  2769,    -1,    -1,    -1,    -1,
    2437,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   178,  1996,    -1,   397,    -1,    -1,   177,    -1,  2003,
      -1,    -1,    -1,    -1,  2133,    -1,   509,    -1,   195,  2138,
      -1,    -1,    -1,   200,  2143,    -1,    -1,    -1,  1052,    -1,
     523,     0,    -1,   203,  1741,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    -1,    -1,  2167,  2168,
      -1,  2835,    -1,  2047,    -1,    -1,    -1,  2051,    -1,    -1,
      -1,    -1,   239,  2057,    -1,    -1,    -1,  2186,    -1,    -1,
      -1,    -1,    -1,  2192,    -1,    -1,  2523,  2524,  2525,    -1,
      -1,    -1,    -1,   253,    -1,    -1,  2080,    -1,    -1,    -1,
      -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    25,
    2219,    -1,    -1,  2555,    -1,   275,    -1,   277,    -1,    -1,
      -1,    -1,  2231,    -1,   507,    -1,  2235,   294,    -1,    -1,
    2239,   514,   515,   516,   517,   518,   519,    -1,    -1,    -1,
      -1,    -1,   101,    -1,    -1,    -1,  2920,   307,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,  2411,
    2279,    -1,    -1,  2282,    -1,  2284,  2285,    -1,  2620,    -1,
      -1,    -1,    98,    -1,    -1,    -1,    -1,  2729,    -1,   148,
      -1,    -1,    -1,    -1,    -1,    -1,  2305,   559,    -1,    -1,
      -1,  1898,   362,    -1,   163,    -1,    -1,    -1,    -1,   168,
      -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,
      -1,  2763,    -1,   182,  1238,    -1,    -1,   387,   187,    -1,
     397,   147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2677,   157,    -1,    -1,    -1,    -1,    -1,   407,    -1,   409,
      -1,    -1,   412,    -1,   170,    -1,  2798,    -1,  3032,   175,
     219,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,
      -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,  2387,    -1,
      -1,   240,    -1,    -1,    -1,  2394,    -1,  2729,   204,    -1,
      -1,    -1,    -1,  3067,    -1,  2404,    -1,    -1,  2407,  2408,
    2409,  2410,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2421,  2555,  2423,    -1,    -1,    -1,  2427,    -1,
      -1,  2430,    -1,    -1,    -1,    -1,    -1,  2769,  2437,    -1,
     289,   102,   248,   292,  2443,  2032,   252,    -1,  2775,   298,
     507,  2038,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,
     517,   518,   519,    -1,    -1,    -1,  2465,  2466,  3132,  2468,
      -1,    -1,    -1,   523,  3138,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2620,    -1,
     339,    -1,    -1,    -1,    -1,  3159,    -1,    -1,  2497,    -1,
     752,   753,    -1,  2835,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   317,  2944,   174,    -1,   364,  2515,   323,  2845,  2846,
    2847,  2848,    -1,    -1,  2523,  2524,  2525,    -1,    -1,    -1,
      -1,    -1,   338,    -1,    -1,    -1,    -1,  2411,  2537,  3203,
    2539,    -1,  2541,    -1,    -1,    -1,    -1,    -1,  2547,   210,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   810,    -1,
      -1,    -1,    -1,    -1,    -1,   226,    -1,   373,  2567,    -1,
     376,    -1,    -1,    -1,   423,    -1,   237,    -1,    -1,    -1,
      -1,   387,    -1,  2582,   390,  2172,    -1,    -1,  2920,    -1,
      -1,    -1,    -1,    -1,    -1,  2594,    -1,  2729,    -1,  2598,
      -1,    -1,   451,   409,    -1,  2192,    -1,    -1,    -1,    -1,
     271,    -1,    -1,   462,    -1,    -1,    -1,   423,    -1,   871,
      -1,  2208,    -1,   429,   430,  2624,  2625,    -1,    -1,    -1,
      -1,   292,  2219,   482,   440,   484,   485,  2769,    -1,    -1,
     446,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2235,  2648,
    3314,    -1,    -1,    -1,    -1,  1559,  2655,   318,    -1,    -1,
      -1,    -1,  2661,    -1,   325,    -1,    -1,    -1,    -1,   475,
      -1,    -1,   521,    -1,    -1,   524,   525,   526,  2677,    -1,
      -1,  2555,  2681,  3010,  2683,    -1,  2685,  2686,    -1,    -1,
    2689,    -1,    -1,    -1,  2693,  2694,  2695,    -1,  2697,    -1,
    3032,    -1,    -1,  2835,    -1,    -1,   367,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,  2718,
      43,  2720,    -1,  3155,    -1,   386,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3067,  2735,  2736,  2737,  2738,
    2739,  2740,  2741,  2742,  2743,  2744,  2620,    -1,    -1,    -1,
      -1,    -1,    -1,  1657,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1016,    -1,    -1,    -1,  2767,    -1,
    1022,    -1,  1024,    -1,    -1,    -1,  2775,    -1,    -1,   102,
      -1,  1033,    -1,    -1,    -1,    -1,    -1,    -1,  2920,  2788,
      -1,  1043,    -1,    -1,    -1,    -1,   457,    -1,    -1,    -1,
    3132,   462,    -1,    -1,    -1,    -1,  3138,    -1,    -1,    -1,
    3242,    -1,  2811,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2821,    -1,    -1,    -1,    -1,  3159,    -1,    -1,
      -1,    -1,    -1,  2832,    -1,    -1,  1088,  2424,    -1,  2838,
      -1,    -1,    -1,    -1,    -1,    -1,  2845,  2846,  2847,  2848,
      -1,   174,    -1,    -1,    -1,  2729,    -1,    -1,    -1,   182,
    2859,  1113,    -1,  2862,    -1,    -1,    -1,  2866,  2867,    -1,
      -1,  3203,    -1,    -1,    -1,    -1,  2875,    -1,    -1,    -1,
      -1,    -1,  3314,    -1,    -1,    -1,    -1,   210,    -1,    -1,
      -1,  1795,    -1,    -1,     8,  2769,    -1,    11,    -1,  2898,
    3032,    15,    16,   226,    -1,    -1,  2905,  2906,    -1,    -1,
      -1,    -1,    -1,    -1,   237,    -1,    -1,    -1,    -1,  3583,
      -1,  3353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1003,
    1182,  1183,    -1,    47,    -1,  3067,    -1,    -1,    -1,  2938,
      54,  2940,    -1,    -1,    -1,    -1,    -1,    -1,   271,    -1,
      -1,    -1,    -1,  2952,    -1,    -1,    -1,    -1,    -1,    -1,
    2959,  2835,    -1,    -1,  2963,    -1,    -1,    81,    -1,   292,
    2969,    -1,    -1,    -1,    -1,    -1,    -1,  1003,    -1,    -1,
      -1,    -1,  3314,    -1,  2983,    -1,    -1,    -1,    -1,    -1,
    2989,    -1,    -1,    -1,    -1,   318,  1900,    -1,    -1,    -1,
    3132,    -1,   325,  3002,  3003,  3004,  3138,  3334,  2595,    -1,
      -1,  3010,    -1,    -1,    -1,    -1,    -1,  3449,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3159,  3027,    -1,
      -1,  3358,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2630,   367,    -1,  2920,    -1,    -1,    -1,
    1954,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1966,   386,   178,    -1,    -1,    -1,    -1,    -1,
    2657,  3203,    -1,    -1,    -1,    -1,    -1,    27,    -1,    -1,
      -1,   195,    -1,    33,    -1,    -1,   200,    -1,    -1,    -1,
      -1,    41,  1996,    -1,    -1,    -1,  2683,    -1,  3425,  2003,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3109,    61,  1364,  1365,  3113,  1367,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,     8,    -1,   239,    11,    -1,  3455,  3128,
      15,    16,    -1,    -1,   457,    -1,    -1,    -1,  1212,   462,
      -1,    -1,    -1,  2047,    -1,    -1,    -1,  2051,    -1,    -1,
      -1,  3583,  3151,  2057,    -1,    -1,    -1,   107,  3032,  3158,
      -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,
      -1,    -1,    -1,    -1,    -1,    -1,  2080,  1203,    -1,    -1,
     294,  2768,  3314,    -1,    -1,  3184,  1212,    -1,   138,    -1,
      -1,    -1,  3191,  3067,    -1,    -1,    81,    -1,    -1,  3198,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2798,    -1,    -1,    -1,  2802,  3215,    -1,  1470,    -1,
      -1,    -1,  2809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1485,    -1,  1487,    -1,    -1,  1490,  3238,
      -1,    -1,    -1,  1495,    -1,    -1,  1498,  3246,  1500,    -1,
      -1,  3583,  1504,   203,  1506,    -1,  1508,    -1,  3132,    -1,
      -1,   146,    -1,  3262,  3138,    -1,    -1,    -1,  3267,    -1,
      -1,    -1,  2859,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   397,    -1,  3159,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   178,  3293,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,
     195,    -1,    -1,   263,    -1,   200,    -1,    -1,  3317,  3318,
      -1,    -1,    -1,    25,    -1,   275,    -1,    -1,    -1,  3203,
      -1,    -1,    -1,    -1,    -1,  3334,    -1,  3336,    -1,    -1,
      -1,    -1,  3341,    -1,    -1,    -1,   296,    -1,    -1,    -1,
      -1,    -1,    -1,  2940,   239,    -1,    -1,   307,    -1,  3358,
      -1,    -1,  3361,  2950,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2959,  1447,  1448,    -1,    -1,  1629,    -1,  1453,
      82,    -1,  3381,    -1,  3383,    -1,  3385,  3386,    -1,  3388,
      -1,    -1,    -1,   507,  3393,    -1,    98,    -1,    -1,    -1,
     514,   515,   516,   517,   518,   519,   356,    -1,    -1,   294,
     360,    -1,   362,    -1,    -1,  3414,    -1,    -1,    -1,  3418,
      -1,  1447,  1448,    -1,    -1,    -1,  3425,  1453,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   387,    -1,    -1,
    3314,    -1,   392,    -1,    -1,   147,    -1,    -1,    -1,    -1,
      -1,  3583,    -1,    -1,    -1,   157,  3455,   407,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   170,    -1,
      -1,    -1,    -1,   175,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3494,   846,   847,    -1,    -1,
      -1,    -1,   204,  3502,    -1,    -1,    -1,  2411,    -1,    -1,
      -1,    -1,   397,    -1,    -1,   465,    -1,    -1,  3517,  1771,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1790,    -1,
      -1,    -1,  3129,    -1,    -1,  3544,   248,    -1,    -1,  1801,
     252,  1803,    -1,    -1,  1806,    -1,    -1,  3556,  3557,    -1,
    3559,  3560,    -1,    -1,  1816,    -1,  1818,    -1,   918,  3568,
      -1,    -1,   922,   923,    -1,    -1,    -1,    -1,    -1,  1831,
    3579,    -1,    -1,    -1,  1836,    -1,    -1,  3174,  1840,  1841,
      -1,  1843,    -1,  1845,  1846,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3601,    -1,    -1,    -1,    -1,    -1,    -1,  3608,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   323,   507,    -1,  1698,   975,    -1,    -1,    -1,   514,
     515,   516,   517,   518,   519,    -1,   338,    -1,    -1,    -1,
      -1,    -1,    -1,   993,    -1,    -1,  3645,    -1,    -1,   999,
      -1,  2555,  1002,    -1,    -1,  1005,  1006,  1007,  1008,    -1,
      -1,  3660,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1744,   373,    -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   387,    -1,    -1,   390,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1050,  1051,    -1,    -1,    -1,    -1,    -1,   409,    -1,  3583,
      -1,    -1,    -1,    -1,    -1,    -1,  2620,    -1,  1744,    -1,
      -1,   423,  1072,    -1,    -1,    -1,    -1,    -1,   430,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   440,    -1,
      -1,    -1,  1092,    -1,   446,    -1,  3333,    -1,    -1,    -1,
      -1,    -1,    -1,  2005,  1104,  1105,  1106,    -1,  1108,  1109,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3357,    -1,    -1,   475,    -1,    -1,    -1,    -1,    -1,    -1,
    2032,    -1,    -1,    -1,    -1,    -1,  2038,    -1,    -1,    -1,
      -1,    -1,  2044,    -1,  1144,    -1,    -1,    -1,  2050,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1162,  1163,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2729,    -1,    -1,  3415,    -1,
    3417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1198,    -1,
      -1,    -1,  1202,  1203,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1213,  1214,  2769,    -1,    -1,    -1,    -1,
    3457,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2133,    -1,    -1,    -1,    -1,  2138,  3474,    -1,    -1,
      -1,  2143,    -1,  1967,  1968,  1969,  1970,  1971,  1972,    -1,
      -1,  1975,  1976,  1977,  1978,  1979,  1980,  1981,  1982,  1983,
    1984,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1274,    -1,    -1,    -1,    -1,    -1,
      -1,  2835,    -1,    -1,  1284,    -1,    -1,    -1,    -1,    -1,
      -1,  1967,  1968,  1969,  1970,  1971,  1972,    -1,    -1,  1975,
    1976,  1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,  1309,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2219,     8,    -1,
      -1,    11,    -1,    -1,    -1,    15,    16,    17,    18,  2231,
      20,    21,    22,  2235,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,
      -1,    -1,    -1,  3600,    54,    -1,  2920,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     3,    -1,     5,  2279,    -1,    -1,
      -1,    -1,    -1,  2285,    -1,    -1,    -1,    -1,    -1,  3626,
      -1,    81,    -1,    -1,    -1,    -1,    -1,  1397,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      69,    70,    -1,  2167,  2168,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1460,    -1,  1462,  1463,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1475,  1476,    -1,  3032,    -1,
      -1,   110,   111,    -1,    -1,   114,   115,    -1,   178,    -1,
      -1,  2167,  2168,    -1,    -1,    -1,    -1,  1497,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
     200,    -1,    -1,  3067,    -1,    -1,    -1,    -1,    -1,  2421,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   223,   224,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2282,    -1,
      -1,   190,   191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    69,    70,  3132,    -1,
      -1,    -1,    -1,    -1,  3138,    -1,    -1,   277,    -1,    -1,
     280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1601,    -1,    -1,   294,  3159,  2282,   297,    -1,    -1,
    1610,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,
      -1,   114,   115,    -1,  1624,    -1,   255,   256,   257,   258,
     259,   260,   261,   262,    -1,  2537,   265,   266,    -1,  2541,
      -1,    -1,    -1,    -1,  1644,  2547,    -1,    -1,    -1,  3203,
      -1,    -1,  1652,    -1,    -1,    -1,    -1,    -1,  1658,  1659,
    1660,  1661,  1662,  1663,  1664,  1665,    -1,    -1,    -1,    -1,
    1670,  1671,    -1,    -1,    -1,  1675,    -1,    -1,    -1,  1679,
      -1,    -1,  1682,  1683,  1684,  1685,  1686,  1687,  1688,  1689,
    1690,    -1,  2594,  1693,    -1,    -1,  2598,   190,   191,    -1,
    1700,    -1,  1702,    -1,    -1,    -1,    -1,   397,    -1,    -1,
      -1,   340,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1720,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   381,   382,    -1,  1755,  1756,    -1,    -1,    -1,
    3314,    -1,   255,   256,   257,   258,   259,   260,   261,   262,
      -1,    -1,   265,   266,    -1,    -1,   110,   111,    -1,  2681,
     114,   115,    -1,  2685,  2686,    -1,    -1,  2689,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1003,    -1,  2718,   507,    -1,    -1,
     510,   511,   512,    -1,   514,   515,   516,   517,   518,   519,
      -1,    -1,    -1,  2735,  2736,  2737,  2738,   527,  2740,  2741,
    2742,  2743,  2744,    -1,    -1,    -1,    -1,   340,   341,    -1,
     479,   480,  1852,    -1,    -1,    -1,   190,   191,    -1,  1859,
      -1,    -1,  1862,  1863,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   503,   504,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2624,  2625,    -1,    -1,  1904,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   255,   256,   257,   258,   259,   260,   261,   262,  1929,
    1930,   265,   266,    -1,    -1,    -1,  2838,    -1,    -1,    -1,
    1129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2624,  2625,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1958,  1959,
      -1,  1961,    -1,     8,  2866,    -1,    11,    -1,    -1,    -1,
      15,    16,    17,    18,    -1,    20,    21,    22,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   479,   480,    -1,  1178,
    1990,  1991,    37,    -1,  1994,    -1,  2898,    -1,    -1,    -1,
      -1,    -1,    47,    -1,  2906,    -1,   340,   341,    -1,    54,
     503,   504,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1212,    -1,  2025,    -1,    -1,    -1,  3583,
     523,    -1,    -1,    -1,  2034,    -1,    81,    -1,  2940,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    27,   381,   382,    -1,
      -1,    -1,    33,  2053,    -1,  2055,    -1,    -1,    -1,    -1,
      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1268,
      61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2093,    -1,    -1,    -1,    -1,    -1,  2099,
      -1,  3003,    -1,    -1,    -1,    -1,    -1,    -1,  2832,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1313,    -1,   107,    -1,    -1,    -1,
      -1,  1320,  2132,   178,    -1,  2859,  2136,    -1,    -1,    -1,
      -1,  2141,  2142,    -1,    -1,   479,   480,    -1,    -1,    -1,
     195,    -1,    -1,    -1,    -1,   200,  2832,   138,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   503,
     504,    -1,    -1,    -1,    -1,     0,    -1,    -1,   223,   224,
      -1,    -1,  1371,  2859,    -1,    -1,    -1,    -1,  2188,    -1,
      -1,  2191,    -1,  2193,   239,    -1,    -1,    -1,    23,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1395,    -1,    33,  2209,
      35,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   203,    48,    -1,    -1,    -1,    -1,    53,    -1,
      -1,    -1,   277,  2909,    -1,   280,    -1,    62,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2248,   294,
      -1,    76,   297,    -1,  1443,    -1,  1445,    -1,  1447,  1448,
      85,  1450,    87,    -1,  1453,  2265,  2266,  1456,    -1,    -1,
    1459,    -1,   253,    -1,    99,  1464,   101,    -1,  1467,    -1,
    3004,    -1,   263,    -1,  2284,    -1,    -1,   112,    -1,  3191,
      -1,    -1,    -1,    -1,   275,    -1,  3198,  2297,    -1,    -1,
      -1,    -1,   127,   128,   129,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   138,    -1,   296,    -1,    -1,    -1,   144,
      -1,    -1,  1511,    -1,    -1,    -1,   307,   152,  3004,   154,
     155,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,   173,    -1,
      -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3262,    -1,    -1,    -1,  2364,  3267,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2373,   199,   356,    -1,    -1,    -1,   360,
      -1,   362,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     215,  3293,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   387,    -1,  1597,    -1,
      -1,   392,    -1,    -1,    -1,  3317,  3318,   242,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1614,   407,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3158,  2435,  1625,  1626,  1627,  3341,
      -1,    -1,    -1,  1632,    -1,    -1,    -1,  1636,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   507,    -1,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    -1,    -1,    -1,   524,
      -1,    -1,  3158,  3385,   465,    -1,    -1,    -1,    -1,    -1,
      -1,  3393,    -1,   318,   319,   320,    -1,    -1,    -1,    -1,
      -1,   326,    -1,    -1,   329,    -1,    -1,    -1,    -1,    -1,
    1699,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,     8,
      -1,    -1,    11,    -1,    -1,   360,    15,    16,    17,    18,
      -1,    20,    21,    22,   369,    -1,    -1,    -1,    -1,  1738,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     385,    -1,    41,    -1,    -1,  1754,    -1,   392,    47,    -1,
    1759,   396,  2572,    -1,    -1,    54,    -1,    -1,    -1,  2579,
    2580,    -1,   407,    -1,    -1,    -1,    -1,  1776,    -1,    -1,
      -1,    -1,    -1,    -1,   419,  2595,    -1,    -1,   423,    -1,
      -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,  2608,    -1,
      -1,  2611,    -1,  2613,    -1,    -1,    -1,    -1,   443,    -1,
      -1,  2621,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2629,
    2630,    -1,   457,    -1,    -1,   460,  2636,    -1,   463,    -1,
      -1,    -1,    -1,   468,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2653,    -1,    -1,    -1,  3381,    -1,    -1,
     485,    -1,    -1,  2663,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3579,    -1,    -1,
      -1,    -1,    -1,  2683,   509,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,   178,
      -1,   526,    -1,    -1,    -1,  3381,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,
      -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2734,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   223,   224,    -1,  2747,  2748,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     239,    -1,    -1,    -1,    -1,    -1,    -1,  1956,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1964,  1965,  2777,  1967,  1968,
    1969,  1970,  1971,  1972,    -1,    -1,  1975,  1976,  1977,  1978,
    1979,  1980,  1981,  1982,  1983,  1984,  1985,    -1,   277,    -1,
      -1,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   294,    -1,    -1,   297,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,
      16,    17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,
      -1,    -1,  2852,  2853,    -1,  2855,    -1,    -1,    -1,    -1,
      -1,    37,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,
      -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2889,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    81,    -1,  2096,    -1,  2909,
      -1,  2100,    -1,    -1,  2914,  2915,    -1,    -1,   397,  2919,
      -1,    -1,    -1,    -1,  2924,    -1,    -1,  2927,  2928,    -1,
      -1,    -1,  2932,  2933,    -1,    -1,  2936,    -1,    -1,    -1,
      -1,    -1,  2131,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2952,    -1,    -1,    -1,  2145,    -1,    -1,    -1,
      -1,  2150,    -1,    -1,    -1,  2154,  2155,  2156,  2157,  2158,
    2159,  2160,  2161,    -1,    -1,    -1,    -1,    -1,  2167,  2168,
      -1,  2170,  2171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2184,  2996,    -1,  2187,    -1,
      -1,    -1,   178,    -1,    -1,    -1,  2195,  2196,  2197,  2198,
    2199,  2200,  2201,  2202,  2203,  2204,    -1,    -1,    -1,   195,
      -1,    -1,    -1,  3023,   200,    -1,    -1,    -1,   507,    -1,
      -1,   510,   511,   512,    -1,   514,   515,   516,   517,   518,
     519,  2230,    -1,    -1,    -1,    -1,    -1,   223,   224,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2282,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   277,    -1,    -1,   280,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   294,    -1,
      -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3147,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3174,    -1,  2365,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2376,  2377,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3209,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   397,    -1,    -1,    -1,  3225,  3226,    -1,    -1,  3229,
      -1,  3231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2446,  3258,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3282,  2472,  2473,  2474,    -1,    -1,  2477,  2478,
    2479,  2480,  2481,  2482,    -1,    -1,    -1,  2486,  2487,  2488,
    2489,  2490,  2491,  2492,  2493,  2494,  2495,    -1,    -1,    -1,
      -1,  2500,  2501,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   507,    -1,    -1,   510,   511,   512,  2526,   514,   515,
     516,   517,   518,   519,    -1,    -1,    -1,  2536,   524,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3375,    -1,    -1,    -1,  3379,
      -1,    -1,  2571,  3383,    -1,    -1,    -1,    -1,    -1,  2578,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3397,    -1,    -1,
      -1,  2590,  3402,  3403,    -1,    -1,    -1,  2596,    -1,    -1,
      -1,    -1,  2601,  2602,  3414,    -1,     8,    -1,    -1,    11,
    2609,  2610,    -1,    15,    16,    17,    18,    -1,    20,    21,
      22,    -1,  3432,    -1,  2623,  2624,  2625,  2626,    -1,  2628,
      -1,    -1,    -1,  2632,    -1,    37,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3480,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    3490,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       8,  2690,  3502,    11,    -1,    -1,    -1,    15,    16,    17,
      18,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
      -1,    -1,    -1,    -1,    -1,  3535,    -1,    -1,    -1,    47,
      -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
      -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,
      16,    17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    37,    -1,    -1,    -1,    -1,   178,    -1,    -1,    -1,
      -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
      -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2810,  3622,  3623,  3624,    81,    -1,    -1,    -1,    -1,
      -1,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2832,    -1,    -1,    -1,   239,    -1,  3649,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,
     178,    -1,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   277,    -1,   195,   280,    -1,
    3690,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      47,  2890,   294,  2892,    -1,   297,    -1,    54,    -1,    -1,
      -1,    -1,  2901,    -1,    -1,   223,   224,    -1,    -1,    -1,
      -1,    -1,   178,    -1,  2913,    -1,    -1,  2916,    -1,  2918,
      -1,   239,    -1,  2922,    81,    -1,  2925,  2926,    -1,   195,
    2929,  2930,    -1,    -1,   200,    -1,    -1,    -1,  2937,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2951,    -1,    -1,    -1,    -1,   223,   224,   277,
      -1,    -1,   280,    -1,    -1,    -1,    -1,  2966,    -1,    -1,
      -1,    -1,    -1,   239,    -1,    -1,   294,    -1,    -1,   297,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3004,    -1,    -1,    -1,    -1,
      -1,   277,    -1,    -1,   280,    -1,    -1,    -1,    -1,    -1,
      -1,   178,    -1,    -1,    -1,    -1,    -1,    -1,   294,    -1,
      -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,
      -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   223,   224,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,
      -1,    -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,    -1,    -1,
     277,    -1,   524,   280,  3123,    -1,    -1,    -1,    -1,    -1,
      -1,   397,    -1,    -1,    -1,    -1,    -1,   294,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3157,  3158,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3182,  3183,    -1,    -1,  3186,    -1,   507,
      -1,    -1,   510,   511,   512,    -1,   514,   515,   516,   517,
     518,   519,    -1,    -1,    -1,    -1,   524,    -1,  3207,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3216,    -1,    -1,
    3219,  3220,  3221,    -1,    -1,  3224,    -1,    -1,  3227,  3228,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3236,    -1,    -1,
     397,   507,    -1,    -1,   510,   511,   512,    -1,   514,   515,
     516,   517,   518,   519,    -1,    -1,    -1,    -1,   524,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3279,    -1,    -1,    -1,    -1,    -1,  3285,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3298,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     507,    -1,    -1,   510,   511,   512,    -1,   514,   515,   516,
     517,   518,   519,    -1,  3363,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3399,  3400,  3401,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3433,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3495,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3505,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3530,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3555,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3598,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
      72,    73,    74,  3652,    76,    77,    78,    79,    80,    -1,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,   118,   119,    -1,   121,
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
     232,   233,    -1,    -1,   236,   237,   238,   239,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,   318,   319,   320,    -1,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,   423,   424,   425,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,   456,   457,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,   507,    -1,   509,    -1,    -1,
      -1,    -1,   514,   515,   516,    -1,    -1,    -1,    -1,   521,
      -1,   523,   524,    -1,    -1,    -1,   528,   529,   530,   531,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,   118,   119,    -1,   121,   122,
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,   172,
     173,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,    -1,    -1,   236,   237,   238,   239,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,    -1,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,   385,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
     423,   424,   425,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,   507,    -1,   509,    -1,    -1,    -1,
      -1,   514,   515,   516,    -1,    -1,    -1,    -1,   521,    -1,
     523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,   118,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,   172,   173,
     174,   175,   176,   177,   178,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,   223,
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
      -1,    -1,   236,   237,   238,   239,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,    -1,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,   367,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,   385,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,   397,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,   423,
     424,   425,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,   456,   457,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,   507,    -1,   509,    -1,    -1,    -1,    -1,
     514,   515,   516,    -1,    -1,    -1,    -1,   521,    -1,   523,
      -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    38,    -1,    40,    -1,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,   133,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,    -1,
      -1,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,   397,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
     425,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,   456,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,    -1,    -1,    -1,    -1,    -1,    -1,   514,
     515,   516,    -1,    -1,    -1,    -1,   521,    -1,   523,   524,
      -1,    -1,    -1,   528,   529,   530,   531,     3,     4,     5,
       6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,
      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,   118,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,   172,   173,   174,   175,
     176,   177,   178,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,   223,   224,   225,
     226,   227,   228,   229,   230,   231,   232,   233,    -1,   235,
     236,   237,   238,   239,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,   397,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,   425,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
     436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
     456,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,   507,    -1,    -1,    -1,    -1,    -1,    -1,   514,   515,
     516,    -1,    -1,    -1,    -1,   521,    -1,   523,    -1,    -1,
      -1,    -1,   528,   529,   530,   531,     3,     4,     5,     6,
       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
     127,   128,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,   173,   174,   175,   176,
     177,   178,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,    -1,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,    -1,   421,   422,   423,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,    -1,
     457,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,   485,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
      -1,    -1,   509,    -1,    -1,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,   521,    -1,   523,    -1,    -1,    -1,
      -1,   528,   529,   530,   531,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      38,    -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
     118,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,   172,    -1,   174,   175,   176,   177,
     178,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,    -1,    -1,   236,   237,
     238,   239,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,   367,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,   386,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,   397,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,   425,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,   456,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,   507,
      -1,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,
      -1,    -1,    -1,   521,    -1,   523,    -1,    -1,    -1,    -1,
     528,   529,   530,   531,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    38,
      -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    82,    -1,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,   161,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,   172,    -1,   174,   175,   176,   177,   178,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,    -1,    -1,   236,   237,   238,
     239,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,   325,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,   397,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,   425,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,   456,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,   507,    -1,
      -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,    -1,
      -1,    -1,   521,    -1,   523,   524,    -1,    -1,    -1,   528,
     529,   530,   531,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    39,
      40,    -1,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,   161,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,    -1,    -1,   236,   237,   238,   239,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,   325,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,   367,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,   425,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,   456,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,   473,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,   507,    -1,    -1,
      -1,    -1,    -1,    -1,   514,   515,   516,    -1,    -1,    -1,
      -1,   521,    -1,   523,    -1,    -1,    -1,    -1,   528,   529,
     530,   531,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    -1,    -1,    -1,    38,    -1,    40,
      -1,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     231,   232,   233,    -1,    -1,   236,   237,   238,   239,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,   397,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,   456,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,   507,    -1,    -1,    -1,
      -1,    -1,    -1,   514,   515,   516,    -1,    -1,    -1,    -1,
     521,    -1,   523,   524,    -1,    -1,    -1,   528,   529,   530,
     531,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    38,    -1,    40,    -1,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,   118,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
     172,    -1,   174,   175,   176,   177,   178,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
     232,   233,    -1,    -1,   236,   237,   238,   239,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,   386,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,   397,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,   425,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,   456,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,   507,    -1,    -1,    -1,    -1,
      -1,    -1,   514,   515,   516,    -1,    -1,    -1,    -1,   521,
      -1,   523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,   118,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,    -1,    -1,   236,   237,   238,   239,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,   397,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,   425,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,   456,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,   507,    -1,    -1,    -1,    -1,    -1,
      -1,   514,   515,   516,    -1,    -1,    -1,    -1,   521,    -1,
     523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,   118,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,   172,    -1,
     174,   175,   176,   177,   178,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,   223,
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
      -1,    -1,   236,   237,   238,   239,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,   367,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,   397,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,   425,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,   456,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,   507,    -1,    -1,    -1,    -1,    -1,    -1,
     514,   515,   516,    -1,    -1,    -1,    -1,   521,    -1,   523,
      -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,    -1,
      -1,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,   397,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
     425,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,   456,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,    -1,    -1,    -1,    -1,    -1,    -1,   514,
     515,   516,    -1,    -1,    -1,    -1,   521,    -1,   523,    -1,
      -1,    -1,    -1,   528,   529,   530,   531,     3,     4,     5,
       6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,
      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,   118,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,   172,    -1,   174,   175,
     176,   177,   178,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,   223,   224,   225,
     226,   227,   228,   229,   230,   231,   232,   233,    -1,    -1,
     236,   237,   238,   239,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,   397,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,   425,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
     456,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,   507,    -1,    -1,    -1,    -1,    -1,    -1,   514,   515,
     516,    -1,    -1,    -1,    -1,   521,    -1,   523,   524,    -1,
      -1,    -1,   528,   529,   530,   531,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    19,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,   118,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,   230,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,    -1,    -1,   421,   422,    -1,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,   456,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
     507,    -1,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,
      -1,    -1,    -1,    -1,   521,    -1,   523,    -1,    -1,    -1,
      -1,   528,   529,   530,   531,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
     118,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,   172,    -1,   174,   175,   176,   177,
     178,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,    -1,    -1,   236,   237,
     238,   239,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,   367,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,   397,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,   423,   424,   425,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,   456,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,   473,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,   507,
      -1,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,
      -1,    -1,    -1,   521,    -1,   523,    -1,    -1,    -1,    -1,
     528,   529,   530,   531,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    82,    -1,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,   161,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,   172,    -1,   174,   175,   176,   177,   178,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,    -1,    -1,   236,   237,   238,
     239,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,   325,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,   397,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,   425,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,   456,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,    -1,   482,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,   507,    -1,
      -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,    -1,
      -1,    -1,   521,    -1,   523,    -1,    -1,    -1,    -1,   528,
     529,   530,   531,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      40,    -1,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,   161,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,    -1,    -1,   236,   237,   238,   239,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,   325,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,   367,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,   397,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,   425,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,   456,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,   473,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,   507,    -1,    -1,
      -1,    -1,    -1,    -1,   514,   515,   516,    -1,    -1,    -1,
      -1,   521,    -1,   523,    -1,    -1,    -1,    -1,   528,   529,
     530,   531,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
      -1,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     231,   232,   233,    -1,    -1,   236,   237,   238,   239,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,   397,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,   456,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,   507,    -1,    -1,    -1,
      -1,    -1,    -1,   514,   515,   516,    -1,    -1,    -1,    -1,
     521,    -1,   523,    -1,    -1,    -1,    -1,   528,   529,   530,
     531,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,   118,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
     172,    -1,   174,   175,   176,   177,   178,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
     232,   233,    -1,    -1,   236,   237,   238,   239,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,   397,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,   425,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,   456,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,   507,    -1,    -1,    -1,    -1,
      -1,    -1,   514,   515,   516,    -1,    -1,    -1,    -1,   521,
      -1,   523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,   118,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,    -1,    -1,   236,   237,   238,   239,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,   397,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,   425,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,   456,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,   507,    -1,    -1,    -1,    -1,    -1,
      -1,   514,   515,   516,    -1,    -1,    -1,    -1,   521,    -1,
     523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,   118,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,   172,    -1,
     174,   175,   176,   177,   178,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,   223,
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
      -1,    -1,   236,   237,   238,   239,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,   367,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,   397,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,   425,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,   456,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,   507,    -1,    -1,    -1,    -1,    -1,    -1,
     514,   515,   516,    -1,    -1,    -1,    -1,   521,    -1,   523,
      -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,    -1,
      -1,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,   397,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
     425,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,   456,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,    -1,    -1,    -1,    -1,    -1,    -1,   514,
     515,   516,    -1,    -1,    -1,    -1,   521,    -1,   523,    -1,
      -1,    -1,    -1,   528,   529,   530,   531,     3,     4,     5,
       6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,
      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,   118,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,   172,    -1,   174,   175,
     176,   177,   178,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,   223,   224,   225,
     226,   227,   228,   229,   230,   231,   232,   233,    -1,    -1,
     236,   237,   238,   239,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,   397,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,   425,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
     456,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,   507,    -1,    -1,    -1,    -1,    -1,    -1,   514,   515,
     516,    -1,    -1,    -1,    -1,   521,    -1,   523,    -1,    -1,
      -1,    -1,   528,   529,   530,   531,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,   118,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,   230,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,    -1,    -1,   421,   422,    -1,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,   456,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
     507,    -1,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,
      -1,    -1,    -1,    -1,   521,    -1,   523,    -1,    -1,    -1,
      -1,   528,   529,   530,   531,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
     118,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,   172,    -1,   174,   175,   176,   177,
     178,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,    -1,    -1,   236,   237,
     238,   239,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,   367,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,   397,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,   425,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,   456,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,   473,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,   507,
      -1,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,
      -1,    -1,    -1,   521,    -1,   523,    -1,    -1,    -1,    -1,
     528,   529,   530,   531,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    82,    -1,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,   161,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,   172,    -1,   174,   175,   176,   177,   178,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,    -1,    -1,   236,   237,   238,
     239,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,   325,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,   397,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,   425,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,   456,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,   507,    -1,
      -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,    -1,
      -1,    -1,   521,    -1,   523,    -1,    -1,    -1,    -1,   528,
     529,   530,   531,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      40,    -1,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,   161,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,    -1,    -1,   236,   237,   238,   239,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,   325,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,   367,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,   397,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,   425,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,   456,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,   473,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,   507,    -1,    -1,
      -1,    -1,    -1,    -1,   514,   515,   516,    -1,    -1,    -1,
      -1,   521,    -1,   523,    -1,    -1,    -1,    -1,   528,   529,
     530,   531,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
      -1,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,    -1,    -1,   225,   226,   227,   228,   229,   230,
     231,   232,   233,    -1,    -1,   236,   237,   238,   239,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,   282,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,   397,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,   456,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,   507,    -1,    -1,    -1,
      -1,    -1,    -1,   514,   515,   516,    -1,    -1,    -1,    -1,
     521,    -1,   523,    -1,    -1,    -1,    -1,   528,   529,   530,
     531,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
     172,    -1,   174,   175,   176,   177,   178,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,   223,   224,   225,   226,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,   237,   238,   239,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,   397,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,   425,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
     442,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   514,   515,    -1,    -1,    -1,    -1,    -1,   521,
      -1,   523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,
       3,     4,     5,     6,     7,    -1,     9,    10,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,    -1,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
     223,   224,   225,   226,   227,   228,   229,    -1,   231,   232,
     233,    -1,    -1,   236,   237,   238,   239,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,   397,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,   425,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,    -1,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   514,   515,    -1,    -1,    -1,    -1,    -1,   521,    -1,
     523,    -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,   161,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,   172,    -1,
     174,   175,   176,   177,   178,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
     224,   225,   226,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,   237,   238,   239,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,   367,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,   397,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,   425,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,   442,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     514,   515,    -1,    -1,    -1,    -1,    -1,   521,    -1,   523,
      -1,    -1,    -1,    -1,   528,   529,   530,   531,     3,     4,
       5,     6,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,   223,   224,
     225,   226,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,   397,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
     425,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,    -1,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
       6,     7,    -1,     9,    10,    -1,   521,    -1,   523,    -1,
      -1,    -1,    -1,   528,   529,   530,   531,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,
      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,   172,    -1,   174,   175,
     176,   177,   178,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,   223,   224,   225,
     226,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,   237,   238,   239,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,   397,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,   425,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,   442,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
       7,    -1,     9,    10,    -1,   521,    -1,   523,    -1,    -1,
      -1,    -1,   528,   529,   530,   531,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,    -1,    -1,   421,   422,    -1,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,    -1,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,   521,    -1,   523,    -1,    -1,    -1,
      -1,   528,   529,   530,   531,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    40,    -1,    -1,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    52,    53,    -1,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
     118,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,    -1,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,   172,    -1,   174,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,   226,   227,
     228,   229,   230,   231,   232,   233,    -1,    -1,   236,   237,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,   282,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,   367,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,   425,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,   456,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,   473,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   514,   515,   516,    -1,
       3,     4,     5,   521,    -1,   523,     9,    -1,    -1,    -1,
     528,   529,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    -1,    -1,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,    -1,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
     223,   224,   225,   226,   227,   228,   229,    -1,   231,   232,
     233,    -1,    -1,   236,   237,   238,   239,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,   280,   281,    -1,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,   292,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,   397,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,   425,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,   456,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,    -1,    -1,    -1,    -1,    -1,     3,
      -1,   514,   515,   516,    -1,    -1,    10,    -1,   521,    -1,
     523,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   531,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,   172,    -1,
     174,   175,   176,   177,   178,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,   223,
     224,   225,   226,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,   237,   238,   239,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,    -1,   278,   279,   280,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,   367,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,   397,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,   425,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,    -1,    -1,    -1,    -1,    -1,     3,     4,
      -1,    -1,    -1,    -1,     9,    10,    -1,   521,    -1,   523,
      -1,    -1,    -1,    -1,   528,   529,   530,   531,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
      45,    -1,    -1,    48,    49,    -1,    51,    52,    53,    54,
      55,    -1,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,    84,
      85,    86,    87,    88,    89,    -1,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,    -1,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,
     175,   176,   177,    -1,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
      -1,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,    -1,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,
     225,    -1,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,    -1,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,    -1,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
      -1,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,    -1,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,    -1,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,    -1,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   528,   529,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    41,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,   163,   164,   165,   166,   167,
     168,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,   219,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,   240,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,   296,    -1,
     298,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,   451,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   524,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,
     524,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    35,    36,    -1,    38,    -1,
      -1,    -1,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,   127,   128,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,   172,   173,   174,   175,   176,   177,   178,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,   223,   224,   225,   226,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,   237,   238,   239,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
     280,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     320,    -1,   322,   323,   324,   325,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,   367,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,   386,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
      -1,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,   473,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,    -1,     3,   509,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   523,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,   223,   224,
     225,   226,   227,   228,   229,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,   293,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,    -1,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,    -1,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,    -1,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,    -1,   457,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,    -1,     3,   509,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    67,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,   223,   224,   225,   226,   227,   228,   229,
      -1,   231,   232,   233,   234,    -1,   236,   237,   238,   239,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
     280,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,   293,   294,   295,   296,    -1,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,   325,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,   367,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,   397,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,   425,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,   473,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,     5,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   523,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    44,    45,
      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,   172,    -1,   174,   175,
     176,   177,   178,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,   223,   224,   225,
     226,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,   237,   238,   239,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,    -1,   278,   279,   280,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,   293,   294,   295,
     296,    -1,    -1,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,   397,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,   425,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    67,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
     172,    -1,   174,   175,   176,   177,   178,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,   223,   224,   225,   226,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,   237,   238,   239,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,   397,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,   425,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   523,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    67,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,   172,    -1,   174,   175,   176,   177,
     178,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,   223,   224,   225,   226,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,   237,
     238,   239,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
     278,   279,   280,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,   367,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,   397,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,   425,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,   473,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,   127,   128,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,   173,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,   385,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,   396,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,   423,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,   457,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,    -1,     3,   509,     5,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,
      49,    -1,    51,    52,    53,    54,    55,    -1,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    -1,    -1,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    -1,    -1,    84,    85,    86,    87,    88,
      89,    -1,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,    -1,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,    -1,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,    -1,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,    -1,   173,    -1,   175,   176,   177,    -1,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,    -1,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,    -1,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,
     229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,
      -1,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,    -1,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,    -1,   303,    -1,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,    -1,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,    -1,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,    -1,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,   423,   424,    -1,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,    -1,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,    -1,   457,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,    -1,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,   485,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,    -1,     3,
     509,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   523,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,   173,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,   385,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,   423,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,   457,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,    -1,     3,   509,     5,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,
      49,    -1,    51,    52,    53,    54,    55,    -1,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    -1,    -1,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    -1,    -1,    84,    85,    86,    87,    88,
      89,    -1,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,    -1,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,    -1,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,    -1,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,    -1,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,    -1,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,
     229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,
      -1,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,    -1,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,    -1,   303,    -1,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,    -1,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,    -1,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,    -1,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,    -1,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   523,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
      45,    -1,    -1,    48,    49,    -1,    51,    52,    53,    54,
      55,    -1,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,    84,
      85,    86,    87,    88,    89,    -1,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,    -1,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,
     175,   176,   177,    -1,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
      -1,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,    -1,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,
     225,    -1,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,    -1,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,    -1,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
      -1,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,    -1,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,    -1,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,    -1,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,
      51,    52,    53,    54,    55,    -1,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    -1,    -1,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    -1,    -1,    84,    85,    86,    87,    88,    89,    -1,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,    -1,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,    -1,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,    -1,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,    -1,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,
     231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,    -1,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,    -1,   303,    -1,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,    -1,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,    -1,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,    -1,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,    -1,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,    -1,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,     3,    -1,     5,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   523,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,
      -1,    48,    49,    -1,    51,    52,    53,    54,    55,    -1,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    -1,
      -1,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    -1,    -1,    84,    85,    86,
      87,    88,    89,    -1,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,    -1,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,    -1,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,
     177,    -1,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,    -1,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,    -1,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
      -1,   238,    -1,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,    -1,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
      -1,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
      -1,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,    -1,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,    -1,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,    -1,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
       3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,    52,
      53,    54,    55,    -1,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    -1,    -1,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    -1,
      -1,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,    -1,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,    -1,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,    -1,
      -1,    -1,   175,   176,   177,    -1,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,    -1,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,    -1,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
      -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,   232,
     233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,    -1,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,    -1,
     303,    -1,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,    -1,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,    -1,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,    -1,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,    -1,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
      -1,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,     3,    -1,     5,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     523,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,
      49,    -1,    51,    52,    53,    54,    55,    -1,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    -1,    -1,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    -1,    -1,    84,    85,    86,    87,    88,
      89,    -1,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,    -1,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,    -1,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,    -1,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,    -1,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,    -1,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,
     229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,
      -1,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,    -1,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,    -1,   303,    -1,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,    -1,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,    -1,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,    -1,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,    -1,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   523,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
      45,    -1,    -1,    48,    49,    -1,    51,    52,    53,    54,
      55,    -1,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,    84,
      85,    86,    87,    88,    89,    -1,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,    -1,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,
     175,   176,   177,    -1,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
      -1,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,    -1,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,
     225,    -1,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,    -1,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,    -1,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
      -1,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,    -1,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,    -1,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,    -1,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,
      51,    52,    53,    54,    55,    -1,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    -1,    -1,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    -1,    -1,    84,    85,    86,    87,    88,    89,    -1,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,    -1,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,    -1,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,    -1,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,    -1,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,
     231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,    -1,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,    -1,   303,    -1,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,    -1,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,    -1,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,    -1,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,    -1,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,    -1,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   523,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,
      -1,    48,    49,    -1,    51,    52,    53,    54,    55,    -1,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    -1,
      -1,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    -1,    -1,    84,    85,    86,
      87,    88,    89,    -1,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,    -1,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,    -1,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,
     177,    -1,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,    -1,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,    -1,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
      -1,   238,    -1,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
      -1,   278,   279,    -1,   281,    -1,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
      -1,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
      -1,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,    -1,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,    -1,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,    -1,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,    52,
      53,    54,    55,    -1,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    -1,    -1,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    -1,
      -1,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,    -1,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,    -1,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,    -1,
      -1,    -1,   175,   176,   177,    -1,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,    -1,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,    -1,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
      -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,   232,
     233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,    -1,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,    -1,
     303,    -1,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,    -1,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,    -1,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,    -1,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,    -1,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
      -1,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,     3,     4,     5,    -1,    -1,     8,
       9,    -1,    -1,    -1,    -1,    -1,    15,    16,    -1,    -1,
     523,    20,    21,    22,    23,    24,    25,    26,    27,    28,
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
     149,   150,   151,   152,    -1,   154,   155,   156,   157,   158,
     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
     179,   180,   181,   182,    -1,    -1,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
     209,   210,    -1,   212,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,    -1,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,   300,    -1,   302,   303,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,    -1,   325,   326,   327,    -1,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
      -1,   440,    -1,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,   463,   464,   465,   466,   467,    -1,
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
     489,   490,   491,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   503,   504,   505,   506,    -1,     3,
      -1,   510,   511,   512,     8,   514,   515,   516,   517,   518,
     519,    15,    16,    -1,    -1,    -1,    20,    21,    22,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,    -1,    -1,    -1,   510,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,     8,    -1,    -1,    11,
      -1,    -1,    -1,    15,    16,    17,    18,    -1,    20,    21,
      22,    -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,
      -1,    15,    16,    17,    18,    37,    20,    21,    22,    -1,
      -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    54,    37,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
      54,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    81,
      15,    16,    17,    18,    -1,    20,    21,    22,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    47,     8,    -1,    -1,    11,    -1,    -1,    54,
      15,    16,    17,    18,    -1,    20,    21,    22,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    -1,    81,    -1,    -1,    -1,
      -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,
       8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,    17,
      18,    -1,    20,    21,    22,    -1,   178,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    37,
      -1,    -1,    -1,   195,   178,    -1,    -1,    -1,   200,    47,
      -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
      -1,   195,    -1,    -1,    -1,    -1,   200,    -1,    -1,    -1,
      -1,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    -1,    -1,    -1,   239,    -1,   223,
     224,    -1,    -1,   178,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,    -1,    -1,
     195,    -1,    -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,
      -1,    -1,    -1,   178,    -1,    -1,    -1,    -1,   223,   224,
      -1,    -1,   294,   277,    -1,   297,   280,    -1,    -1,    -1,
     195,    -1,    -1,    -1,   239,   200,    -1,    -1,    -1,    -1,
     294,    -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   223,   224,
     178,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   277,    -1,   239,   280,    -1,   195,    -1,    -1,
      -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,   294,
      -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   223,   224,    -1,    -1,    -1,
      -1,    -1,   277,    -1,    -1,   280,    -1,    -1,    -1,    -1,
      -1,   239,    -1,    -1,    -1,   397,    -1,    -1,    -1,   294,
      -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   277,
      -1,    -1,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   294,    -1,    -1,   297,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   397,    -1,    -1,     8,    -1,    -1,    11,    -1,
      -1,    -1,    15,    16,    17,    18,    -1,    20,    21,    22,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   397,    -1,    47,   507,    -1,    -1,   510,   511,
     512,    54,   514,   515,   516,   517,   518,   519,    -1,    -1,
      -1,    -1,   524,   507,    -1,    -1,   510,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,    -1,    -1,    81,    -1,
     524,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    15,    16,    17,    18,    -1,    20,
      21,    22,   507,    -1,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    37,    -1,    -1,   524,
      -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,
      -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   507,    -1,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    -1,    -1,    -1,   524,
      81,    -1,    -1,    -1,    -1,   178,     8,    -1,    -1,    11,
      -1,    -1,    -1,    15,    16,    17,    18,    -1,    20,    21,
      22,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,   507,
      -1,    -1,   510,   511,   512,    37,   514,   515,   516,   517,
     518,   519,    -1,    -1,    -1,    47,   524,    -1,    -1,    -1,
     223,   224,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,
      17,    18,    -1,    20,    21,    22,    -1,   178,    -1,    -1,
      -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,    -1,
      37,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,
      47,   294,    -1,    -1,   297,    -1,    -1,    54,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,   239,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   178,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   195,    -1,    -1,   277,    -1,   200,   280,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   294,    -1,    -1,   297,    -1,    -1,    -1,
      -1,   223,   224,    -1,   397,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,     8,    -1,   239,    11,    -1,
      -1,    -1,    15,    16,    17,    18,    -1,    20,    21,    22,
      -1,   178,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,   195,    -1,
      -1,    -1,    -1,   200,    47,   277,    -1,    -1,   280,    -1,
      -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   294,    -1,    -1,   297,   223,   224,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      -1,    -1,   239,    -1,    -1,    -1,   397,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,    -1,    -1,    -1,
     277,   524,    -1,   280,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   294,    -1,    -1,
     297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,
      -1,    -1,    11,    -1,    -1,    -1,    15,    16,    17,    18,
      -1,    20,    21,    22,    -1,   397,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   178,    -1,    -1,    37,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,
      -1,    -1,   195,    -1,    -1,    54,   507,   200,    -1,   510,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,    -1,
      -1,    -1,    -1,   524,    -1,    -1,     8,    -1,    -1,    11,
     223,   224,    81,    15,    16,    17,    18,    -1,    20,    21,
      22,    -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,    -1,
     397,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   277,   507,    -1,   280,   510,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,    -1,    81,
      -1,   294,   524,    -1,   297,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,
      15,    16,    17,    18,    -1,    20,    21,    22,    -1,   178,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    -1,   195,    -1,    -1,    -1,
      -1,   200,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,
     507,    -1,    -1,   510,   511,   512,    -1,   514,   515,   516,
     517,   518,   519,    -1,   223,   224,    -1,   524,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
     239,    -1,    -1,    -1,    -1,    -1,   178,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   277,    -1,
      -1,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   223,   224,    -1,    -1,   294,    -1,    -1,   297,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   178,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,
     195,    -1,    -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,
      -1,    -1,   294,    -1,   507,   297,    -1,   510,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,    -1,   223,   224,
      -1,   524,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   239,    -1,    -1,    -1,   397,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    15,    16,    17,    18,    -1,    20,
      21,    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   277,    -1,    -1,   280,    37,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,   294,
      -1,    -1,   297,    54,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,
      15,    16,    17,    18,    -1,    20,    21,    22,   507,    -1,
      -1,   510,   511,   512,    -1,   514,   515,   516,   517,   518,
     519,    -1,    37,    -1,    -1,   524,    -1,    -1,    -1,    -1,
      -1,    -1,    47,    -1,    -1,     8,    -1,    -1,    11,    54,
      -1,    -1,    15,    16,    17,    18,    -1,    20,    21,    22,
      -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    37,    -1,    81,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    47,   507,    -1,   178,   510,   511,
     512,    54,   514,   515,   516,   517,   518,   519,    -1,    -1,
      -1,    -1,   524,    -1,   195,    -1,    -1,    -1,    -1,   200,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   507,   178,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,   277,   522,    -1,   280,
     195,    -1,    -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   294,    -1,    -1,   297,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   178,    -1,    -1,   223,   224,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   195,    -1,   239,    -1,    -1,   200,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     223,   224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   277,    -1,    -1,   280,   239,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   294,
      -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   294,    -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,   510,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,    -1,
      -1,   522,    -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   507,    -1,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    -1,   522,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       3,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,   512,
      -1,   514,   515,   516,   517,   518,   519,    -1,    -1,   522,
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   516,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,
      49,    -1,    51,    52,    53,    54,    55,    -1,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    -1,    -1,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    80,    -1,    -1,    -1,    84,    85,    86,    87,    88,
      89,    -1,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,    -1,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,    -1,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,    -1,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,    -1,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,    -1,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,
     229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,
      -1,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,    -1,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,    -1,   303,    -1,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,    -1,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,    -1,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,    -1,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,    -1,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   516,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
      45,    -1,    -1,    48,    49,    -1,    51,    52,    53,    54,
      55,    -1,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,    84,
      85,    86,    87,    88,    89,    -1,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,    -1,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,
     175,   176,   177,    -1,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
      -1,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,    -1,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,
     225,    -1,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,    -1,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,    -1,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
      -1,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,    -1,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,    -1,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,    -1,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,     3,     4,     5,    -1,    -1,    -1,     9,    -1,
      -1,   516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    -1,    -1,    -1,    38,    -1,    -1,
      -1,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    -1,    -1,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,    -1,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,   223,   224,   225,   226,   227,   228,   229,    -1,
     231,   232,   233,    -1,    -1,   236,   237,   238,   239,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,    -1,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,   292,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,   397,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,   456,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,    -1,    -1,     8,    -1,
      -1,    11,    -1,   514,   515,    15,    16,    17,    18,    -1,
      20,    21,    22,    -1,    -1,    -1,     8,    -1,    -1,    11,
      -1,    -1,    -1,    15,    16,    17,    18,    37,    20,    21,
      22,    -1,    42,    -1,    -1,    -1,    -1,    47,    -1,    -1,
      -1,    -1,    -1,    -1,    54,    37,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    54,    -1,    -1,     8,    -1,    -1,    11,    -1,
      -1,    81,    15,    16,    17,    18,    -1,    20,    21,    22,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
      -1,    54,    -1,    -1,    -1,    -1,    -1,   127,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    15,    16,    17,    18,    81,    20,
      21,    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
      41,    -1,    -1,    -1,    -1,    -1,    47,    -1,   178,    -1,
      -1,    -1,    -1,    54,    -1,    -1,   168,    -1,    -1,    -1,
      -1,   173,    -1,    -1,    -1,   195,   178,    -1,    -1,    -1,
     200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      81,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,
      -1,    -1,    -1,   223,   224,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   167,    -1,    -1,    -1,    -1,   239,
      -1,   223,   224,    -1,    -1,   178,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,
      -1,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   277,    -1,    -1,
     280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     223,   224,    -1,    -1,   294,   277,    -1,   297,   280,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   239,   178,    -1,    -1,
      -1,    -1,   294,    -1,    -1,   297,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,    -1,
      -1,    -1,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   294,    -1,    -1,   297,    -1,    -1,    -1,   239,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   327,    -1,    -1,   397,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   277,    -1,    -1,   280,
      -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,
      -1,    -1,     8,   294,    -1,    11,   297,    -1,    -1,    15,
      16,    17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,
       8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,    17,
      18,    37,    20,    21,    22,    -1,    -1,    -1,    -1,    -1,
      -1,    47,   462,    -1,   397,    -1,    -1,    -1,    54,    37,
      -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,
      -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,
     510,   511,   512,    81,   514,   515,   516,   517,   518,   519,
      -1,    -1,    -1,    -1,    -1,   507,   397,    -1,   510,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,
      17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,   512,
      37,   514,   515,   516,   517,   518,   519,    -1,    -1,    -1,
      47,    -1,   178,    -1,    -1,    -1,    -1,    54,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   195,
     178,    -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    -1,    -1,   195,    -1,    -1,
      -1,    -1,   200,    -1,    -1,    -1,   507,   223,   224,   510,
     511,   512,    -1,   514,   515,   516,   517,   518,   519,    -1,
      -1,    -1,    -1,   239,    -1,   223,   224,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   277,    -1,    -1,   280,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   294,   277,
      -1,   297,   280,    -1,    -1,    -1,   173,    -1,    -1,    -1,
      -1,   178,    -1,    -1,    -1,    -1,   294,    -1,    -1,   297,
      -1,    -1,    -1,    -1,    -1,   321,    -1,    -1,   195,    -1,
      -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   223,   224,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,    11,    -1,
      -1,    -1,    15,    16,    17,    18,    -1,    20,    21,    22,
      -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     277,    -1,    -1,   280,    37,    -1,    -1,    -1,    41,   397,
      -1,    -1,    -1,    -1,    47,    -1,    -1,   294,    -1,    -1,
     297,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     8,    -1,    -1,    11,    81,    -1,
      -1,    15,    16,    17,    18,    -1,    20,    21,    22,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    47,    -1,    -1,     8,    -1,    -1,    11,
      54,    -1,    -1,    15,    16,    17,    18,    19,    20,    21,
      22,   507,    -1,    -1,   510,   511,   512,    -1,   514,   515,
     516,   517,   518,   519,    -1,    37,    -1,    81,    -1,   507,
     397,    -1,   510,   511,   512,    47,   514,   515,   516,   517,
     518,   519,    54,    -1,     8,    -1,    -1,    11,    -1,    -1,
      -1,    15,    16,    17,    18,   178,    20,    21,    22,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      -1,    -1,   195,    37,    -1,    -1,    -1,   200,    -1,    -1,
      -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
      54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     223,   224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   168,    -1,   239,    81,    -1,    -1,
      -1,    -1,    -1,    -1,   178,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     507,   195,    -1,   510,   511,   512,   200,   514,   515,   516,
     517,   518,   519,    -1,   277,    -1,    -1,   280,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   178,    -1,    -1,   223,
     224,   294,    -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   195,    -1,   239,    -1,    -1,   200,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   223,   224,    -1,   178,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   277,    -1,    -1,   280,   239,    -1,    -1,
      -1,   195,    -1,    -1,    -1,    -1,   200,    -1,    -1,    -1,
     294,    -1,    -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   223,
     224,    -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,
      -1,    -1,    -1,    -1,   397,   239,    -1,    -1,    -1,    -1,
      -1,    -1,   294,    -1,    -1,   297,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,    11,
      -1,    -1,    -1,    15,    16,    17,    18,    -1,    20,    21,
      22,    -1,    -1,   277,    -1,    -1,   280,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    41,
     294,    -1,    -1,   297,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    54,   397,     8,    -1,    -1,    11,    -1,    -1,
      -1,    15,    16,    17,    18,    -1,    20,    21,    22,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    47,   507,   397,    -1,   510,   511,   512,
      54,   514,   515,   516,   517,   518,   519,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   507,    -1,    -1,   510,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,   178,   431,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,
      -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,    -1,    -1,
      -1,   223,   224,    -1,   178,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,
      -1,   195,    -1,    -1,    -1,    -1,   200,    -1,    -1,    -1,
      -1,    -1,    -1,   507,    -1,    -1,   510,   511,   512,    -1,
     514,   515,   516,   517,   518,   519,    -1,    -1,    -1,   223,
     224,    -1,    -1,    -1,    -1,   277,    -1,    -1,   280,    -1,
      -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,    -1,    -1,
      -1,    -1,   294,    -1,    -1,   297,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,
      15,    16,    17,    18,    -1,    20,    21,    22,    -1,    -1,
      -1,    -1,    -1,   277,    -1,    -1,   280,    -1,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     294,    -1,    47,   297,    -1,    -1,    -1,    -1,    -1,    54,
      -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,
      17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      47,    -1,    -1,    -1,    -1,   397,    -1,    54,     8,    -1,
      -1,    11,    -1,    -1,    -1,    15,    16,    -1,    -1,    -1,
      20,    21,    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    -1,    -1,    37,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,     8,    -1,
      -1,    11,    -1,   397,    54,    15,    16,    -1,    -1,    -1,
      20,    21,    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      -1,    81,    -1,   178,    -1,    -1,    -1,    47,    -1,    -1,
      -1,    -1,    -1,    -1,    54,    -1,     8,    -1,    -1,    11,
     195,    -1,    -1,    15,    16,   200,    -1,    -1,    20,    21,
      22,    -1,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,
     512,    81,   514,   515,   516,   517,   518,   519,   223,   224,
      -1,   178,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    54,    -1,   239,    -1,    -1,    -1,   195,    -1,
      -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   507,    -1,    -1,   510,   511,   512,    81,
     514,   515,   516,   517,   518,   519,   223,   224,   178,    -1,
      -1,    -1,   277,    -1,    -1,   280,    -1,    -1,    -1,    -1,
      -1,    -1,   239,    -1,    -1,   195,    -1,    -1,    -1,   294,
     200,    -1,   297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   178,    -1,
      -1,    -1,    -1,   223,   224,    -1,    -1,    -1,    -1,    -1,
     277,    -1,    -1,   280,    -1,   195,    -1,    -1,    -1,   239,
     200,    -1,    -1,    -1,    -1,    -1,    -1,   294,    -1,    -1,
     297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   223,   224,    -1,   178,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   277,    -1,   239,
     280,    -1,    -1,   195,    -1,    -1,    -1,    -1,   200,    -1,
      -1,    -1,    -1,    -1,   294,    -1,    -1,   297,    -1,    -1,
      -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   223,   224,    -1,    -1,    -1,    -1,   277,    -1,    -1,
     280,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,    -1,
      -1,    -1,    -1,    -1,   294,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   280,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   507,    -1,    -1,   510,   511,   512,    -1,   514,
     515,   516,   517,   518,   519,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     507,    -1,    -1,   510,   511,   512,    -1,   514,   515,   516,
     517,   518,   519,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,
     510,   511,   512,    -1,   514,   515,   516,   517,   518,   519,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,
     510,   511,   512,    -1,   514,   515,   516,   517,   518,   519,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
       5,    -1,    -1,    -1,    -1,   507,    -1,    -1,   510,   511,
     512,    -1,   514,   515,   516,   517,   518,   519,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
     427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
      -1,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
      95,    96,    97,    98,    99,   100,    -1,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,    -1,   164,
     165,   166,   167,    -1,   169,    -1,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,   223,   224,
     225,   226,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,   292,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,   397,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
     425,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,    -1,   453,   454,
     455,   456,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    35,    36,    -1,    38,    -1,    -1,
      -1,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    -1,    -1,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,    -1,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,   223,   224,   225,   226,   227,   228,   229,    -1,
     231,   232,   233,    -1,    -1,   236,   237,   238,   239,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,    -1,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,   397,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,   425,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,    -1,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,   456,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    -1,
      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,    -1,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,   181,    -1,   183,   184,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
      -1,   278,   279,   280,   281,    -1,   283,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,    -1,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,   418,    -1,    -1,   421,   422,    -1,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,   439,   440,   441,    -1,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,    -1,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    -1,    -1,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,    -1,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
     223,   224,   225,   226,   227,   228,   229,    -1,   231,   232,
     233,    -1,    -1,   236,   237,   238,   239,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,    -1,   278,   279,   280,   281,    -1,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,   397,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,   425,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,    -1,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,    -1,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,
      49,    -1,    51,    52,    53,    54,    55,    -1,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    -1,    -1,    68,
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
      79,    80,    -1,    -1,    83,    84,    85,    86,    87,    88,
      89,    -1,    91,    92,    93,    94,    95,    96,    97,    98,
      99,   100,    -1,    -1,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,    -1,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,    -1,   162,    -1,   164,   165,   166,   167,    -1,
     169,   170,   171,    -1,    -1,    -1,   175,   176,   177,    -1,
     179,   180,   181,    -1,   183,   184,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,    -1,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,    -1,   211,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,
     229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,
      -1,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,   274,   275,   276,    -1,   278,
     279,    -1,   281,    -1,   283,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,   301,    -1,   303,    -1,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,    -1,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,    -1,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
      -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
     439,   440,   441,    -1,   443,   444,   445,   446,   447,   448,
     449,   450,    -1,   452,   453,   454,   455,    -1,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,    -1,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
     499,   500,   501,   502,   503,   504,   505,   506,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
      45,    -1,    -1,    48,    49,    -1,    51,    52,    53,    54,
      55,    -1,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    -1,    -1,    -1,    84,
      85,    86,    87,    88,    89,    -1,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,    -1,    -1,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,    -1,   119,    -1,   121,   122,   123,   124,
     125,   126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,    -1,
     145,   146,   147,    -1,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,    -1,   164,
     165,   166,   167,    -1,   169,   170,   171,    -1,    -1,    -1,
     175,   176,   177,    -1,   179,   180,   181,    -1,   183,   184,
     185,   186,    -1,   188,   189,   190,   191,   192,   193,   194,
      -1,   196,   197,   198,   199,    -1,   201,   202,   203,   204,
     205,   206,   207,    -1,   209,    -1,   211,   212,   213,   214,
     215,   216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,
     225,    -1,   227,   228,   229,    -1,   231,   232,   233,    -1,
      -1,   236,    -1,   238,   239,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,    -1,   278,   279,    -1,   281,    -1,   283,   284,
     285,   286,   287,   288,    -1,   290,   291,    -1,    -1,   294,
     295,   296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,    -1,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,    -1,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,    -1,    -1,   398,   399,   400,   401,    -1,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,    -1,    -1,   421,   422,    -1,   424,
      -1,   426,   427,   428,   429,   430,    -1,   432,   433,   434,
      -1,    -1,   437,   438,   439,   440,   441,    -1,   443,   444,
     445,   446,   447,   448,   449,   450,    -1,   452,   453,   454,
     455,    -1,    -1,   458,   459,   460,   461,    -1,   463,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,    -1,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
      -1,    32,    33,    34,    35,    36,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,
      51,    52,    53,    54,    55,    -1,    57,    58,    -1,    60,
      61,    62,    63,    64,    65,    -1,    -1,    68,    69,    70,
      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
      -1,    -1,    -1,    84,    85,    86,    87,    88,    89,    -1,
      91,    92,    93,    -1,    95,    96,    97,    98,    99,   100,
      -1,    -1,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,    -1,   119,    -1,
     121,   122,   123,   124,   125,   126,    -1,    -1,   129,   130,
     131,   132,    -1,    -1,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,    -1,   145,   146,   147,    -1,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,    -1,   164,   165,   166,   167,    -1,   169,    -1,
     171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,
     181,    -1,   183,   184,   185,   186,    -1,   188,   189,   190,
     191,   192,   193,   194,    -1,   196,   197,   198,   199,    -1,
     201,   202,   203,   204,   205,   206,   207,    -1,   209,    -1,
     211,   212,   213,   214,   215,   216,   217,   218,    -1,   220,
      -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,
     231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,   274,   275,   276,    -1,   278,   279,    -1,
     281,    -1,   283,   284,   285,   286,   287,   288,    -1,   290,
     291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,
     301,    -1,   303,    -1,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,   335,   336,   337,   338,    -1,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,    -1,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,    -1,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,    -1,    -1,   398,   399,   400,
     401,    -1,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,    -1,    -1,
     421,   422,    -1,   424,    -1,   426,   427,   428,   429,   430,
      -1,   432,   433,   434,    -1,    -1,   437,   438,   439,   440,
     441,    -1,   443,   444,   445,   446,   447,   448,   449,   450,
      -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,   460,
     461,    -1,   463,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,    -1,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
     501,   502,   503,   504,   505,   506,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    -1,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    -1,
      -1,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    -1,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,    -1,   154,   155,   156,
     157,   158,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,   181,    -1,    -1,    -1,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,    -1,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,    -1,
      -1,   278,   279,   280,   281,    -1,    -1,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,   303,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,    -1,   325,   326,
     327,    -1,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,    -1,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
     417,    -1,    -1,    -1,   421,   422,    -1,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,    -1,   440,    -1,    -1,   443,   444,   445,   446,
     447,   448,   449,   450,   451,    -1,   453,   454,   455,   456,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,    -1,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,     3,    -1,     5,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   503,   504,   505,   506,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,   293,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,   293,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,     5,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,
      52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      -1,    -1,    84,    85,    86,    87,    88,    89,    -1,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
      -1,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
      -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,    -1,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,    -1,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,   293,   294,   295,   296,    -1,    -1,   299,   300,   301,
      -1,   303,    -1,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,    -1,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,    -1,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,    -1,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,    -1,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,     5,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,   423,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,
      52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      -1,    -1,    84,    85,    86,    87,    88,    89,    -1,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
      -1,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
      -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,    -1,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,    -1,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
      -1,   303,    -1,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,    -1,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,    -1,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,    -1,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,    -1,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,     5,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,     5,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,
      52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      -1,    -1,    84,    85,    86,    87,    88,    89,    -1,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
      -1,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
      -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,    -1,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,    -1,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
      -1,   303,    -1,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,    -1,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,    -1,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,    -1,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,    -1,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,     5,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    41,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,
      52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      -1,    -1,    84,    85,    86,    87,    88,    89,    -1,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
      -1,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
      -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,    -1,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,    -1,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
      -1,   303,    -1,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,    -1,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,    -1,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,    -1,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,    -1,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,     5,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,     5,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    38,    -1,    -1,    -1,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      52,    53,    -1,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    -1,    -1,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,    -1,   154,   155,   156,   157,   158,   159,    -1,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
     172,    -1,   174,   175,   176,    -1,   178,   179,   180,   181,
      -1,    -1,    -1,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,   210,    -1,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,   223,   224,   225,   226,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,   237,   238,   239,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
     272,   273,   274,   275,    -1,    -1,   278,   279,   280,   281,
      -1,    -1,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,    -1,
     302,   303,   304,    -1,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,    -1,   325,   326,   327,    -1,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,   386,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,   397,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,    -1,    -1,    -1,   421,
     422,    -1,   424,   425,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,    -1,   440,    -1,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,   451,
      -1,   453,   454,   455,   456,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
       3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   503,   504,   505,   506,    -1,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,    52,
      53,    54,    55,    -1,    57,    58,    -1,    60,    61,    62,
      63,    64,    65,    -1,    -1,    68,    69,    70,    71,    72,
      73,    74,    -1,    76,    77,    78,    79,    80,    -1,    -1,
      -1,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
      93,    -1,    95,    96,    97,    98,    99,   100,    -1,    -1,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,    -1,   119,    -1,   121,   122,
     123,   124,   125,   126,    -1,    -1,   129,   130,   131,   132,
      -1,    -1,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,    -1,   145,   146,   147,    -1,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
      -1,   164,   165,   166,   167,    -1,   169,    -1,   171,    -1,
      -1,    -1,   175,   176,   177,    -1,   179,   180,   181,    -1,
     183,   184,   185,   186,    -1,   188,   189,   190,   191,   192,
     193,   194,    -1,   196,   197,   198,   199,    -1,   201,   202,
     203,   204,   205,   206,   207,    -1,   209,    -1,   211,   212,
     213,   214,   215,   216,   217,   218,    -1,   220,    -1,   222,
      -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,   232,
     233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,   274,   275,   276,    -1,   278,   279,    -1,   281,    -1,
     283,   284,   285,   286,   287,   288,    -1,   290,   291,    -1,
      -1,   294,   295,   296,    -1,    -1,   299,   300,   301,    -1,
     303,    -1,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,    -1,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,    -1,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,    -1,    -1,   387,   388,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,   398,   399,   400,   401,    -1,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,    -1,    -1,   421,   422,
      -1,   424,    -1,   426,   427,   428,   429,   430,    -1,   432,
     433,   434,    -1,    -1,   437,   438,   439,   440,   441,    -1,
     443,   444,   445,   446,   447,   448,   449,   450,    -1,    -1,
     453,   454,   455,    -1,    -1,   458,   459,   460,   461,    -1,
     463,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
      -1,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
     503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
      29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,    38,
      -1,    -1,    -1,    -1,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    65,    -1,    -1,    68,
      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
      79,    -1,    -1,    82,    -1,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    -1,    95,    96,    97,    98,
      99,   100,    -1,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,    -1,
     119,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
     129,   130,   131,   132,    -1,    -1,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,    -1,   145,   146,   147,    -1,
     149,   150,   151,   152,    -1,   154,   155,   156,   157,   158,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,    -1,
     169,    -1,   171,   172,    -1,   174,   175,   176,    -1,   178,
     179,   180,   181,    -1,    -1,    -1,   185,   186,    -1,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
     209,   210,    -1,   212,   213,   214,   215,   216,   217,   218,
      -1,   220,    -1,   222,   223,   224,   225,   226,   227,   228,
     229,    -1,   231,   232,   233,    -1,    -1,   236,   237,   238,
     239,    -1,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,    -1,    -1,   278,
     279,   280,   281,    -1,    -1,   284,   285,   286,   287,   288,
      -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,
     299,   300,    -1,   302,   303,   304,    -1,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,   323,    -1,   325,   326,   327,    -1,
     329,   330,   331,    -1,   333,   334,   335,   336,   337,   338,
      -1,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,    -1,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,    -1,   397,   398,
     399,   400,   401,    -1,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,    -1,
      -1,    -1,   421,   422,    -1,   424,   425,   426,   427,   428,
     429,   430,    -1,   432,   433,   434,    -1,    -1,   437,   438,
      -1,   440,    -1,    -1,   443,   444,   445,   446,   447,   448,
     449,   450,   451,    -1,   453,   454,   455,   456,    -1,   458,
     459,   460,   461,    -1,   463,   464,   465,   466,   467,    -1,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,
     489,   490,   491,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   503,   504,   505,   506,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,
      52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      -1,    -1,    84,    85,    86,    87,    88,    89,    -1,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
      -1,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
      -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,    -1,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,    -1,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
      -1,   303,    -1,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,    -1,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,    -1,    -1,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,    -1,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,    -1,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
      -1,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
      -1,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    80,    -1,    -1,    -1,    84,    85,
      86,    87,    88,    89,    -1,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,    -1,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,    -1,    -1,    -1,   175,
     176,   177,    -1,   179,   180,   181,    -1,   183,   184,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,    -1,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,    -1,   211,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,    -1,    -1,   225,
      -1,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,    -1,   238,    -1,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,    -1,   278,   279,    -1,   281,    -1,   283,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,   301,    -1,   303,    -1,   305,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,    -1,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
      -1,    -1,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,    -1,    -1,   421,   422,    -1,   424,    -1,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,   439,   440,   441,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
      -1,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,   468,   469,   470,    -1,   472,    -1,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     496,   497,   498,   499,   500,   501,   502,   503,   504,   505,
     506,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    41,
      -1,    -1,    44,    45,    -1,    -1,    48,    49,    -1,    51,
      52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
      62,    63,    64,    65,    -1,    -1,    68,    69,    70,    71,
      72,    73,    74,    -1,    76,    77,    78,    79,    80,    -1,
      -1,    -1,    84,    85,    86,    87,    88,    89,    -1,    91,
      92,    93,    -1,    95,    96,    97,    98,    99,   100,    -1,
      -1,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,    -1,   119,    -1,   121,
     122,   123,   124,   125,   126,    -1,    -1,   129,   130,   131,
     132,    -1,    -1,   135,   136,   137,   138,   139,    -1,   141,
     142,   143,    -1,   145,   146,   147,    -1,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,    -1,   164,   165,   166,   167,    -1,   169,    -1,   171,
      -1,    -1,    -1,   175,   176,   177,    -1,   179,   180,   181,
      -1,   183,   184,   185,   186,    -1,   188,   189,   190,   191,
     192,   193,   194,    -1,   196,   197,   198,   199,    -1,   201,
     202,   203,   204,   205,   206,   207,    -1,   209,    -1,   211,
     212,   213,   214,   215,   216,   217,   218,    -1,   220,    -1,
     222,    -1,    -1,   225,    -1,   227,   228,   229,    -1,   231,
     232,   233,    -1,    -1,   236,    -1,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,    -1,   278,   279,    -1,   281,
      -1,   283,   284,   285,   286,   287,   288,    -1,   290,   291,
      -1,    -1,   294,   295,   296,    -1,    -1,   299,   300,   301,
      -1,   303,    -1,   305,   306,   307,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,    -1,   365,   366,    -1,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,    -1,    -1,   387,   388,   389,   390,   391,
      -1,   393,   394,   395,    -1,    -1,   398,   399,   400,   401,
      -1,   403,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,    -1,    -1,   421,
     422,    -1,   424,    -1,   426,   427,   428,   429,   430,    -1,
     432,   433,   434,    -1,    -1,   437,   438,   439,   440,   441,
      -1,   443,   444,   445,   446,   447,   448,   449,   450,    -1,
      -1,   453,   454,   455,    -1,    -1,   458,   459,   460,   461,
      -1,   463,   464,   465,   466,   467,   468,   469,   470,    -1,
     472,    -1,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,    -1,    -1,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,     3,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,   185,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
      24,    25,    26,    27,    28,    29,    30,    -1,    32,    33,
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      44,    45,    -1,    -1,    48,    49,    -1,    51,    52,    53,
      54,    55,    -1,    57,    58,    -1,    60,    61,    62,    63,
      64,    65,    -1,    -1,    68,    69,    70,    71,    72,    73,
      74,    -1,    76,    77,    78,    79,    80,    -1,    -1,    -1,
      84,    85,    86,    87,    88,    89,    -1,    91,    92,    93,
      -1,    95,    96,    97,    98,    99,   100,    -1,    -1,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,    -1,   119,    -1,   121,   122,   123,
     124,   125,   126,    -1,    -1,   129,   130,   131,   132,    -1,
      -1,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
      -1,   145,   146,   147,    -1,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,    -1,
     164,   165,   166,   167,    -1,   169,    -1,   171,    -1,    -1,
      -1,   175,   176,   177,    -1,   179,   180,   181,    -1,   183,
     184,   185,   186,    -1,   188,   189,   190,   191,   192,   193,
     194,    -1,   196,   197,   198,   199,    -1,   201,   202,   203,
     204,   205,   206,   207,    -1,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,    -1,   220,    -1,   222,    -1,
      -1,   225,    -1,   227,   228,   229,    -1,   231,   232,   233,
      -1,    -1,   236,    -1,   238,    -1,    -1,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,    -1,   278,   279,    -1,   281,    -1,   283,
     284,   285,   286,   287,   288,    -1,   290,   291,    -1,    -1,
     294,   295,   296,    -1,    -1,   299,   300,   301,    -1,   303,
      -1,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,   335,   336,   337,   338,    -1,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      -1,   365,   366,    -1,   368,   369,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,    -1,    -1,   398,   399,   400,   401,    -1,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,    -1,    -1,   421,   422,    -1,
     424,    -1,   426,   427,   428,   429,   430,    -1,   432,   433,
     434,    -1,    -1,   437,   438,   439,   440,   441,    -1,   443,
     444,   445,   446,   447,   448,   449,   450,    -1,    -1,   453,
     454,   455,    -1,    -1,   458,   459,   460,   461,    -1,   463,
     464,   465,   466,   467,   468,   469,   470,    -1,   472,    -1,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
     504,   505,   506,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    29,
      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    48,    49,
      -1,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
      60,    61,    62,    63,    64,    65,    -1,    -1,    68,    69,
      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
      80,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
      -1,    91,    92,    93,    -1,    95,    96,    97,    98,    99,
     100,    -1,    -1,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,    -1,   119,
      -1,   121,   122,   123,   124,   125,   126,    -1,    -1,   129,
     130,   131,   132,    -1,    -1,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,    -1,   145,   146,   147,    -1,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,    -1,   164,   165,   166,   167,    -1,   169,
      -1,   171,    -1,    -1,    -1,   175,   176,   177,    -1,   179,
     180,   181,    -1,   183,   184,   185,   186,    -1,   188,   189,
     190,   191,   192,   193,   194,    -1,   196,   197,   198,   199,
      -1,   201,   202,   203,   204,   205,   206,   207,    -1,   209,
      -1,   211,   212,   213,   214,   215,   216,   217,   218,    -1,
     220,    -1,   222,    -1,    -1,   225,    -1,   227,   228,   229,
      -1,   231,   232,   233,    -1,    -1,   236,    -1,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,    -1,   278,   279,
      -1,   281,    -1,   283,   284,   285,   286,   287,   288,    -1,
     290,   291,    -1,    -1,   294,   295,   296,    -1,    -1,   299,
     300,   301,    -1,   303,    -1,   305,   306,   307,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,   335,   336,   337,   338,    -1,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,    -1,   365,   366,    -1,   368,   369,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,    -1,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,    -1,    -1,   398,   399,
     400,   401,    -1,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,    -1,
      -1,   421,   422,    -1,   424,    -1,   426,   427,   428,   429,
     430,    -1,   432,   433,   434,    -1,    -1,   437,   438,   439,
     440,   441,    -1,   443,   444,   445,   446,   447,   448,   449,
     450,    -1,    -1,   453,   454,   455,    -1,    -1,   458,   459,
     460,   461,    -1,   463,   464,   465,   466,   467,   468,   469,
     470,    -1,   472,    -1,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,    -1,    -1,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   503,   504,   505,   506,     3,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,
      26,    27,    28,    29,    30,    -1,    32,    33,    34,    -1,
      -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,
      -1,    47,    48,    49,    50,    51,    52,    53,    -1,    55,
      56,    57,    58,    -1,    60,    61,    62,    63,    64,    65,
      -1,    -1,    68,    69,    70,    71,    72,    73,    74,    -1,
      76,    77,    78,    79,    -1,    -1,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
      96,    97,    98,    99,   100,    -1,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,    -1,   119,    -1,   121,   122,   123,   124,   125,
     126,    -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,
     136,   137,   138,   139,    -1,   141,   142,   143,    -1,   145,
     146,   147,    -1,   149,   150,   151,   152,    -1,   154,   155,
     156,   157,   158,   159,    -1,    -1,   162,    -1,   164,   165,
     166,   167,    -1,   169,    -1,   171,   172,    -1,   174,   175,
     176,   177,   178,   179,   180,   181,    -1,    -1,    -1,   185,
     186,    -1,   188,   189,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,    -1,   201,   202,   203,   204,   205,
     206,   207,    -1,   209,   210,    -1,   212,   213,   214,   215,
     216,   217,   218,    -1,   220,    -1,   222,   223,   224,   225,
     226,   227,   228,   229,    -1,   231,   232,   233,    -1,    -1,
     236,   237,   238,   239,    -1,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
      -1,    -1,   278,   279,   280,   281,    -1,    -1,   284,   285,
     286,   287,   288,    -1,   290,   291,    -1,    -1,   294,   295,
     296,    -1,    -1,   299,   300,    -1,   302,   303,   304,    -1,
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,   323,    -1,   325,
     326,   327,    -1,   329,   330,   331,    -1,   333,   334,   335,
     336,   337,   338,    -1,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,    -1,   365,
     366,   367,   368,   369,   370,    -1,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,    -1,
     386,   387,   388,   389,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,   400,   401,    -1,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
     416,   417,    -1,    -1,    -1,   421,   422,    -1,   424,   425,
     426,   427,   428,   429,   430,    -1,   432,   433,   434,    -1,
      -1,   437,   438,    -1,   440,    -1,    -1,   443,   444,   445,
     446,   447,   448,   449,   450,    -1,    -1,   453,   454,   455,
     456,    -1,   458,   459,   460,   461,    -1,   463,   464,   465,
     466,   467,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,   489,   490,   491,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   503,   504,   505,
     506,    -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
      27,    28,    29,    30,    -1,    32,    33,    34,    -1,    -1,
      -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    52,    53,    -1,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    -1,
      -1,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
      77,    78,    79,    -1,    -1,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
      97,    98,    99,   100,    -1,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,    -1,   119,    -1,   121,   122,   123,   124,   125,   126,
      -1,    -1,   129,   130,   131,   132,    -1,    -1,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,    -1,   145,   146,
     147,    -1,   149,   150,   151,   152,    -1,   154,   155,   156,
     157,   158,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,    -1,   169,    -1,   171,   172,    -1,   174,   175,   176,
      -1,   178,   179,   180,   181,    -1,    -1,    -1,   185,   186,
      -1,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
     207,    -1,   209,   210,    -1,   212,   213,   214,   215,   216,
     217,   218,    -1,   220,    -1,   222,   223,   224,   225,   226,
     227,   228,   229,    -1,   231,   232,   233,    -1,    -1,   236,
     237,   238,   239,    -1,   241,   242,   243,   244,   245,   246,
     247,   248,    -1,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,    -1,
      -1,   278,   279,   280,   281,    -1,    -1,   284,   285,   286,
     287,   288,    -1,   290,   291,    -1,    -1,   294,   295,   296,
      -1,    -1,   299,   300,    -1,   302,   303,   304,    -1,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,   323,    -1,   325,   326,
     327,    -1,   329,   330,   331,    -1,   333,   334,   335,   336,
     337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,   368,   369,   370,    -1,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,    -1,   386,
     387,   388,   389,   390,   391,   392,    -1,   394,   395,    -1,
     397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,    -1,
     417,    -1,    -1,    -1,   421,   422,    -1,   424,   425,   426,
     427,   428,   429,   430,    -1,   432,   433,   434,    -1,    -1,
     437,   438,    -1,   440,    -1,    -1,   443,   444,   445,   446,
     447,   448,   449,   450,    -1,    -1,   453,   454,   455,   456,
      -1,   458,   459,   460,   461,    -1,   463,   464,   465,   466,
     467,    -1,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,
     487,   488,   489,   490,   491,     3,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   503,   504,   505,   506,
      -1,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
      28,    29,    30,    -1,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
      48,    49,    -1,    51,    52,    53,    54,    55,    -1,    57,
      58,    -1,    60,    61,    62,    63,    64,    65,    -1,    -1,
      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
      78,    79,    80,    -1,    -1,    -1,    84,    85,    86,    87,
      88,    89,    -1,    91,    92,    93,    -1,    95,    96,    97,
      98,    99,   100,    -1,    -1,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
      -1,   119,    -1,   121,   122,   123,   124,   125,   126,    -1,
      -1,   129,   130,   131,   132,    -1,    -1,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,    -1,   145,   146,   147,
      -1,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,    -1,   162,    -1,   164,   165,   166,   167,
      -1,   169,    -1,   171,    -1,    -1,    -1,   175,   176,   177,
      -1,   179,   180,   181,    -1,   183,   184,    -1,   186,    -1,
     188,   189,   190,   191,   192,   193,   194,    -1,   196,   197,
     198,   199,    -1,   201,   202,   203,   204,   205,   206,   207,
      -1,   209,    -1,   211,   212,   213,   214,   215,   216,   217,
     218,    -1,   220,    -1,   222,    -1,    -1,   225,    -1,   227,
     228,   229,    -1,   231,   232,   233,    -1,    -1,   236,    -1,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
     278,   279,    -1,   281,    -1,   283,   284,   285,   286,   287,
     288,    -1,   290,   291,    -1,    -1,   294,   295,   296,    -1,
      -1,   299,   300,   301,    -1,   303,    -1,   305,   306,   307,
     308,   309,   310,   311,    -1,   313,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,   335,   336,   337,
     338,    -1,   340,   341,   342,    -1,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,    -1,   365,   366,    -1,
     368,   369,   370,   371,    -1,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,    -1,    -1,
     398,   399,   400,   401,    -1,   403,   404,   405,   406,   407,
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,    -1,    -1,   421,   422,    -1,   424,    -1,   426,   427,
     428,   429,   430,    -1,   432,   433,   434,    -1,    -1,   437,
     438,   439,   440,   441,    -1,   443,   444,   445,   446,   447,
     448,   449,   450,    -1,    -1,   453,   454,   455,    -1,    -1,
     458,   459,   460,   461,    -1,   463,   464,   465,   466,   467,
     468,   469,   470,    -1,   472,    -1,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
     498,   499,   500,   501,   502,   503,   504,   505,   506,    23,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      -1,    35,    36,    -1,    -1,    -1,    -1,    23,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,    53,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,
      -1,    -1,    76,    -1,    -1,    -1,    62,    -1,    -1,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      76,    -1,    -1,    -1,    -1,    99,    -1,   101,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
      -1,    -1,    -1,    99,    -1,   101,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   127,   128,    -1,   112,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   138,    -1,    -1,    -1,    -1,    -1,
     144,   127,   128,    -1,    -1,    -1,    -1,    -1,   152,    -1,
      -1,    -1,   138,    -1,    -1,    -1,    -1,    -1,   144,    -1,
      -1,    -1,    -1,    -1,    -1,   169,   152,    -1,    -1,   173,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   169,    -1,    -1,    -1,   173,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   318,   319,   320,    -1,    -1,    -1,
      -1,    -1,   326,    -1,    -1,   329,    -1,    -1,    -1,    -1,
      -1,    -1,   318,   319,   320,    -1,    -1,    -1,    -1,    -1,
     326,    -1,    -1,   329,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   360,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   369,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   360,    -1,    -1,    -1,    -1,    -1,
      -1,   385,    -1,   369,    -1,    -1,    -1,    -1,   392,    -1,
      -1,    -1,   396,    -1,    -1,    -1,    -1,    -1,    -1,   385,
      -1,    -1,    -1,   407,    -1,    -1,   392,    -1,    -1,    -1,
     396,    -1,    -1,    -1,    -1,   419,    -1,    -1,    -1,   423,
      -1,   407,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   419,    -1,    -1,    -1,   423,    -1,   443,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   457,    -1,    -1,    -1,   443,    -1,   463,
      -1,    -1,    -1,    -1,   468,    -1,    -1,    -1,    -1,   473,
      -1,   457,    -1,    -1,    -1,    -1,    -1,   463,    -1,    -1,
      -1,   485,   468,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   485,
      -1,    -1,    -1,    -1,    -1,   509,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   523,
      -1,    -1,    -1,   509,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   523
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    23,    33,    35,    36,    48,    53,    62,    76,    85,
      87,    99,   101,   112,   127,   128,   129,   138,   144,   152,
     154,   155,   169,   173,   199,   242,   318,   319,   320,   326,
     329,   360,   369,   385,   392,   396,   407,   419,   423,   443,
     457,   460,   463,   468,   485,   509,   523,   534,   535,   536,
     537,   552,   561,   563,   568,   584,   588,   589,   591,   598,
     599,   603,   610,   612,   615,   616,   666,   672,   681,   682,
     700,   701,   702,   703,   705,   707,   708,   712,   772,   773,
     953,   956,   959,   966,   967,   969,   972,   973,   974,   981,
     985,   991,   992,   995,  1000,  1004,  1005,  1006,  1009,  1012,
    1013,  1014,  1017,  1018,  1020,   437,   488,   613,   204,   376,
     387,   423,   475,   109,   193,   297,  1007,   613,     3,    23,
      24,    25,    26,    27,    28,    29,    30,    32,    33,    34,
      43,    44,    45,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    60,    61,    62,    63,    64,
      65,    68,    69,    70,    71,    72,    73,    74,    76,    77,
      78,    79,    80,    82,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    95,    96,    97,    98,    99,   100,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,   117,   119,   121,   122,   123,
     124,   125,   126,   129,   130,   131,   132,   135,   136,   137,
     138,   139,   141,   142,   143,   145,   146,   147,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     162,   164,   165,   166,   167,   169,   171,   172,   174,   175,
     176,   177,   178,   179,   180,   181,   183,   184,   185,   186,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   201,   202,   203,   204,   205,   206,   207,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,   220,
     222,   223,   224,   225,   226,   227,   228,   229,   231,   232,
     233,   236,   237,   238,   239,   241,   242,   243,   244,   245,
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
     276,   278,   279,   280,   281,   283,   284,   285,   286,   287,
     288,   290,   291,   294,   295,   296,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,   333,   334,   335,   336,   337,
     338,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   397,   398,   399,   400,   401,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   421,   422,   424,   425,   426,   427,
     428,   429,   430,   432,   433,   434,   437,   438,   439,   440,
     441,   443,   444,   445,   446,   447,   448,   449,   450,   453,
     454,   455,   458,   459,   460,   461,   463,   464,   465,   466,
     467,   468,   469,   470,   472,   473,   474,   475,   476,   477,
     478,   479,   480,   483,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
     502,   503,   504,   505,   506,   554,   854,   942,   946,  1023,
    1024,  1025,     3,   177,   249,   416,   554,   968,  1023,   292,
     613,    56,   173,   523,   695,   179,   243,   297,   317,   376,
     427,   429,   452,   455,   593,   664,   965,     5,    31,   329,
     554,   555,   941,     3,    31,    35,    36,    37,    38,    39,
      40,    41,    42,    43,    46,    47,    50,    54,    55,    56,
      57,    58,    59,    66,    67,    72,    73,    75,    80,    81,
      82,    83,    84,    90,    94,   101,   102,   109,   113,   116,
     118,   120,   127,   128,   133,   134,   140,   144,   148,   153,
     160,   161,   163,   166,   168,   170,   172,   173,   174,   177,
     178,   182,   183,   184,   187,   195,   200,   208,   210,   211,
     217,   218,   219,   220,   221,   223,   224,   226,   230,   234,
     235,   237,   239,   240,   249,   270,   271,   272,   276,   277,
     280,   282,   283,   285,   289,   292,   293,   297,   298,   301,
     302,   304,   305,   318,   319,   320,   321,   324,   325,   328,
     332,   339,   345,   350,   364,   367,   371,   385,   386,   393,
     396,   397,   400,   402,   416,   418,   419,   420,   423,   425,
     431,   433,   434,   435,   436,   439,   441,   442,   445,   451,
     452,   456,   457,   462,   468,   469,   471,   473,   481,   482,
     484,   485,   492,   493,   494,   495,   496,   497,   498,   499,
     500,   501,   502,   560,  1023,  1027,  1029,    25,    82,    98,
     147,   157,   170,   175,   204,   248,   252,   323,   338,   373,
     376,   387,   390,   409,   423,   429,   430,   440,   446,   475,
     593,   667,   668,   671,   613,   941,   101,   138,   473,   523,
     537,   552,   561,   563,   584,   588,   589,   598,   599,   603,
     612,   616,   666,   672,   681,   682,   700,   953,   956,   959,
     966,   967,   977,   981,   985,   991,   995,  1000,  1009,  1012,
    1017,  1018,  1020,   109,    76,    67,    80,    82,   160,   234,
     283,   293,   305,   324,   372,   418,   439,   441,   445,   468,
     523,   553,   554,   555,   701,   773,   775,   777,   778,   788,
     795,   796,   854,   856,   857,   109,     5,   554,   556,   993,
     554,   941,    31,   179,   243,   391,   433,   437,   470,   554,
    1010,  1011,  1016,   613,    31,   133,   724,   725,   179,   243,
     376,   391,   433,   470,   986,   987,  1016,   613,   553,   554,
     555,   700,   712,   795,   423,   721,   553,   174,   523,   997,
     523,   348,   713,   714,   941,   713,   701,   702,  1012,     0,
     526,   123,   214,   459,   148,   219,   298,   451,   727,   728,
     778,   778,   701,   703,   705,   527,   473,   975,   215,    31,
     433,   437,   553,   700,   193,   553,   941,   193,   553,   193,
     795,   193,   553,   277,   358,   556,   344,   614,   521,   525,
     557,   558,   523,    83,   109,   175,   204,   248,   376,   387,
     423,   446,   475,   971,   109,   700,   553,   427,   429,   427,
     429,   358,   193,   553,   383,   175,   248,   348,   387,   423,
     446,   475,   679,   204,    31,   941,   193,   560,   254,   440,
     108,   423,   423,   475,   380,   383,   193,   554,   669,   948,
     193,   938,   941,   193,   941,   523,   602,   297,   429,   977,
       3,   468,   978,   980,   981,   983,   984,  1023,  1027,   975,
     554,   556,   968,   523,   523,   168,   523,   701,   796,   523,
     523,   553,   523,   523,   173,   523,   523,   523,   523,   701,
     773,   778,   788,   516,   557,    19,    41,   554,   789,   790,
     789,   385,   527,   704,   523,   701,   795,   796,    38,    43,
     102,   174,   210,   226,   237,   271,   318,   325,   367,   386,
     457,   792,   790,    41,   554,   789,   791,   509,   800,   556,
     512,   523,   523,   954,  1011,  1011,  1011,   506,   225,  1011,
     525,   292,     4,     6,     7,     8,     9,    10,    40,    55,
      57,    58,    66,    72,    73,    84,   113,   116,   118,   137,
     153,   161,   166,   183,   184,   217,   218,   220,   230,   249,
     270,   272,   277,   282,   285,   294,   345,   371,   400,   433,
     434,   442,   456,   469,   507,   514,   515,   516,   521,   523,
     528,   529,   530,   531,   554,   556,   701,   762,   812,   815,
     818,   819,   820,   822,   823,   824,   825,   827,   828,   844,
     846,   847,   848,   849,   850,   851,   852,   853,   854,   855,
     857,   858,   873,   874,   885,   907,   913,   921,   922,   923,
     942,   943,   944,   920,   922,   986,   986,   556,   986,   506,
     986,   173,   435,   512,   614,   557,   795,  1001,     3,   172,
     174,   473,   981,   996,   998,   172,   999,   554,   844,   891,
     892,   713,   527,   523,   950,   524,   524,   524,   536,   173,
     297,   571,   158,  1001,    31,   133,   722,   722,    60,   722,
     163,   168,   240,   289,   733,   735,   736,   765,   767,   768,
     769,   182,   292,   462,   292,   727,   728,   523,   553,   993,
     424,  1015,   506,   225,   153,    27,    33,   138,   296,   356,
     360,   392,   465,   546,   549,   550,   356,   153,    41,    61,
     107,   203,   253,   263,   275,   307,   356,   362,   387,   392,
     407,   549,   604,   607,   153,   356,   392,   549,   153,   356,
     392,   549,   153,  1007,    41,  1008,   293,   490,   844,   914,
     559,   560,   558,     3,    31,    38,    43,    47,    50,    56,
      82,    84,    90,   102,   133,   172,   174,   177,   178,   195,
     210,   223,   224,   226,   237,   239,   249,   271,   280,   302,
     304,   325,   367,   386,   397,   416,   425,   445,   456,   471,
     473,   524,   728,   844,   894,   895,   945,   951,  1023,  1028,
     844,   423,   553,   554,   524,   523,   653,   376,   593,   664,
     277,   957,   193,   554,   592,   475,   193,   553,   193,   553,
    1022,   193,   553,   193,   553,   193,   553,    90,   962,   153,
     489,    91,   130,   310,   428,   193,   554,   153,   525,   949,
      64,   363,   527,   670,   153,   527,   670,   153,   292,   600,
     601,   844,   951,   358,   524,   527,     4,   161,   292,   442,
     514,   515,   556,   606,   609,   944,   976,   978,   979,   982,
     977,   435,   523,   690,   694,   844,   892,   523,     3,    69,
      70,   110,   111,   114,   115,   190,   191,   255,   256,   257,
     258,   259,   260,   261,   262,   265,   266,   340,   341,   381,
     382,   479,   480,   503,   504,   556,   830,   831,   832,   833,
     834,   835,   836,   837,   838,   839,   840,   841,   842,   897,
     898,   790,   791,   844,   553,   844,   899,   514,   515,   554,
     845,   846,   874,   885,   901,   523,   844,   891,   902,   844,
      59,   173,   235,   436,   844,   892,   905,   844,   524,   555,
     523,   425,   742,   743,   743,   724,   725,   778,   221,   719,
     788,   743,    47,   747,   743,   226,    38,   226,   386,   792,
     226,   302,   793,   778,   793,   226,   792,   523,   226,   793,
     226,   149,   201,   780,   226,   747,   523,   555,   523,   743,
     299,   844,   988,   990,   894,     3,    38,    43,    47,    50,
      55,    56,    57,    58,    72,    73,    82,    84,    90,   102,
     113,   116,   166,   172,   174,   178,   195,   210,   217,   218,
     220,   223,   224,   226,   237,   239,   249,   270,   271,   272,
     280,   285,   302,   304,   325,   345,   367,   371,   386,   393,
     397,   400,   416,   425,   433,   434,   445,   451,   456,   469,
     473,   806,   808,   809,   811,   813,   815,   817,   819,   820,
     821,   823,   824,   827,   828,   896,   947,  1023,  1026,    41,
     238,   554,   523,   521,   701,   472,   826,   844,   911,   826,
     826,   523,   523,   814,   814,   328,   701,   523,   816,   938,
     531,    72,    73,   826,   844,   814,   523,   523,   487,   509,
     523,   829,   523,   829,   523,   844,   844,   844,    84,   149,
     924,   928,   844,   892,   893,   701,   844,   891,   560,     9,
     555,   875,   876,   877,    19,   525,   557,   915,   557,   523,
     556,   523,   523,   556,   944,     3,     8,    11,    15,    16,
      17,    18,    20,    21,    22,    37,    41,    47,    54,    81,
     178,   195,   200,   223,   224,   239,   277,   280,   294,   297,
     397,   507,   510,   511,   512,   514,   515,   516,   517,   518,
     519,   883,   884,   885,   887,   918,   486,   859,   304,   844,
     527,   719,   523,   556,   719,     3,   118,   243,   556,   606,
     828,   989,   105,   990,   990,    41,   554,   524,   527,   975,
     527,   524,   714,   938,   939,   462,   715,  1001,   194,   358,
     221,   653,   392,   703,   703,    31,   729,   730,   844,    60,
     703,   723,   165,   274,   753,   228,   275,   344,   395,   459,
       4,     9,    31,   748,   844,   514,   515,   749,   750,   844,
     846,   765,   766,   736,   735,   733,   734,   168,   768,   287,
     770,    60,   709,   710,   711,   781,   845,   922,   922,   733,
     765,   892,   950,   173,   474,   994,   238,   553,    75,    83,
      94,   170,   193,   332,   452,   544,   545,   554,   633,   660,
      83,    94,   562,    94,   562,   523,   435,   313,   403,   523,
     631,   247,   313,   403,   455,   631,    94,   527,   435,   553,
       3,   811,   606,    60,   608,   606,   606,   107,   253,   263,
      60,   435,   485,   509,   605,   268,   376,   605,   607,   795,
      94,   435,   562,   376,   553,   435,   376,  1007,   556,   554,
     690,   522,    19,   894,   894,   895,   194,   361,   726,   527,
     727,   728,    13,    14,   223,   223,   435,   435,   554,   652,
     657,   485,   693,   553,   383,   348,   387,   423,   446,   475,
     679,   153,   101,   589,   616,   958,   959,  1018,   277,   200,
     594,   553,   277,   590,   604,   277,   523,   653,    41,   277,
      41,   277,   653,   277,   523,   673,   674,   675,   676,   677,
     678,   680,   193,   554,   647,   963,   560,   153,   173,   611,
     669,   559,   525,   948,   938,   941,   941,   948,   524,   527,
      13,   977,   983,     4,   944,     4,   944,   556,   560,   692,
     699,    56,   103,   124,   142,   146,   169,   172,   188,   282,
     290,   312,   342,   696,    41,   524,   844,   524,   173,   527,
     524,   321,   900,   524,   845,   845,    11,    15,    16,    20,
      21,    22,   200,   223,   294,   510,   511,   512,   514,   515,
     516,   517,   518,   519,   885,   845,   524,   797,   798,   856,
     168,   173,   903,   904,   527,   524,    41,   905,   892,   905,
     905,   173,   524,    41,   789,   523,   939,     4,     9,   554,
     737,   738,   740,   741,   849,   922,   920,   179,   243,   423,
     427,   429,   455,   553,   720,   482,   801,   524,   523,   743,
     778,   778,   226,   778,   292,   462,   794,   778,   226,   922,
     778,   778,   284,   284,   523,   778,   743,   555,   802,   803,
     523,   555,   802,   527,   524,   527,   525,   523,   811,   523,
     523,   525,    40,   810,   523,   830,   831,   832,   833,   834,
     835,   836,   837,   838,   839,   840,   841,   842,   843,   524,
     527,   814,   563,   568,   681,   682,   700,   955,  1000,  1012,
     892,   893,   523,   481,   908,   909,   844,   893,   944,    19,
     844,   878,   879,   880,   881,   826,   826,     8,    15,    16,
      20,    21,    22,   510,   511,   512,   514,   515,   516,   517,
     518,   519,   554,   883,   888,   524,   892,   433,   433,   944,
     944,   844,   523,   523,   555,   925,   358,   932,   168,   522,
     524,   527,    19,   527,   532,   844,   516,   558,   892,   944,
     844,   843,   843,   808,   844,   844,   844,   844,   844,   844,
     844,   844,     5,   560,   952,   433,    46,   420,   919,   948,
     844,   844,   523,   701,   850,   906,   913,   133,   161,   277,
     282,   287,   442,   453,   844,   282,   523,   844,   435,    54,
     178,   195,   200,   239,   397,   844,   844,   844,   844,   844,
     844,   844,   844,   844,   844,    31,    39,   402,   882,   521,
     525,   917,   182,   164,   860,   371,   523,   874,   923,   173,
     774,   894,   774,   523,   556,   554,   553,   996,   553,  1004,
     844,   527,   524,   228,    41,   462,  1003,   553,   565,   523,
     554,   570,   580,   581,   583,    42,   127,   731,   527,   462,
     731,   268,   703,   371,   372,   514,   515,   750,   752,   846,
     395,   228,   293,   316,   316,   527,   518,     4,   751,   944,
     751,   371,   372,   752,   553,   937,   281,   399,   771,   523,
     939,   940,   527,   182,   462,   200,   182,   221,   766,   734,
     524,   554,   556,   554,   556,   356,   549,   523,   193,   545,
     941,   228,   277,   228,   462,   523,   636,   643,   644,   807,
     808,   525,   542,   543,   941,   554,   193,   941,   193,   544,
      27,   138,   392,   541,   548,   560,   627,   641,   941,    60,
      60,   560,   635,   656,    60,    60,   941,   546,   941,   356,
     392,   549,   604,   606,   948,   941,   606,   948,   941,   606,
     356,   392,   549,   941,   941,   544,   941,   356,   392,   549,
     941,   941,   556,  1008,   515,   844,   914,   727,   727,   727,
     284,   284,   524,   471,   895,   726,   844,   844,   282,   556,
     970,   282,   970,   554,   337,   689,   524,   527,   290,   173,
     435,   684,   957,   592,   475,   553,   553,  1022,   553,   553,
     553,   553,   297,   664,   153,     3,   523,   523,   153,   153,
     239,   554,   633,   645,   648,   651,   661,   663,   485,   487,
     638,   152,   700,   153,   145,   585,   808,   153,   485,   964,
     153,   524,   894,   527,   527,    41,   277,   292,   554,     3,
     670,   559,   670,   292,   670,   600,   844,   690,   249,   516,
     521,   523,   606,   691,   851,   852,   853,   982,   524,   527,
      41,   688,   556,   688,   277,   282,   342,   688,    60,   688,
     808,   524,   844,   844,   844,   903,   808,   845,   845,   845,
     845,   845,   845,   133,   277,   287,   845,   845,   845,   845,
     845,   845,   845,   845,   845,   845,   524,   527,    41,   799,
     844,   844,   904,   903,   808,   524,   524,   524,   892,   808,
     939,   524,   316,   372,   518,   523,   523,   719,   427,   429,
     427,   429,   553,   721,   721,   721,   844,   182,   754,   434,
     474,   745,   746,   794,   794,   778,   844,   523,   778,   168,
     794,   523,   555,   785,   794,   808,   524,   527,   802,   524,
     988,     3,   896,    40,   810,   554,   805,   805,     3,   521,
     521,   944,   435,   435,   435,   435,   808,   459,   524,   522,
     892,   844,   140,   909,   910,   524,   524,   524,   844,    19,
     527,   532,   525,   524,   524,   506,   506,   524,   524,   524,
     844,   925,   926,   927,   525,   523,   844,   929,   356,   936,
     938,   844,   844,   875,   928,   524,   524,   524,   506,   845,
     845,   146,   892,   173,   133,   161,   282,   287,   442,   453,
     523,   146,   888,   844,   420,   919,   844,   906,   844,   435,
     523,   701,   844,   914,   559,   523,   523,   156,   861,   775,
     776,   801,   727,   801,   944,   843,   950,   950,   523,   252,
     277,   718,   776,   482,  1002,    41,    60,   566,   576,   583,
     915,   527,   774,   512,   508,   732,   730,   294,   883,   886,
     732,     4,   944,   752,   293,   459,   749,   527,   246,   939,
     709,    60,   922,   523,   555,    60,   268,   994,   994,   435,
     844,   277,   660,   523,   153,   523,   636,   204,   657,   658,
     617,    41,   177,   626,   654,   559,   543,   617,    27,   138,
     360,   362,   392,   538,   539,   540,   550,   551,   153,   670,
     153,   670,   627,   641,   627,   524,   527,   556,   620,   512,
     525,   524,   527,   523,   523,   435,   376,    94,   435,   562,
     376,   435,   435,   435,   376,  1008,   690,    19,    19,   522,
     726,   726,   726,   895,   524,   523,   683,     3,   410,   411,
     556,   698,   652,   689,   594,   553,   590,   523,    41,    41,
     653,   676,   678,   957,   358,   423,   592,   560,   596,   597,
     657,   553,   553,  1022,   553,   643,   644,   524,   527,   290,
     631,   290,   292,   630,   941,   485,  1021,   553,   523,   701,
     553,   631,    41,   553,   524,   674,   680,   677,   680,   423,
     844,   153,   553,   611,   948,   686,   697,   982,   692,   556,
     556,   282,   657,   516,   657,   556,   516,   657,   556,   524,
     524,   904,   173,   133,   287,   523,   800,   797,   523,   524,
     524,   524,   554,   738,   801,   721,   721,   721,   721,   553,
     553,   553,    60,   187,   763,    14,   524,   794,   939,   523,
     782,   783,   784,   847,   850,   939,   168,    81,   804,   803,
     524,   524,   521,   808,   524,   527,   524,   944,   522,   944,
     524,   831,   833,   834,   835,   834,   835,   835,   524,   431,
     844,   144,   844,   878,   888,   829,   829,   524,   527,   524,
     555,   844,   929,   930,   931,    41,   523,   925,   933,   200,
     524,   932,   843,   844,    37,    37,   844,   524,   844,   173,
     523,   896,   844,   524,   146,   845,   845,   146,   146,   844,
     844,   522,    19,   523,   916,   728,   482,   844,   303,   865,
     527,   754,   726,   754,   524,   554,   716,   717,   912,   252,
     523,   844,   364,   574,   554,   268,   324,   118,   306,   523,
     564,   700,   524,   527,   570,  1002,   844,   165,   233,   523,
     732,   293,   553,   524,   940,   182,   701,   702,   922,   940,
     941,   941,   524,   153,   658,   545,   658,   617,   647,   527,
     524,   120,   208,   275,   277,   642,   523,    34,    60,   665,
     654,    75,    81,    94,   118,   120,   208,   277,   282,   332,
     350,   452,   462,   622,   623,   637,   177,   118,   192,   277,
     631,   605,   108,   118,   177,   277,   409,   412,   607,   631,
     392,   540,   446,   941,   544,   548,     3,    38,    43,    47,
      50,    56,    82,    84,    90,   102,   172,   174,   177,   178,
     195,   210,   223,   224,   226,   237,   239,   249,   271,   276,
     280,   294,   302,   304,   325,   367,   386,   393,   397,   416,
     425,   445,   451,   456,   473,   514,   515,   556,   606,   618,
     659,   808,   886,   945,  1023,  1029,   560,   656,   892,   729,
     941,   941,   941,   941,   544,   941,   941,   941,   941,   941,
     690,   914,   914,   524,   524,   524,   727,   108,   376,   525,
     605,   698,   523,   523,   651,   700,   585,   964,   664,   193,
     553,   594,   595,   844,   524,   527,   524,   590,   523,    41,
     640,   638,   554,   648,    87,   602,   108,   275,    41,   556,
     586,   587,   653,   700,   676,   678,    41,    41,   701,   702,
     647,   462,   961,   670,   524,   527,   657,   845,   173,   523,
     896,   802,   524,   527,   524,   754,   553,   553,   553,   553,
      31,   104,   183,   370,   523,   755,   756,   757,   758,   759,
     760,   761,   844,   844,   484,   862,   844,   524,   846,   889,
     890,   200,   182,   779,   783,   524,   785,   786,   787,   948,
     810,   944,   810,   554,   810,   522,   522,   844,   925,   527,
     524,   554,   933,   934,   935,    41,   844,   846,   936,   844,
     844,   844,   896,   524,   844,    37,    37,   844,   844,   146,
     524,   515,   914,   524,   894,   524,   844,   524,   523,   554,
     866,   763,   524,   763,   556,   524,   527,   955,   921,   468,
     422,   461,   575,   554,   569,   579,   292,   572,   512,   583,
     574,   888,    60,   524,   524,   467,   468,   706,   617,   545,
     524,   524,   485,   650,   121,   196,   206,   120,   464,   844,
     118,    41,   523,   948,   941,   845,   121,   196,   120,   282,
     228,   553,   650,    89,   665,   193,   282,   606,   844,   665,
     282,   514,   515,   609,   554,   807,   808,   670,   670,     3,
     249,   416,   945,   949,   512,   524,   524,   435,   435,   522,
     522,   726,   524,   524,   554,   690,   462,   685,   687,   597,
     657,   524,  1021,    41,   423,   277,   523,   523,   596,   964,
     651,   152,   700,   150,   202,   630,   123,   138,   331,  1021,
     108,   585,   524,   527,   964,   485,  1019,   423,   292,   554,
     960,   523,   697,   845,   896,   524,   524,     9,   357,   744,
     763,   523,   394,   523,   524,   527,   554,   863,   864,   339,
     764,   527,   524,   523,   555,    60,   524,   200,   524,   786,
     522,   808,   929,   527,   524,   554,   522,   193,   524,   844,
     844,   844,    19,    19,   522,   524,   524,   554,   867,   862,
     556,   862,   912,   524,   527,   467,   915,   524,   527,    92,
     574,   844,   524,   940,   940,   350,   650,   523,   639,   617,
     524,   192,   523,   844,   277,   623,   650,   653,   941,    41,
     153,   804,   949,   518,   618,   941,   941,   524,   605,   125,
     524,   524,   638,   700,   553,   153,   597,    41,   524,   941,
    1021,    31,    86,    95,   119,   192,   205,   409,   412,   634,
     634,   372,   372,   556,    41,    65,    75,   243,   701,   553,
     523,   554,   573,   582,   856,   524,   524,   523,   862,   892,
     523,   892,   757,    41,   527,   844,   462,   739,   846,   922,
     939,   790,   523,   790,   933,   844,   914,   914,   312,   868,
     764,   764,   700,   306,   700,   569,   292,   523,   567,   553,
     617,   560,   646,   649,   413,   477,   624,   625,   523,   619,
     844,   524,   251,   662,   192,   462,   547,   518,   446,   690,
     556,   964,   630,  1019,   523,   553,   524,   700,   638,   602,
     700,    75,   295,    75,   961,   844,    81,   577,   524,   527,
     577,     9,   764,   524,   756,   524,   866,   864,   374,   524,
     922,   522,   522,   522,    60,   727,   739,   739,   575,    94,
     582,   134,   653,   512,   524,   527,   604,   524,   275,   632,
     174,   311,   398,   292,   628,   629,   655,   619,   844,   446,
      41,   523,  1019,   630,  1021,  1019,   295,   295,   523,   524,
     948,   578,   948,   964,   573,   578,   524,   739,   524,   741,
     524,   891,   185,   343,   372,   869,   467,   941,   524,   278,
     459,   662,   618,   649,   524,   625,   206,   123,   459,   292,
     655,   292,   628,   700,   582,   577,   731,   801,   731,    54,
     105,   448,   844,   870,   871,   870,   870,   524,   700,   801,
     392,   629,    64,   275,   363,   392,   621,   621,  1019,   524,
     578,   732,   732,   871,   371,   167,   327,   167,   327,   149,
     872,   872,   872,   581,   617,    26,   118,   282,   964,   731,
      37,   105,   182,   275,   432,   801,   801,   732,   871,   371,
     300
};

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrorlab


/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK (1);						\
      goto yybackup;						\
    }								\
  else								\
    {								\
      yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
      YYERROR;							\
    }								\
while (YYID (0))


#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* YY_LOCATION_PRINT -- Print the location on the stream.
   This macro was not mandated originally: define only if we know
   we won't break user code: when these are the locations we know.  */

#ifndef YY_LOCATION_PRINT
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
#  define YY_LOCATION_PRINT(File, Loc)			\
     fprintf (File, "%d.%d-%d.%d",			\
	      (Loc).first_line, (Loc).first_column,	\
	      (Loc).last_line,  (Loc).last_column)
# else
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval, &yylloc, yyscanner)
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (YYID (0))

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
do {									  \
  if (yydebug)								  \
    {									  \
      YYFPRINTF (stderr, "%s ", Title);					  \
      yy_symbol_print (stderr,						  \
		  Type, Value, Location, yyscanner); \
      YYFPRINTF (stderr, "\n");						  \
    }									  \
} while (YYID (0))


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
    YYLTYPE const * const yylocationp;
    core_yyscan_t yyscanner;
#endif
{
  if (!yyvaluep)
    return;
  YYUSE (yylocationp);
  YYUSE (yyscanner);
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
  YYUSE (yyoutput);
# endif
  switch (yytype)
    {
      default:
	break;
    }
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
    YYLTYPE const * const yylocationp;
    core_yyscan_t yyscanner;
#endif
{
  if (yytype < YYNTOKENS)
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  YY_LOCATION_PRINT (yyoutput, *yylocationp);
  YYFPRINTF (yyoutput, ": ");
  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
    yytype_int16 *bottom;
    yytype_int16 *top;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; bottom <= top; ++bottom)
    YYFPRINTF (stderr, " %d", *bottom);
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (YYID (0))


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner)
#else
static void
yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner)
    YYSTYPE *yyvsp;
    YYLTYPE *yylsp;
    int yyrule;
    core_yyscan_t yyscanner;
#endif
{
  int yynrhs = yyr2[yyrule];
  int yyi;
  unsigned long int yylno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
	     yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      fprintf (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       , &(yylsp[(yyi + 1) - (yynrhs)])		       , yyscanner);
      fprintf (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \
} while (YYID (0))

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined __GLIBC__ && defined _STRING_H
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
    const char *yystr;
#endif
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
    char *yydest;
    const char *yysrc;
#endif
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
	switch (*++yyp)
	  {
	  case '\'':
	  case ',':
	    goto do_not_strip_quotes;

	  case '\\':
	    if (*++yyp != '\\')
	      goto do_not_strip_quotes;
	    /* Fall through.  */
	  default:
	    if (yyres)
	      yyres[yyn] = *yyp;
	    yyn++;
	    break;

	  case '"':
	    if (yyres)
	      yyres[yyn] = '\0';
	    return yyn;
	  }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into YYRESULT an error message about the unexpected token
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   including the terminating null byte.  If YYRESULT is null, do not
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   size calculation.  */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
  int yyn = yypact[yystate];

  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    return 0;
  else
    {
      int yytype = YYTRANSLATE (yychar);
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
      YYSIZE_T yysize = yysize0;
      YYSIZE_T yysize1;
      int yysize_overflow = 0;
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
      int yyx;

# if 0
      /* This is so xgettext sees the translatable formats that are
	 constructed on the fly.  */
      YY_("syntax error, unexpected %s");
      YY_("syntax error, unexpected %s, expecting %s");
      YY_("syntax error, unexpected %s, expecting %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
      char *yyfmt;
      char const *yyf;
      static char const yyunexpected[] = "syntax error, unexpected %s";
      static char const yyexpecting[] = ", expecting %s";
      static char const yyor[] = " or %s";
      char yyformat[sizeof yyunexpected
		    + sizeof yyexpecting - 1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
		       * (sizeof yyor - 1))];
      char const *yyprefix = yyexpecting;

      /* Start YYX at -YYN if negative to avoid negative indexes in
	 YYCHECK.  */
      int yyxbegin = yyn < 0 ? -yyn : 0;

      /* Stay within bounds of both yycheck and yytname.  */
      int yychecklim = YYLAST - yyn + 1;
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
      int yycount = 1;

      yyarg[0] = yytname[yytype];
      yyfmt = yystpcpy (yyformat, yyunexpected);

      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	  {
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
	      {
		yycount = 1;
		yysize = yysize0;
		yyformat[sizeof yyunexpected - 1] = '\0';
		break;
	      }
	    yyarg[yycount++] = yytname[yyx];
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
	    yysize_overflow |= (yysize1 < yysize);
	    yysize = yysize1;
	    yyfmt = yystpcpy (yyfmt, yyprefix);
	    yyprefix = yyor;
	  }

      yyf = YY_(yyformat);
      yysize1 = yysize + yystrlen (yyf);
      yysize_overflow |= (yysize1 < yysize);
      yysize = yysize1;

      if (yysize_overflow)
	return YYSIZE_MAXIMUM;

      if (yyresult)
	{
	  /* Avoid sprintf, as that infringes on the user's name space.
	     Don't have undefined behavior even if the translation
	     produced a string with the wrong number of "%s"s.  */
	  char *yyp = yyresult;
	  int yyi = 0;
	  while ((*yyp = *yyf) != '\0')
	    {
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
		{
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
		  yyf += 2;
		}
	      else
		{
		  yyp++;
		  yyf++;
		}
	    }
	}
      return yysize;
    }
}
#endif /* YYERROR_VERBOSE */


/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
#else
static void
yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
    YYLTYPE *yylocationp;
    core_yyscan_t yyscanner;
#endif
{
  YYUSE (yyvaluep);
  YYUSE (yylocationp);
  YYUSE (yyscanner);

  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  switch (yytype)
    {

      default:
	break;
    }
}


/* Prevent warnings from -Wmissing-prototypes.  */

#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (core_yyscan_t yyscanner);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */






/*----------.
| yyparse.  |
`----------*/

#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
    void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (core_yyscan_t yyscanner)
#else
int
yyparse (yyscanner)
    core_yyscan_t yyscanner;
#endif
#endif
{
  /* The look-ahead symbol.  */
int yychar;

/* The semantic value of the look-ahead symbol.  */
YYSTYPE yylval;

/* Number of syntax errors so far.  */
int yynerrs;
/* Location data for the look-ahead symbol.  */
YYLTYPE yylloc;

  int yystate;
  int yyn;
  int yyresult;
  /* Number of tokens to shift before error messages enabled.  */
  int yyerrstatus;
  /* Look-ahead token as an internal (translated) token number.  */
  int yytoken = 0;
#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

  /* Three stacks and their tools:
     `yyss': related to states,
     `yyvs': related to semantic values,
     `yyls': related to locations.

     Refer to the stacks thru separate pointers, to allow yyoverflow
     to reallocate them elsewhere.  */

  /* The state stack.  */
  yytype_int16 yyssa[YYINITDEPTH];
  yytype_int16 *yyss = yyssa;
  yytype_int16 *yyssp;

  /* The semantic value stack.  */
  YYSTYPE yyvsa[YYINITDEPTH];
  YYSTYPE *yyvs = yyvsa;
  YYSTYPE *yyvsp;

  /* The location stack.  */
  YYLTYPE yylsa[YYINITDEPTH];
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;
  /* The locations where the error started and ended.  */
  YYLTYPE yyerror_range[2];

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))

  YYSIZE_T yystacksize = YYINITDEPTH;

  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;
  YYLTYPE yyloc;

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0; (void)yynerrs;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss;
  yyvsp = yyvs;
  yylsp = yyls;
#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
  /* Initialize the default location before parsing starts.  */
  yylloc.first_line   = yylloc.last_line   = 1;
  yylloc.first_column = yylloc.last_column = 0;
#endif

  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack.  Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	yytype_int16 *yyss1 = yyss;
	YYLTYPE *yyls1 = yyls;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow (YY_("memory exhausted"),
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yyls1, yysize * sizeof (*yylsp),
		    &yystacksize);
	yyls = yyls1;
	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	yytype_int16 *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyexhaustedlab;
	YYSTACK_RELOCATE (yyss);
	YYSTACK_RELOCATE (yyvs);
	YYSTACK_RELOCATE (yyls);
#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;
      yylsp = yyls + yysize - 1;

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     look-ahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to look-ahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a look-ahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the look-ahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  yystate = yyn;
  *++yyvsp = yylval;
  *++yylsp = yylloc;
  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];

  /* Default location.  */
  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:
#line 514 "third_party/libpg_query/grammar/grammar.y"
    {
				pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list);
			;}
    break;

  case 3:
#line 530 "third_party/libpg_query/grammar/grammar.y"
    {
					if ((yyvsp[(1) - (3)].list) != NIL)
					{
						/* update length of previous stmt */
						updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)]));
					}
					if ((yyvsp[(3) - (3)].node) != NULL)
						(yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1));
					else
						(yyval.list) = (yyvsp[(1) - (3)].list);
				;}
    break;

  case 4:
#line 542 "third_party/libpg_query/grammar/grammar.y"
    {
					if ((yyvsp[(1) - (1)].node) != NULL)
						(yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0));
					else
						(yyval.list) = NIL;
				;}
    break;

  case 46:
#line 592 "third_party/libpg_query/grammar/grammar.y"
    { (yyval.node) = NULL; ;}
    break;

  case 47:
#line 10 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_TABLE;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 48:
#line 19 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_TABLE;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 49:
#line 28 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_INDEX;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 50:
#line 37 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_INDEX;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 51:
#line 46 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_SEQUENCE;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 52:
#line 55 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_SEQUENCE;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 53:
#line 64 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_VIEW;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 54:
#line 73 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_VIEW;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 55:
#line 86 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 56:
#line 88 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 57:
#line 93 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = (yyvsp[(3) - (3)].node); ;}
    break;

  case 58:
#line 94 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = NULL; ;}
    break;

  case 59:
#line 100 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 60:
#line 104 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 61:
#line 108 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 ||
						strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 ||
						strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname),
								 parser_errposition((yylsp[(2) - (2)]))));
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
				;}
    break;

  case 62:
#line 119 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)]));
				;}
    break;

  case 63:
#line 127 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 64:
#line 131 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 65:
#line 138 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].str)); ;}
    break;

  case 66:
#line 139 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].str)); ;}
    break;

  case 67:
#line 144 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.str) = (yyvsp[(2) - (2)].str);
				;}
    break;

  case 68:
#line 150 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].str)); ;}
    break;

  case 69:
#line 151 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_concat(list_make1((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 70:
#line 157 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGColumnDef *n = (PGColumnDef *) (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					(yyval.list) = list_make2((yyvsp[(1) - (2)].list), n);
			;}
    break;

  case 71:
#line 164 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGColumnDef *n = (PGColumnDef *) (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					(yyval.list) = list_make2((yyvsp[(1) - (2)].list), n);
			;}
    break;

  case 72:
#line 174 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def_list = (yyvsp[(2) - (2)].list);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 73:
#line 183 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def_list = (yyvsp[(5) - (5)].list);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 74:
#line 192 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def_list = (yyvsp[(3) - (3)].list);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 75:
#line 201 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def_list = (yyvsp[(6) - (6)].list);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 76:
#line 210 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetPartitionedBy;
					n->def_list = (yyvsp[(5) - (6)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 77:
#line 218 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetPartitionedBy;
					n->def_list = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 78:
#line 226 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetSortedBy;
					n->def_list = (yyvsp[(5) - (6)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 79:
#line 234 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetSortedBy;
					n->def_list = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 80:
#line 242 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ColumnDefault;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (yyvsp[(4) - (4)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 81:
#line 251 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropNotNull;
					n->name = (yyvsp[(3) - (6)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 82:
#line 259 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetNotNull;
					n->name = (yyvsp[(3) - (6)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 83:
#line 267 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetStatistics;
					n->name = (yyvsp[(3) - (6)].str);
					n->def = (PGNode *) makeInteger((yyvsp[(6) - (6)].ival));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 84:
#line 276 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetOptions;
					n->name = (yyvsp[(3) - (5)].str);
					n->def = (PGNode *) (yyvsp[(5) - (5)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 85:
#line 285 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ResetOptions;
					n->name = (yyvsp[(3) - (5)].str);
					n->def = (PGNode *) (yyvsp[(5) - (5)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 86:
#line 294 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetStorage;
					n->name = (yyvsp[(3) - (6)].str);
					n->def = (PGNode *) makeString((yyvsp[(6) - (6)].str));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 87:
#line 303 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					PGConstraint *c = makeNode(PGConstraint);

					c->contype = PG_CONSTR_IDENTITY;
					c->generated_when = (yyvsp[(6) - (9)].ival);
					c->options = (yyvsp[(9) - (9)].list);
					c->location = (yylsp[(5) - (9)]);

					n->subtype = PG_AT_AddIdentity;
					n->name = (yyvsp[(3) - (9)].str);
					n->def = (PGNode *) c;

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 88:
#line 320 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetIdentity;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (PGNode *) (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 89:
#line 329 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = AT_DropIdentity;
					n->name = (yyvsp[(3) - (5)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 90:
#line 338 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = AT_DropIdentity;
					n->name = (yyvsp[(3) - (7)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 91:
#line 347 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropColumn;
					n->def_list = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 92:
#line 357 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropColumn;
					n->def_list = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 93:
#line 370 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					PGColumnDef *def = makeNode(PGColumnDef);
					n->subtype = PG_AT_AlterColumnType;
					n->name = (yyvsp[(3) - (8)].str);
					n->def = (PGNode *) def;
					/* We only use these fields of the PGColumnDef node */
					def->typeName = (yyvsp[(6) - (8)].typnam);
					def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node);
					def->raw_default = (yyvsp[(8) - (8)].node);
					def->location = (yylsp[(3) - (8)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 94:
#line 385 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AlterColumnGenericOptions;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (PGNode *) (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 95:
#line 394 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddConstraint;
					n->def = (yyvsp[(2) - (2)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 96:
#line 402 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					PGConstraint *c = makeNode(PGConstraint);
					n->subtype = PG_AT_AlterConstraint;
					n->def = (PGNode *) c;
					c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */
					c->conname = (yyvsp[(3) - (4)].str);
					processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "ALTER CONSTRAINT statement",
									&c->deferrable,
									&c->initdeferred,
									NULL, NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 97:
#line 417 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ValidateConstraint;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 98:
#line 425 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropConstraint;
					n->name = (yyvsp[(5) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 99:
#line 435 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropConstraint;
					n->name = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 100:
#line 445 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetLogged;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 101:
#line 452 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetUnLogged;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 102:
#line 459 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetRelOptions;
					n->def = (PGNode *)(yyvsp[(2) - (2)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 103:
#line 467 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ResetRelOptions;
					n->def = (PGNode *)(yyvsp[(2) - (2)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 104:
#line 474 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_GenericOptions;
					n->def = (PGNode *)(yyvsp[(1) - (1)].list);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 105:
#line 484 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 106:
#line 485 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = NULL; ;}
    break;

  case 107:
#line 491 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = (yyvsp[(1) - (1)].defelt);
				;}
    break;

  case 108:
#line 495 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
					(yyval.defelt)->defaction = PG_DEFELEM_SET;
				;}
    break;

  case 109:
#line 500 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
					(yyval.defelt)->defaction = PG_DEFELEM_ADD;
				;}
    break;

  case 110:
#line 505 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)]));
				;}
    break;

  case 111:
#line 512 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 112:
#line 513 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 113:
#line 518 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 114:
#line 522 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.ival) = 1; ;}
    break;

  case 115:
#line 523 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.ival) = 0; ;}
    break;

  case 116:
#line 524 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.ival) = 0; ;}
    break;

  case 117:
#line 8 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = (yyvsp[(2) - (2)].str);
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 118:
#line 14 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = (yyvsp[(3) - (3)].str);
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 119:
#line 20 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = NULL;
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 120:
#line 26 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = NULL;
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 121:
#line 10 "third_party/libpg_query/grammar/statements/common.y"
    {
					(yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 122:
#line 14 "third_party/libpg_query/grammar/statements/common.y"
    {
					check_qualified_name((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)]));
					switch (list_length((yyvsp[(2) - (2)].list)))
					{
						case 1:
							(yyval.range)->catalogname = NULL;
							(yyval.range)->schemaname = (yyvsp[(1) - (2)].str);
							(yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list)));
							break;
						case 2:
							(yyval.range)->catalogname = (yyvsp[(1) - (2)].str);
							(yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list)));
							(yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list)));
							break;
						case 3:
						default:
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("improper qualified name (too many dotted names): %s",
											NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))),
									 parser_errposition((yylsp[(1) - (2)]))));
							break;
					}
				;}
    break;

  case 123:
#line 44 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 124:
#line 45 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 125:
#line 46 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 126:
#line 50 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 127:
#line 51 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 128:
#line 55 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 129:
#line 59 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 130:
#line 60 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 131:
#line 65 "third_party/libpg_query/grammar/statements/common.y"
    {
					(yyval.node) = (PGNode *) makeString((yyvsp[(2) - (2)].str));
				;}
    break;

  case 132:
#line 70 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 133:
#line 75 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 134:
#line 76 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 135:
#line 77 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 136:
#line 78 "third_party/libpg_query/grammar/statements/common.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 137:
#line 7 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_SCHEMA;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 138:
#line 16 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 139:
#line 26 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 140:
#line 36 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 141:
#line 46 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 142:
#line 56 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 143:
#line 66 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 144:
#line 76 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_INDEX;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 145:
#line 86 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_INDEX;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 146:
#line 96 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_COLUMN;
					n->relationType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (8)].range);
					n->name_list = (yyvsp[(6) - (8)].list);
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 147:
#line 107 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_COLUMN;
					n->relationType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(5) - (10)].range);
					n->name_list = (yyvsp[(8) - (10)].list);
					n->newname = (yyvsp[(10) - (10)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 148:
#line 118 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABCONSTRAINT;
					n->relation = (yyvsp[(3) - (8)].range);
					n->subname = (yyvsp[(6) - (8)].str);
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 149:
#line 128 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABCONSTRAINT;
					n->relation = (yyvsp[(5) - (10)].range);
					n->subname = (yyvsp[(8) - (10)].str);
					n->newname = (yyvsp[(10) - (10)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 150:
#line 140 "third_party/libpg_query/grammar/statements/rename.y"
    { (yyval.ival) = COLUMN; ;}
    break;

  case 151:
#line 141 "third_party/libpg_query/grammar/statements/rename.y"
    { (yyval.ival) = 0; ;}
    break;

  case 152:
#line 11 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyvsp[(7) - (9)].istmt)->relation = (yyvsp[(5) - (9)].range);
					(yyvsp[(7) - (9)].istmt)->onConflictAlias = (yyvsp[(3) - (9)].onconflictshorthand);
					(yyvsp[(7) - (9)].istmt)->onConflictClause = (yyvsp[(8) - (9)].onconflict);
					(yyvsp[(7) - (9)].istmt)->returningList = (yyvsp[(9) - (9)].list);
					(yyvsp[(7) - (9)].istmt)->withClause = (yyvsp[(1) - (9)].with);
					(yyvsp[(7) - (9)].istmt)->insert_column_order = (yyvsp[(6) - (9)].bynameorposition);
					(yyval.node) = (PGNode *) (yyvsp[(7) - (9)].istmt);
				;}
    break;

  case 153:
#line 24 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 154:
#line 30 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->override = (yyvsp[(2) - (4)].override);
					(yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
				;}
    break;

  case 155:
#line 37 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = (yyvsp[(2) - (4)].list);
					(yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
				;}
    break;

  case 156:
#line 43 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = (yyvsp[(2) - (7)].list);
					(yyval.istmt)->override = (yyvsp[(5) - (7)].override);
					(yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node);
				;}
    break;

  case 157:
#line 50 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->selectStmt = NULL;
				;}
    break;

  case 158:
#line 60 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
				;}
    break;

  case 159:
#line 64 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL);
					(yyval.range) = (yyvsp[(1) - (3)].range);
				;}
    break;

  case 160:
#line 71 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.bynameorposition) = PG_INSERT_BY_NAME; ;}
    break;

  case 161:
#line 72 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.bynameorposition) = PG_INSERT_BY_POSITION; ;}
    break;

  case 162:
#line 73 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.bynameorposition) = PG_INSERT_BY_POSITION; ;}
    break;

  case 163:
#line 78 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.infer) = makeNode(PGInferClause);
					(yyval.infer)->indexElems = (yyvsp[(2) - (4)].list);
					(yyval.infer)->whereClause = (yyvsp[(4) - (4)].node);
					(yyval.infer)->conname = NULL;
					(yyval.infer)->location = (yylsp[(1) - (4)]);
				;}
    break;

  case 164:
#line 87 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.infer) = makeNode(PGInferClause);
					(yyval.infer)->indexElems = NIL;
					(yyval.infer)->whereClause = NULL;
					(yyval.infer)->conname = (yyvsp[(3) - (3)].str);
					(yyval.infer)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 165:
#line 95 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.infer) = NULL;
				;}
    break;

  case 166:
#line 102 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.with) = (yyvsp[(1) - (1)].with); ;}
    break;

  case 167:
#line 103 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.with) = NULL; ;}
    break;

  case 168:
#line 109 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(1) - (2)].str);
					(yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.target)->val = NULL;
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 169:
#line 121 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node);
					(yyval.list) = list_make1((yyvsp[(1) - (3)].target));
				;}
    break;

  case 170:
#line 126 "third_party/libpg_query/grammar/statements/insert.y"
    {
					int ncolumns = list_length((yyvsp[(2) - (5)].list));
					int i = 1;
					PGListCell *col_cell;

					/* Create a PGMultiAssignRef source for each target */
					foreach(col_cell, (yyvsp[(2) - (5)].list))
					{
						PGResTarget *res_col = (PGResTarget *) lfirst(col_cell);
						PGMultiAssignRef *r = makeNode(PGMultiAssignRef);

						r->source = (PGNode *) (yyvsp[(5) - (5)].node);
						r->colno = i;
						r->ncolumns = ncolumns;
						res_col->val = (PGNode *) r;
						i++;
					}

					(yyval.list) = (yyvsp[(2) - (5)].list);
				;}
    break;

  case 171:
#line 151 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflictshorthand) = PG_ONCONFLICT_ALIAS_REPLACE;
				;}
    break;

  case 172:
#line 156 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflictshorthand) = PG_ONCONFLICT_ALIAS_IGNORE;
				;}
    break;

  case 173:
#line 160 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflictshorthand) = PG_ONCONFLICT_ALIAS_NONE;
				;}
    break;

  case 174:
#line 167 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflict) = makeNode(PGOnConflictClause);
					(yyval.onconflict)->action = PG_ONCONFLICT_UPDATE;
					(yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer);
					(yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list);
					(yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node);
					(yyval.onconflict)->location = (yylsp[(1) - (8)]);
				;}
    break;

  case 175:
#line 177 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflict) = makeNode(PGOnConflictClause);
					(yyval.onconflict)->action = PG_ONCONFLICT_NOTHING;
					(yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer);
					(yyval.onconflict)->targetList = NIL;
					(yyval.onconflict)->whereClause = NULL;
					(yyval.onconflict)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 176:
#line 186 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflict) = NULL;
				;}
    break;

  case 177:
#line 193 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.ielem) = makeNode(PGIndexElem);
					(yyval.ielem)->name = (yyvsp[(1) - (5)].str);
					(yyval.ielem)->expr = NULL;
					(yyval.ielem)->indexcolname = NULL;
					(yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
					(yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
					(yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder);
					(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
				;}
    break;

  case 178:
#line 204 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.ielem) = makeNode(PGIndexElem);
					(yyval.ielem)->name = NULL;
					(yyval.ielem)->expr = (yyvsp[(1) - (5)].node);
					(yyval.ielem)->indexcolname = NULL;
					(yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
					(yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
					(yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder);
					(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
				;}
    break;

  case 179:
#line 215 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.ielem) = makeNode(PGIndexElem);
					(yyval.ielem)->name = NULL;
					(yyval.ielem)->expr = (yyvsp[(2) - (7)].node);
					(yyval.ielem)->indexcolname = NULL;
					(yyval.ielem)->collation = (yyvsp[(4) - (7)].list);
					(yyval.ielem)->opclass = (yyvsp[(5) - (7)].list);
					(yyval.ielem)->ordering = (yyvsp[(6) - (7)].sortorder);
					(yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder);
				;}
    break;

  case 180:
#line 229 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 181:
#line 230 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = NIL; ;}
    break;

  case 182:
#line 236 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;}
    break;

  case 183:
#line 237 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;}
    break;

  case 184:
#line 242 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 185:
#line 243 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;}
    break;

  case 186:
#line 249 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 187:
#line 250 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = NIL; ;}
    break;

  case 188:
#line 254 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 189:
#line 255 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = NIL; ;}
    break;

  case 190:
#line 261 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 191:
#line 263 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 192:
#line 268 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 193:
#line 269 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;}
    break;

  case 194:
#line 273 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 195:
#line 274 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 196:
#line 277 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;}
    break;

  case 197:
#line 278 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;}
    break;

  case 198:
#line 284 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(1) - (2)].str);
					(yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.target)->val = NULL;	/* upper production sets this */
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 199:
#line 8 "third_party/libpg_query/grammar/statements/create_type.y"
    {
					PGCreateTypeStmt *n = (PGCreateTypeStmt *) (yyvsp[(6) - (6)].node);
					(yyvsp[(4) - (6)].range)->relpersistence = (yyvsp[(2) - (6)].ival);
					n->typeName = (yyvsp[(4) - (6)].range);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 200:
#line 16 "third_party/libpg_query/grammar/statements/create_type.y"
    {
					PGCreateTypeStmt *n = (PGCreateTypeStmt *) (yyvsp[(9) - (9)].node);
					(yyvsp[(7) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival);
					n->typeName = (yyvsp[(7) - (9)].range);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 201:
#line 24 "third_party/libpg_query/grammar/statements/create_type.y"
    {
					PGCreateTypeStmt *n = (PGCreateTypeStmt *) (yyvsp[(8) - (8)].node);
					(yyvsp[(6) - (8)].range)->relpersistence = (yyvsp[(4) - (8)].ival);
					n->typeName = (yyvsp[(6) - (8)].range);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 202:
#line 35 "third_party/libpg_query/grammar/statements/create_type.y"
    {
		PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
		n->kind = PG_NEWTYPE_ENUM;
		n->query = (yyvsp[(2) - (2)].node);
		n->vals = NULL;
		(yyval.node) = (PGNode *)n;
	;}
    break;

  case 203:
#line 43 "third_party/libpg_query/grammar/statements/create_type.y"
    {
		PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
		n->kind = PG_NEWTYPE_ENUM;
		n->vals = (yyvsp[(3) - (4)].list);
		n->query = NULL;
		(yyval.node) = (PGNode *)n;
	;}
    break;

  case 204:
#line 51 "third_party/libpg_query/grammar/statements/create_type.y"
    {
		PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
		n->query = NULL;
		auto name = std::string(reinterpret_cast<PGValue *>((yyvsp[(1) - (1)].typnam)->names->tail->data.ptr_value)->val.str);
		if (name == "enum") {
			n->kind = PG_NEWTYPE_ENUM;
			n->vals = (yyvsp[(1) - (1)].typnam)->typmods;
		} else {
			n->kind = PG_NEWTYPE_ALIAS;
			n->ofType = (yyvsp[(1) - (1)].typnam);
		}
		(yyval.node) = (PGNode *)n;
	;}
    break;

  case 205:
#line 68 "third_party/libpg_query/grammar/statements/create_type.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list);;}
    break;

  case 206:
#line 69 "third_party/libpg_query/grammar/statements/create_type.y"
    {(yyval.list) = NIL;;}
    break;

  case 207:
#line 73 "third_party/libpg_query/grammar/statements/create_type.y"
    {
					(yyval.list) = list_make1(makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])));
				;}
    break;

  case 208:
#line 77 "third_party/libpg_query/grammar/statements/create_type.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])));
				;}
    break;

  case 209:
#line 8 "third_party/libpg_query/grammar/statements/pragma.y"
    {
					PGPragmaStmt *n = makeNode(PGPragmaStmt);
					n->kind = PG_PRAGMA_TYPE_NOTHING;
					n->name = (yyvsp[(2) - (2)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 210:
#line 15 "third_party/libpg_query/grammar/statements/pragma.y"
    {
					PGPragmaStmt *n = makeNode(PGPragmaStmt);
					n->kind = PG_PRAGMA_TYPE_ASSIGNMENT;
					n->name = (yyvsp[(2) - (4)].str);
					n->args = (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 211:
#line 23 "third_party/libpg_query/grammar/statements/pragma.y"
    {
					PGPragmaStmt *n = makeNode(PGPragmaStmt);
					n->kind = PG_PRAGMA_TYPE_CALL;
					n->name = (yyvsp[(2) - (5)].str);
					n->args = (yyvsp[(4) - (5)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 212:
#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y"
    {
					PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
					(yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
					n->sequence = (yyvsp[(4) - (5)].range);
					n->options = (yyvsp[(5) - (5)].list);
					n->ownerId = InvalidOid;
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 213:
#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y"
    {
					PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
					(yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
					n->sequence = (yyvsp[(7) - (8)].range);
					n->options = (yyvsp[(8) - (8)].list);
					n->ownerId = InvalidOid;
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 214:
#line 30 "third_party/libpg_query/grammar/statements/create_sequence.y"
    {
					PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
					(yyvsp[(6) - (7)].range)->relpersistence = (yyvsp[(4) - (7)].ival);
					n->sequence = (yyvsp[(6) - (7)].range);
					n->options = (yyvsp[(7) - (7)].list);
					n->ownerId = InvalidOid;
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 215:
#line 42 "third_party/libpg_query/grammar/statements/create_sequence.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 216:
#line 43 "third_party/libpg_query/grammar/statements/create_sequence.y"
    { (yyval.list) = NIL; ;}
    break;

  case 217:
#line 8 "third_party/libpg_query/grammar/statements/create_secret.y"
    {
					PGCreateSecretStmt *n = makeNode(PGCreateSecretStmt);
					n->persist_type = (yyvsp[(2) - (8)].str);
					n->secret_name = (yyvsp[(4) - (8)].str);
					n->secret_storage = (yyvsp[(5) - (8)].str);
					n->options = (yyvsp[(7) - (8)].list);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 218:
#line 18 "third_party/libpg_query/grammar/statements/create_secret.y"
    {
					PGCreateSecretStmt *n = makeNode(PGCreateSecretStmt);
					n->persist_type = (yyvsp[(2) - (11)].str);
					n->secret_name = (yyvsp[(7) - (11)].str);
					n->secret_storage = (yyvsp[(8) - (11)].str);
					n->options = (yyvsp[(10) - (11)].list);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 219:
#line 28 "third_party/libpg_query/grammar/statements/create_secret.y"
    {
					PGCreateSecretStmt *n = makeNode(PGCreateSecretStmt);
					n->persist_type = (yyvsp[(4) - (10)].str);
					n->secret_name = (yyvsp[(6) - (10)].str);
					n->secret_storage = (yyvsp[(7) - (10)].str);
					n->options = (yyvsp[(9) - (10)].list);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 220:
#line 40 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = NULL; ;}
    break;

  case 221:
#line 41 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 222:
#line 45 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = pstrdup("default"); ;}
    break;

  case 223:
#line 46 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = pstrdup("temporary"); ;}
    break;

  case 224:
#line 47 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = pstrdup("persistent"); ;}
    break;

  case 225:
#line 51 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = pstrdup(""); ;}
    break;

  case 226:
#line 52 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 227:
#line 57 "third_party/libpg_query/grammar/statements/create_secret.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].node); ;}
    break;

  case 228:
#line 62 "third_party/libpg_query/grammar/statements/create_secret.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 229:
#line 69 "third_party/libpg_query/grammar/statements/create_secret.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 230:
#line 73 "third_party/libpg_query/grammar/statements/create_secret.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 231:
#line 8 "third_party/libpg_query/grammar/statements/update_extensions.y"
    {
					PGUpdateExtensionsStmt *n = makeNode(PGUpdateExtensionsStmt);
					n->extensions = (yyvsp[(4) - (4)].list);

					if ((yyvsp[(1) - (4)].with)) {
                          ereport(ERROR,
                                  (errcode(PG_ERRCODE_SYNTAX_ERROR),
                                   errmsg("Providing a with clause with an UPDATE EXTENSIONS statement is not allowed"),
                                   parser_errposition((yylsp[(1) - (4)]))));
                          break;
                    }

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 232:
#line 8 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGExecuteStmt *n = makeNode(PGExecuteStmt);
					n->name = (yyvsp[(2) - (3)].str);
					n->params = (yyvsp[(3) - (3)].list);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 233:
#line 16 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					PGExecuteStmt *n = makeNode(PGExecuteStmt);
					n->name = (yyvsp[(7) - (9)].str);
					n->params = (yyvsp[(8) - (9)].list);
					ctas->query = (PGNode *) n;
					ctas->into = (yyvsp[(4) - (9)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_ERROR_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival);
					(yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 234:
#line 33 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					PGExecuteStmt *n = makeNode(PGExecuteStmt);
					n->name = (yyvsp[(10) - (12)].str);
					n->params = (yyvsp[(11) - (12)].list);
					ctas->query = (PGNode *) n;
					ctas->into = (yyvsp[(7) - (12)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_IGNORE_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival);
					(yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 235:
#line 52 "third_party/libpg_query/grammar/statements/execute.y"
    {
					(yyval.node) = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 236:
#line 56 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
					na->name = (yyvsp[(1) - (3)].str);
					na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
					na->argnumber = -1;		/* until determined */
					na->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) na;
				;}
    break;

  case 237:
#line 66 "third_party/libpg_query/grammar/statements/execute.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 238:
#line 70 "third_party/libpg_query/grammar/statements/execute.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 239:
#line 75 "third_party/libpg_query/grammar/statements/execute.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 240:
#line 76 "third_party/libpg_query/grammar/statements/execute.y"
    { (yyval.list) = NIL; ;}
    break;

  case 241:
#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
					n->sequence = (yyvsp[(3) - (4)].range);
					n->options = (yyvsp[(4) - (4)].list);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 242:
#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
					n->sequence = (yyvsp[(5) - (6)].range);
					n->options = (yyvsp[(6) - (6)].list);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 243:
#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 244:
#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 245:
#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 246:
#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 247:
#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 248:
#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;}
    break;

  case 249:
#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); ;}
    break;

  case 250:
#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.value) = makeFloat((yyvsp[(2) - (2)].str));
					doNegateFloat((yyval.value));
				;}
    break;

  case 251:
#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;}
    break;

  case 252:
#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)]));
				;}
    break;

  case 253:
#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
				;}
    break;

  case 254:
#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 255:
#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[(1) - (2)]));
				;}
    break;

  case 256:
#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 257:
#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
				;}
    break;

  case 258:
#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
				;}
    break;

  case 259:
#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)]));
				;}
    break;

  case 260:
#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)]));
				;}
    break;

  case 261:
#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 262:
#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					/* not documented, only used by pg_dump */
					(yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 263:
#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 264:
#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 265:
#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 266:
#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 267:
#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 268:
#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 269:
#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;}
    break;

  case 270:
#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;}
    break;

  case 271:
#line 8 "third_party/libpg_query/grammar/statements/drop_secret.y"
    {
					PGDropSecretStmt *n = makeNode(PGDropSecretStmt);
					n->persist_type = (yyvsp[(2) - (5)].str);
					n->secret_name = (yyvsp[(4) - (5)].str);
					n->secret_storage = (yyvsp[(5) - (5)].str);
					n->missing_ok  = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 272:
#line 17 "third_party/libpg_query/grammar/statements/drop_secret.y"
    {
                    PGDropSecretStmt *n = makeNode(PGDropSecretStmt);
                    n->persist_type = (yyvsp[(2) - (7)].str);
                    n->secret_name = (yyvsp[(6) - (7)].str);
                    n->secret_storage = (yyvsp[(7) - (7)].str);
                    n->missing_ok  = true;
                    (yyval.node) = (PGNode *)n;
                ;}
    break;

  case 273:
#line 28 "third_party/libpg_query/grammar/statements/drop_secret.y"
    { (yyval.str) = pstrdup(""); ;}
    break;

  case 274:
#line 29 "third_party/libpg_query/grammar/statements/drop_secret.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 275:
#line 3 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_ROLLBACK;
					n->options = NIL;
					n->transaction_type = PG_TRANS_TYPE_DEFAULT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 276:
#line 11 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_BEGIN;
					n->transaction_type = (yyvsp[(3) - (3)].transactiontype);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 277:
#line 18 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_START;
					n->transaction_type = (yyvsp[(3) - (3)].transactiontype);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 278:
#line 25 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_COMMIT;
					n->options = NIL;
					n->transaction_type = PG_TRANS_TYPE_DEFAULT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 279:
#line 33 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_COMMIT;
					n->options = NIL;
					n->transaction_type = PG_TRANS_TYPE_DEFAULT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 280:
#line 41 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_ROLLBACK;
					n->options = NIL;
					n->transaction_type = PG_TRANS_TYPE_DEFAULT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 281:
#line 51 "third_party/libpg_query/grammar/statements/transaction.y"
    {;}
    break;

  case 282:
#line 52 "third_party/libpg_query/grammar/statements/transaction.y"
    {;}
    break;

  case 283:
#line 53 "third_party/libpg_query/grammar/statements/transaction.y"
    {;}
    break;

  case 284:
#line 57 "third_party/libpg_query/grammar/statements/transaction.y"
    { (yyval.transactiontype) = PG_TRANS_TYPE_READ_ONLY; ;}
    break;

  case 285:
#line 58 "third_party/libpg_query/grammar/statements/transaction.y"
    { (yyval.transactiontype) = PG_TRANS_TYPE_READ_WRITE; ;}
    break;

  case 286:
#line 59 "third_party/libpg_query/grammar/statements/transaction.y"
    { (yyval.transactiontype) = PG_TRANS_TYPE_DEFAULT; ;}
    break;

  case 287:
#line 3 "third_party/libpg_query/grammar/statements/use.y"
    {
					PGUseStmt *n = makeNode(PGUseStmt);
					n->name = (yyvsp[(2) - (2)].range);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 288:
#line 9 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGCreateStmt *n = makeNode(PGCreateStmt);
					(yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival);
					n->relation = (yyvsp[(4) - (9)].range);
					n->tableElts = (yyvsp[(6) - (9)].list);
					n->ofTypename = NULL;
					n->constraints = NIL;
					n->options = (yyvsp[(8) - (9)].list);
					n->oncommit = (yyvsp[(9) - (9)].oncommit);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 289:
#line 24 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGCreateStmt *n = makeNode(PGCreateStmt);
					(yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival);
					n->relation = (yyvsp[(7) - (12)].range);
					n->tableElts = (yyvsp[(9) - (12)].list);
					n->ofTypename = NULL;
					n->constraints = NIL;
					n->options = (yyvsp[(11) - (12)].list);
					n->oncommit = (yyvsp[(12) - (12)].oncommit);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 290:
#line 39 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGCreateStmt *n = makeNode(PGCreateStmt);
					(yyvsp[(6) - (11)].range)->relpersistence = (yyvsp[(4) - (11)].ival);
					n->relation = (yyvsp[(6) - (11)].range);
					n->tableElts = (yyvsp[(8) - (11)].list);
					n->ofTypename = NULL;
					n->constraints = NIL;
					n->options = (yyvsp[(10) - (11)].list);
					n->oncommit = (yyvsp[(11) - (11)].oncommit);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 291:
#line 56 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = 0; ;}
    break;

  case 292:
#line 58 "third_party/libpg_query/grammar/statements/create.y"
    {
					/*
					 * We must complain about conflicting options.
					 * We could, but choose not to, complain about redundant
					 * options (ie, where $2's bit is already set in $1).
					 */
					int		newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival);

					/* special message for this case */
					if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED))
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
								 parser_errposition((yylsp[(2) - (2)]))));
					/* generic message for other conflicts */
					if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) ||
						(newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED))
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("conflicting constraint properties"),
								 parser_errposition((yylsp[(2) - (2)]))));
					(yyval.ival) = newspec;
				;}
    break;

  case 293:
#line 84 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;}
    break;

  case 294:
#line 85 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
    break;

  case 295:
#line 86 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;}
    break;

  case 296:
#line 87 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;}
    break;

  case 297:
#line 88 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 298:
#line 89 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
    break;

  case 299:
#line 93 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 300:
#line 94 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 301:
#line 99 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 302:
#line 104 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;}
    break;

  case 303:
#line 105 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;}
    break;

  case 304:
#line 106 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;}
    break;

  case 305:
#line 107 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;}
    break;

  case 306:
#line 108 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;}
    break;

  case 307:
#line 114 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
					n->conname = (yyvsp[(2) - (3)].str);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 308:
#line 120 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 309:
#line 121 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 310:
#line 123 "third_party/libpg_query/grammar/statements/create.y"
    {
					/*
					 * Note: the PGCollateClause is momentarily included in
					 * the list built by ColQualList, but we split it out
					 * again in SplitColQualList.
					 */
					PGCollateClause *n = makeNode(PGCollateClause);
					n->arg = NULL;
					n->collname = (yyvsp[(2) - (2)].list);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 311:
#line 140 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_NOTNULL;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 312:
#line 147 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 313:
#line 154 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (2)]);
					n->keys = NULL;
					n->options = (yyvsp[(2) - (2)].list);
					n->indexname = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 314:
#line 164 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (3)]);
					n->keys = NULL;
					n->options = (yyvsp[(3) - (3)].list);
					n->indexname = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 315:
#line 174 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_CHECK;
					n->location = (yylsp[(1) - (5)]);
					n->is_no_inherit = (yyvsp[(5) - (5)].boolean);
					n->raw_expr = (yyvsp[(3) - (5)].node);
					n->cooked_expr = NULL;
					n->skip_validation = false;
					n->initially_valid = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 316:
#line 186 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_COMPRESSION;
					n->location = (yylsp[(1) - (3)]);
					n->compression_name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 317:
#line 194 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_DEFAULT;
					n->location = (yylsp[(1) - (2)]);
					n->raw_expr = (yyvsp[(2) - (2)].node);
					n->cooked_expr = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 318:
#line 203 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_FOREIGN;
					n->location = (yylsp[(1) - (5)]);
					n->pktable			= (yyvsp[(2) - (5)].range);
					n->fk_attrs			= NIL;
					n->pk_attrs			= (yyvsp[(3) - (5)].list);
					n->fk_matchtype		= (yyvsp[(4) - (5)].ival);
					n->fk_upd_action	= (char) ((yyvsp[(5) - (5)].ival) >> 8);
					n->fk_del_action	= (char) ((yyvsp[(5) - (5)].ival) & 0xFF);
					n->skip_validation  = false;
					n->initially_valid  = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 319:
#line 220 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;}
    break;

  case 320:
#line 221 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = PG_CONSTR_GENERATED_STORED; ;}
    break;

  case 321:
#line 225 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = (yyvsp[(1) - (1)].constr); ;}
    break;

  case 322:
#line 226 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;}
    break;

  case 323:
#line 231 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_IDENTITY;
					n->generated_when = (yyvsp[(2) - (5)].ival);
					n->options = (yyvsp[(5) - (5)].list);
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 324:
#line 240 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = (yyvsp[(7) - (7)].constr);
					n->generated_when = (yyvsp[(2) - (7)].ival);
					n->raw_expr = (yyvsp[(5) - (7)].node);
					n->cooked_expr = NULL;
					n->location = (yylsp[(1) - (7)]);

					/*
					 * Can't do this in the grammar because of shift/reduce
					 * conflicts.  (IDENTITY allows both ALWAYS and BY
					 * DEFAULT, but generated columns only allow ALWAYS.)  We
					 * can also give a more useful error message and location.
					 */
					if ((yyvsp[(2) - (7)].ival) != PG_ATTRIBUTE_IDENTITY_ALWAYS)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("for a generated column, GENERATED ALWAYS must be specified"),
								 parser_errposition((yylsp[(2) - (7)]))));

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 325:
#line 263 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = (yyvsp[(5) - (5)].constr);
					n->generated_when = PG_ATTRIBUTE_IDENTITY_ALWAYS;
					n->raw_expr = (yyvsp[(3) - (5)].node);
					n->cooked_expr = NULL;
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 326:
#line 277 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 327:
#line 283 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
    break;

  case 328:
#line 289 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
    break;

  case 329:
#line 291 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;}
    break;

  case 330:
#line 293 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;}
    break;

  case 331:
#line 295 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;}
    break;

  case 332:
#line 297 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
    break;

  case 333:
#line 300 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = ONCOMMIT_DROP; ;}
    break;

  case 334:
#line 301 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;}
    break;

  case 335:
#line 302 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;}
    break;

  case 336:
#line 303 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;}
    break;

  case 337:
#line 308 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 338:
#line 312 "third_party/libpg_query/grammar/statements/create.y"
    {  (yyval.boolean) = true; ;}
    break;

  case 339:
#line 313 "third_party/libpg_query/grammar/statements/create.y"
    {  (yyval.boolean) = false; ;}
    break;

  case 340:
#line 319 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
					n->conname = (yyvsp[(2) - (3)].str);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 341:
#line 325 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 342:
#line 330 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;}
    break;

  case 343:
#line 331 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;}
    break;

  case 344:
#line 332 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;}
    break;

  case 345:
#line 333 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;}
    break;

  case 346:
#line 334 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;}
    break;

  case 347:
#line 335 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;}
    break;

  case 348:
#line 336 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;}
    break;

  case 349:
#line 337 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;}
    break;

  case 350:
#line 343 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 351:
#line 344 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 352:
#line 348 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
    break;

  case 353:
#line 354 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_DEFERRABLE;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 354:
#line 361 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 355:
#line 368 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_DEFERRED;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 356:
#line 375 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_IMMEDIATE;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 357:
#line 386 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 358:
#line 387 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;}
    break;

  case 359:
#line 388 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;}
    break;

  case 360:
#line 389 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 361:
#line 393 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 362:
#line 398 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
    break;

  case 363:
#line 399 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;}
    break;

  case 364:
#line 400 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = 0; ;}
    break;

  case 365:
#line 405 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 366:
#line 410 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_NOT_DEFERRABLE; ;}
    break;

  case 367:
#line 411 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_DEFERRABLE; ;}
    break;

  case 368:
#line 412 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;}
    break;

  case 369:
#line 413 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;}
    break;

  case 370:
#line 414 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_NOT_VALID; ;}
    break;

  case 371:
#line 415 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_NO_INHERIT; ;}
    break;

  case 372:
#line 421 "third_party/libpg_query/grammar/statements/create.y"
    {
		PGColumnDef *n = makeNode(PGColumnDef);
		n->category = COL_STANDARD;
		n->typeName = (yyvsp[(1) - (2)].typnam);
		n->inhcount = 0;
		n->is_local = true;
		n->is_not_null = false;
		n->is_from_type = false;
		n->storage = 0;
		n->raw_default = NULL;
		n->cooked_default = NULL;
		n->collOid = InvalidOid;
		SplitColQualList((yyvsp[(2) - (2)].list), &n->constraints, &n->collClause,
						 yyscanner);
		(yyval.node) = (PGNode *) n;
	;}
    break;

  case 373:
#line 441 "third_party/libpg_query/grammar/statements/create.y"
    {
		PGColumnDef *n = makeNode(PGColumnDef);
		n->category = COL_GENERATED;
		n->typeName = (yyvsp[(1) - (3)].typnam);
		n->inhcount = 0;
		n->is_local = true;
		n->is_not_null = false;
		n->is_from_type = false;
		n->storage = 0;
		n->raw_default = NULL;
		n->cooked_default = NULL;
		n->collOid = InvalidOid;
		// merge the constraints with the generated column constraint
		auto constraints = (yyvsp[(3) - (3)].list);
		if (constraints) {
			constraints = lappend(constraints, (yyvsp[(2) - (3)].node));
		} else {
			constraints = list_make1((yyvsp[(2) - (3)].node));
		}
		SplitColQualList(constraints, &n->constraints, &n->collClause,
						 yyscanner);
		(yyval.node) = (PGNode *)n;
	;}
    break;

  case 374:
#line 467 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGColumnDef *n = (PGColumnDef *) (yyvsp[(2) - (2)].node);
					n->colname = (yyvsp[(1) - (2)].str);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
			;}
    break;

  case 375:
#line 475 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGColumnDef *n = (PGColumnDef *) (yyvsp[(2) - (2)].node);
					n->colname = (yyvsp[(1) - (2)].str);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
			;}
    break;

  case 376:
#line 484 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 377:
#line 485 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 378:
#line 489 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 379:
#line 493 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 380:
#line 494 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 381:
#line 495 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 382:
#line 500 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]));
				;}
    break;

  case 383:
#line 504 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 384:
#line 511 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 385:
#line 512 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 386:
#line 517 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 387:
#line 518 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 388:
#line 519 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 389:
#line 524 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str));
				;}
    break;

  case 390:
#line 531 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 391:
#line 532 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 392:
#line 537 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 393:
#line 538 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 394:
#line 542 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
    break;

  case 395:
#line 548 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]));
				;}
    break;

  case 396:
#line 552 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 397:
#line 556 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (PGNode *) (yyvsp[(5) - (5)].node),
											 PG_DEFELEM_UNSPEC, (yylsp[(1) - (5)]));
				;}
    break;

  case 398:
#line 561 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[(1) - (3)]));
				;}
    break;

  case 399:
#line 568 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 400:
#line 569 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 401:
#line 573 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 402:
#line 574 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 403:
#line 578 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 404:
#line 580 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list)));
					(yyval.typnam)->pct_type = true;
					(yyval.typnam)->location = (yylsp[(1) - (4)]);
				;}
    break;

  case 405:
#line 586 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list)));
					(yyval.typnam)->pct_type = true;
					(yyval.typnam)->setof = true;
					(yyval.typnam)->location = (yylsp[(2) - (5)]);
				;}
    break;

  case 406:
#line 597 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_CHECK;
					n->location = (yylsp[(1) - (5)]);
					n->raw_expr = (yyvsp[(3) - (5)].node);
					n->cooked_expr = NULL;
					processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK",
								   NULL, NULL, &n->skip_validation,
								   &n->is_no_inherit, yyscanner);
					n->initially_valid = !n->skip_validation;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 407:
#line 611 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (6)]);
					n->keys = (yyvsp[(3) - (6)].list);
					n->options = (yyvsp[(5) - (6)].list);
					n->indexname = NULL;
					processCASbits((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), "UNIQUE",
								   &n->deferrable, &n->initdeferred, NULL,
								   NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 408:
#line 624 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (3)]);
					n->keys = NIL;
					n->options = NIL;
					n->indexname = (yyvsp[(2) - (3)].str);
					n->indexspace = NULL;
					processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE",
								   &n->deferrable, &n->initdeferred, NULL,
								   NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 409:
#line 639 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (7)]);
					n->keys = (yyvsp[(4) - (7)].list);
					n->options = (yyvsp[(6) - (7)].list);
					n->indexname = NULL;
					processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "PRIMARY KEY",
								   &n->deferrable, &n->initdeferred, NULL,
								   NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 410:
#line 652 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (4)]);
					n->keys = NIL;
					n->options = NIL;
					n->indexname = (yyvsp[(3) - (4)].str);
					n->indexspace = NULL;
					processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY",
								   &n->deferrable, &n->initdeferred, NULL,
								   NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 411:
#line 667 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_FOREIGN;
					n->location = (yylsp[(1) - (11)]);
					n->pktable			= (yyvsp[(7) - (11)].range);
					n->fk_attrs			= (yyvsp[(4) - (11)].list);
					n->pk_attrs			= (yyvsp[(8) - (11)].list);
					n->fk_matchtype		= (yyvsp[(9) - (11)].ival);
					n->fk_upd_action	= (char) ((yyvsp[(10) - (11)].ival) >> 8);
					n->fk_del_action	= (char) ((yyvsp[(10) - (11)].ival) & 0xFF);
					processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY",
								   &n->deferrable, &n->initdeferred,
								   &n->skip_validation, NULL,
								   yyscanner);
					n->initially_valid = !n->skip_validation;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 412:
#line 689 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 413:
#line 693 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 414:
#line 700 "third_party/libpg_query/grammar/statements/create.y"
    {
				(yyval.ival) = PG_FKCONSTR_MATCH_FULL;
			;}
    break;

  case 415:
#line 704 "third_party/libpg_query/grammar/statements/create.y"
    {
				ereport(ERROR,
						(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
						 errmsg("MATCH PARTIAL not yet implemented"),
						 parser_errposition((yylsp[(1) - (2)]))));
				(yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL;
			;}
    break;

  case 416:
#line 712 "third_party/libpg_query/grammar/statements/create.y"
    {
				(yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
			;}
    break;

  case 417:
#line 716 "third_party/libpg_query/grammar/statements/create.y"
    {
				(yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
			;}
    break;

  case 418:
#line 724 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGTableLikeClause *n = makeNode(PGTableLikeClause);
					n->relation = (yyvsp[(2) - (3)].range);
					n->options = (yyvsp[(3) - (3)].ival);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 419:
#line 733 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 420:
#line 734 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 421:
#line 735 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 422:
#line 736 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 423:
#line 738 "third_party/libpg_query/grammar/statements/create.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (2)]))));
					(yyval.ival) = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 424:
#line 745 "third_party/libpg_query/grammar/statements/create.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (2)]))));
					(yyval.ival) = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 425:
#line 751 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;}
    break;

  case 426:
#line 752 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;}
    break;

  case 427:
#line 757 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;}
    break;

  case 428:
#line 758 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;}
    break;

  case 429:
#line 10 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->missing_ok = true;
					n->objects = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 430:
#line 20 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (4)].objtype);
					n->missing_ok = false;
					n->objects = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 431:
#line 30 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->missing_ok = true;
					n->objects = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 432:
#line 40 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (4)].objtype);
					n->missing_ok = false;
					n->objects = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 433:
#line 50 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str))));
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = false;
					n->concurrent = false;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 434:
#line 60 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (8)].objtype);
					n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str))));
					n->behavior = (yyvsp[(8) - (8)].dbehavior);
					n->missing_ok = true;
					n->concurrent = false;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 435:
#line 73 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TABLE; ;}
    break;

  case 436:
#line 74 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;}
    break;

  case 437:
#line 75 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
    break;

  case 438:
#line 76 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
    break;

  case 439:
#line 77 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; ;}
    break;

  case 440:
#line 78 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_VIEW; ;}
    break;

  case 441:
#line 79 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_MATVIEW; ;}
    break;

  case 442:
#line 80 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_INDEX; ;}
    break;

  case 443:
#line 81 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;}
    break;

  case 444:
#line 82 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_COLLATION; ;}
    break;

  case 445:
#line 83 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_CONVERSION; ;}
    break;

  case 446:
#line 84 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_SCHEMA; ;}
    break;

  case 447:
#line 85 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;}
    break;

  case 448:
#line 86 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSPARSER; ;}
    break;

  case 449:
#line 87 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;}
    break;

  case 450:
#line 88 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;}
    break;

  case 451:
#line 89 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;}
    break;

  case 452:
#line 90 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TYPE; ;}
    break;

  case 453:
#line 95 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;}
    break;

  case 454:
#line 96 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;}
    break;

  case 455:
#line 97 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_EXTENSION; ;}
    break;

  case 456:
#line 98 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FDW; ;}
    break;

  case 457:
#line 99 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;}
    break;

  case 458:
#line 100 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;}
    break;

  case 459:
#line 105 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 460:
#line 106 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 461:
#line 111 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.dbehavior) = PG_DROP_CASCADE; ;}
    break;

  case 462:
#line 112 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.dbehavior) = PG_DROP_RESTRICT; ;}
    break;

  case 463:
#line 113 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;}
    break;

  case 464:
#line 118 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_POLICY; ;}
    break;

  case 465:
#line 119 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_RULE; ;}
    break;

  case 466:
#line 120 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TRIGGER; ;}
    break;

  case 467:
#line 9 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				(yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
				n->name = (yyvsp[(4) - (5)].range);
				n->functions = (yyvsp[(5) - (5)].list);
				n->onconflict = PG_ERROR_ON_CONFLICT;
				(yyval.node) = (PGNode *)n;
			;}
    break;

  case 468:
#line 19 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				(yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
				n->name = (yyvsp[(7) - (8)].range);
				n->functions = (yyvsp[(8) - (8)].list);
				n->onconflict = PG_IGNORE_ON_CONFLICT;
				(yyval.node) = (PGNode *)n;

			;}
    break;

  case 469:
#line 30 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				(yyvsp[(6) - (7)].range)->relpersistence = (yyvsp[(4) - (7)].ival);
				n->name = (yyvsp[(6) - (7)].range);
				n->functions = (yyvsp[(7) - (7)].list);
				n->onconflict = PG_REPLACE_ON_CONFLICT;
				(yyval.node) = (PGNode *)n;
			;}
    break;

  case 470:
#line 40 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				(yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
				n->name = (yyvsp[(4) - (5)].range);
				n->functions = (yyvsp[(5) - (5)].list);
				n->onconflict = PG_ERROR_ON_CONFLICT;
				(yyval.node) = (PGNode *)n;
             ;}
    break;

  case 471:
#line 50 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				(yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
				n->name = (yyvsp[(7) - (8)].range);
				n->functions = (yyvsp[(8) - (8)].list);
				n->onconflict = PG_IGNORE_ON_CONFLICT;
				(yyval.node) = (PGNode *)n;
			 ;}
    break;

  case 472:
#line 60 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				(yyvsp[(6) - (7)].range)->relpersistence = (yyvsp[(4) - (7)].ival);
				n->name = (yyvsp[(6) - (7)].range);
				n->functions = (yyvsp[(7) - (7)].list);
				n->onconflict = PG_REPLACE_ON_CONFLICT;
				(yyval.node) = (PGNode *)n;
			 ;}
    break;

  case 473:
#line 72 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGFunctionDefinition *n = makeNode(PGFunctionDefinition);
				n->params = (yyvsp[(1) - (4)].list);
				n->query = (yyvsp[(4) - (4)].node);
				(yyval.node) = (PGNode *)n;
			;}
    break;

  case 474:
#line 82 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGFunctionDefinition *n = makeNode(PGFunctionDefinition);
				n->params = (yyvsp[(1) - (4)].list);
				n->query = (yyvsp[(4) - (4)].node);
				(yyval.node) = (PGNode *)n;
			;}
    break;

  case 475:
#line 92 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
			;}
    break;

  case 476:
#line 96 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
			;}
    break;

  case 477:
#line 103 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
			;}
    break;

  case 479:
#line 111 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGFunctionDefinition *n = makeNode(PGFunctionDefinition);
				n->params = (yyvsp[(1) - (3)].list);
				n->function = (yyvsp[(3) - (3)].node);
				(yyval.node) = (PGNode *)n;
			;}
    break;

  case 480:
#line 120 "third_party/libpg_query/grammar/statements/create_function.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 481:
#line 124 "third_party/libpg_query/grammar/statements/create_function.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 484:
#line 136 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = NIL;
			;}
    break;

  case 485:
#line 140 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = (yyvsp[(2) - (3)].list);
			;}
    break;

  case 486:
#line 12 "third_party/libpg_query/grammar/statements/update.y"
    {
					PGUpdateStmt *n = makeNode(PGUpdateStmt);
					n->relation = (yyvsp[(3) - (8)].range);
					n->targetList = (yyvsp[(5) - (8)].list);
					n->fromClause = (yyvsp[(6) - (8)].list);
					n->whereClause = (yyvsp[(7) - (8)].node);
					n->returningList = (yyvsp[(8) - (8)].list);
					n->withClause = (yyvsp[(1) - (8)].with);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 487:
#line 3 "third_party/libpg_query/grammar/statements/copy.y"
    {
					PGCopyStmt *n = makeNode(PGCopyStmt);
					n->relation = (yyvsp[(3) - (11)].range);
					n->query = NULL;
					n->attlist = (yyvsp[(4) - (11)].list);
					n->is_from = (yyvsp[(6) - (11)].boolean);
					n->is_program = (yyvsp[(7) - (11)].boolean);
					n->filename = (yyvsp[(8) - (11)].str);

					if (n->is_program && n->filename == NULL)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("STDIN/STDOUT not allowed with PROGRAM"),
								 parser_errposition((yylsp[(8) - (11)]))));

					n->options = NIL;
					/* Concatenate user-supplied flags */
					if ((yyvsp[(2) - (11)].defelt))
						n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt));
					if ((yyvsp[(5) - (11)].defelt))
						n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt));
					if ((yyvsp[(9) - (11)].defelt))
						n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt));
					if ((yyvsp[(11) - (11)].list))
						n->options = list_concat(n->options, (yyvsp[(11) - (11)].list));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 488:
#line 31 "third_party/libpg_query/grammar/statements/copy.y"
    {
					PGCopyStmt *n = makeNode(PGCopyStmt);
					n->relation = NULL;
					n->query = (yyvsp[(3) - (9)].node);
					n->attlist = NIL;
					n->is_from = false;
					n->is_program = (yyvsp[(6) - (9)].boolean);
					n->filename = (yyvsp[(7) - (9)].str);
					n->options = (yyvsp[(9) - (9)].list);

					if (n->is_program && n->filename == NULL)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("STDIN/STDOUT not allowed with PROGRAM"),
								 parser_errposition((yylsp[(5) - (9)]))));

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 489:
#line 50 "third_party/libpg_query/grammar/statements/copy.y"
    {
				PGCopyDatabaseStmt *n = makeNode(PGCopyDatabaseStmt);
				n->from_database = (yyvsp[(4) - (7)].str);
				n->to_database = (yyvsp[(6) - (7)].str);
				n->copy_database_flag = (yyvsp[(7) - (7)].conststr);
				(yyval.node) = (PGNode *)n;
			;}
    break;

  case 490:
#line 61 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.conststr) = NULL; ;}
    break;

  case 491:
#line 62 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.conststr) = "schema"; ;}
    break;

  case 492:
#line 63 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.conststr) = "data"; ;}
    break;

  case 493:
#line 67 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = true; ;}
    break;

  case 494:
#line 68 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = false; ;}
    break;

  case 495:
#line 74 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)]));
				;}
    break;

  case 496:
#line 77 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 497:
#line 83 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 498:
#line 87 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 499:
#line 94 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 500:
#line 95 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 501:
#line 99 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 502:
#line 100 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 503:
#line 105 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = true; ;}
    break;

  case 504:
#line 106 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = false; ;}
    break;

  case 505:
#line 110 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 506:
#line 111 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 507:
#line 116 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 508:
#line 117 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
    break;

  case 509:
#line 118 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].node); ;}
    break;

  case 510:
#line 119 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) makeNode(PGAStar); ;}
    break;

  case 511:
#line 120 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;}
    break;

  case 512:
#line 121 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].node); ;}
    break;

  case 513:
#line 122 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].node); ;}
    break;

  case 514:
#line 123 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = NULL; ;}
    break;

  case 515:
#line 129 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 516:
#line 137 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (2)]));
				;}
    break;

  case 517:
#line 140 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 518:
#line 145 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 519:
#line 146 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = NIL; ;}
    break;

  case 520:
#line 152 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)]));
				;}
    break;

  case 521:
#line 155 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 522:
#line 161 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)]));
				;}
    break;

  case 523:
#line 165 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 524:
#line 169 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 525:
#line 173 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 526:
#line 177 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 527:
#line 181 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[(1) - (1)]));
				;}
    break;

  case 528:
#line 185 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 529:
#line 189 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 530:
#line 193 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 531:
#line 197 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 532:
#line 201 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)]));
				;}
    break;

  case 533:
#line 205 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("partition_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 534:
#line 209 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("partition_by", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)]));
				;}
    break;

  case 535:
#line 213 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[(4) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 536:
#line 217 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 537:
#line 221 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)]));
				;}
    break;

  case 538:
#line 228 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 539:
#line 233 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 540:
#line 234 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = NULL; ;}
    break;

  case 541:
#line 235 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = NULL; ;}
    break;

  case 542:
#line 236 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;}
    break;

  case 543:
#line 237 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 544:
#line 244 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 545:
#line 248 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 548:
#line 52 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 549:
#line 53 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 550:
#line 55 "third_party/libpg_query/grammar/statements/select.y"
    {
		    	(yyval.node) = (yyvsp[(2) - (3)].node);
			;}
    break;

  case 551:
#line 72 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 552:
#line 74 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL,
										NULL, NULL, NULL, NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (2)].node);
				;}
    break;

  case 553:
#line 81 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list),
										(PGNode*) list_nth((yyvsp[(4) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 1), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 2),
										NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (4)].node);
				;}
    break;

  case 554:
#line 89 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list),
										(PGNode*) list_nth((yyvsp[(3) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 1), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 2),
										NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (4)].node);
				;}
    break;

  case 555:
#line 97 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL,
										NULL, NULL, NULL,
										(yyvsp[(1) - (2)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (2)].node);
				;}
    break;

  case 556:
#line 105 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL,
										NULL, NULL, NULL,
										(yyvsp[(1) - (3)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (3)].node);
				;}
    break;

  case 557:
#line 113 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list),
										(PGNode*) list_nth((yyvsp[(5) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 1), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 2),
										(yyvsp[(1) - (5)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (5)].node);
				;}
    break;

  case 558:
#line 121 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list),
										(PGNode*) list_nth((yyvsp[(4) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 1), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 2),
										(yyvsp[(1) - (5)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (5)].node);
				;}
    break;

  case 559:
#line 131 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 560:
#line 132 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 561:
#line 160 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.list) = (yyvsp[(3) - (3)].list);
			;}
    break;

  case 562:
#line 164 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGAStar *star = makeNode(PGAStar);
				(yyval.list) = list_make1(star);
			;}
    break;

  case 563:
#line 175 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->targetList = (yyvsp[(3) - (11)].list);
					n->intoClause = (yyvsp[(4) - (11)].into);
					n->fromClause = (yyvsp[(5) - (11)].list);
					n->whereClause = (yyvsp[(6) - (11)].node);
					n->groupClause = (yyvsp[(7) - (11)].list);
					n->havingClause = (yyvsp[(8) - (11)].node);
					n->windowClause = (yyvsp[(9) - (11)].list);
					n->qualifyClause = (yyvsp[(10) - (11)].node);
					n->sampleOptions = (yyvsp[(11) - (11)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 564:
#line 191 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->distinctClause = (yyvsp[(2) - (11)].list);
					n->targetList = (yyvsp[(3) - (11)].list);
					n->intoClause = (yyvsp[(4) - (11)].into);
					n->fromClause = (yyvsp[(5) - (11)].list);
					n->whereClause = (yyvsp[(6) - (11)].node);
					n->groupClause = (yyvsp[(7) - (11)].list);
					n->havingClause = (yyvsp[(8) - (11)].node);
					n->windowClause = (yyvsp[(9) - (11)].list);
					n->qualifyClause = (yyvsp[(10) - (11)].node);
					n->sampleOptions = (yyvsp[(11) - (11)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 565:
#line 208 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->targetList = (yyvsp[(3) - (10)].list);
					n->fromClause = (yyvsp[(2) - (10)].list);
					n->intoClause = (yyvsp[(4) - (10)].into);
					n->whereClause = (yyvsp[(5) - (10)].node);
					n->groupClause = (yyvsp[(6) - (10)].list);
					n->havingClause = (yyvsp[(7) - (10)].node);
					n->windowClause = (yyvsp[(8) - (10)].list);
					n->qualifyClause = (yyvsp[(9) - (10)].node);
					n->sampleOptions = (yyvsp[(10) - (10)].node);
					n->from_first = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 566:
#line 226 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->targetList = (yyvsp[(5) - (12)].list);
					n->distinctClause = (yyvsp[(4) - (12)].list);
					n->fromClause = (yyvsp[(2) - (12)].list);
					n->intoClause = (yyvsp[(6) - (12)].into);
					n->whereClause = (yyvsp[(7) - (12)].node);
					n->groupClause = (yyvsp[(8) - (12)].list);
					n->havingClause = (yyvsp[(9) - (12)].node);
					n->windowClause = (yyvsp[(10) - (12)].list);
					n->qualifyClause = (yyvsp[(11) - (12)].node);
					n->sampleOptions = (yyvsp[(12) - (12)].node);
					n->from_first = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 567:
#line 241 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 568:
#line 243 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* same as SELECT * FROM relation_expr */
					PGColumnRef *cr = makeNode(PGColumnRef);
					PGResTarget *rt = makeNode(PGResTarget);
					PGSelectStmt *n = makeNode(PGSelectStmt);

					cr->fields = list_make1(makeNode(PGAStar));
					cr->location = -1;

					rt->name = NULL;
					rt->indirection = NIL;
					rt->val = (PGNode *)cr;
					rt->location = -1;

					n->targetList = list_make1(rt);
					n->fromClause = list_make1((yyvsp[(2) - (2)].range));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 569:
#line 262 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_UNION_BY_NAME, (yyvsp[(3) - (5)].boolean), (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node));
				;}
    break;

  case 570:
#line 266 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 571:
#line 270 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 572:
#line 274 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 573:
#line 278 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (4)].node);
					n->aggrs = (yyvsp[(4) - (4)].list);
					n->location = (yylsp[(1) - (4)]);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 574:
#line 288 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (7)].node);
					n->aggrs = (yyvsp[(4) - (7)].list);
					n->groups = (yyvsp[(7) - (7)].list);
					n->location = (yylsp[(1) - (7)]);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 575:
#line 299 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (5)].node);
					n->groups = (yyvsp[(5) - (5)].list);
					n->location = (yylsp[(1) - (5)]);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 576:
#line 309 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (4)].node);
					n->columns = (yyvsp[(4) - (4)].list);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 577:
#line 318 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (7)].node);
					n->columns = (yyvsp[(4) - (7)].list);
					n->groups = (yyvsp[(7) - (7)].list);
					n->location = (yylsp[(1) - (7)]);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 578:
#line 329 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (6)].node);
					n->columns = (yyvsp[(4) - (6)].list);
					n->aggrs = (yyvsp[(6) - (6)].list);
					n->location = (yylsp[(1) - (6)]);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 579:
#line 340 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (9)].node);
					n->columns = (yyvsp[(4) - (9)].list);
					n->aggrs = (yyvsp[(6) - (9)].list);
					n->groups = (yyvsp[(9) - (9)].list);
					n->location = (yylsp[(1) - (9)]);
					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 580:
#line 352 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (9)].node);
					n->unpivots = (yyvsp[(9) - (9)].list);
					n->location = (yylsp[(1) - (9)]);
					PGPivot *piv = makeNode(PGPivot);
					piv->unpivot_columns = list_make1(makeString((yyvsp[(7) - (9)].str)));
					piv->pivot_value = (yyvsp[(4) - (9)].list);
					n->columns = list_make1(piv);

					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 581:
#line 367 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *res = makeNode(PGSelectStmt);
					PGPivotStmt *n = makeNode(PGPivotStmt);
					n->source = (yyvsp[(2) - (4)].node);
					n->unpivots = list_make1(makeString("value"));
					n->location = (yylsp[(1) - (4)]);
					PGPivot *piv = makeNode(PGPivot);
					piv->unpivot_columns = list_make1(makeString("name"));
					piv->pivot_value = (yyvsp[(4) - (4)].list);
					n->columns = list_make1(piv);

					res->pivot = n;
					(yyval.node) = (PGNode *)res;
				;}
    break;

  case 588:
#line 397 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGPivot *n = makeNode(PGPivot);
				n->pivot_columns = list_make1((yyvsp[(1) - (1)].node));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 589:
#line 403 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGPivot *n = makeNode(PGPivot);
				n->pivot_columns = list_make1((yyvsp[(1) - (5)].node));
				n->subquery = (yyvsp[(4) - (5)].node);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 590:
#line 409 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 591:
#line 413 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 592:
#line 414 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 593:
#line 418 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 594:
#line 419 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 595:
#line 434 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.with) = makeNode(PGWithClause);
				(yyval.with)->ctes = (yyvsp[(2) - (2)].list);
				(yyval.with)->recursive = false;
				(yyval.with)->location = (yylsp[(1) - (2)]);
			;}
    break;

  case 596:
#line 441 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.with) = makeNode(PGWithClause);
				(yyval.with)->ctes = (yyvsp[(2) - (2)].list);
				(yyval.with)->recursive = false;
				(yyval.with)->location = (yylsp[(1) - (2)]);
			;}
    break;

  case 597:
#line 448 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.with) = makeNode(PGWithClause);
				(yyval.with)->ctes = (yyvsp[(3) - (3)].list);
				(yyval.with)->recursive = true;
				(yyval.with)->location = (yylsp[(1) - (3)]);
			;}
    break;

  case 598:
#line 457 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 599:
#line 458 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 600:
#line 462 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGCommonTableExpr *n = makeNode(PGCommonTableExpr);
				n->ctename = (yyvsp[(1) - (8)].str);
				n->aliascolnames = (yyvsp[(2) - (8)].list);
				n->recursive_keys = (yyvsp[(3) - (8)].list);
				n->ctematerialized = (yyvsp[(5) - (8)].ctematerialize);
				n->ctequery = (yyvsp[(7) - (8)].node);
				n->location = (yylsp[(1) - (8)]);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 601:
#line 475 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
    break;

  case 602:
#line 476 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(NIL); ;}
    break;

  case 603:
#line 480 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 604:
#line 481 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 605:
#line 485 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 606:
#line 486 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 607:
#line 490 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ctematerialize) = PGCTEMaterializeAlways; ;}
    break;

  case 608:
#line 491 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ctematerialize) = PGCTEMaterializeNever; ;}
    break;

  case 609:
#line 492 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ctematerialize) = PGCTEMaterializeDefault; ;}
    break;

  case 610:
#line 497 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.into) = makeNode(PGIntoClause);
					(yyval.into)->rel = (yyvsp[(2) - (2)].range);
					(yyval.into)->colNames = NIL;
					(yyval.into)->options = NIL;
					(yyval.into)->onCommit = PG_ONCOMMIT_NOOP;
					(yyval.into)->viewQuery = NULL;
					(yyval.into)->skipData = false;
				;}
    break;

  case 611:
#line 507 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.into) = NULL; ;}
    break;

  case 612:
#line 516 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 613:
#line 521 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 614:
#line 526 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 615:
#line 531 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 616:
#line 536 "third_party/libpg_query/grammar/statements/select.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (4)]))));
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 617:
#line 544 "third_party/libpg_query/grammar/statements/select.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (4)]))));
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 618:
#line 552 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED;
				;}
    break;

  case 619:
#line 557 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(2) - (2)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
				;}
    break;

  case 620:
#line 562 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
				;}
    break;

  case 621:
#line 568 "third_party/libpg_query/grammar/statements/select.y"
    {;}
    break;

  case 622:
#line 569 "third_party/libpg_query/grammar/statements/select.y"
    {;}
    break;

  case 623:
#line 573 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 624:
#line 574 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 625:
#line 575 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 626:
#line 579 "third_party/libpg_query/grammar/statements/select.y"
    { ;}
    break;

  case 627:
#line 586 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(NIL); ;}
    break;

  case 628:
#line 587 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
    break;

  case 629:
#line 591 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL;;}
    break;

  case 630:
#line 592 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 631:
#line 596 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ignorenulls) = PG_IGNORE_NULLS;;}
    break;

  case 632:
#line 597 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ignorenulls) = PG_RESPECT_NULLS;;}
    break;

  case 633:
#line 598 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ignorenulls) = PG_DEFAULT_NULLS; ;}
    break;

  case 634:
#line 602 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list);;}
    break;

  case 635:
#line 603 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 636:
#line 607 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 637:
#line 609 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSortBy *sort = makeNode(PGSortBy);
					PGAStar *star = makeNode(PGAStar);
					star->columns = true;
					star->location = (yylsp[(3) - (5)]);
					sort->node = (PGNode *) star;
					sort->sortby_dir = (yyvsp[(4) - (5)].sortorder);
					sort->sortby_nulls = (yyvsp[(5) - (5)].nullorder);
					sort->useOp = NIL;
					sort->location = -1;		/* no operator */
					(yyval.list) = list_make1(sort);
				;}
    break;

  case 638:
#line 624 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;}
    break;

  case 639:
#line 625 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;}
    break;

  case 640:
#line 629 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.sortby) = makeNode(PGSortBy);
					(yyval.sortby)->node = (yyvsp[(1) - (4)].node);
					(yyval.sortby)->sortby_dir = SORTBY_USING;
					(yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder);
					(yyval.sortby)->useOp = (yyvsp[(3) - (4)].list);
					(yyval.sortby)->location = (yylsp[(3) - (4)]);
				;}
    break;

  case 641:
#line 638 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.sortby) = makeNode(PGSortBy);
					(yyval.sortby)->node = (yyvsp[(1) - (3)].node);
					(yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder);
					(yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder);
					(yyval.sortby)->useOp = NIL;
					(yyval.sortby)->location = -1;		/* no operator */
				;}
    break;

  case 642:
#line 648 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.sortorder) = PG_SORTBY_ASC; ;}
    break;

  case 643:
#line 649 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.sortorder) = PG_SORTBY_DESC; ;}
    break;

  case 644:
#line 650 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;}
    break;

  case 645:
#line 653 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;}
    break;

  case 646:
#line 654 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; ;}
    break;

  case 647:
#line 655 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;}
    break;

  case 648:
#line 659 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make3((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node), NULL); ;}
    break;

  case 649:
#line 660 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make3((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;}
    break;

  case 650:
#line 661 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make3(NULL, (yyvsp[(1) - (1)].node), NULL); ;}
    break;

  case 651:
#line 662 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make3((yyvsp[(1) - (1)].node), NULL, (yyvsp[(1) - (1)].node)); ;}
    break;

  case 652:
#line 666 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 653:
#line 667 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make3(NULL,NULL,NULL); ;}
    break;

  case 654:
#line 672 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 655:
#line 674 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* Disabled because it was too confusing, bjm 2002-02-18 */
					ereport(ERROR,
							(errcode(PG_ERRCODE_SYNTAX_ERROR),
							 errmsg("LIMIT #,# syntax is not supported"),
							 errhint("Use separate LIMIT and OFFSET clauses."),
							 parser_errposition((yylsp[(1) - (4)]))));
				;}
    break;

  case 656:
#line 690 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(3) - (5)].node); ;}
    break;

  case 657:
#line 692 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeIntConst(1, -1); ;}
    break;

  case 658:
#line 697 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 659:
#line 700 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 660:
#line 705 "third_party/libpg_query/grammar/statements/select.y"
    {
            (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
        ;}
    break;

  case 661:
#line 709 "third_party/libpg_query/grammar/statements/select.y"
    {
            (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
        ;}
    break;

  case 663:
#line 720 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize((yyvsp[(1) - (2)].node), true);
		;}
    break;

  case 664:
#line 724 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize((yyvsp[(1) - (2)].node), true);
		;}
    break;

  case 665:
#line 728 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize((yyvsp[(1) - (1)].node), false);
		;}
    break;

  case 666:
#line 732 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize((yyvsp[(1) - (2)].node), false);
		;}
    break;

  case 667:
#line 739 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(3) - (3)].node);
				;}
    break;

  case 668:
#line 743 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 669:
#line 750 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 670:
#line 751 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = NULL; ;}
    break;

  case 671:
#line 756 "third_party/libpg_query/grammar/statements/select.y"
    {
					int seed = (yyvsp[(5) - (5)].ival);
					(yyval.node) = makeSampleOptions((yyvsp[(3) - (5)].node), (yyvsp[(1) - (5)].str), &seed, (yylsp[(1) - (5)]));
				;}
    break;

  case 672:
#line 761 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleOptions((yyvsp[(1) - (1)].node), NULL, NULL, (yylsp[(1) - (1)]));
		;}
    break;

  case 673:
#line 765 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleOptions((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].str), NULL, (yylsp[(1) - (4)]));
		;}
    break;

  case 674:
#line 769 "third_party/libpg_query/grammar/statements/select.y"
    {
			int seed = (yyvsp[(5) - (6)].ival);
			(yyval.node) = makeSampleOptions((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].str), &seed, (yylsp[(1) - (6)]));
		;}
    break;

  case 675:
#line 777 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(2) - (2)].node);
				;}
    break;

  case 676:
#line 783 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 677:
#line 784 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 678:
#line 789 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;}
    break;

  case 679:
#line 790 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = -1; ;}
    break;

  case 680:
#line 795 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "TIMESTAMP"; ;}
    break;

  case 681:
#line 796 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "VERSION"; ;}
    break;

  case 682:
#line 801 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGAtClause *n = makeNode(PGAtClause);
				n->unit = (yyvsp[(1) - (3)].str);
				n->expr = (yyvsp[(3) - (3)].node);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 683:
#line 810 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(3) - (4)].node); ;}
    break;

  case 684:
#line 811 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 685:
#line 816 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 686:
#line 818 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* LIMIT ALL is represented as a NULL constant */
					(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
				;}
    break;

  case 687:
#line 823 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;}
    break;

  case 688:
#line 825 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;}
    break;

  case 689:
#line 827 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;}
    break;

  case 690:
#line 831 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 691:
#line 851 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 692:
#line 853 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 693:
#line 855 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 694:
#line 859 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;}
    break;

  case 695:
#line 860 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;}
    break;

  case 696:
#line 864 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 697:
#line 865 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 698:
#line 868 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 699:
#line 869 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 700:
#line 894 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 701:
#line 896 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)]));
					(yyval.list) = list_make1(node);
				;}
    break;

  case 702:
#line 900 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 703:
#line 904 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 704:
#line 905 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;}
    break;

  case 705:
#line 909 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 706:
#line 910 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 707:
#line 914 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 708:
#line 915 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 709:
#line 916 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 710:
#line 917 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 711:
#line 918 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 712:
#line 923 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)]));
				;}
    break;

  case 713:
#line 936 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 714:
#line 943 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 715:
#line 950 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 716:
#line 956 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 717:
#line 957 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 718:
#line 961 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 719:
#line 962 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 720:
#line 966 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 721:
#line 967 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 722:
#line 971 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 723:
#line 972 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 724:
#line 976 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 725:
#line 977 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 726:
#line 981 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 727:
#line 982 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 728:
#line 987 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGLockingClause *n = makeNode(PGLockingClause);
					n->lockedRels = (yyvsp[(2) - (3)].list);
					n->strength = (yyvsp[(1) - (3)].lockstrength);
					n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 729:
#line 997 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = LCS_FORUPDATE; ;}
    break;

  case 730:
#line 998 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;}
    break;

  case 731:
#line 999 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = PG_LCS_FORSHARE; ;}
    break;

  case 732:
#line 1000 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;}
    break;

  case 733:
#line 1004 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 734:
#line 1005 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 735:
#line 1010 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockwaitpolicy) = LockWaitError; ;}
    break;

  case 736:
#line 1011 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;}
    break;

  case 737:
#line 1012 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;}
    break;

  case 738:
#line 1022 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->valuesLists = list_make1((yyvsp[(3) - (4)].list));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 739:
#line 1028 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node);
					n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 740:
#line 1036 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 741:
#line 1037 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (2)].node); ;}
    break;

  case 742:
#line 1050 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 743:
#line 1051 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 744:
#line 1055 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 745:
#line 1056 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 746:
#line 1060 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 747:
#line 1061 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 748:
#line 1066 "third_party/libpg_query/grammar/statements/select.y"
    {
                (yyval.alias) = makeNode(PGAlias);
                (yyval.alias)->aliasname = (yyvsp[(1) - (2)].str);
            ;}
    break;

  case 749:
#line 1077 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyvsp[(1) - (4)].range)->at_clause = (yyvsp[(3) - (4)].node);
					(yyvsp[(1) - (4)].range)->alias = (yyvsp[(2) - (4)].alias);
					(yyvsp[(1) - (4)].range)->sample = (yyvsp[(4) - (4)].node);
					(yyval.node) = (PGNode *) (yyvsp[(1) - (4)].range);
				;}
    break;

  case 750:
#line 1084 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyvsp[(2) - (4)].range)->at_clause = (yyvsp[(3) - (4)].node);
                    (yyvsp[(2) - (4)].range)->alias = (yyvsp[(1) - (4)].alias);
                    (yyvsp[(2) - (4)].range)->sample = (yyvsp[(4) - (4)].node);
                    (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].range);
                ;}
    break;

  case 751:
#line 1091 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node);
					n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list));
					n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (3)].list));
					n->sample = (yyvsp[(3) - (3)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 752:
#line 1099 "third_party/libpg_query/grammar/statements/select.y"
    {
                        PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node);
                        n->alias = (yyvsp[(1) - (3)].alias);
                        n->sample = (yyvsp[(3) - (3)].node);
                        (yyval.node) = (PGNode *) n;
                    ;}
    break;

  case 753:
#line 1107 "third_party/libpg_query/grammar/statements/select.y"
    {
                    PGRangeSubselect *n = makeNode(PGRangeSubselect);
                    n->lateral = false;
                    n->subquery = (yyvsp[(1) - (3)].node);
                    n->alias = (yyvsp[(2) - (3)].alias);
                    n->sample = (yyvsp[(3) - (3)].node);
                    (yyval.node) = (PGNode *) n;
                ;}
    break;

  case 754:
#line 1117 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node);
					n->lateral = true;
					n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list));
					n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 755:
#line 1125 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeSubselect *n = makeNode(PGRangeSubselect);
					n->lateral = false;
					n->subquery = (yyvsp[(1) - (3)].node);
					n->alias = (yyvsp[(2) - (3)].alias);
					n->sample = (yyvsp[(3) - (3)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 756:
#line 1134 "third_party/libpg_query/grammar/statements/select.y"
    {
                    PGRangeSubselect *n = makeNode(PGRangeSubselect);
                    n->lateral = false;
                    n->subquery = (yyvsp[(2) - (3)].node);
                    n->alias = (yyvsp[(1) - (3)].alias);
                    n->sample = (yyvsp[(3) - (3)].node);
                    (yyval.node) = (PGNode *) n;
                ;}
    break;

  case 757:
#line 1143 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeSubselect *n = makeNode(PGRangeSubselect);
					n->lateral = true;
					n->subquery = (yyvsp[(2) - (3)].node);
					n->alias = (yyvsp[(3) - (3)].alias);
					n->sample = NULL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 758:
#line 1152 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr);
				;}
    break;

  case 759:
#line 1156 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias);
					(yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr);
				;}
    break;

  case 760:
#line 1161 "third_party/libpg_query/grammar/statements/select.y"
    {
                    (yyvsp[(3) - (4)].jexpr)->alias = (yyvsp[(1) - (4)].alias);
                    (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].jexpr);
                ;}
    break;

  case 761:
#line 1166 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGPivotExpr *n = makeNode(PGPivotExpr);
					n->source = (yyvsp[(1) - (9)].node);
					n->aggrs = (yyvsp[(4) - (9)].list);
					n->pivots = (yyvsp[(6) - (9)].list);
					n->groups = (yyvsp[(7) - (9)].list);
					n->alias = (yyvsp[(9) - (9)].alias);
					n->location = (yylsp[(2) - (9)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 762:
#line 1177 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGPivotExpr *n = makeNode(PGPivotExpr);
					n->source = (yyvsp[(1) - (9)].node);
					n->include_nulls = (yyvsp[(3) - (9)].boolean);
					n->unpivots = (yyvsp[(5) - (9)].list);
					n->pivots = (yyvsp[(7) - (9)].list);
					n->alias = (yyvsp[(9) - (9)].alias);
					n->location = (yylsp[(2) - (9)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 763:
#line 1190 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 764:
#line 1191 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 765:
#line 1194 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 766:
#line 1195 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 767:
#line 1196 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 768:
#line 1200 "third_party/libpg_query/grammar/statements/select.y"
    {
			PGPivot *n = makeNode(PGPivot);
			n->pivot_columns = list_make1((yyvsp[(1) - (5)].node));
			n->pivot_value = (yyvsp[(4) - (5)].list);
			(yyval.node) = (PGNode *) n;
		;}
    break;

  case 769:
#line 1208 "third_party/libpg_query/grammar/statements/select.y"
    {
			PGPivot *n = makeNode(PGPivot);
			n->pivot_columns = list_make1((yyvsp[(1) - (3)].node));
			n->pivot_enum = (yyvsp[(3) - (3)].str);
			(yyval.node) = (PGNode *) n;
		;}
    break;

  case 770:
#line 1217 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 771:
#line 1218 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 772:
#line 1219 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 773:
#line 1223 "third_party/libpg_query/grammar/statements/select.y"
    {
			PGPivot *n = makeNode(PGPivot);
			n->pivot_columns = (yyvsp[(1) - (5)].list);
			n->pivot_value = (yyvsp[(4) - (5)].list);
			(yyval.node) = (PGNode *) n;
		;}
    break;

  case 774:
#line 1231 "third_party/libpg_query/grammar/statements/select.y"
    {
			PGPivot *n = makeNode(PGPivot);
			n->pivot_columns = (yyvsp[(1) - (3)].list);
			n->pivot_enum = (yyvsp[(3) - (3)].str);
			(yyval.node) = (PGNode *) n;
		;}
    break;

  case 775:
#line 1240 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 776:
#line 1244 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 777:
#line 1250 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 778:
#line 1251 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 779:
#line 1256 "third_party/libpg_query/grammar/statements/select.y"
    {
			PGPivot *n = makeNode(PGPivot);
			n->unpivot_columns = (yyvsp[(1) - (5)].list);
			n->pivot_value = (yyvsp[(4) - (5)].list);
			(yyval.node) = (PGNode *) n;
		;}
    break;

  case 780:
#line 1265 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 781:
#line 1269 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 782:
#line 1294 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.jexpr) = (yyvsp[(2) - (3)].jexpr);
				;}
    break;

  case 783:
#line 1298 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* CROSS JOIN is same as unqualified inner join */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_JOIN_INNER;
					n->joinreftype = PG_JOIN_REGULAR;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(4) - (4)].node);
					n->usingClause = NIL;
					n->quals = NULL;
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 784:
#line 1311 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = (yyvsp[(2) - (5)].jtype);
					n->joinreftype = PG_JOIN_REGULAR;
					n->larg = (yyvsp[(1) - (5)].node);
					n->rarg = (yyvsp[(4) - (5)].node);
					if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
						n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
					else
						n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
					n->location = (yylsp[(2) - (5)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 785:
#line 1325 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* letting join_type reduce to empty doesn't work */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_JOIN_INNER;
					n->joinreftype = PG_JOIN_REGULAR;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(3) - (4)].node);
					if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), PGList))
						n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */
					else
						n->quals = (yyvsp[(4) - (4)].node); /* ON clause */
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 786:
#line 1340 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = (yyvsp[(3) - (5)].jtype);
					n->joinreftype = PG_JOIN_NATURAL;
					n->larg = (yyvsp[(1) - (5)].node);
					n->rarg = (yyvsp[(5) - (5)].node);
					n->usingClause = NIL; /* figure out which columns later... */
					n->quals = NULL; /* fill later */
					n->location = (yylsp[(2) - (5)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 787:
#line 1352 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* letting join_type reduce to empty doesn't work */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_JOIN_INNER;
					n->joinreftype = PG_JOIN_NATURAL;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(4) - (4)].node);
					n->usingClause = NIL; /* figure out which columns later... */
					n->quals = NULL; /* fill later */
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 788:
#line 1365 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = (yyvsp[(3) - (6)].jtype);
					n->joinreftype = PG_JOIN_ASOF;
					n->larg = (yyvsp[(1) - (6)].node);
					n->rarg = (yyvsp[(5) - (6)].node);
					if ((yyvsp[(6) - (6)].node) != NULL && IsA((yyvsp[(6) - (6)].node), PGList))
						n->usingClause = (PGList *) (yyvsp[(6) - (6)].node); /* USING clause */
					else
						n->quals = (yyvsp[(6) - (6)].node); /* ON clause */
					n->location = (yylsp[(2) - (6)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 789:
#line 1379 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_JOIN_INNER;
					n->joinreftype = PG_JOIN_ASOF;
					n->larg = (yyvsp[(1) - (5)].node);
					n->rarg = (yyvsp[(4) - (5)].node);
					if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
						n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
					else
						n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
					n->location = (yylsp[(2) - (5)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 790:
#line 1393 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* POSITIONAL JOIN is a coordinated scan */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_JOIN_POSITION;
					n->joinreftype = PG_JOIN_REGULAR;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(4) - (4)].node);
					n->usingClause = NIL;
					n->quals = NULL;
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 791:
#line 1406 "third_party/libpg_query/grammar/statements/select.y"
    {
                    /* ANTI JOIN is a filter */
                    PGJoinExpr *n = makeNode(PGJoinExpr);
                    n->jointype = PG_JOIN_ANTI;
                    n->joinreftype = PG_JOIN_REGULAR;
                    n->larg = (yyvsp[(1) - (5)].node);
                    n->rarg = (yyvsp[(4) - (5)].node);
                    if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
                        n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
                    else
                        n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
                    n->location = (yylsp[(2) - (5)]);
                    (yyval.jexpr) = n;
                ;}
    break;

  case 792:
#line 1421 "third_party/libpg_query/grammar/statements/select.y"
    {
                   /* SEMI JOIN is also a filter */
                   PGJoinExpr *n = makeNode(PGJoinExpr);
                   n->jointype = PG_JOIN_SEMI;
                   n->joinreftype = PG_JOIN_REGULAR;
                   n->larg = (yyvsp[(1) - (5)].node);
                   n->rarg = (yyvsp[(4) - (5)].node);
                   if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
                       n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
                   else
                       n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
                   n->location = (yylsp[(2) - (5)]);
                   n->location = (yylsp[(2) - (5)]);
                   (yyval.jexpr) = n;
               ;}
    break;

  case 793:
#line 1440 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(2) - (5)].str);
					(yyval.alias)->colnames = (yyvsp[(4) - (5)].list);
				;}
    break;

  case 794:
#line 1446 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(2) - (2)].str);
				;}
    break;

  case 795:
#line 1451 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(1) - (4)].str);
					(yyval.alias)->colnames = (yyvsp[(3) - (4)].list);
				;}
    break;

  case 796:
#line 1457 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(1) - (1)].str);
				;}
    break;

  case 797:
#line 1463 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;}
    break;

  case 798:
#line 1464 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.alias) = NULL; ;}
    break;

  case 799:
#line 1473 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL);
				;}
    break;

  case 800:
#line 1477 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list));
				;}
    break;

  case 801:
#line 1481 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAlias *a = makeNode(PGAlias);
					a->aliasname = (yyvsp[(2) - (5)].str);
					(yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list));
				;}
    break;

  case 802:
#line 1487 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAlias *a = makeNode(PGAlias);
					a->aliasname = (yyvsp[(1) - (4)].str);
					(yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list));
				;}
    break;

  case 803:
#line 1493 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2(NULL, NIL);
				;}
    break;

  case 804:
#line 1498 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_FULL; ;}
    break;

  case 805:
#line 1499 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_LEFT; ;}
    break;

  case 806:
#line 1500 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_RIGHT; ;}
    break;

  case 807:
#line 1501 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_SEMI; ;}
    break;

  case 808:
#line 1502 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_ANTI; ;}
    break;

  case 809:
#line 1503 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_INNER; ;}
    break;

  case 810:
#line 1507 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 811:
#line 1508 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 812:
#line 1520 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;}
    break;

  case 813:
#line 1521 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 814:
#line 1527 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* inheritance query, implicitly */
					(yyval.range) = (yyvsp[(1) - (1)].range);
					(yyval.range)->inh = true;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 815:
#line 1534 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* inheritance query, explicitly */
					(yyval.range) = (yyvsp[(1) - (2)].range);
					(yyval.range)->inh = true;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 816:
#line 1541 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* no inheritance */
					(yyval.range) = (yyvsp[(2) - (2)].range);
					(yyval.range)->inh = false;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 817:
#line 1548 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* no inheritance, SQL99-style syntax */
					(yyval.range) = (yyvsp[(3) - (4)].range);
					(yyval.range)->inh = false;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 818:
#line 1580 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = makeNode(PGRangeFunction);
					n->lateral = false;
					n->ordinality = (yyvsp[(2) - (2)].boolean);
					n->is_rowsfrom = false;
					n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL));
					n->sample = NULL;
					/* alias and coldeflist are set by table_ref production */
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 819:
#line 1591 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = makeNode(PGRangeFunction);
					n->lateral = false;
					n->ordinality = (yyvsp[(6) - (6)].boolean);
					n->is_rowsfrom = true;
					n->functions = (yyvsp[(4) - (6)].list);
					n->sample = NULL;
					/* alias and coldeflist are set by table_ref production */
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 820:
#line 1604 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 821:
#line 1608 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 822:
#line 1609 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 823:
#line 1612 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 824:
#line 1613 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 825:
#line 1616 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 826:
#line 1617 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 827:
#line 1622 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 828:
#line 1623 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 829:
#line 1629 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 830:
#line 1633 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 831:
#line 1639 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGColumnDef *n = makeNode(PGColumnDef);
					n->colname = (yyvsp[(1) - (3)].str);
					n->typeName = (yyvsp[(2) - (3)].typnam);
					n->inhcount = 0;
					n->is_local = true;
					n->is_not_null = false;
					n->is_from_type = false;
					n->storage = 0;
					n->raw_default = NULL;
					n->cooked_default = NULL;
					n->collClause = (PGCollateClause *) (yyvsp[(3) - (3)].node);
					n->collOid = InvalidOid;
					n->constraints = NIL;
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 832:
#line 1660 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCollateClause *n = makeNode(PGCollateClause);
					n->arg = NULL;
					n->collname = (yyvsp[(2) - (2)].list);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 833:
#line 1667 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 834:
#line 1681 "third_party/libpg_query/grammar/statements/select.y"
    {
             (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam)));
            ;}
    break;

  case 835:
#line 1684 "third_party/libpg_query/grammar/statements/select.y"
    {
             (yyval.list) = lappend((yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam)));
            ;}
    break;

  case 838:
#line 1691 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 839:
#line 1692 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = NULL; ;}
    break;

  case 840:
#line 1695 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
				;}
    break;

  case 841:
#line 1700 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
					(yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
					(yyval.typnam)->setof = true;
				;}
    break;

  case 842:
#line 1707 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (5)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
				;}
    break;

  case 843:
#line 1712 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (6)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
					(yyval.typnam)->setof = true;
				;}
    break;

  case 844:
#line 1718 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
				;}
    break;

  case 845:
#line 1723 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
					(yyval.typnam)->setof = true;
				;}
    break;

  case 846:
#line 1729 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = makeTypeNameFromNameList((yyvsp[(1) - (1)].list));
				;}
    break;

  case 847:
#line 1733 "third_party/libpg_query/grammar/statements/select.y"
    {
				   (yyval.typnam) = SystemTypeName("struct");
				   (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
				   (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
				   (yyval.typnam)->location = (yylsp[(1) - (5)]);
               ;}
    break;

  case 848:
#line 1740 "third_party/libpg_query/grammar/statements/select.y"
    {
				   (yyval.typnam) = SystemTypeName("map");
				   (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
				   (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
				   (yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 849:
#line 1747 "third_party/libpg_query/grammar/statements/select.y"
    {
				   (yyval.typnam) = SystemTypeName("union");
				   (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
				   (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
				   (yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 850:
#line 1756 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 851:
#line 1757 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 852:
#line 1762 "third_party/libpg_query/grammar/statements/select.y"
    {  (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;}
    break;

  case 853:
#line 1764 "third_party/libpg_query/grammar/statements/select.y"
    {  (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;}
    break;

  case 854:
#line 1766 "third_party/libpg_query/grammar/statements/select.y"
    {  (yyval.list) = NIL; ;}
    break;

  case 855:
#line 1770 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 856:
#line 1771 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 857:
#line 1772 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 858:
#line 1773 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 859:
#line 1774 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 860:
#line 1776 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
				;}
    break;

  case 861:
#line 1781 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (4)].typnam);
					(yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
											 makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
				;}
    break;

  case 862:
#line 1800 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 863:
#line 1801 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 864:
#line 1802 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 865:
#line 1803 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 866:
#line 1815 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str));
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 867:
#line 1828 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 868:
#line 1829 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 869:
#line 1836 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 870:
#line 1841 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 871:
#line 1846 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int2");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 872:
#line 1851 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int8");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 873:
#line 1856 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("float4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 874:
#line 1861 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (2)].typnam);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 875:
#line 1866 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("float8");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 876:
#line 1871 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 877:
#line 1877 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 878:
#line 1883 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 879:
#line 1889 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("bool");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 880:
#line 1896 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * Check FLOAT() precision limits assuming IEEE floating
					 * types - thomas 1997-09-18
					 */
					if ((yyvsp[(2) - (3)].ival) < 1)
						ereport(ERROR,
								(errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be at least 1 bit"),
								 parser_errposition((yylsp[(2) - (3)]))));
					else if ((yyvsp[(2) - (3)].ival) <= 24)
						(yyval.typnam) = SystemTypeName("float4");
					else if ((yyvsp[(2) - (3)].ival) <= 53)
						(yyval.typnam) = SystemTypeName("float8");
					else
						ereport(ERROR,
								(errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be less than 54 bits"),
								 parser_errposition((yylsp[(2) - (3)]))));
				;}
    break;

  case 881:
#line 1917 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("float4");
				;}
    break;

  case 882:
#line 1927 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 883:
#line 1931 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 884:
#line 1939 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 885:
#line 1943 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
					(yyval.typnam)->typmods = NIL;
				;}
    break;

  case 886:
#line 1951 "third_party/libpg_query/grammar/statements/select.y"
    {
					const char *typname;

					typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit";
					(yyval.typnam) = SystemTypeName(typname);
					(yyval.typnam)->typmods = (yyvsp[(4) - (5)].list);
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 887:
#line 1963 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* bit defaults to bit(1), varbit to no limit */
					if ((yyvsp[(2) - (2)].boolean))
					{
						(yyval.typnam) = SystemTypeName("varbit");
					}
					else
					{
						(yyval.typnam) = SystemTypeName("bit");
						(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
					}
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 888:
#line 1984 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 889:
#line 1988 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 890:
#line 1994 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 891:
#line 1998 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* Length was not specified so allow to be unrestricted.
					 * This handles problems with fixed-length (bpchar) strings
					 * which in column definitions must default to a length
					 * of one, but should not be constrained if the length
					 * was not specified.
					 */
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
					(yyval.typnam)->typmods = NIL;
				;}
    break;

  case 892:
#line 2011 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr));
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
					(yyval.typnam)->location = (yylsp[(1) - (4)]);
				;}
    break;

  case 893:
#line 2019 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr));
					/* char defaults to char(1), varchar to no limit */
					if (strcmp((yyvsp[(1) - (1)].conststr), "bpchar") == 0)
						(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 894:
#line 2029 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 895:
#line 2031 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 896:
#line 2033 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "varchar"; ;}
    break;

  case 897:
#line 2035 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 898:
#line 2037 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 899:
#line 2039 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 900:
#line 2043 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 901:
#line 2044 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 902:
#line 2052 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(5) - (5)].boolean))
						(yyval.typnam) = SystemTypeName("timestamptz");
					else
						(yyval.typnam) = SystemTypeName("timestamp");
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 903:
#line 2061 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].boolean))
						(yyval.typnam) = SystemTypeName("timestamptz");
					else
						(yyval.typnam) = SystemTypeName("timestamp");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 904:
#line 2069 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(5) - (5)].boolean))
						(yyval.typnam) = SystemTypeName("timetz");
					else
						(yyval.typnam) = SystemTypeName("time");
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 905:
#line 2078 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].boolean))
						(yyval.typnam) = SystemTypeName("timetz");
					else
						(yyval.typnam) = SystemTypeName("time");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 906:
#line 2089 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("interval");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 907:
#line 2096 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 908:
#line 2097 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 909:
#line 2098 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 936:
#line 2142 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;}
    break;

  case 937:
#line 2144 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;}
    break;

  case 938:
#line 2146 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;}
    break;

  case 939:
#line 2148 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;}
    break;

  case 940:
#line 2150 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;}
    break;

  case 941:
#line 2152 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;}
    break;

  case 942:
#line 2154 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;}
    break;

  case 943:
#line 2156 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;}
    break;

  case 944:
#line 2158 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(WEEK), (yylsp[(1) - (1)]))); ;}
    break;

  case 945:
#line 2160 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(QUARTER), (yylsp[(1) - (1)]))); ;}
    break;

  case 946:
#line 2162 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DECADE), (yylsp[(1) - (1)]))); ;}
    break;

  case 947:
#line 2164 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(CENTURY), (yylsp[(1) - (1)]))); ;}
    break;

  case 948:
#line 2166 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLENNIUM), (yylsp[(1) - (1)]))); ;}
    break;

  case 949:
#line 2168 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
												 INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
				;}
    break;

  case 950:
#line 2173 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
				;}
    break;

  case 951:
#line 2178 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
				;}
    break;

  case 952:
#line 2184 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE) |
												 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
				;}
    break;

  case 953:
#line 2191 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
				;}
    break;

  case 954:
#line 2196 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE) |
												 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
				;}
    break;

  case 955:
#line 2202 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) |
												 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
				;}
    break;

  case 956:
#line 2207 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 957:
#line 2238 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 958:
#line 2241 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;}
    break;

  case 959:
#line 2243 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCollateClause *n = makeNode(PGCollateClause);
					n->arg = (yyvsp[(1) - (3)].node);
					n->collname = (yyvsp[(3) - (3)].list);
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 960:
#line 2251 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"),
											   list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)),
											   (yylsp[(2) - (5)]));
				;}
    break;

  case 961:
#line 2266 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 962:
#line 2268 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 963:
#line 2270 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 964:
#line 2272 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 965:
#line 2274 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 966:
#line 2276 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 967:
#line 2278 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "//", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 968:
#line 2280 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 969:
#line 2282 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 970:
#line 2284 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 971:
#line 2286 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 972:
#line 2288 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 973:
#line 2290 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 974:
#line 2292 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 975:
#line 2294 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 976:
#line 2296 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 977:
#line 2299 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 978:
#line 2301 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 979:
#line 2303 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
    break;

  case 980:
#line 2306 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 981:
#line 2308 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 982:
#line 2310 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 983:
#line 2312 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 984:
#line 2314 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~",
												   (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
				;}
    break;

  case 985:
#line 2319 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~",
												   (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
				;}
    break;

  case 986:
#line 2324 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
											   list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
											   (yylsp[(2) - (5)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 987:
#line 2331 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~",
												   (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
				;}
    break;

  case 988:
#line 2336 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"),
											   list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
											   (yylsp[(2) - (6)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 989:
#line 2343 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*",
												   (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
				;}
    break;

  case 990:
#line 2348 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("ilike_escape"),
											   list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
											   (yylsp[(2) - (5)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 991:
#line 2355 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*",
												   (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
				;}
    break;

  case 992:
#line 2360 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("not_ilike_escape"),
											   list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
											   (yylsp[(2) - (6)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 993:
#line 2368 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)),
											   (yylsp[(2) - (4)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~",
												   (yyvsp[(1) - (4)].node), (PGNode *) n, (yylsp[(2) - (4)]));
				;}
    break;

  case 994:
#line 2376 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
											   (yylsp[(2) - (6)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~",
												   (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)]));
				;}
    break;

  case 995:
#line 2384 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)),
											   (yylsp[(2) - (5)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~",
												   (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)]));
				;}
    break;

  case 996:
#line 2392 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
											   (yylsp[(2) - (7)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~",
												   (yyvsp[(1) - (7)].node), (PGNode *) n, (yylsp[(2) - (7)]));
				;}
    break;

  case 997:
#line 2410 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					n->nulltesttype = PG_IS_NULL;
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 998:
#line 2418 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
					n->nulltesttype = PG_IS_NULL;
					n->location = (yylsp[(2) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 999:
#line 2426 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					n->nulltesttype = IS_NOT_NULL;
					n->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1000:
#line 2434 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					n->nulltesttype = IS_NOT_NULL;
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1001:
#line 2442 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
					n->nulltesttype = IS_NOT_NULL;
					n->location = (yylsp[(2) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1002:
#line 2450 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGLambdaFunction *n = makeNode(PGLambdaFunction);
				n->lhs = (yyvsp[(2) - (4)].list);
				n->rhs = (yyvsp[(4) - (4)].node);
				n->location = (yylsp[(2) - (4)]);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1003:
#line 2458 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGSingleArrowFunction *n = makeNode(PGSingleArrowFunction);
				n->lhs = (yyvsp[(1) - (3)].node);
				n->rhs = (yyvsp[(3) - (3)].node);
				n->location = (yylsp[(2) - (3)]);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1004:
#line 2466 "third_party/libpg_query/grammar/statements/select.y"
    {
							(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "->>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
			;}
    break;

  case 1005:
#line 2470 "third_party/libpg_query/grammar/statements/select.y"
    {
					if (list_length((yyvsp[(1) - (3)].list)) != 2)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("wrong number of parameters on left side of OVERLAPS expression"),
								 parser_errposition((yylsp[(1) - (3)]))));
					if (list_length((yyvsp[(3) - (3)].list)) != 2)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("wrong number of parameters on right side of OVERLAPS expression"),
								 parser_errposition((yylsp[(3) - (3)]))));
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"),
											   list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)),
											   (yylsp[(2) - (3)]));
				;}
    break;

  case 1006:
#line 2486 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = PG_IS_TRUE;
					b->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 1007:
#line 2494 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_TRUE;
					b->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 1008:
#line 2502 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_FALSE;
					b->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 1009:
#line 2510 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_FALSE;
					b->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 1010:
#line 2518 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_UNKNOWN;
					b->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 1011:
#line 2526 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_UNKNOWN;
					b->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 1012:
#line 2534 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
				;}
    break;

  case 1013:
#line 2538 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 1014:
#line 2542 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
				;}
    break;

  case 1015:
#line 2546 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
				;}
    break;

  case 1016:
#line 2550 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN,
												   "BETWEEN",
												   (yyvsp[(1) - (6)].node),
												   (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
												   (yylsp[(2) - (6)]));
				;}
    break;

  case 1017:
#line 2558 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN,
												   "NOT BETWEEN",
												   (yyvsp[(1) - (7)].node),
												   (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
												   (yylsp[(2) - (7)]));
				;}
    break;

  case 1018:
#line 2566 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM,
												   "BETWEEN SYMMETRIC",
												   (yyvsp[(1) - (6)].node),
												   (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
												   (yylsp[(2) - (6)]));
				;}
    break;

  case 1019:
#line 2574 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM,
												   "NOT BETWEEN SYMMETRIC",
												   (yyvsp[(1) - (7)].node),
												   (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
												   (yylsp[(2) - (7)]));
				;}
    break;

  case 1020:
#line 2582 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* in_expr returns a PGSubLink or a list of a_exprs */
					if (IsA((yyvsp[(3) - (3)].node), PGSubLink))
					{
						/* generate foo = ANY (subquery) */
						PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node);
						n->subLinkType = PG_ANY_SUBLINK;
						n->subLinkId = 0;
						n->testexpr = (yyvsp[(1) - (3)].node);
						n->operName = NIL;		/* show it's IN not = ANY */
						n->location = (yylsp[(2) - (3)]);
						(yyval.node) = (PGNode *)n;
					}
					else
					{
						/* generate scalar IN expression */
						(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
					}
				;}
    break;

  case 1021:
#line 2602 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* in_expr returns a PGSubLink or a list of a_exprs */
					if (IsA((yyvsp[(4) - (4)].node), PGSubLink))
					{
						/* generate NOT (foo = ANY (subquery)) */
						/* Make an = ANY node */
						PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node);
						n->subLinkType = PG_ANY_SUBLINK;
						n->subLinkId = 0;
						n->testexpr = (yyvsp[(1) - (4)].node);
						n->operName = NIL;		/* show it's IN not = ANY */
						n->location = (yylsp[(2) - (4)]);
						/* Stick a NOT on top; must have same parse location */
						(yyval.node) = makeNotExpr((PGNode *) n, (yylsp[(2) - (4)]));
					}
					else
					{
						/* generate scalar NOT IN expression */
						(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
					}
				;}
    break;

  case 1022:
#line 2624 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = (yyvsp[(3) - (4)].subquerytype);
					n->subLinkId = 0;
					n->testexpr = (yyvsp[(1) - (4)].node);
					n->operName = (yyvsp[(2) - (4)].list);
					n->subselect = (yyvsp[(4) - (4)].node);
					n->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1023:
#line 2635 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK)
						(yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
					else
						(yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 1024:
#line 2642 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * The SQL spec only allows DEFAULT in "contextually typed
					 * expressions", but for us, it's easier to allow it in
					 * any a_expr and then throw error during parse analysis
					 * if it's in an inappropriate context.  This way also
					 * lets us say something smarter than "syntax error".
					 */
					PGSetToDefault *n = makeNode(PGSetToDefault);
					/* parse analysis will fill in the rest */
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1025:
#line 2656 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAStar *star = makeNode(PGAStar);
					star->expr = (yyvsp[(3) - (4)].node);
					star->columns = true;
					star->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *) star;
				;}
    break;

  case 1026:
#line 2664 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("unpack"), list_make1((yyvsp[(3) - (4)].node)), (yylsp[(1) - (4)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1027:
#line 2669 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAStar *star = makeNode(PGAStar);
					star->expr = (yyvsp[(4) - (5)].node);
					star->columns = true;
					star->location = (yylsp[(1) - (5)]);

					PGFuncCall *n = makeFuncCall(SystemFuncName("unpack"), list_make1((PGNode *)star), (yylsp[(1) - (5)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1028:
#line 2679 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAStar *star = makeNode(PGAStar);
					star->except_list = (yyvsp[(2) - (4)].list);
					star->replace_list = (yyvsp[(3) - (4)].list);
					star->rename_list = (yyvsp[(4) - (4)].list);
					star->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *) star;
				;}
    break;

  case 1029:
#line 2688 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAStar *star = makeNode(PGAStar);
					star->relation = (yyvsp[(1) - (6)].str);
					star->except_list = (yyvsp[(4) - (6)].list);
					star->replace_list = (yyvsp[(5) - (6)].list);
					star->rename_list = (yyvsp[(6) - (6)].list);
					star->location = (yylsp[(1) - (6)]);
					(yyval.node) = (PGNode *) star;
				;}
    break;

  case 1030:
#line 2709 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1031:
#line 2711 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;}
    break;

  case 1032:
#line 2713 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1033:
#line 2715 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1034:
#line 2717 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1035:
#line 2719 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1036:
#line 2721 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1037:
#line 2723 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1038:
#line 2725 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "//", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1039:
#line 2727 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1040:
#line 2729 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1041:
#line 2731 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1042:
#line 2733 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1043:
#line 2735 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1044:
#line 2737 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1045:
#line 2739 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1046:
#line 2741 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1047:
#line 2743 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1048:
#line 2745 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1049:
#line 2747 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1050:
#line 2749 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
    break;

  case 1051:
#line 2751 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
				;}
    break;

  case 1052:
#line 2755 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 1053:
#line 2759 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
				;}
    break;

  case 1054:
#line 2763 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
				;}
    break;

  case 1056:
#line 2778 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].list))
					{
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = (PGNode *) (yyvsp[(1) - (2)].node);
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (PGNode *) n;
					}
					else
						(yyval.node) = (PGNode *) (yyvsp[(1) - (2)].node);
				;}
    break;

  case 1057:
#line 2791 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1058:
#line 2792 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1059:
#line 2794 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = PG_EXPR_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(1) - (1)].node);
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1060:
#line 2805 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * Because the select_with_parens nonterminal is designed
					 * to "eat" as many levels of parens as possible, the
					 * '(' a_expr ')' opt_indirection production above will
					 * fail to match a sub-SELECT with indirection decoration;
					 * the sub-SELECT won't be regarded as an a_expr as long
					 * as there are parens around it.  To support applying
					 * subscripting or field selection to a sub-SELECT result,
					 * we need this redundant-looking production.
					 */
					PGSubLink *n = makeNode(PGSubLink);
					PGAIndirection *a = makeNode(PGAIndirection);
					n->subLinkType = PG_EXPR_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(1) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					a->arg = (PGNode *)n;
					a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.node) = (PGNode *)a;
				;}
    break;

  case 1061:
#line 2829 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = PG_EXISTS_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1062:
#line 2840 "third_party/libpg_query/grammar/statements/select.y"
    {
				  PGGroupingFunc *g = makeNode(PGGroupingFunc);
				  g->args = (yyvsp[(3) - (4)].list);
				  g->location = (yylsp[(1) - (4)]);
				  (yyval.node) = (PGNode *)g;
			  ;}
    break;

  case 1063:
#line 2850 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(2) - (3)].node);
				;}
    break;

  case 1064:
#line 2854 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 1065:
#line 2857 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)]));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1066:
#line 2865 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeParamRef(0, (yylsp[(1) - (1)]));
				;}
    break;

  case 1067:
#line 2869 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGParamRef *p = makeNode(PGParamRef);
					p->number = (yyvsp[(1) - (1)].ival);
					p->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *) p;
				;}
    break;

  case 1068:
#line 2876 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeNamedParamRef((yyvsp[(2) - (2)].str), (yylsp[(1) - (2)]));
				;}
    break;

  case 1076:
#line 2890 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = PG_ARRAY_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NULL;
					n->subselect = (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(2) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1077:
#line 2900 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGList *func_name = list_make1(makeString("construct_array"));
				PGFuncCall *n = makeFuncCall(func_name, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1078:
#line 2906 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGPositionalReference *n = makeNode(PGPositionalReference);
					n->position = (yyvsp[(2) - (2)].ival);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1079:
#line 2914 "third_party/libpg_query/grammar/statements/select.y"
    {
                PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)]));
                (yyval.node) = (PGNode *) n;
            ;}
    break;

  case 1080:
#line 2921 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *f = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)]));
					(yyval.node) = (PGNode *) f;
				;}
    break;

  case 1081:
#line 2928 "third_party/libpg_query/grammar/statements/select.y"
    {
                    PGList *key_list = NULL;
                    PGList *value_list = NULL;
                    PGListCell *lc;
                    PGList *entry_list = (yyvsp[(3) - (4)].list);
                    foreach(lc, entry_list)
                    {
                        PGList *l = (PGList *) lc->data.ptr_value;
                        key_list = lappend(key_list, (PGNode *) l->head->data.ptr_value);
                        value_list = lappend(value_list, (PGNode *) l->tail->data.ptr_value);
                    }
                    PGNode *keys   = (PGNode *) makeFuncCall(SystemFuncName("list_value"), key_list, (yylsp[(3) - (4)]));
                    PGNode *values = (PGNode *) makeFuncCall(SystemFuncName("list_value"), value_list, (yylsp[(3) - (4)]));
                    PGFuncCall *f = makeFuncCall(SystemFuncName("map"), list_make2(keys, values), (yylsp[(3) - (4)]));
                    (yyval.node) = (PGNode *) f;
                ;}
    break;

  case 1082:
#line 2948 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)]));
				;}
    break;

  case 1083:
#line 2952 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (5)].list), NIL, (yylsp[(1) - (5)]));
					n->agg_order = (yyvsp[(3) - (5)].list);
					n->agg_ignore_nulls = (yyvsp[(4) - (5)].ignorenulls);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1084:
#line 2959 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(3) - (6)].list), (yylsp[(1) - (6)]));
					n->agg_order = (yyvsp[(4) - (6)].list);
					n->agg_ignore_nulls = (yyvsp[(5) - (6)].ignorenulls);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1085:
#line 2966 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), (yylsp[(1) - (7)]));
					n->func_variadic = true;
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_ignore_nulls = (yyvsp[(6) - (7)].ignorenulls);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1086:
#line 2974 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (9)].list), lappend((yyvsp[(3) - (9)].list), (yyvsp[(6) - (9)].node)), (yylsp[(1) - (9)]));
					n->func_variadic = true;
					n->agg_order = (yyvsp[(7) - (9)].list);
					n->agg_ignore_nulls = (yyvsp[(8) - (9)].ignorenulls);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1087:
#line 2982 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)]));
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_ignore_nulls = (yyvsp[(6) - (7)].ignorenulls);
					/* Ideally we'd mark the PGFuncCall node to indicate
					 * "must be an aggregate", but there's no provision
					 * for that in PGFuncCall at the moment.
					 */
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1088:
#line 2993 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)]));
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_ignore_nulls = (yyvsp[(6) - (7)].ignorenulls);
					n->agg_distinct = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1089:
#line 3013 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (5)].node);
					/*
					 * The order clause for WITHIN GROUP and the one for
					 * plain-aggregate ORDER BY share a field, so we have to
					 * check here that at most one is present.  We also check
					 * for DISTINCT and VARIADIC here to give a better error
					 * location.  Other consistency checks are deferred to
					 * parse analysis.
					 */
					if ((yyvsp[(2) - (5)].list) != NIL)
					{
						if (n->agg_order != NIL)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"),
									 parser_errposition((yylsp[(2) - (5)]))));
						if (n->agg_distinct)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("cannot use DISTINCT with WITHIN GROUP"),
									 parser_errposition((yylsp[(2) - (5)]))));
						if (n->func_variadic)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("cannot use VARIADIC with WITHIN GROUP"),
									 parser_errposition((yylsp[(2) - (5)]))));
						n->agg_order = (yyvsp[(2) - (5)].list);
						n->agg_within_group = true;
					}
					n->agg_filter = (yyvsp[(3) - (5)].node);
					n->export_state = (yyvsp[(4) - (5)].boolean);
					n->over = (yyvsp[(5) - (5)].windef);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1090:
#line 3049 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1091:
#line 3059 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1092:
#line 3060 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1093:
#line 3068 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"),
											   list_make1((yyvsp[(4) - (5)].node)),
											   (yylsp[(1) - (5)]));
				;}
    break;

  case 1094:
#line 3074 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 0, (yylsp[(1) - (6)])); ;}
    break;

  case 1095:
#line 3076 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 1, (yylsp[(1) - (6)])); ;}
    break;

  case 1096:
#line 3078 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1097:
#line 3082 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* overlay(A PLACING B FROM C FOR D) is converted to
					 * overlay(A, B, C, D)
					 * overlay(A PLACING B FROM C) is converted to
					 * overlay(A, B, C)
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1098:
#line 3091 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* position(A in B) is converted to position_inverse(A, B) */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("__internal_position_operator"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1099:
#line 3096 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* substring(A from B for C) is converted to
					 * substring(A, B, C) - thomas 2000-11-28
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1100:
#line 3103 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* TREAT(expr AS target) converts expr of a particular type to target,
					 * which is defined to be a subtype of the original expression.
					 * In SQL99, this is intended for use with structured UDTs,
					 * but let's make this a generally useful form allowing stronger
					 * coercions than are handled by implicit casting.
					 *
					 * Convert SystemTypeName() to SystemFuncName() even though
					 * at the moment they result in the same thing.
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str),
												list_make1((yyvsp[(3) - (6)].node)),
												(yylsp[(1) - (6)]));
				;}
    break;

  case 1101:
#line 3118 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* various trim expressions are defined in SQL
					 * - thomas 1997-07-19
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 1102:
#line 3125 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 1103:
#line 3129 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 1104:
#line 3133 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1105:
#line 3137 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]));
				;}
    break;

  case 1106:
#line 3141 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCoalesceExpr *c = makeNode(PGCoalesceExpr);
					c->args = (yyvsp[(3) - (4)].list);
					c->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *)c;
				;}
    break;

  case 1107:
#line 3151 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGLambdaFunction *lambda = makeNode(PGLambdaFunction);
					lambda->lhs = (yyvsp[(4) - (7)].list);
					lambda->rhs = (yyvsp[(2) - (7)].node);
					lambda->location = (yylsp[(1) - (7)]);
					PGFuncCall *n = makeFuncCall(SystemFuncName("list_apply"), list_make2((yyvsp[(6) - (7)].node), lambda), (yylsp[(1) - (7)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1108:
#line 3160 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGLambdaFunction *lambda = makeNode(PGLambdaFunction);
					lambda->lhs = (yyvsp[(4) - (9)].list);
					lambda->rhs = (yyvsp[(2) - (9)].node);
					lambda->location = (yylsp[(1) - (9)]);

					PGLambdaFunction *lambda_filter = makeNode(PGLambdaFunction);
					lambda_filter->lhs = (yyvsp[(4) - (9)].list);
					lambda_filter->rhs = (yyvsp[(8) - (9)].node);
					lambda_filter->location = (yylsp[(8) - (9)]);
					PGFuncCall *filter = makeFuncCall(SystemFuncName("list_filter"), list_make2((yyvsp[(6) - (9)].node), lambda_filter), (yylsp[(1) - (9)]));
					PGFuncCall *n = makeFuncCall(SystemFuncName("list_apply"), list_make2(filter, lambda), (yylsp[(1) - (9)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1109:
#line 3181 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
    break;

  case 1110:
#line 3182 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1111:
#line 3186 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(4) - (5)].node); ;}
    break;

  case 1112:
#line 3187 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(3) - (4)].node); ;}
    break;

  case 1113:
#line 3188 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1114:
#line 3192 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1115:
#line 3193 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1116:
#line 3200 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1117:
#line 3201 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1118:
#line 3205 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;}
    break;

  case 1119:
#line 3207 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;}
    break;

  case 1120:
#line 3212 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(3) - (3)].windef);
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.windef) = n;
				;}
    break;

  case 1121:
#line 3220 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;}
    break;

  case 1122:
#line 3222 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->name = (yyvsp[(2) - (2)].str);
					n->refname = NULL;
					n->partitionClause = NIL;
					n->orderClause = NIL;
					n->frameOptions = FRAMEOPTION_DEFAULTS;
					n->startOffset = NULL;
					n->endOffset = NULL;
					n->location = (yylsp[(2) - (2)]);
					(yyval.windef) = n;
				;}
    break;

  case 1123:
#line 3235 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.windef) = NULL; ;}
    break;

  case 1124:
#line 3240 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->name = NULL;
					n->refname = (yyvsp[(2) - (6)].str);
					n->partitionClause = (yyvsp[(3) - (6)].list);
					n->orderClause = (yyvsp[(4) - (6)].list);
					/* copy relevant fields of opt_frame_clause */
					n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions;
					n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset;
					n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset;
					n->location = (yylsp[(1) - (6)]);
					(yyval.windef) = n;
				;}
    break;

  case 1125:
#line 3265 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1126:
#line 3266 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1127:
#line 3269 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 1128:
#line 3270 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1129:
#line 3279 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(2) - (3)].windef);

					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
					n->frameOptions |= (yyvsp[(3) - (3)].ival);
					(yyval.windef) = n;
				;}
    break;

  case 1130:
#line 3287 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(2) - (3)].windef);

					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
					n->frameOptions |= (yyvsp[(3) - (3)].ival);
					(yyval.windef) = n;
				;}
    break;

  case 1131:
#line 3295 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(2) - (3)].windef);

					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS;
					n->frameOptions |= (yyvsp[(3) - (3)].ival);
					(yyval.windef) = n;
				;}
    break;

  case 1132:
#line 3303 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);

					n->frameOptions = FRAMEOPTION_DEFAULTS;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1133:
#line 3314 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(1) - (1)].windef);

					/* reject invalid cases */
					if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
						ereport(ERROR,
								(errcode(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
								 parser_errposition((yylsp[(1) - (1)]))));
					if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING)
						ereport(ERROR,
								(errcode(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame starting from following row cannot end with current row"),
								 parser_errposition((yylsp[(1) - (1)]))));
					n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
					(yyval.windef) = n;
				;}
    break;

  case 1134:
#line 3332 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n1 = (yyvsp[(2) - (4)].windef);
					PGWindowDef *n2 = (yyvsp[(4) - (4)].windef);

					/* form merged options */
					int		frameOptions = n1->frameOptions;
					/* shift converts START_ options to END_ options */
					frameOptions |= n2->frameOptions << 1;
					frameOptions |= FRAMEOPTION_BETWEEN;
					/* reject invalid cases */
					if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
						ereport(ERROR,
								(errcode(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
								 parser_errposition((yylsp[(2) - (4)]))));
					if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
						ereport(ERROR,
								(errcode(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame end cannot be UNBOUNDED PRECEDING"),
								 parser_errposition((yylsp[(4) - (4)]))));
					if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
						(frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING))
						ereport(ERROR,
								(errcode(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame starting from current row cannot have preceding rows"),
								 parser_errposition((yylsp[(4) - (4)]))));
					if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) &&
						(frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING |
										 FRAMEOPTION_END_CURRENT_ROW)))
						ereport(ERROR,
								(errcode(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame starting from following row cannot have preceding rows"),
								 parser_errposition((yylsp[(4) - (4)]))));
					n1->frameOptions = frameOptions;
					n1->endOffset = n2->startOffset;
					(yyval.windef) = n1;
				;}
    break;

  case 1135:
#line 3378 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);

					n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1136:
#line 3387 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);

					n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1137:
#line 3396 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);

					n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1138:
#line 3405 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);

					n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING;
					n->startOffset = (yyvsp[(1) - (2)].node);
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1139:
#line 3414 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);

					n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING;
					n->startOffset = (yyvsp[(1) - (2)].node);
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1140:
#line 3425 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; ;}
    break;

  case 1141:
#line 3426 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; ;}
    break;

  case 1142:
#line 3427 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; ;}
    break;

  case 1143:
#line 3428 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1144:
#line 3429 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1145:
#line 3443 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1146:
#line 3444 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1147:
#line 3447 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list);;}
    break;

  case 1148:
#line 3448 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;}
    break;

  case 1149:
#line 3452 "third_party/libpg_query/grammar/statements/select.y"
    {
		PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
		na->name = (yyvsp[(1) - (3)].str);
		na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
		na->argnumber = -1;
		na->location = (yylsp[(1) - (3)]);
		(yyval.node) = (PGNode *) na;
	;}
    break;

  case 1150:
#line 3462 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1151:
#line 3463 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1152:
#line 3467 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1153:
#line 3468 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1154:
#line 3473 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
			;}
    break;

  case 1155:
#line 3479 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 1156:
#line 3480 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1157:
#line 3485 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1158:
#line 3486 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1159:
#line 3491 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1160:
#line 3492 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1161:
#line 3495 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
    break;

  case 1162:
#line 3496 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
    break;

  case 1163:
#line 3497 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.subquerytype) = PG_ALL_SUBLINK; ;}
    break;

  case 1164:
#line 3500 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1165:
#line 3501 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;}
    break;

  case 1166:
#line 3504 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "+"; ;}
    break;

  case 1167:
#line 3505 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "-"; ;}
    break;

  case 1168:
#line 3506 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "*"; ;}
    break;

  case 1169:
#line 3507 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "/"; ;}
    break;

  case 1170:
#line 3508 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "//"; ;}
    break;

  case 1171:
#line 3509 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "%"; ;}
    break;

  case 1172:
#line 3510 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "^"; ;}
    break;

  case 1173:
#line 3511 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "**"; ;}
    break;

  case 1174:
#line 3512 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "<"; ;}
    break;

  case 1175:
#line 3513 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = ">"; ;}
    break;

  case 1176:
#line 3514 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "="; ;}
    break;

  case 1177:
#line 3515 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "<="; ;}
    break;

  case 1178:
#line 3516 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = ">="; ;}
    break;

  case 1179:
#line 3517 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "<>"; ;}
    break;

  case 1180:
#line 3521 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1181:
#line 3523 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1182:
#line 3528 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1183:
#line 3530 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1184:
#line 3535 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1185:
#line 3537 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1186:
#line 3539 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("~~")); ;}
    break;

  case 1187:
#line 3541 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("!~~")); ;}
    break;

  case 1188:
#line 3543 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("~~~")); ;}
    break;

  case 1189:
#line 3545 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("!~~~")); ;}
    break;

  case 1190:
#line 3547 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("~~*")); ;}
    break;

  case 1191:
#line 3549 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("!~~*")); ;}
    break;

  case 1192:
#line 3563 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1193:
#line 3565 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1194:
#line 3570 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1195:
#line 3574 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1196:
#line 3581 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1197:
#line 3586 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (2)].list);
				;}
    break;

  case 1198:
#line 3592 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1199:
#line 3596 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1200:
#line 3603 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1201:
#line 3608 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (2)].list);
				;}
    break;

  case 1202:
#line 3615 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1203:
#line 3619 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = NULL;
				;}
    break;

  case 1204:
#line 3628 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1205:
#line 3632 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1206:
#line 3638 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 1207:
#line 3642 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
					na->name = (yyvsp[(1) - (3)].str);
					na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
					na->argnumber = -1;		/* until determined */
					na->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) na;
				;}
    break;

  case 1208:
#line 3651 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
					na->name = (yyvsp[(1) - (3)].str);
					na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
					na->argnumber = -1;		/* until determined */
					na->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) na;
				;}
    break;

  case 1209:
#line 3661 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
    break;

  case 1210:
#line 3662 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;}
    break;

  case 1211:
#line 3667 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1212:
#line 3670 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1213:
#line 3677 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1214:
#line 3678 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "year"; ;}
    break;

  case 1215:
#line 3679 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "month"; ;}
    break;

  case 1216:
#line 3680 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "day"; ;}
    break;

  case 1217:
#line 3681 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "hour"; ;}
    break;

  case 1218:
#line 3682 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "minute"; ;}
    break;

  case 1219:
#line 3683 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "second"; ;}
    break;

  case 1220:
#line 3684 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "millisecond"; ;}
    break;

  case 1221:
#line 3685 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "microsecond"; ;}
    break;

  case 1222:
#line 3686 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "week"; ;}
    break;

  case 1223:
#line 3687 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "quarter"; ;}
    break;

  case 1224:
#line 3688 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "decade"; ;}
    break;

  case 1225:
#line 3689 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "century"; ;}
    break;

  case 1226:
#line 3690 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "millennium"; ;}
    break;

  case 1227:
#line 3691 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1228:
#line 3702 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 1229:
#line 3706 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1230:
#line 3713 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1231:
#line 3719 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1232:
#line 3720 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1233:
#line 3737 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1234:
#line 3741 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* not legal per SQL99, but might as well allow it */
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node));
				;}
    break;

  case 1235:
#line 3746 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 1236:
#line 3750 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * Since there are no cases where this syntax allows
					 * a textual FOR value, we forcibly cast the argument
					 * to int4.  The possible matches in pg_proc are
					 * substring(text,int4) and substring(text,text),
					 * and we don't want the parser to choose the latter,
					 * which it is likely to do if the second argument
					 * is unknown or doesn't have an implicit cast to int4.
					 */
					(yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1),
									makeTypeCast((yyvsp[(2) - (2)].node),
												 SystemTypeName("int4"), 0, -1));
				;}
    break;

  case 1237:
#line 3765 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1238:
#line 3769 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1239:
#line 3773 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1240:
#line 3776 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1241:
#line 3779 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;}
    break;

  case 1242:
#line 3780 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1243:
#line 3781 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1244:
#line 3785 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subselect = (yyvsp[(1) - (1)].node);
					/* other fields will be filled later */
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1245:
#line 3791 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;}
    break;

  case 1247:
#line 3793 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].node); ;}
    break;

  case 1248:
#line 3804 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCaseExpr *c = makeNode(PGCaseExpr);
					c->casetype = InvalidOid; /* not analyzed yet */
					c->arg = (PGExpr *) (yyvsp[(2) - (5)].node);
					c->args = (yyvsp[(3) - (5)].list);
					c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node);
					c->location = (yylsp[(1) - (5)]);
					(yyval.node) = (PGNode *)c;
				;}
    break;

  case 1249:
#line 3817 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1250:
#line 3818 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1251:
#line 3823 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCaseWhen *w = makeNode(PGCaseWhen);
					w->expr = (PGExpr *) (yyvsp[(2) - (4)].node);
					w->result = (PGExpr *) (yyvsp[(4) - (4)].node);
					w->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *)w;
				;}
    break;

  case 1252:
#line 3833 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1253:
#line 3834 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1254:
#line 3837 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1255:
#line 3838 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1256:
#line 3847 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
		;}
    break;

  case 1257:
#line 3853 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
				;}
    break;

  case 1258:
#line 3857 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
				;}
    break;

  case 1259:
#line 3864 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = false;
					ai->lidx = NULL;
					ai->uidx = (yyvsp[(2) - (3)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1260:
#line 3872 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = true;
					ai->lidx = (yyvsp[(2) - (5)].node);
					ai->uidx = (yyvsp[(4) - (5)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1261:
#line 3879 "third_party/libpg_query/grammar/statements/select.y"
    {
				    	PGAIndices *ai = makeNode(PGAIndices);
				    	ai->is_slice = true;
				    	ai->lidx = (yyvsp[(2) - (7)].node);
				    	ai->uidx = (yyvsp[(4) - (7)].node);
				    	ai->step = (yyvsp[(6) - (7)].node);
				    	(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1262:
#line 3887 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = true;
					ai->lidx = (yyvsp[(2) - (7)].node);
					ai->step = (yyvsp[(6) - (7)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1263:
#line 3897 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1264:
#line 3898 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1265:
#line 3903 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1266:
#line 3904 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1267:
#line 3908 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1268:
#line 3909 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(NULL); ;}
    break;

  case 1269:
#line 3910 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1270:
#line 3915 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(3) - (3)].list)) {
						PGFuncCall *n = makeFuncCall(list_make1(makeString((yyvsp[(2) - (3)].str))), (yyvsp[(3) - (3)].list)->head->data.ptr_value ? (yyvsp[(3) - (3)].list) : NULL, (yylsp[(2) - (3)]));
						(yyval.node) = (PGNode *) n;
					} else {
						(yyval.node) = (PGNode *) makeString((yyvsp[(2) - (3)].str));
					}
				;}
    break;

  case 1271:
#line 3924 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = false;
					ai->lidx = NULL;
					ai->uidx = (yyvsp[(2) - (3)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1272:
#line 3932 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = true;
					ai->lidx = (yyvsp[(2) - (5)].node);
					ai->uidx = (yyvsp[(4) - (5)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1273:
#line 3939 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = true;
					ai->lidx = (yyvsp[(2) - (7)].node);
					ai->uidx = (yyvsp[(4) - (7)].node);
					ai->step = (yyvsp[(6) - (7)].node);
                 			(yyval.node) = (PGNode *) ai;
                		;}
    break;

  case 1274:
#line 3948 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = true;
					ai->lidx = (yyvsp[(2) - (7)].node);
					ai->step = (yyvsp[(6) - (7)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1275:
#line 3963 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1276:
#line 3964 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1279:
#line 3980 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1280:
#line 3981 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1281:
#line 3985 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1282:
#line 3986 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 1283:
#line 3990 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1284:
#line 3991 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1285:
#line 3995 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(3) - (3)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node);
					(yyval.target)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1286:
#line 4011 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(2) - (2)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node);
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1287:
#line 4019 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node);
					(yyval.target)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1288:
#line 4027 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(1) - (3)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(3) - (3)].node);
					(yyval.target)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1289:
#line 4036 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1290:
#line 4037 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;}
    break;

  case 1291:
#line 4042 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.list) = list_make1((yyvsp[(1) - (1)].str));
			;}
    break;

  case 1292:
#line 4046 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].str));
			;}
    break;

  case 1293:
#line 4052 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 1294:
#line 4054 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1295:
#line 4058 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1296:
#line 4059 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1297:
#line 4063 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1298:
#line 4064 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1299:
#line 4067 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1300:
#line 4071 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 1301:
#line 4072 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1302:
#line 4076 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1303:
#line 4077 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1304:
#line 4080 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1305:
#line 4081 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;}
    break;

  case 1306:
#line 4082 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1307:
#line 4085 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].str)); ;}
    break;

  case 1308:
#line 4089 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 1309:
#line 4090 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1310:
#line 4094 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1311:
#line 4095 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1312:
#line 4097 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1313:
#line 4098 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;}
    break;

  case 1314:
#line 4099 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1315:
#line 4109 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
    break;

  case 1316:
#line 4110 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;}
    break;

  case 1317:
#line 4115 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1318:
#line 4117 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1319:
#line 4122 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1320:
#line 4123 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1321:
#line 4127 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1322:
#line 4128 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1323:
#line 4131 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1324:
#line 4143 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1325:
#line 4146 "third_party/libpg_query/grammar/statements/select.y"
    {
						(yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)),
											 yyscanner);
					;}
    break;

  case 1326:
#line 4157 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
				;}
    break;

  case 1327:
#line 4161 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1328:
#line 4165 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].list))
					{
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)]));
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (PGNode *) n;
					}
					else
						(yyval.node) = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)]));
				;}
    break;

  case 1329:
#line 4177 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1330:
#line 4181 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* This is a bit constant per SQL99:
					 * Without Feature F511, "BIT data type",
					 * a <general literal> shall not be a
					 * <bit string literal> or a <hex string literal>.
					 */
					(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1331:
#line 4190 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* generic type 'literal' syntax */
					PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
					t->location = (yylsp[(1) - (2)]);
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t);
				;}
    break;

  case 1332:
#line 4197 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* generic syntax with a type modifier */
					PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (7)].list));
					PGListCell *lc;

					/*
					 * We must use func_arg_list and opt_sort_clause in the
					 * production to avoid reduce/reduce conflicts, but we
					 * don't actually wish to allow PGNamedArgExpr in this
					 * context, ORDER BY, nor IGNORE NULLS.
					 */
					foreach(lc, (yyvsp[(3) - (7)].list))
					{
						PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc);

						if (IsA(arg, PGNamedArgExpr))
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("type modifier cannot have parameter name"),
									 parser_errposition(arg->location)));
					}
					if ((yyvsp[(4) - (7)].list) != NIL)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("type modifier cannot have ORDER BY"),
									 parser_errposition((yylsp[(4) - (7)]))));
					if ((yyvsp[(5) - (7)].ignorenulls) != false)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("type modifier cannot have IGNORE NULLS"),
									 parser_errposition((yylsp[(5) - (7)]))));


					t->typmods = (yyvsp[(3) - (7)].list);
					t->location = (yylsp[(1) - (7)]);
					(yyval.node) = makeStringConstCast((yyvsp[(7) - (7)].str), (yylsp[(7) - (7)]), t);
				;}
    break;

  case 1333:
#line 4235 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
				;}
    break;

  case 1334:
#line 4239 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntervalNode((yyvsp[(3) - (5)].node), (yylsp[(3) - (5)]), (yyvsp[(5) - (5)].list));
				;}
    break;

  case 1335:
#line 4243 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list));
				;}
    break;

  case 1336:
#line 4247 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list));
				;}
    break;

  case 1337:
#line 4251 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)]));
				;}
    break;

  case 1338:
#line 4255 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)]));
				;}
    break;

  case 1339:
#line 4259 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
				;}
    break;

  case 1340:
#line 4264 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 1341:
#line 4281 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1342:
#line 4282 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1343:
#line 4283 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1344:
#line 4286 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1345:
#line 4287 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1346:
#line 4288 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1347:
#line 4291 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1348:
#line 4292 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1349:
#line 4293 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1350:
#line 4296 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1351:
#line 4297 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 1352:
#line 4301 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
    break;

  case 1353:
#line 4303 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1354:
#line 4307 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1355:
#line 4308 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1357:
#line 4315 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1358:
#line 4316 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1359:
#line 8 "third_party/libpg_query/grammar/statements/prepare.y"
    {
					PGPrepareStmt *n = makeNode(PGPrepareStmt);
					n->name = (yyvsp[(2) - (5)].str);
					n->argtypes = (yyvsp[(3) - (5)].list);
					n->query = (yyvsp[(5) - (5)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1360:
#line 18 "third_party/libpg_query/grammar/statements/prepare.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1361:
#line 19 "third_party/libpg_query/grammar/statements/prepare.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1368:
#line 8 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
					if ((yyvsp[(3) - (4)].range)->catalogname) {
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("CREATE SCHEMA too many dots: expected \"catalog.schema\" or \"schema\""),
								 parser_errposition((yylsp[(3) - (4)]))));
					}
					if ((yyvsp[(3) - (4)].range)->schemaname) {
						n->catalogname = (yyvsp[(3) - (4)].range)->schemaname;
						n->schemaname = (yyvsp[(3) - (4)].range)->relname;
					} else {
						n->schemaname = (yyvsp[(3) - (4)].range)->relname;
					}
					n->schemaElts = (yyvsp[(4) - (4)].list);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1369:
#line 27 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
					if ((yyvsp[(6) - (7)].range)->catalogname) {
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("CREATE SCHEMA too many dots: expected \"catalog.schema\" or \"schema\""),
								 parser_errposition((yylsp[(6) - (7)]))));
					}
					if ((yyvsp[(6) - (7)].range)->schemaname) {
						n->catalogname = (yyvsp[(6) - (7)].range)->schemaname;
						n->schemaname = (yyvsp[(6) - (7)].range)->relname;
					} else {
						n->schemaname = (yyvsp[(6) - (7)].range)->relname;
					}
					if ((yyvsp[(7) - (7)].list) != NIL)
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
								 parser_errposition((yylsp[(7) - (7)]))));
					n->schemaElts = (yyvsp[(7) - (7)].list);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1370:
#line 51 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
					if ((yyvsp[(5) - (6)].range)->catalogname) {
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("CREATE SCHEMA too many dots: expected \"catalog.schema\" or \"schema\""),
								 parser_errposition((yylsp[(5) - (6)]))));
					}
					if ((yyvsp[(5) - (6)].range)->schemaname) {
						n->catalogname = (yyvsp[(5) - (6)].range)->schemaname;
						n->schemaname = (yyvsp[(5) - (6)].range)->relname;
					} else {
						n->schemaname = (yyvsp[(5) - (6)].range)->relname;
					}
					n->schemaElts = (yyvsp[(6) - (6)].list);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1371:
#line 74 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					if ((yyloc) < 0)			/* see comments for YYLLOC_DEFAULT */
						(yyloc) = (yylsp[(2) - (2)]);
					(yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 1372:
#line 80 "third_party/libpg_query/grammar/statements/create_schema.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1377:
#line 11 "third_party/libpg_query/grammar/statements/index.y"
    {
					PGIndexStmt *n = makeNode(PGIndexStmt);
					n->unique = (yyvsp[(2) - (13)].boolean);
					n->concurrent = (yyvsp[(4) - (13)].boolean);
					n->idxname = (yyvsp[(5) - (13)].str);
					n->relation = (yyvsp[(7) - (13)].range);
					n->accessMethod = (yyvsp[(8) - (13)].str);
					n->indexParams = (yyvsp[(10) - (13)].list);
					n->options = (yyvsp[(12) - (13)].list);
					n->whereClause = (yyvsp[(13) - (13)].node);
					n->excludeOpNames = NIL;
					n->idxcomment = NULL;
					n->indexOid = InvalidOid;
					n->oldNode = InvalidOid;
					n->primary = false;
					n->isconstraint = false;
					n->deferrable = false;
					n->initdeferred = false;
					n->transformed = false;
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1378:
#line 36 "third_party/libpg_query/grammar/statements/index.y"
    {
					PGIndexStmt *n = makeNode(PGIndexStmt);
					n->unique = (yyvsp[(2) - (16)].boolean);
					n->concurrent = (yyvsp[(4) - (16)].boolean);
					n->idxname = (yyvsp[(8) - (16)].str);
					n->relation = (yyvsp[(10) - (16)].range);
					n->accessMethod = (yyvsp[(11) - (16)].str);
					n->indexParams = (yyvsp[(13) - (16)].list);
					n->options = (yyvsp[(15) - (16)].list);
					n->whereClause = (yyvsp[(16) - (16)].node);
					n->excludeOpNames = NIL;
					n->idxcomment = NULL;
					n->indexOid = InvalidOid;
					n->oldNode = InvalidOid;
					n->primary = false;
					n->isconstraint = false;
					n->deferrable = false;
					n->initdeferred = false;
					n->transformed = false;
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1379:
#line 62 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1380:
#line 66 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 1381:
#line 67 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;}
    break;

  case 1382:
#line 72 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1383:
#line 73 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1384:
#line 78 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1385:
#line 79 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1386:
#line 83 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1387:
#line 84 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1388:
#line 89 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1389:
#line 90 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1390:
#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1391:
#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->newschema = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1392:
#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1393:
#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->newschema = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1394:
#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1395:
#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(5) - (8)].range);
					n->newschema = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1396:
#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y"
    {
					PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
					n->force = true;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1397:
#line 13 "third_party/libpg_query/grammar/statements/checkpoint.y"
    {
					PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
					n->force = false;
					n->name = (yyvsp[(2) - (2)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1398:
#line 22 "third_party/libpg_query/grammar/statements/checkpoint.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1399:
#line 23 "third_party/libpg_query/grammar/statements/checkpoint.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1400:
#line 8 "third_party/libpg_query/grammar/statements/comment_on.y"
    {
					PGCommentOnStmt *n = makeNode(PGCommentOnStmt);
					n->object_type = (yyvsp[(3) - (6)].objtype);
					n->name = (yyvsp[(4) - (6)].range);
					n->value = (yyvsp[(6) - (6)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1401:
#line 16 "third_party/libpg_query/grammar/statements/comment_on.y"
    {
                    PGCommentOnStmt *n = makeNode(PGCommentOnStmt);
                    n->object_type = PG_OBJECT_COLUMN;
                    n->column_expr = (yyvsp[(4) - (6)].node);
                    n->value = (yyvsp[(6) - (6)].node);
                    (yyval.node) = (PGNode *)n;
                ;}
    break;

  case 1402:
#line 26 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;}
    break;

  case 1403:
#line 27 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;}
    break;

  case 1404:
#line 30 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_TABLE; ;}
    break;

  case 1405:
#line 31 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;}
    break;

  case 1406:
#line 32 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
    break;

  case 1407:
#line 33 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
    break;

  case 1408:
#line 34 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; ;}
    break;

  case 1409:
#line 35 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_VIEW; ;}
    break;

  case 1410:
#line 36 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_DATABASE; ;}
    break;

  case 1411:
#line 37 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_INDEX; ;}
    break;

  case 1412:
#line 38 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_SCHEMA; ;}
    break;

  case 1413:
#line 39 "third_party/libpg_query/grammar/statements/comment_on.y"
    { (yyval.objtype) = PG_OBJECT_TYPE; ;}
    break;

  case 1414:
#line 8 "third_party/libpg_query/grammar/statements/export.y"
    {
					PGExportStmt *n = makeNode(PGExportStmt);
					n->database = NULL;
					n->filename = (yyvsp[(3) - (4)].str);
					n->options = NIL;
					if ((yyvsp[(4) - (4)].list)) {
						n->options = list_concat(n->options, (yyvsp[(4) - (4)].list));
					}
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1415:
#line 20 "third_party/libpg_query/grammar/statements/export.y"
    {
					PGExportStmt *n = makeNode(PGExportStmt);
					n->database = (yyvsp[(3) - (6)].str);
					n->filename = (yyvsp[(5) - (6)].str);
					n->options = NIL;
					if ((yyvsp[(6) - (6)].list)) {
						n->options = list_concat(n->options, (yyvsp[(6) - (6)].list));
					}
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1416:
#line 34 "third_party/libpg_query/grammar/statements/export.y"
    {
					PGImportStmt *n = makeNode(PGImportStmt);
					n->filename = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1417:
#line 10 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(2) - (2)].node);
					n->options = NIL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1418:
#line 17 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(4) - (4)].node);
					n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)])));
					if ((yyvsp[(3) - (4)].boolean))
						n->options = lappend(n->options,
											 makeDefElem("verbose", NULL, (yylsp[(3) - (4)])));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1419:
#line 27 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(3) - (3)].node);
					n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)])));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1420:
#line 34 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(5) - (5)].node);
					n->options = (yyvsp[(3) - (5)].list);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1421:
#line 44 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1422:
#line 45 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1423:
#line 50 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 1424:
#line 51 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
    break;

  case 1425:
#line 52 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1457:
#line 91 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1458:
#line 92 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1459:
#line 93 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1460:
#line 98 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1461:
#line 99 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1462:
#line 105 "third_party/libpg_query/grammar/statements/explain.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 1463:
#line 109 "third_party/libpg_query/grammar/statements/explain.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 1464:
#line 116 "third_party/libpg_query/grammar/statements/explain.y"
    {;}
    break;

  case 1465:
#line 117 "third_party/libpg_query/grammar/statements/explain.y"
    {;}
    break;

  case 1466:
#line 122 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "true"; ;}
    break;

  case 1467:
#line 123 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "false"; ;}
    break;

  case 1468:
#line 124 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "on"; ;}
    break;

  case 1469:
#line 130 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1470:
#line 136 "third_party/libpg_query/grammar/statements/explain.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 1471:
#line 143 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1472:
#line 144 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "analyze"; ;}
    break;

  case 1473:
#line 11 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt);
					n->scope = VAR_SET_SCOPE_DEFAULT;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1474:
#line 17 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_LOCAL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1475:
#line 23 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_SESSION;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1476:
#line 29 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_GLOBAL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1477:
#line 35 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_VARIABLE;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1478:
#line 44 "third_party/libpg_query/grammar/statements/variable_set.y"
    {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;}
    break;

  case 1479:
#line 46 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_CURRENT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1480:
#line 54 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (char*) "timezone";
					if ((yyvsp[(3) - (3)].node) != NULL)
						n->args = list_make1((yyvsp[(3) - (3)].node));
					else
						n->kind = VAR_SET_DEFAULT;
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1481:
#line 65 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (char*) "search_path";
					n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1482:
#line 77 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (yyvsp[(1) - (3)].str);
					n->args = (yyvsp[(3) - (3)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1483:
#line 85 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (yyvsp[(1) - (3)].str);
					n->args = (yyvsp[(3) - (3)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1484:
#line 96 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1485:
#line 102 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1486:
#line 106 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1487:
#line 110 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGTypeName *t = (yyvsp[(1) - (3)].typnam);
					if ((yyvsp[(3) - (3)].list) != NIL)
					{
						PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list));
						if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
									 parser_errposition((yylsp[(3) - (3)]))));
					}
					t->typmods = (yyvsp[(3) - (3)].list);
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
				;}
    break;

  case 1488:
#line 125 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGTypeName *t = (yyvsp[(1) - (5)].typnam);
					t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
											makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t);
				;}
    break;

  case 1489:
#line 131 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
    break;

  case 1490:
#line 132 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1491:
#line 133 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1492:
#line 137 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1493:
#line 138 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1494:
#line 8 "third_party/libpg_query/grammar/statements/load.y"
    {
					PGLoadStmt *n = makeNode(PGLoadStmt);
					n->filename = (yyvsp[(2) - (2)].str);
					n->repository = NULL;
					n->repo_is_alias = false;
					n->version = NULL;
					n->load_type = PG_LOAD_TYPE_LOAD;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1495:
#line 17 "third_party/libpg_query/grammar/statements/load.y"
    {
                    PGLoadStmt *n = makeNode(PGLoadStmt);
                    n->filename = (yyvsp[(3) - (4)].str);
                    n->repository = NULL;
                    n->repo_is_alias = false;
                    n->version = (yyvsp[(4) - (4)].str);
                    n->load_type = (yyvsp[(1) - (4)].loadinstalltype);
                    (yyval.node) = (PGNode *)n;
				;}
    break;

  case 1496:
#line 26 "third_party/libpg_query/grammar/statements/load.y"
    {
                    PGLoadStmt *n = makeNode(PGLoadStmt);
                    n->repository = (yyvsp[(5) - (6)].str);
                    n->repo_is_alias = true;
                    n->filename = (yyvsp[(3) - (6)].str);
                    n->version = (yyvsp[(6) - (6)].str);
                    n->load_type = (yyvsp[(1) - (6)].loadinstalltype);
                    (yyval.node) = (PGNode *)n;
				;}
    break;

  case 1497:
#line 35 "third_party/libpg_query/grammar/statements/load.y"
    {
                    PGLoadStmt *n = makeNode(PGLoadStmt);
                    n->filename = (yyvsp[(3) - (6)].str);
                    n->repository = (yyvsp[(5) - (6)].str);
                    n->repo_is_alias = false;
                    n->version = (yyvsp[(6) - (6)].str);
                    n->load_type = (yyvsp[(1) - (6)].loadinstalltype);
                    (yyval.node) = (PGNode *)n;
				;}
    break;

  case 1498:
#line 46 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.loadinstalltype) = PG_LOAD_TYPE_INSTALL; ;}
    break;

  case 1499:
#line 47 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.loadinstalltype) = PG_LOAD_TYPE_FORCE_INSTALL; ;}
    break;

  case 1500:
#line 49 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1501:
#line 50 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1502:
#line 53 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1503:
#line 54 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 1504:
#line 55 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 1505:
#line 9 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM;
					if ((yyvsp[(2) - (4)].boolean))
						n->options |= PG_VACOPT_FULL;
					if ((yyvsp[(3) - (4)].boolean))
						n->options |= PG_VACOPT_FREEZE;
					if ((yyvsp[(4) - (4)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1506:
#line 23 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM;
					if ((yyvsp[(2) - (6)].boolean))
						n->options |= PG_VACOPT_FULL;
					if ((yyvsp[(3) - (6)].boolean))
						n->options |= PG_VACOPT_FREEZE;
					if ((yyvsp[(4) - (6)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = (yyvsp[(5) - (6)].range);
					n->va_cols = (yyvsp[(6) - (6)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1507:
#line 37 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node);
					n->options |= PG_VACOPT_VACUUM;
					if ((yyvsp[(2) - (5)].boolean))
						n->options |= PG_VACOPT_FULL;
					if ((yyvsp[(3) - (5)].boolean))
						n->options |= PG_VACOPT_FREEZE;
					if ((yyvsp[(4) - (5)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1508:
#line 49 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival);
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1509:
#line 57 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival);
					n->relation = (yyvsp[(5) - (6)].range);
					n->va_cols = (yyvsp[(6) - (6)].list);
					if (n->va_cols != NIL)	/* implies analyze */
						n->options |= PG_VACOPT_ANALYZE;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1510:
#line 70 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_ANALYZE; ;}
    break;

  case 1511:
#line 71 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_VERBOSE; ;}
    break;

  case 1512:
#line 72 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_FREEZE; ;}
    break;

  case 1513:
#line 73 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_FULL; ;}
    break;

  case 1514:
#line 75 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0)
						(yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING;
					else
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
							 errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)),
									 parser_errposition((yylsp[(1) - (1)]))));
				;}
    break;

  case 1515:
#line 87 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1516:
#line 88 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1517:
#line 93 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 1518:
#line 94 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
    break;

  case 1519:
#line 98 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1520:
#line 99 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1521:
#line 9 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGDeleteStmt *n = makeNode(PGDeleteStmt);
					n->relation = (yyvsp[(4) - (7)].range);
					n->usingClause = (yyvsp[(5) - (7)].list);
					n->whereClause = (yyvsp[(6) - (7)].node);
					n->returningList = (yyvsp[(7) - (7)].list);
					n->withClause = (yyvsp[(1) - (7)].with);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1522:
#line 19 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGDeleteStmt *n = makeNode(PGDeleteStmt);
					n->relation = (yyvsp[(3) - (3)].range);
					n->usingClause = NULL;
					n->whereClause = NULL;
					n->returningList = NULL;
					n->withClause = NULL;
					(yyval.node) = (PGNode *)n;
			    ;}
    break;

  case 1523:
#line 32 "third_party/libpg_query/grammar/statements/delete.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
				;}
    break;

  case 1524:
#line 36 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGAlias *alias = makeNode(PGAlias);
					alias->aliasname = (yyvsp[(2) - (2)].str);
					(yyvsp[(1) - (2)].range)->alias = alias;
					(yyval.range) = (yyvsp[(1) - (2)].range);
				;}
    break;

  case 1525:
#line 43 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGAlias *alias = makeNode(PGAlias);
					alias->aliasname = (yyvsp[(3) - (3)].str);
					(yyvsp[(1) - (3)].range)->alias = alias;
					(yyval.range) = (yyvsp[(1) - (3)].range);
				;}
    break;

  case 1526:
#line 53 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1527:
#line 54 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1528:
#line 60 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1529:
#line 61 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1530:
#line 10 "third_party/libpg_query/grammar/statements/analyze.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_ANALYZE;
					if ((yyvsp[(2) - (2)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1531:
#line 20 "third_party/libpg_query/grammar/statements/analyze.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_ANALYZE;
					if ((yyvsp[(2) - (4)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = (yyvsp[(3) - (4)].range);
					n->va_cols = (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1532:
#line 8 "third_party/libpg_query/grammar/statements/attach.y"
    {
					PGAttachStmt *n = makeNode(PGAttachStmt);
					n->path = (yyvsp[(3) - (5)].str);
					n->name = (yyvsp[(4) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1533:
#line 17 "third_party/libpg_query/grammar/statements/attach.y"
    {
					PGAttachStmt *n = makeNode(PGAttachStmt);
					n->path = (yyvsp[(6) - (8)].str);
					n->name = (yyvsp[(7) - (8)].str);
					n->options = (yyvsp[(8) - (8)].list);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1534:
#line 26 "third_party/libpg_query/grammar/statements/attach.y"
    {
					PGAttachStmt *n = makeNode(PGAttachStmt);
					n->path = (yyvsp[(5) - (7)].str);
					n->name = (yyvsp[(6) - (7)].str);
					n->options = (yyvsp[(7) - (7)].list);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1535:
#line 38 "third_party/libpg_query/grammar/statements/attach.y"
    {
					PGDetachStmt *n = makeNode(PGDetachStmt);
					n->missing_ok = false;
					n->db_name = (yyvsp[(2) - (2)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1536:
#line 45 "third_party/libpg_query/grammar/statements/attach.y"
    {
					PGDetachStmt *n = makeNode(PGDetachStmt);
					n->missing_ok = false;
					n->db_name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1537:
#line 52 "third_party/libpg_query/grammar/statements/attach.y"
    {
					PGDetachStmt *n = makeNode(PGDetachStmt);
					n->missing_ok = true;
					n->db_name = (yyvsp[(5) - (5)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1538:
#line 60 "third_party/libpg_query/grammar/statements/attach.y"
    {;}
    break;

  case 1539:
#line 61 "third_party/libpg_query/grammar/statements/attach.y"
    {;}
    break;

  case 1540:
#line 65 "third_party/libpg_query/grammar/statements/attach.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 1541:
#line 66 "third_party/libpg_query/grammar/statements/attach.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1542:
#line 3 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
				(yyvsp[(2) - (2)].vsetstmt)->scope = VAR_SET_SCOPE_DEFAULT;
				(yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt);
			;}
    break;

  case 1543:
#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					(yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_LOCAL;
					(yyval.node) = (PGNode *) (yyvsp[(3) - (3)].vsetstmt);
				;}
    break;

  case 1544:
#line 13 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					(yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_SESSION;
					(yyval.node) = (PGNode *) (yyvsp[(3) - (3)].vsetstmt);
				;}
    break;

  case 1545:
#line 18 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					(yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_GLOBAL;
					(yyval.node) = (PGNode *) (yyvsp[(3) - (3)].vsetstmt);
				;}
    break;

  case 1546:
#line 23 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					(yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_VARIABLE;
					(yyval.node) = (PGNode *) (yyvsp[(3) - (3)].vsetstmt);
				;}
    break;

  case 1547:
#line 32 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (yyvsp[(1) - (1)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1548:
#line 39 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET_ALL;
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1549:
#line 48 "third_party/libpg_query/grammar/statements/variable_reset.y"
    { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;}
    break;

  case 1550:
#line 50 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (char*) "timezone";
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1551:
#line 57 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (char*) "transaction_isolation";
					(yyval.vsetstmt) = n;
				;}
    break;

  case 1552:
#line 3 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt);
				n->stmt = (yyvsp[(2) - (2)].node);
				n->name = (char*) "select";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1553:
#line 10 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt);
				n->stmt = (yyvsp[(2) - (2)].node);
				n->name = (char*) "select";
				n->is_summary = 1;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1554:
#line 18 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->relation = (yyvsp[(2) - (2)].range);
				n->is_summary = 1;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1555:
#line 25 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->relation = (yyvsp[(2) - (2)].range);
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1556:
#line 32 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->set = (char*) "timezone";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1557:
#line 39 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->set = (char*) "transaction_isolation";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1558:
#line 46 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->set = (char*) "__show_tables_expanded";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1559:
#line 53 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->set = (char*) "__show_tables_expanded";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 1566:
#line 67 "third_party/libpg_query/grammar/statements/variable_show.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1567:
#line 69 "third_party/libpg_query/grammar/statements/variable_show.y"
    { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;}
    break;

  case 1568:
#line 7 "third_party/libpg_query/grammar/statements/call.y"
    {
					PGCallStmt *n = makeNode(PGCallStmt);
					n->func = (yyvsp[(2) - (2)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1569:
#line 10 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(4) - (9)].range);
					n->view->relpersistence = (yyvsp[(2) - (9)].ival);
					n->aliases = (yyvsp[(5) - (9)].list);
					n->query = (yyvsp[(8) - (9)].node);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					n->options = (yyvsp[(6) - (9)].list);
					n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1570:
#line 23 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(7) - (12)].range);
					n->view->relpersistence = (yyvsp[(2) - (12)].ival);
					n->aliases = (yyvsp[(8) - (12)].list);
					n->query = (yyvsp[(11) - (12)].node);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					n->options = (yyvsp[(9) - (12)].list);
					n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1571:
#line 36 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(6) - (11)].range);
					n->view->relpersistence = (yyvsp[(4) - (11)].ival);
					n->aliases = (yyvsp[(7) - (11)].list);
					n->query = (yyvsp[(10) - (11)].node);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					n->options = (yyvsp[(8) - (11)].list);
					n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1572:
#line 49 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(5) - (12)].range);
					n->view->relpersistence = (yyvsp[(2) - (12)].ival);
					n->aliases = (yyvsp[(7) - (12)].list);
					n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node));
					n->onconflict = PG_ERROR_ON_CONFLICT;
					n->options = (yyvsp[(9) - (12)].list);
					n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption);
					if (n->withCheckOption != PG_NO_CHECK_OPTION)
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("WITH CHECK OPTION not supported on recursive views"),
								 parser_errposition((yylsp[(12) - (12)]))));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1573:
#line 67 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(7) - (14)].range);
					n->view->relpersistence = (yyvsp[(4) - (14)].ival);
					n->aliases = (yyvsp[(9) - (14)].list);
					n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node));
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					n->options = (yyvsp[(11) - (14)].list);
					n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption);
					if (n->withCheckOption != PG_NO_CHECK_OPTION)
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("WITH CHECK OPTION not supported on recursive views"),
								 parser_errposition((yylsp[(14) - (14)]))));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1574:
#line 87 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
    break;

  case 1575:
#line 88 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
    break;

  case 1576:
#line 89 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;}
    break;

  case 1577:
#line 90 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;}
    break;

  case 1578:
#line 12 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					ctas->query = (yyvsp[(6) - (7)].node);
					ctas->into = (yyvsp[(4) - (7)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_ERROR_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival);
					(yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 1579:
#line 25 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					ctas->query = (yyvsp[(9) - (10)].node);
					ctas->into = (yyvsp[(7) - (10)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_IGNORE_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival);
					(yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 1580:
#line 38 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					ctas->query = (yyvsp[(8) - (9)].node);
					ctas->into = (yyvsp[(6) - (9)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_REPLACE_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(6) - (9)].into)->rel->relpersistence = (yyvsp[(4) - (9)].ival);
					(yyvsp[(6) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 1581:
#line 54 "third_party/libpg_query/grammar/statements/create_as.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1582:
#line 55 "third_party/libpg_query/grammar/statements/create_as.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1583:
#line 56 "third_party/libpg_query/grammar/statements/create_as.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1584:
#line 62 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					(yyval.into) = makeNode(PGIntoClause);
					(yyval.into)->rel = (yyvsp[(1) - (4)].range);
					(yyval.into)->colNames = (yyvsp[(2) - (4)].list);
					(yyval.into)->options = (yyvsp[(3) - (4)].list);
					(yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit);
					(yyval.into)->viewQuery = NULL;
					(yyval.into)->skipData = false;		/* might get changed later */
				;}
    break;


/* Line 1267 of yacc.c.  */
#line 32164 "third_party/libpg_query/grammar/grammar_out.cpp"
      default: break;
    }
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;
  *++yylsp = yyloc;

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (&yylloc, yyscanner, YY_("syntax error"));
#else
      {
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
	  {
	    YYSIZE_T yyalloc = 2 * yysize;
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
	    if (yymsg != yymsgbuf)
	      YYSTACK_FREE (yymsg);
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
	    if (yymsg)
	      yymsg_alloc = yyalloc;
	    else
	      {
		yymsg = yymsgbuf;
		yymsg_alloc = sizeof yymsgbuf;
	      }
	  }

	if (0 < yysize && yysize <= yymsg_alloc)
	  {
	    (void) yysyntax_error (yymsg, yystate, yychar);
	    yyerror (&yylloc, yyscanner, yymsg);
	  }
	else
	  {
	    yyerror (&yylloc, yyscanner, YY_("syntax error"));
	    if (yysize != 0)
	      goto yyexhaustedlab;
	  }
      }
#endif
    }

  yyerror_range[0] = yylloc;

  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse look-ahead token after an
	 error, discard it.  */

      if (yychar <= YYEOF)
	{
	  /* Return failure if at end of input.  */
	  if (yychar == YYEOF)
	    YYABORT;
	}
      else
	{
	  yydestruct ("Error: discarding",
		      yytoken, &yylval, &yylloc, yyscanner);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse look-ahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  yyerror_range[0] = yylsp[1-yylen];
  /* Do not reclaim the symbols of the rule which action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;

      yyerror_range[0] = *yylsp;
      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp, yylsp, yyscanner);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  *++yyvsp = yylval;

  yyerror_range[1] = yylloc;
  /* Using YYLLOC is tempting, but would change the location of
     the look-ahead.  YYLOC is available though.  */
  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
  *++yylsp = yyloc;

  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEOF && yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
		 yytoken, &yylval, &yylloc, yyscanner);
  /* Do not reclaim the symbols of the rule which action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
		  yystos[*yyssp], yyvsp, yylsp, yyscanner);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  /* Make sure YYID is used.  */
  return YYID (yyresult);
}


#line 83 "third_party/libpg_query/grammar/statements/create_as.y"


#line 1 "third_party/libpg_query/grammar/grammar.cpp"
/*
 * The signature of this function is required by bison.  However, we
 * ignore the passed yylloc and instead use the last token position
 * available from the scanner.
 */
static void
base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg)
{
	parser_yyerror(msg);
}

static PGRawStmt *
makeRawStmt(PGNode *stmt, int stmt_location)
{
	PGRawStmt    *rs = makeNode(PGRawStmt);

	rs->stmt = stmt;
	rs->stmt_location = stmt_location;
	rs->stmt_len = 0;			/* might get changed later */
	return rs;
}

/* Adjust a PGRawStmt to reflect that it doesn't run to the end of the string */
static void
updateRawStmtEnd(PGRawStmt *rs, int end_location)
{
	/*
	 * If we already set the length, don't change it.  This is for situations
	 * like "select foo ;; select bar" where the same statement will be last
	 * in the string for more than one semicolon.
	 */
	if (rs->stmt_len > 0)
		return;

	/* OK, update length of PGRawStmt */
	rs->stmt_len = end_location - rs->stmt_location;
}

static PGNode *
makeColumnRef(char *colname, PGList *indirection,
			  int location, core_yyscan_t yyscanner)
{
	/*
	 * Generate a PGColumnRef node, with an PGAIndirection node added if there
	 * is any subscripting in the specified indirection list.  However,
	 * any field selection at the start of the indirection list must be
	 * transposed into the "fields" part of the PGColumnRef node.
	 */
	PGColumnRef  *c = makeNode(PGColumnRef);
	int		nfields = 0;
	PGListCell *l;

	c->location = location;
	foreach(l, indirection)
	{
		if (IsA(lfirst(l), PGAIndices))
		{
			PGAIndirection *i = makeNode(PGAIndirection);

			if (nfields == 0)
			{
				/* easy case - all indirection goes to PGAIndirection */
				c->fields = list_make1(makeString(colname));
				i->indirection = check_indirection(indirection, yyscanner);
			}
			else
			{
				/* got to split the list in two */
				i->indirection = check_indirection(list_copy_tail(indirection,
																  nfields),
												   yyscanner);
				indirection = list_truncate(indirection, nfields);
				c->fields = lcons(makeString(colname), indirection);
			}
			i->arg = (PGNode *) c;
			return (PGNode *) i;
		}
		else if (IsA(lfirst(l), PGAStar))
		{
			/* We only allow '*' at the end of a PGColumnRef */
			if (lnext(l) != NULL)
				parser_yyerror("improper use of \"*\"");
		}
		nfields++;
	}
	/* No subscripting, so all indirection gets added to field list */
	c->fields = lcons(makeString(colname), indirection);
	return (PGNode *) c;
}

static PGNode *
makeTypeCast(PGNode *arg, PGTypeName *tpname, int trycast, int location)
{
	PGTypeCast *n = makeNode(PGTypeCast);
	n->arg = arg;
	n->typeName = tpname;
	n->tryCast = trycast;
	n->location = location;
	return (PGNode *) n;
}

static PGNode *
makeStringConst(char *str, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGString;
	n->val.val.str = str;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeStringConstCast(char *str, int location, PGTypeName *tpname)
{
	PGNode *s = makeStringConst(str, location);

	return makeTypeCast(s, tpname, 0, -1);
}

static PGNode *
makeIntervalNode(char *str, int location, PGList *typmods) {
	PGIntervalConstant *n = makeNode(PGIntervalConstant);

	n->val_type = T_PGString;
	n->sval = str;
	n->location = location;
	n->typmods = typmods;

	return (PGNode *)n;

}

static PGNode *
makeIntervalNode(int val, int location, PGList *typmods) {
	PGIntervalConstant *n = makeNode(PGIntervalConstant);

	n->val_type = T_PGInteger;
	n->ival = val;
	n->location = location;
	n->typmods = typmods;

	return (PGNode *)n;
}

static PGNode *
makeIntervalNode(PGNode *arg, int location, PGList *typmods) {
	PGIntervalConstant *n = makeNode(PGIntervalConstant);

	n->val_type = T_PGAExpr;
	n->eval = arg;
	n->location = location;
	n->typmods = typmods;

	return (PGNode *)n;
}

static PGNode *
makeSampleSize(PGNode *sample_size, bool is_percentage) {
	PGSampleSize *n = makeNode(PGSampleSize);

	n->sample_size = sample_size;
	n->is_percentage = is_percentage;

	return (PGNode *)n;
}

static PGNode *
makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location) {
	PGSampleOptions *n = makeNode(PGSampleOptions);

	n->sample_size = sample_size;
	n->method = method;
	if (seed) {
		n->has_seed = true;
		n->seed = *seed;
	}
	n->location = location;

	return (PGNode *)n;
}

/* makeLimitPercent()
 * Make limit percent node
 */
static PGNode *
makeLimitPercent(PGNode *limit_percent) {
	PGLimitPercent *n = makeNode(PGLimitPercent);

	n->limit_percent = limit_percent;

	return (PGNode *)n;
}

static PGNode *
makeIntConst(int val, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGInteger;
	n->val.val.ival = val;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeFloatConst(char *str, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGFloat;
	n->val.val.str = str;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeBitStringConst(char *str, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGBitString;
	n->val.val.str = str;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeNullAConst(int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGNull;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeAConst(PGValue *v, int location)
{
	PGNode *n;

	switch (v->type)
	{
		case T_PGFloat:
			n = makeFloatConst(v->val.str, location);
			break;

		case T_PGInteger:
			n = makeIntConst(v->val.ival, location);
			break;

		case T_PGString:
		default:
			n = makeStringConst(v->val.str, location);
			break;
	}

	return n;
}

/* makeBoolAConst()
 * Create an PGAConst string node and put it inside a boolean cast.
 */
static PGNode *
makeBoolAConst(bool state, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGString;
	n->val.val.str = (state ? (char*) "t" : (char*) "f");
	n->location = location;

	return makeTypeCast((PGNode *)n, SystemTypeName("bool"), 0, -1);
}

/* check_qualified_name --- check the result of qualified_name production
 *
 * It's easiest to let the grammar production for qualified_name allow
 * subscripts and '*', which we then must reject here.
 */
static void
check_qualified_name(PGList *names, core_yyscan_t yyscanner)
{
	PGListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), PGString))
			parser_yyerror("syntax error");
	}
}

/* check_func_name --- check the result of func_name production
 *
 * It's easiest to let the grammar production for func_name allow subscripts
 * and '*', which we then must reject here.
 */
static PGList *
check_func_name(PGList *names, core_yyscan_t yyscanner)
{
	PGListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), PGString))
			parser_yyerror("syntax error");
	}
	return names;
}

/* check_indirection --- check the result of indirection production
 *
 * We only allow '*' at the end of the list, but it's hard to enforce that
 * in the grammar, so do it here.
 */
static PGList *
check_indirection(PGList *indirection, core_yyscan_t yyscanner)
{
	PGListCell *l;

	foreach(l, indirection)
	{
		if (IsA(lfirst(l), PGAStar))
		{
			if (lnext(l) != NULL)
				parser_yyerror("improper use of \"*\"");
		}
	}
	return indirection;
}

/* makeParamRef
 * Creates a new PGParamRef node
 */
static PGNode* makeParamRef(int number, int location)
{
	PGParamRef *p = makeNode(PGParamRef);
	p->number = number;
	p->location = location;
	p->name = NULL;
	return (PGNode *) p;
}

/* makeNamedParamRef
 * Creates a new PGParamRef node
 */
static PGNode* makeNamedParamRef(char *name, int location)
{
	PGParamRef *p = (PGParamRef *)makeParamRef(0, location);
	p->name = name;
	return (PGNode *) p;
}


/* insertSelectOptions()
 * Insert ORDER BY, etc into an already-constructed SelectStmt.
 *
 * This routine is just to avoid duplicating code in PGSelectStmt productions.
 */
static void
insertSelectOptions(PGSelectStmt *stmt,
					PGList *sortClause, PGList *lockingClause,
					PGNode *limitOffset, PGNode *limitCount, PGNode *isLimitOffsetFirst,
					PGWithClause *withClause,
					core_yyscan_t yyscanner)
{
	if (stmt->type != T_PGSelectStmt) {
		ereport(ERROR,
				(errcode(PG_ERRCODE_SYNTAX_ERROR),
						errmsg("DESCRIBE/SHOW/SUMMARIZE with CTE/ORDER BY/... not allowed - wrap the statement in a subquery instead"),
						parser_errposition(exprLocation((PGNode *) stmt))));
	}
	Assert(IsA(stmt, PGSelectStmt));

	/*
	 * Tests here are to reject constructs like
	 *	(SELECT foo ORDER BY bar) ORDER BY baz
	 */
	if (sortClause)
	{
		if (stmt->sortClause)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple ORDER BY clauses not allowed"),
					 parser_errposition(exprLocation((PGNode *) sortClause))));
		stmt->sortClause = sortClause;
	}
	/* We can handle multiple locking clauses, though */
	stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause);
	if (limitOffset)
	{
		if (stmt->limitOffset)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple OFFSET clauses not allowed"),
					 parser_errposition(exprLocation(limitOffset))));
		stmt->limitOffset = limitOffset;
	}
	if (limitCount)
	{
		if (stmt->limitCount)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple LIMIT clauses not allowed"),
					 parser_errposition(exprLocation(limitCount))));
		stmt->limitCount = limitCount;
	}
	if (limitOffset == isLimitOffsetFirst) {
		stmt->offset_first = true;
	}
	if (withClause)
	{
		if (stmt->withClause)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple WITH clauses not allowed"),
					 parser_errposition(exprLocation((PGNode *) withClause))));
		stmt->withClause = withClause;
	}
}

static PGNode *
makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg)
{
	PGSelectStmt *n = makeNode(PGSelectStmt);

	n->op = op;
	n->all = all;
	n->larg = larg;
	n->rarg = rarg;
	return (PGNode *) n;
}

/* SystemFuncName()
 * Build a properly-qualified reference to a built-in function.
 */
PGList *
SystemFuncName(const char *name)
{
	return list_make2(makeString(DEFAULT_SCHEMA), makeString(name));
}

/* SystemTypeName()
 * Build a properly-qualified reference to a built-in type.
 *
 * typmod is defaulted, but may be changed afterwards by caller.
 * Likewise for the location.
 */
PGTypeName *
SystemTypeName(const char *name)
{
	return makeTypeNameFromNameList(list_make1(makeString(name)));
}

/* doNegate()
 * Handle negation of a numeric constant.
 *
 * Formerly, we did this here because the optimizer couldn't cope with
 * indexquals that looked like "var = -4" --- it wants "var = const"
 * and a unary minus operator applied to a constant didn't qualify.
 * As of Postgres 7.0, that problem doesn't exist anymore because there
 * is a constant-subexpression simplifier in the optimizer.  However,
 * there's still a good reason for doing this here, which is that we can
 * postpone committing to a particular internal representation for simple
 * negative constants.	It's better to leave "-123.456" in string form
 * until we know what the desired type is.
 */
static PGNode *
doNegate(PGNode *n, int location)
{
	if (IsA(n, PGAConst))
	{
		PGAConst *con = (PGAConst *)n;

		/* report the constant's location as that of the '-' sign */
		con->location = location;

		if (con->val.type == T_PGInteger)
		{
			con->val.val.ival = -con->val.val.ival;
			return n;
		}
		if (con->val.type == T_PGFloat)
		{
			doNegateFloat(&con->val);
			return n;
		}
	}

	return (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", NULL, n, location);
}

static void
doNegateFloat(PGValue *v)
{
	char   *oldval = v->val.str;

	Assert(IsA(v, PGFloat));
	if (*oldval == '+')
		oldval++;
	if (*oldval == '-')
		v->val.str = oldval+1;	/* just strip the '-' */
	else
		v->val.str = psprintf("-%s", oldval);
}

static PGNode *
makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location)
{
	PGNode	   *lexp = lexpr;

	/* Look through AEXPR_PAREN nodes so they don't affect flattening */
	while (IsA(lexp, PGAExpr) &&
		   ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
		lexp = ((PGAExpr *) lexp)->lexpr;
	/* Flatten "a AND b AND c ..." to a single PGBoolExpr on sight */
	if (IsA(lexp, PGBoolExpr))
	{
		PGBoolExpr *blexpr = (PGBoolExpr *) lexp;

		if (blexpr->boolop == PG_AND_EXPR)
		{
			blexpr->args = lappend(blexpr->args, rexpr);
			return (PGNode *) blexpr;
		}
	}
	return (PGNode *) makeBoolExpr(PG_AND_EXPR, list_make2(lexpr, rexpr), location);
}

static PGNode *
makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location)
{
	PGNode	   *lexp = lexpr;

	/* Look through AEXPR_PAREN nodes so they don't affect flattening */
	while (IsA(lexp, PGAExpr) &&
		   ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
		lexp = ((PGAExpr *) lexp)->lexpr;
	/* Flatten "a OR b OR c ..." to a single PGBoolExpr on sight */
	if (IsA(lexp, PGBoolExpr))
	{
		PGBoolExpr *blexpr = (PGBoolExpr *) lexp;

		if (blexpr->boolop == PG_OR_EXPR)
		{
			blexpr->args = lappend(blexpr->args, rexpr);
			return (PGNode *) blexpr;
		}
	}
	return (PGNode *) makeBoolExpr(PG_OR_EXPR, list_make2(lexpr, rexpr), location);
}

static PGNode *
makeNotExpr(PGNode *expr, int location)
{
	return (PGNode *) makeBoolExpr(PG_NOT_EXPR, list_make1(expr), location);
}

/* Separate PGConstraint nodes from COLLATE clauses in a */
static void
SplitColQualList(PGList *qualList,
				 PGList **constraintList, PGCollateClause **collClause,
				 core_yyscan_t yyscanner)
{
	PGListCell   *cell;
	PGListCell   *prev;
	PGListCell   *next;

	*collClause = NULL;
	prev = NULL;
	for (cell = list_head(qualList); cell; cell = next)
	{
		PGNode   *n = (PGNode *) lfirst(cell);

		next = lnext(cell);
		if (IsA(n, PGConstraint))
		{
			/* keep it in list */
			prev = cell;
			continue;
		}
		if (IsA(n, PGCollateClause))
		{
			PGCollateClause *c = (PGCollateClause *) n;

			if (*collClause)
				ereport(ERROR,
						(errcode(PG_ERRCODE_SYNTAX_ERROR),
						 errmsg("multiple COLLATE clauses not allowed"),
						 parser_errposition(c->location)));
			*collClause = c;
		}
		else
			elog(ERROR, "unexpected node type %d", (int) n->type);
		/* remove non-Constraint nodes from qualList */
		qualList = list_delete_cell(qualList, cell, prev);
	}
	*constraintList = qualList;
}

/*
 * Process result of ConstraintAttributeSpec, and set appropriate bool flags
 * in the output command node.  Pass NULL for any flags the particular
 * command doesn't support.
 */
static void
processCASbits(int cas_bits, int location, const char *constrType,
			   bool *deferrable, bool *initdeferred, bool *not_valid,
			   bool *no_inherit, core_yyscan_t yyscanner)
{
	/* defaults */
	if (deferrable)
		*deferrable = false;
	if (initdeferred)
		*initdeferred = false;
	if (not_valid)
		*not_valid = false;

	if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED))
	{
		if (deferrable)
			*deferrable = true;
		else
			ereport(ERROR,
					(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked DEFERRABLE",
							constrType),
					 parser_errposition(location)));
	}

	if (cas_bits & CAS_INITIALLY_DEFERRED)
	{
		if (initdeferred)
			*initdeferred = true;
		else
			ereport(ERROR,
					(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked DEFERRABLE",
							constrType),
					 parser_errposition(location)));
	}

	if (cas_bits & CAS_NOT_VALID)
	{
		if (not_valid)
			*not_valid = true;
		else
			ereport(ERROR,
					(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked NOT VALID",
							constrType),
					 parser_errposition(location)));
	}

	if (cas_bits & CAS_NO_INHERIT)
	{
		if (no_inherit)
			*no_inherit = true;
		else
			ereport(ERROR,
					(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked NO INHERIT",
							constrType),
					 parser_errposition(location)));
	}
}

/*----------
 * Recursive view transformation
 *
 * Convert
 *
 *     CREATE RECURSIVE VIEW relname (aliases) AS query
 *
 * to
 *
 *     CREATE VIEW relname (aliases) AS
 *         WITH RECURSIVE relname (aliases) AS (query)
 *         SELECT aliases FROM relname
 *
 * Actually, just the WITH ... part, which is then inserted into the original
 * view as the query.
 * ----------
 */
static PGNode *
makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query)
{
	PGSelectStmt *s = makeNode(PGSelectStmt);
	PGWithClause *w = makeNode(PGWithClause);
	PGCommonTableExpr *cte = makeNode(PGCommonTableExpr);
	PGList	   *tl = NIL;
	PGListCell   *lc;

	/* create common table expression */
	cte->ctename = relname;
	cte->aliascolnames = aliases;
	cte->ctequery = query;
	cte->location = -1;

	/* create WITH clause and attach CTE */
	w->recursive = true;
	w->ctes = list_make1(cte);
	w->location = -1;

	/* create target list for the new SELECT from the alias list of the
	 * recursive view specification */
	foreach (lc, aliases)
	{
		PGResTarget *rt = makeNode(PGResTarget);

		rt->name = NULL;
		rt->indirection = NIL;
		rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0);
		rt->location = -1;

		tl = lappend(tl, rt);
	}

	/* create new SELECT combining WITH clause, target list, and fake FROM
	 * clause */
	s->withClause = w;
	s->targetList = tl;
	s->fromClause = list_make1(makeRangeVar(NULL, relname, -1));

	return (PGNode *) s;
}

/* parser_init()
 * Initialize to parse one query string
 */
void
parser_init(base_yy_extra_type *yyext)
{
	yyext->parsetree = NIL;		/* in case grammar forgets to set it */
}

#undef yyparse
#undef yylex
#undef yyerror
#undef yylval
#undef yychar
#undef yydebug
#undef yynerrs
#undef yylloc

} // namespace duckdb_libpgquery

