/* A Bison parser, made by GNU Bison 2.4.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010 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 3 of the License, 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, see . */ /* 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.4.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 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 /* Copy the first part of user declarations. */ /* Line 189 of yacc.c */ #line 1 "gram.y" /*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 2003-2013, PgPool Global Development Group * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * 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. * SQL92-specific syntax is separated from plain SQL/Postgres syntax * to help isolate the non-extensible portions of the parser. * * 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 SQL_inheritance 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. The handling of SQL_inheritance is * a good example. * * 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 "pool_parser.h" #include #include #include #include #include #include "nodes.h" #include "keywords.h" #include "pool_memory.h" #include "gramparse.h" #include "makefuncs.h" #include "pool_string.h" #include "parser.h" #include "pg_class.h" #include "pg_trigger.h" /* for XML data type */ typedef enum { XML_STANDALONE_YES, XML_STANDALONE_NO, XML_STANDALONE_NO_VALUE, XML_STANDALONE_OMITTED } XmlStandaloneType; static DefElem *defWithOids(bool value); /* Location tracking support --- simpler than bison's default */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ if (N) \ (Current) = (Rhs)[1]; \ else \ (Current) = (Rhs)[0]; \ } while (0) /* * 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 /* Private struct for the result of privilege_target production */ typedef struct PrivTarget { GrantTargetType targtype; GrantObjectType objtype; List *objs; } PrivTarget; /* ConstraintAttributeSpec 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) static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg); static Node *makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner); static Node *makeTypeCast(Node *arg, TypeName *typename, int location); static Node *makeStringConst(char *str, int location); static Node *makeStringConstCast(char *str, int location, TypeName *typename); static Node *makeIntConst(int val, int location); static Node *makeFloatConst(char *str, int location); static Node *makeBitStringConst(char *str, int location); static Node *makeNullAConst(int location); static Node *makeAConst(Value *v, int location); static Node *makeBoolAConst(bool state, int location); static FuncCall *makeOverlaps(List *largs, List *rargs, int location, core_yyscan_t yyscanner); static void check_qualified_name(List *names, core_yyscan_t yyscanner); static List *check_func_name(List *names, core_yyscan_t yyscanner); static List *check_indirection(List *indirection, core_yyscan_t yyscanner); static List *extractArgTypes(List *parameters); static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, Node *limitOffset, Node *limitCount, WithClause *withClause, core_yyscan_t yyscanner); static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg); static Node *doNegate(Node *n, int location); static void doNegateFloat(Value *v); static Node *makeAArrayExpr(List *elements, int location); static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location); static List *mergeTableFuncParameters(List *func_args, List *columns); static TypeName *TableFuncTypeName(List *columns); static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner); static void SplitColQualList(List *qualList, List **constraintList, CollateClause **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); /* Line 189 of yacc.c */ #line 242 "gram.c" /* 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 /* 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, ABORT_P = 269, ABSOLUTE_P = 270, ACCESS = 271, ACTION = 272, ADD_P = 273, ADMIN = 274, AFTER = 275, AGGREGATE = 276, ALL = 277, ALSO = 278, ALTER = 279, ALWAYS = 280, ANALYSE = 281, ANALYZE = 282, AND = 283, ANY = 284, ARRAY = 285, AS = 286, ASC = 287, ASSERTION = 288, ASSIGNMENT = 289, ASYMMETRIC = 290, AT = 291, ATTRIBUTE = 292, AUTHORIZATION = 293, BACKWARD = 294, BEFORE = 295, BEGIN_P = 296, BETWEEN = 297, BIGINT = 298, BINARY = 299, BIT = 300, BOOLEAN_P = 301, BOTH = 302, BY = 303, CACHE = 304, CALLED = 305, CASCADE = 306, CASCADED = 307, CASE = 308, CAST = 309, CATALOG_P = 310, CHAIN = 311, CHAR_P = 312, CHARACTER = 313, CHARACTERISTICS = 314, CHECK = 315, CHECKPOINT = 316, CLASS = 317, CLOSE = 318, CLUSTER = 319, COALESCE = 320, COLLATE = 321, COLLATION = 322, COLUMN = 323, COMMENT = 324, COMMENTS = 325, COMMIT = 326, COMMITTED = 327, CONCURRENTLY = 328, CONFIGURATION = 329, CONNECTION = 330, CONSTRAINT = 331, CONSTRAINTS = 332, CONTENT_P = 333, CONTINUE_P = 334, CONVERSION_P = 335, COPY = 336, COST = 337, CREATE = 338, CROSS = 339, CSV = 340, CURRENT_P = 341, CURRENT_CATALOG = 342, CURRENT_DATE = 343, CURRENT_ROLE = 344, CURRENT_SCHEMA = 345, CURRENT_TIME = 346, CURRENT_TIMESTAMP = 347, CURRENT_USER = 348, CURSOR = 349, CYCLE = 350, DATA_P = 351, DATABASE = 352, DAY_P = 353, DEALLOCATE = 354, DEC = 355, DECIMAL_P = 356, DECLARE = 357, DEFAULT = 358, DEFAULTS = 359, DEFERRABLE = 360, DEFERRED = 361, DEFINER = 362, DELETE_P = 363, DELIMITER = 364, DELIMITERS = 365, DESC = 366, DICTIONARY = 367, DISABLE_P = 368, DISCARD = 369, DISTINCT = 370, DO = 371, DOCUMENT_P = 372, DOMAIN_P = 373, DOUBLE_P = 374, DROP = 375, EACH = 376, ELSE = 377, ENABLE_P = 378, ENCODING = 379, ENCRYPTED = 380, END_P = 381, ENUM_P = 382, ESCAPE = 383, EXCEPT = 384, EXCLUDE = 385, EXCLUDING = 386, EXCLUSIVE = 387, EXECUTE = 388, EXISTS = 389, EXPLAIN = 390, EXTENSION = 391, EXTERNAL = 392, EXTRACT = 393, FALSE_P = 394, FAMILY = 395, FETCH = 396, FIRST_P = 397, FLOAT_P = 398, FOLLOWING = 399, FOR = 400, FORCE = 401, FOREIGN = 402, FORWARD = 403, FREEZE = 404, FROM = 405, FULL = 406, FUNCTION = 407, FUNCTIONS = 408, GLOBAL = 409, GRANT = 410, GRANTED = 411, GREATEST = 412, GROUP_P = 413, HANDLER = 414, HAVING = 415, HEADER_P = 416, HOLD = 417, HOUR_P = 418, IDENTITY_P = 419, IF_P = 420, ILIKE = 421, IMMEDIATE = 422, IMMUTABLE = 423, IMPLICIT_P = 424, IN_P = 425, INCLUDING = 426, INCREMENT = 427, INDEX = 428, INDEXES = 429, INHERIT = 430, INHERITS = 431, INITIALLY = 432, INLINE_P = 433, INNER_P = 434, INOUT = 435, INPUT_P = 436, INSENSITIVE = 437, INSERT = 438, INSTEAD = 439, INT_P = 440, INTEGER = 441, INTERSECT = 442, INTERVAL = 443, INTO = 444, INVOKER = 445, IS = 446, ISNULL = 447, ISOLATION = 448, JOIN = 449, KEY = 450, LABEL = 451, LANGUAGE = 452, LARGE_P = 453, LAST_P = 454, LC_COLLATE_P = 455, LC_CTYPE_P = 456, LEADING = 457, LEAKPROOF = 458, LEAST = 459, LEFT = 460, LEVEL = 461, LIKE = 462, LIMIT = 463, LISTEN = 464, LOAD = 465, LOCAL = 466, LOCALTIME = 467, LOCALTIMESTAMP = 468, LOCATION = 469, LOCK_P = 470, MAPPING = 471, MATCH = 472, MAXVALUE = 473, MINUTE_P = 474, MINVALUE = 475, MODE = 476, MONTH_P = 477, MOVE = 478, NAME_P = 479, NAMES = 480, NATIONAL = 481, NATURAL = 482, NCHAR = 483, NEXT = 484, NO = 485, NONE = 486, NOT = 487, NOTHING = 488, NOTIFY = 489, NOTNULL = 490, NOWAIT = 491, NULL_P = 492, NULLIF = 493, NULLS_P = 494, NUMERIC = 495, OBJECT_P = 496, OF = 497, OFF = 498, OFFSET = 499, OIDS = 500, ON = 501, ONLY = 502, OPERATOR = 503, OPTION = 504, OPTIONS = 505, OR = 506, ORDER = 507, OUT_P = 508, OUTER_P = 509, OVER = 510, OVERLAPS = 511, OVERLAY = 512, OWNED = 513, OWNER = 514, PARSER = 515, PARTIAL = 516, PARTITION = 517, PASSING = 518, PASSWORD = 519, PLACING = 520, PLANS = 521, POSITION = 522, PRECEDING = 523, PRECISION = 524, PRESERVE = 525, PREPARE = 526, PREPARED = 527, PRIMARY = 528, PRIOR = 529, PRIVILEGES = 530, PROCEDURAL = 531, PROCEDURE = 532, QUOTE = 533, RANGE = 534, READ = 535, REAL = 536, REASSIGN = 537, RECHECK = 538, RECURSIVE = 539, REF = 540, REFERENCES = 541, REINDEX = 542, RELATIVE_P = 543, RELEASE = 544, RENAME = 545, REPEATABLE = 546, REPLACE = 547, REPLICA = 548, RESET = 549, RESTART = 550, RESTRICT = 551, RETURNING = 552, RETURNS = 553, REVOKE = 554, RIGHT = 555, ROLE = 556, ROLLBACK = 557, ROW = 558, ROWS = 559, RULE = 560, SAVEPOINT = 561, SCHEMA = 562, SCROLL = 563, SEARCH = 564, SECOND_P = 565, SECURITY = 566, SELECT = 567, SEQUENCE = 568, SEQUENCES = 569, SERIALIZABLE = 570, SERVER = 571, SESSION = 572, SESSION_USER = 573, SET = 574, SETOF = 575, SHARE = 576, SHOW = 577, SIMILAR = 578, SIMPLE = 579, SMALLINT = 580, SNAPSHOT = 581, SOME = 582, STABLE = 583, STANDALONE_P = 584, START = 585, STATEMENT = 586, STATISTICS = 587, STDIN = 588, STDOUT = 589, STORAGE = 590, STRICT_P = 591, STRIP_P = 592, SUBSTRING = 593, SYMMETRIC = 594, SYSID = 595, SYSTEM_P = 596, TABLE = 597, TABLES = 598, TABLESPACE = 599, TEMP = 600, TEMPLATE = 601, TEMPORARY = 602, TEXT_P = 603, THEN = 604, TIME = 605, TIMESTAMP = 606, TO = 607, TRAILING = 608, TRANSACTION = 609, TREAT = 610, TRIGGER = 611, TRIM = 612, TRUE_P = 613, TRUNCATE = 614, TRUSTED = 615, TYPE_P = 616, TYPES_P = 617, UNBOUNDED = 618, UNCOMMITTED = 619, UNENCRYPTED = 620, UNION = 621, UNIQUE = 622, UNKNOWN = 623, UNLISTEN = 624, UNLOGGED = 625, UNTIL = 626, UPDATE = 627, USER = 628, USING = 629, VACUUM = 630, VALID = 631, VALIDATE = 632, VALIDATOR = 633, VALUE_P = 634, VALUES = 635, VARCHAR = 636, VARIADIC = 637, VARYING = 638, VERBOSE = 639, VERSION_P = 640, VIEW = 641, VOLATILE = 642, WHEN = 643, WHERE = 644, WHITESPACE_P = 645, WINDOW = 646, WITH = 647, WITHOUT = 648, WORK = 649, WRAPPER = 650, WRITE = 651, XML_P = 652, XMLATTRIBUTES = 653, XMLCONCAT = 654, XMLELEMENT = 655, XMLEXISTS = 656, XMLFOREST = 657, XMLPARSE = 658, XMLPI = 659, XMLROOT = 660, XMLSERIALIZE = 661, YEAR_P = 662, YES_P = 663, ZONE = 664, NULLS_FIRST = 665, NULLS_LAST = 666, WITH_TIME = 667, POSTFIXOP = 668, UMINUS = 669 }; #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 ABORT_P 269 #define ABSOLUTE_P 270 #define ACCESS 271 #define ACTION 272 #define ADD_P 273 #define ADMIN 274 #define AFTER 275 #define AGGREGATE 276 #define ALL 277 #define ALSO 278 #define ALTER 279 #define ALWAYS 280 #define ANALYSE 281 #define ANALYZE 282 #define AND 283 #define ANY 284 #define ARRAY 285 #define AS 286 #define ASC 287 #define ASSERTION 288 #define ASSIGNMENT 289 #define ASYMMETRIC 290 #define AT 291 #define ATTRIBUTE 292 #define AUTHORIZATION 293 #define BACKWARD 294 #define BEFORE 295 #define BEGIN_P 296 #define BETWEEN 297 #define BIGINT 298 #define BINARY 299 #define BIT 300 #define BOOLEAN_P 301 #define BOTH 302 #define BY 303 #define CACHE 304 #define CALLED 305 #define CASCADE 306 #define CASCADED 307 #define CASE 308 #define CAST 309 #define CATALOG_P 310 #define CHAIN 311 #define CHAR_P 312 #define CHARACTER 313 #define CHARACTERISTICS 314 #define CHECK 315 #define CHECKPOINT 316 #define CLASS 317 #define CLOSE 318 #define CLUSTER 319 #define COALESCE 320 #define COLLATE 321 #define COLLATION 322 #define COLUMN 323 #define COMMENT 324 #define COMMENTS 325 #define COMMIT 326 #define COMMITTED 327 #define CONCURRENTLY 328 #define CONFIGURATION 329 #define CONNECTION 330 #define CONSTRAINT 331 #define CONSTRAINTS 332 #define CONTENT_P 333 #define CONTINUE_P 334 #define CONVERSION_P 335 #define COPY 336 #define COST 337 #define CREATE 338 #define CROSS 339 #define CSV 340 #define CURRENT_P 341 #define CURRENT_CATALOG 342 #define CURRENT_DATE 343 #define CURRENT_ROLE 344 #define CURRENT_SCHEMA 345 #define CURRENT_TIME 346 #define CURRENT_TIMESTAMP 347 #define CURRENT_USER 348 #define CURSOR 349 #define CYCLE 350 #define DATA_P 351 #define DATABASE 352 #define DAY_P 353 #define DEALLOCATE 354 #define DEC 355 #define DECIMAL_P 356 #define DECLARE 357 #define DEFAULT 358 #define DEFAULTS 359 #define DEFERRABLE 360 #define DEFERRED 361 #define DEFINER 362 #define DELETE_P 363 #define DELIMITER 364 #define DELIMITERS 365 #define DESC 366 #define DICTIONARY 367 #define DISABLE_P 368 #define DISCARD 369 #define DISTINCT 370 #define DO 371 #define DOCUMENT_P 372 #define DOMAIN_P 373 #define DOUBLE_P 374 #define DROP 375 #define EACH 376 #define ELSE 377 #define ENABLE_P 378 #define ENCODING 379 #define ENCRYPTED 380 #define END_P 381 #define ENUM_P 382 #define ESCAPE 383 #define EXCEPT 384 #define EXCLUDE 385 #define EXCLUDING 386 #define EXCLUSIVE 387 #define EXECUTE 388 #define EXISTS 389 #define EXPLAIN 390 #define EXTENSION 391 #define EXTERNAL 392 #define EXTRACT 393 #define FALSE_P 394 #define FAMILY 395 #define FETCH 396 #define FIRST_P 397 #define FLOAT_P 398 #define FOLLOWING 399 #define FOR 400 #define FORCE 401 #define FOREIGN 402 #define FORWARD 403 #define FREEZE 404 #define FROM 405 #define FULL 406 #define FUNCTION 407 #define FUNCTIONS 408 #define GLOBAL 409 #define GRANT 410 #define GRANTED 411 #define GREATEST 412 #define GROUP_P 413 #define HANDLER 414 #define HAVING 415 #define HEADER_P 416 #define HOLD 417 #define HOUR_P 418 #define IDENTITY_P 419 #define IF_P 420 #define ILIKE 421 #define IMMEDIATE 422 #define IMMUTABLE 423 #define IMPLICIT_P 424 #define IN_P 425 #define INCLUDING 426 #define INCREMENT 427 #define INDEX 428 #define INDEXES 429 #define INHERIT 430 #define INHERITS 431 #define INITIALLY 432 #define INLINE_P 433 #define INNER_P 434 #define INOUT 435 #define INPUT_P 436 #define INSENSITIVE 437 #define INSERT 438 #define INSTEAD 439 #define INT_P 440 #define INTEGER 441 #define INTERSECT 442 #define INTERVAL 443 #define INTO 444 #define INVOKER 445 #define IS 446 #define ISNULL 447 #define ISOLATION 448 #define JOIN 449 #define KEY 450 #define LABEL 451 #define LANGUAGE 452 #define LARGE_P 453 #define LAST_P 454 #define LC_COLLATE_P 455 #define LC_CTYPE_P 456 #define LEADING 457 #define LEAKPROOF 458 #define LEAST 459 #define LEFT 460 #define LEVEL 461 #define LIKE 462 #define LIMIT 463 #define LISTEN 464 #define LOAD 465 #define LOCAL 466 #define LOCALTIME 467 #define LOCALTIMESTAMP 468 #define LOCATION 469 #define LOCK_P 470 #define MAPPING 471 #define MATCH 472 #define MAXVALUE 473 #define MINUTE_P 474 #define MINVALUE 475 #define MODE 476 #define MONTH_P 477 #define MOVE 478 #define NAME_P 479 #define NAMES 480 #define NATIONAL 481 #define NATURAL 482 #define NCHAR 483 #define NEXT 484 #define NO 485 #define NONE 486 #define NOT 487 #define NOTHING 488 #define NOTIFY 489 #define NOTNULL 490 #define NOWAIT 491 #define NULL_P 492 #define NULLIF 493 #define NULLS_P 494 #define NUMERIC 495 #define OBJECT_P 496 #define OF 497 #define OFF 498 #define OFFSET 499 #define OIDS 500 #define ON 501 #define ONLY 502 #define OPERATOR 503 #define OPTION 504 #define OPTIONS 505 #define OR 506 #define ORDER 507 #define OUT_P 508 #define OUTER_P 509 #define OVER 510 #define OVERLAPS 511 #define OVERLAY 512 #define OWNED 513 #define OWNER 514 #define PARSER 515 #define PARTIAL 516 #define PARTITION 517 #define PASSING 518 #define PASSWORD 519 #define PLACING 520 #define PLANS 521 #define POSITION 522 #define PRECEDING 523 #define PRECISION 524 #define PRESERVE 525 #define PREPARE 526 #define PREPARED 527 #define PRIMARY 528 #define PRIOR 529 #define PRIVILEGES 530 #define PROCEDURAL 531 #define PROCEDURE 532 #define QUOTE 533 #define RANGE 534 #define READ 535 #define REAL 536 #define REASSIGN 537 #define RECHECK 538 #define RECURSIVE 539 #define REF 540 #define REFERENCES 541 #define REINDEX 542 #define RELATIVE_P 543 #define RELEASE 544 #define RENAME 545 #define REPEATABLE 546 #define REPLACE 547 #define REPLICA 548 #define RESET 549 #define RESTART 550 #define RESTRICT 551 #define RETURNING 552 #define RETURNS 553 #define REVOKE 554 #define RIGHT 555 #define ROLE 556 #define ROLLBACK 557 #define ROW 558 #define ROWS 559 #define RULE 560 #define SAVEPOINT 561 #define SCHEMA 562 #define SCROLL 563 #define SEARCH 564 #define SECOND_P 565 #define SECURITY 566 #define SELECT 567 #define SEQUENCE 568 #define SEQUENCES 569 #define SERIALIZABLE 570 #define SERVER 571 #define SESSION 572 #define SESSION_USER 573 #define SET 574 #define SETOF 575 #define SHARE 576 #define SHOW 577 #define SIMILAR 578 #define SIMPLE 579 #define SMALLINT 580 #define SNAPSHOT 581 #define SOME 582 #define STABLE 583 #define STANDALONE_P 584 #define START 585 #define STATEMENT 586 #define STATISTICS 587 #define STDIN 588 #define STDOUT 589 #define STORAGE 590 #define STRICT_P 591 #define STRIP_P 592 #define SUBSTRING 593 #define SYMMETRIC 594 #define SYSID 595 #define SYSTEM_P 596 #define TABLE 597 #define TABLES 598 #define TABLESPACE 599 #define TEMP 600 #define TEMPLATE 601 #define TEMPORARY 602 #define TEXT_P 603 #define THEN 604 #define TIME 605 #define TIMESTAMP 606 #define TO 607 #define TRAILING 608 #define TRANSACTION 609 #define TREAT 610 #define TRIGGER 611 #define TRIM 612 #define TRUE_P 613 #define TRUNCATE 614 #define TRUSTED 615 #define TYPE_P 616 #define TYPES_P 617 #define UNBOUNDED 618 #define UNCOMMITTED 619 #define UNENCRYPTED 620 #define UNION 621 #define UNIQUE 622 #define UNKNOWN 623 #define UNLISTEN 624 #define UNLOGGED 625 #define UNTIL 626 #define UPDATE 627 #define USER 628 #define USING 629 #define VACUUM 630 #define VALID 631 #define VALIDATE 632 #define VALIDATOR 633 #define VALUE_P 634 #define VALUES 635 #define VARCHAR 636 #define VARIADIC 637 #define VARYING 638 #define VERBOSE 639 #define VERSION_P 640 #define VIEW 641 #define VOLATILE 642 #define WHEN 643 #define WHERE 644 #define WHITESPACE_P 645 #define WINDOW 646 #define WITH 647 #define WITHOUT 648 #define WORK 649 #define WRAPPER 650 #define WRITE 651 #define XML_P 652 #define XMLATTRIBUTES 653 #define XMLCONCAT 654 #define XMLELEMENT 655 #define XMLEXISTS 656 #define XMLFOREST 657 #define XMLPARSE 658 #define XMLPI 659 #define XMLROOT 660 #define XMLSERIALIZE 661 #define YEAR_P 662 #define YES_P 663 #define ZONE 664 #define NULLS_FIRST 665 #define NULLS_LAST 666 #define WITH_TIME 667 #define POSTFIXOP 668 #define UMINUS 669 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { /* Line 214 of yacc.c */ #line 171 "gram.y" core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ int ival; char *str; const char *keyword; char chr; bool boolean; JoinType jtype; DropBehavior dbehavior; OnCommitAction oncommit; List *list; Node *node; Value *value; ObjectType objtype; TypeName *typnam; FunctionParameter *fun_param; FunctionParameterMode fun_param_mode; FuncWithArgs *funwithargs; DefElem *defelt; SortBy *sortby; WindowDef *windef; JoinExpr *jexpr; IndexElem *ielem; Alias *alias; RangeVar *range; IntoClause *into; WithClause *with; A_Indices *aind; ResTarget *target; struct PrivTarget *privtarget; AccessPriv *accesspriv; InsertStmt *istmt; VariableSetStmt *vsetstmt; /* Line 214 of yacc.c */ #line 1145 "gram.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 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 264 of yacc.c */ #line 1170 "gram.c" #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 /* 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 /* 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 yyi) #else static int YYID (yyi) int yyi; #endif { return yyi; } #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 /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* 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 /* 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 /* 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_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* 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_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 696 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 72676 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 432 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 544 /* YYNRULES -- Number of rules. */ #define YYNRULES 2255 /* YYNRULES -- Number of states. */ #define YYNSTATES 4292 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 669 #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, 2, 2, 421, 2, 2, 426, 427, 419, 417, 430, 418, 428, 420, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 431, 429, 414, 413, 415, 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, 424, 2, 425, 422, 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, 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, 416, 423 }; #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, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 232, 238, 240, 241, 244, 245, 248, 249, 252, 255, 259, 263, 265, 269, 273, 276, 278, 280, 283, 286, 289, 293, 297, 303, 309, 310, 314, 320, 326, 331, 335, 341, 345, 351, 357, 364, 366, 368, 372, 378, 385, 390, 392, 393, 396, 397, 399, 401, 403, 405, 407, 409, 412, 416, 420, 423, 429, 431, 435, 439, 443, 447, 451, 455, 458, 461, 464, 467, 471, 475, 479, 483, 485, 489, 491, 495, 497, 499, 502, 505, 508, 510, 512, 514, 516, 518, 520, 522, 526, 533, 535, 537, 539, 541, 543, 544, 546, 548, 551, 555, 560, 564, 567, 570, 572, 575, 577, 580, 584, 589, 593, 596, 601, 603, 605, 607, 609, 611, 614, 617, 620, 623, 628, 635, 640, 647, 652, 659, 664, 671, 673, 677, 680, 684, 689, 696, 703, 710, 716, 722, 729, 736, 741, 750, 755, 758, 762, 769, 774, 778, 782, 786, 790, 794, 799, 804, 808, 812, 816, 820, 824, 828, 833, 838, 842, 845, 849, 852, 855, 859, 863, 866, 869, 871, 875, 878, 880, 882, 883, 886, 887, 890, 891, 895, 898, 899, 901, 905, 909, 911, 917, 921, 926, 928, 932, 937, 944, 949, 958, 961, 964, 975, 982, 984, 986, 988, 990, 992, 994, 998, 1001, 1002, 1004, 1006, 1010, 1014, 1016, 1018, 1022, 1026, 1030, 1034, 1039, 1042, 1044, 1045, 1048, 1049, 1053, 1054, 1056, 1057, 1059, 1063, 1066, 1068, 1070, 1072, 1076, 1077, 1079, 1083, 1085, 1097, 1112, 1123, 1137, 1139, 1141, 1144, 1147, 1150, 1153, 1155, 1156, 1158, 1159, 1163, 1164, 1166, 1170, 1172, 1176, 1178, 1180, 1182, 1184, 1186, 1191, 1196, 1199, 1200, 1204, 1206, 1208, 1211, 1214, 1216, 1220, 1225, 1231, 1234, 1240, 1242, 1245, 1248, 1251, 1255, 1259, 1263, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1280, 1282, 1288, 1296, 1300, 1309, 1314, 1324, 1336, 1339, 1340, 1344, 1345, 1347, 1351, 1353, 1356, 1359, 1362, 1363, 1365, 1369, 1373, 1380, 1385, 1386, 1388, 1390, 1393, 1396, 1397, 1401, 1405, 1408, 1410, 1412, 1415, 1418, 1423, 1424, 1427, 1430, 1433, 1434, 1438, 1443, 1448, 1449, 1452, 1453, 1458, 1459, 1463, 1471, 1477, 1480, 1484, 1485, 1491, 1496, 1503, 1505, 1506, 1508, 1511, 1514, 1516, 1519, 1523, 1526, 1529, 1532, 1535, 1539, 1543, 1545, 1549, 1551, 1552, 1554, 1557, 1559, 1561, 1565, 1572, 1583, 1585, 1586, 1588, 1591, 1594, 1595, 1598, 1601, 1603, 1604, 1610, 1618, 1620, 1621, 1628, 1631, 1632, 1636, 1642, 1648, 1657, 1660, 1661, 1664, 1667, 1670, 1676, 1679, 1680, 1683, 1691, 1702, 1709, 1716, 1723, 1730, 1738, 1746, 1756, 1766, 1773, 1780, 1789, 1798, 1807, 1816, 1823, 1830, 1838, 1847, 1854, 1861, 1869, 1872, 1875, 1878, 1881, 1883, 1886, 1888, 1889, 1896, 1905, 1913, 1920, 1925, 1926, 1928, 1932, 1937, 1939, 1943, 1945, 1948, 1951, 1954, 1957, 1959, 1961, 1972, 1975, 1976, 1979, 1982, 1984, 1985, 1990, 1997, 2003, 2008, 2013, 2022, 2034, 2038, 2041, 2043, 2047, 2049, 2055, 2063, 2072, 2074, 2076, 2078, 2086, 2096, 2105, 2121, 2142, 2144, 2146, 2149, 2151, 2155, 2157, 2159, 2161, 2165, 2167, 2171, 2172, 2174, 2175, 2177, 2179, 2184, 2185, 2187, 2191, 2192, 2194, 2196, 2198, 2200, 2203, 2204, 2205, 2208, 2211, 2213, 2216, 2219, 2222, 2225, 2232, 2241, 2250, 2255, 2261, 2266, 2271, 2276, 2280, 2288, 2297, 2304, 2311, 2318, 2325, 2332, 2337, 2343, 2347, 2349, 2353, 2357, 2359, 2361, 2363, 2365, 2367, 2369, 2373, 2377, 2381, 2383, 2387, 2391, 2393, 2394, 2396, 2400, 2407, 2416, 2425, 2439, 2441, 2445, 2451, 2458, 2463, 2471, 2474, 2476, 2477, 2480, 2481, 2484, 2489, 2490, 2492, 2493, 2500, 2509, 2518, 2520, 2524, 2530, 2536, 2544, 2554, 2562, 2572, 2578, 2585, 2592, 2597, 2603, 2611, 2613, 2615, 2617, 2619, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2638, 2642, 2646, 2650, 2652, 2656, 2658, 2661, 2664, 2668, 2674, 2677, 2680, 2681, 2688, 2696, 2704, 2712, 2721, 2730, 2737, 2746, 2756, 2766, 2774, 2785, 2793, 2802, 2811, 2820, 2829, 2831, 2833, 2835, 2837, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2855, 2857, 2860, 2862, 2866, 2868, 2870, 2879, 2889, 2899, 2909, 2919, 2922, 2923, 2925, 2927, 2930, 2932, 2934, 2936, 2938, 2940, 2942, 2944, 2946, 2948, 2950, 2953, 2956, 2958, 2961, 2965, 2969, 2973, 2977, 2982, 2987, 2991, 2995, 2999, 3004, 3009, 3013, 3018, 3023, 3025, 3027, 3029, 3030, 3038, 3046, 3057, 3059, 3061, 3064, 3069, 3075, 3077, 3081, 3084, 3087, 3090, 3093, 3095, 3098, 3101, 3106, 3110, 3113, 3116, 3119, 3122, 3126, 3129, 3132, 3135, 3141, 3147, 3153, 3155, 3159, 3161, 3164, 3168, 3169, 3171, 3175, 3178, 3185, 3192, 3202, 3206, 3207, 3211, 3212, 3218, 3221, 3222, 3226, 3230, 3234, 3242, 3250, 3261, 3263, 3265, 3267, 3269, 3284, 3286, 3287, 3289, 3290, 3292, 3293, 3296, 3297, 3299, 3303, 3309, 3315, 3323, 3326, 3327, 3329, 3332, 3333, 3335, 3337, 3338, 3340, 3342, 3343, 3353, 3366, 3374, 3377, 3378, 3382, 3385, 3387, 3391, 3395, 3398, 3400, 3404, 3408, 3412, 3415, 3418, 3420, 3422, 3424, 3426, 3429, 3431, 3433, 3435, 3437, 3442, 3448, 3450, 3454, 3458, 3460, 3463, 3468, 3474, 3476, 3478, 3480, 3482, 3486, 3490, 3493, 3496, 3498, 3501, 3504, 3507, 3509, 3512, 3515, 3517, 3519, 3521, 3525, 3528, 3529, 3532, 3534, 3538, 3544, 3546, 3549, 3551, 3552, 3558, 3566, 3572, 3580, 3586, 3594, 3598, 3604, 3610, 3616, 3618, 3622, 3625, 3627, 3630, 3632, 3635, 3647, 3658, 3669, 3672, 3675, 3676, 3686, 3689, 3690, 3695, 3700, 3705, 3707, 3709, 3711, 3712, 3720, 3727, 3734, 3741, 3748, 3757, 3766, 3773, 3780, 3788, 3798, 3808, 3815, 3822, 3829, 3838, 3845, 3854, 3861, 3870, 3877, 3886, 3894, 3904, 3913, 3924, 3933, 3943, 3955, 3964, 3971, 3978, 3985, 3991, 3997, 4006, 4015, 4024, 4033, 4040, 4050, 4052, 4053, 4056, 4057, 4065, 4072, 4079, 4086, 4093, 4100, 4108, 4118, 4128, 4135, 4144, 4153, 4162, 4171, 4180, 4187, 4196, 4203, 4212, 4220, 4230, 4237, 4245, 4252, 4259, 4266, 4273, 4280, 4288, 4296, 4304, 4314, 4324, 4331, 4338, 4345, 4354, 4363, 4372, 4379, 4393, 4395, 4397, 4401, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419, 4420, 4422, 4424, 4426, 4428, 4430, 4432, 4433, 4440, 4449, 4453, 4456, 4457, 4460, 4463, 4466, 4469, 4473, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4502, 4507, 4511, 4515, 4519, 4521, 4523, 4524, 4528, 4531, 4534, 4536, 4539, 4541, 4545, 4548, 4550, 4551, 4561, 4573, 4577, 4582, 4587, 4588, 4591, 4597, 4600, 4601, 4605, 4609, 4613, 4617, 4621, 4625, 4629, 4633, 4637, 4641, 4645, 4649, 4653, 4658, 4662, 4666, 4668, 4669, 4675, 4682, 4687, 4690, 4691, 4696, 4700, 4706, 4713, 4718, 4725, 4732, 4738, 4746, 4756, 4763, 4765, 4766, 4773, 4785, 4797, 4809, 4823, 4833, 4845, 4856, 4861, 4864, 4870, 4873, 4874, 4879, 4885, 4891, 4896, 4903, 4905, 4909, 4911, 4913, 4915, 4917, 4920, 4925, 4927, 4929, 4931, 4932, 4934, 4935, 4937, 4938, 4942, 4943, 4946, 4951, 4955, 4961, 4963, 4965, 4967, 4969, 4971, 4973, 4975, 4977, 4981, 4984, 4986, 4988, 4990, 4992, 4994, 4995, 5001, 5005, 5006, 5008, 5010, 5012, 5014, 5018, 5028, 5032, 5033, 5036, 5040, 5043, 5047, 5054, 5056, 5061, 5064, 5066, 5070, 5073, 5076, 5077, 5085, 5088, 5089, 5095, 5099, 5100, 5103, 5106, 5109, 5113, 5115, 5119, 5121, 5124, 5126, 5127, 5136, 5138, 5142, 5144, 5146, 5150, 5156, 5159, 5161, 5165, 5173, 5175, 5176, 5180, 5183, 5186, 5189, 5190, 5193, 5196, 5198, 5200, 5204, 5208, 5210, 5213, 5218, 5223, 5226, 5230, 5236, 5242, 5244, 5246, 5256, 5258, 5261, 5266, 5271, 5276, 5279, 5283, 5285, 5289, 5296, 5298, 5299, 5302, 5303, 5307, 5311, 5316, 5321, 5326, 5331, 5335, 5338, 5340, 5342, 5343, 5345, 5347, 5348, 5350, 5356, 5358, 5359, 5361, 5362, 5366, 5368, 5372, 5377, 5381, 5384, 5387, 5389, 5391, 5393, 5394, 5397, 5402, 5408, 5411, 5415, 5417, 5419, 5421, 5423, 5427, 5428, 5430, 5432, 5434, 5436, 5438, 5442, 5443, 5446, 5447, 5449, 5453, 5455, 5456, 5458, 5461, 5466, 5471, 5474, 5475, 5478, 5482, 5485, 5486, 5488, 5492, 5494, 5497, 5499, 5502, 5508, 5515, 5521, 5523, 5526, 5528, 5533, 5537, 5542, 5548, 5553, 5559, 5564, 5570, 5573, 5578, 5580, 5583, 5586, 5589, 5591, 5593, 5594, 5599, 5602, 5604, 5607, 5610, 5615, 5617, 5621, 5623, 5626, 5630, 5632, 5635, 5636, 5639, 5644, 5645, 5647, 5648, 5650, 5654, 5658, 5661, 5665, 5671, 5678, 5681, 5685, 5689, 5694, 5695, 5697, 5699, 5701, 5703, 5705, 5708, 5714, 5716, 5718, 5720, 5722, 5725, 5729, 5733, 5734, 5736, 5738, 5740, 5742, 5744, 5747, 5750, 5753, 5756, 5759, 5761, 5765, 5766, 5768, 5770, 5772, 5774, 5780, 5783, 5785, 5787, 5789, 5791, 5797, 5800, 5803, 5806, 5808, 5812, 5816, 5819, 5821, 5822, 5826, 5827, 5833, 5836, 5842, 5845, 5847, 5850, 5854, 5855, 5857, 5859, 5861, 5863, 5865, 5867, 5871, 5875, 5879, 5883, 5887, 5891, 5895, 5896, 5898, 5903, 5905, 5909, 5913, 5919, 5922, 5925, 5929, 5933, 5937, 5941, 5945, 5949, 5953, 5957, 5961, 5965, 5968, 5971, 5975, 5979, 5982, 5986, 5992, 5997, 6004, 6008, 6014, 6019, 6026, 6031, 6038, 6044, 6052, 6056, 6059, 6064, 6067, 6071, 6075, 6080, 6084, 6089, 6093, 6098, 6104, 6111, 6118, 6126, 6133, 6141, 6148, 6156, 6160, 6165, 6170, 6177, 6180, 6184, 6189, 6191, 6195, 6198, 6201, 6205, 6209, 6213, 6217, 6221, 6225, 6229, 6233, 6237, 6241, 6244, 6247, 6253, 6260, 6267, 6275, 6279, 6284, 6286, 6288, 6291, 6296, 6298, 6300, 6302, 6305, 6308, 6311, 6314, 6316, 6321, 6327, 6334, 6343, 6350, 6358, 6366, 6372, 6378, 6380, 6382, 6387, 6389, 6394, 6396, 6401, 6403, 6408, 6410, 6412, 6414, 6416, 6418, 6420, 6427, 6432, 6437, 6442, 6447, 6454, 6460, 6466, 6472, 6477, 6484, 6489, 6494, 6499, 6504, 6510, 6518, 6526, 6536, 6542, 6547, 6554, 6560, 6568, 6576, 6584, 6587, 6591, 6595, 6599, 6604, 6605, 6610, 6612, 6616, 6620, 6622, 6624, 6626, 6629, 6632, 6633, 6636, 6641, 6646, 6653, 6656, 6657, 6659, 6663, 6667, 6670, 6673, 6674, 6681, 6683, 6684, 6688, 6689, 6692, 6695, 6696, 6698, 6703, 6706, 6709, 6712, 6715, 6718, 6723, 6727, 6733, 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, 6759, 6761, 6763, 6768, 6770, 6775, 6777, 6782, 6784, 6787, 6789, 6792, 6794, 6798, 6800, 6804, 6806, 6810, 6812, 6816, 6820, 6824, 6827, 6829, 6833, 6837, 6838, 6840, 6842, 6844, 6846, 6848, 6850, 6852, 6854, 6859, 6863, 6866, 6870, 6871, 6875, 6879, 6882, 6885, 6887, 6888, 6891, 6894, 6898, 6901, 6903, 6905, 6909, 6915, 6917, 6920, 6925, 6928, 6929, 6931, 6932, 6934, 6937, 6940, 6943, 6947, 6953, 6955, 6958, 6959, 6962, 6964, 6965, 6967, 6969, 6971, 6975, 6979, 6981, 6985, 6989, 6992, 6994, 6996, 6998, 7002, 7004, 7007, 7009, 7013, 7015, 7017, 7019, 7021, 7023, 7025, 7027, 7030, 7032, 7034, 7036, 7038, 7040, 7043, 7049, 7052, 7056, 7063, 7065, 7067, 7069, 7071, 7073, 7075, 7077, 7080, 7083, 7085, 7087, 7089, 7091, 7093, 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115, 7117, 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139, 7141, 7143, 7145, 7147, 7149, 7151, 7153, 7155, 7157, 7159, 7161, 7163, 7165, 7167, 7169, 7171, 7173, 7175, 7177, 7179, 7181, 7183, 7185, 7187, 7189, 7191, 7193, 7195, 7197, 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, 7215, 7217, 7219, 7221, 7223, 7225, 7227, 7229, 7231, 7233, 7235, 7237, 7239, 7241, 7243, 7245, 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269, 7271, 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293, 7295, 7297, 7299, 7301, 7303, 7305, 7307, 7309, 7311, 7313, 7315, 7317, 7319, 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, 7337, 7339, 7341, 7343, 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, 7361, 7363, 7365, 7367, 7369, 7371, 7373, 7375, 7377, 7379, 7381, 7383, 7385, 7387, 7389, 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, 7409, 7411, 7413, 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, 7433, 7435, 7437, 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, 7457, 7459, 7461, 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, 7481, 7483, 7485, 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, 7505, 7507, 7509, 7511, 7513, 7515, 7517, 7519, 7521, 7523, 7525, 7527, 7529, 7531, 7533, 7535, 7537, 7539, 7541, 7543, 7545, 7547, 7549, 7551, 7553, 7555, 7557, 7559, 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579, 7581, 7583, 7585, 7587, 7589, 7591, 7593, 7595, 7597, 7599, 7601, 7603, 7605, 7607, 7609, 7611, 7613, 7615, 7617, 7619, 7621, 7623, 7625, 7627, 7629, 7631, 7633, 7635, 7637, 7639, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7655, 7657, 7659, 7661, 7663, 7665, 7667, 7669, 7671, 7673, 7675, 7677, 7679, 7681, 7683, 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715, 7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751, 7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827, 7829, 7831, 7833, 7835, 7837, 7839, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891, 7893, 7895 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 433, 0, -1, 434, -1, 434, 429, 435, -1, 435, -1, 761, -1, 762, -1, 679, -1, 767, -1, 630, -1, 570, -1, 573, -1, 579, -1, 593, -1, 598, -1, 714, -1, 451, -1, 735, -1, 736, -1, 549, -1, 478, -1, 489, -1, 445, -1, 443, -1, 770, -1, 769, -1, 602, -1, 447, -1, 446, -1, 777, -1, 476, -1, 492, -1, 772, -1, 653, -1, 473, -1, 493, -1, 545, -1, 617, -1, 725, -1, 771, -1, 766, -1, 567, -1, 574, -1, 588, -1, 594, -1, 695, -1, 450, -1, 631, -1, 638, -1, 639, -1, 556, -1, 454, -1, 548, -1, 508, -1, 564, -1, 603, -1, 436, -1, 442, -1, 599, -1, 757, -1, 794, -1, 813, -1, 619, -1, 800, -1, 477, -1, 722, -1, 618, -1, 727, -1, 578, -1, 592, -1, 453, -1, 642, -1, 643, -1, 644, -1, 562, -1, 744, -1, 646, -1, 566, -1, 616, -1, 448, -1, 449, -1, 601, -1, 765, -1, 792, -1, 783, -1, 660, -1, 664, -1, 675, -1, 684, -1, 795, -1, 747, -1, 756, -1, 802, -1, 745, -1, 789, -1, 645, -1, 729, -1, 718, -1, 717, -1, 719, -1, 732, -1, 665, -1, 676, -1, 737, -1, 656, -1, 817, -1, 749, -1, 651, -1, 748, -1, 806, -1, 774, -1, 469, -1, 458, -1, 472, -1, 754, -1, -1, 83, 301, 967, 437, 438, -1, 392, -1, -1, 438, 441, -1, -1, 439, 440, -1, -1, 264, 966, -1, 264, 237, -1, 125, 264, 966, -1, 365, 264, 966, -1, 175, -1, 75, 208, 968, -1, 376, 371, 966, -1, 373, 956, -1, 3, -1, 440, -1, 340, 965, -1, 19, 956, -1, 301, 956, -1, 170, 301, 956, -1, 170, 158, 956, -1, 83, 373, 967, 437, 438, -1, 24, 301, 967, 437, 439, -1, -1, 170, 97, 958, -1, 24, 301, 967, 444, 470, -1, 24, 373, 967, 437, 439, -1, 24, 373, 967, 470, -1, 120, 301, 956, -1, 120, 301, 165, 134, 956, -1, 120, 373, 956, -1, 120, 373, 165, 134, 956, -1, 83, 158, 967, 437, 438, -1, 24, 158, 967, 452, 373, 956, -1, 18, -1, 120, -1, 120, 158, 956, -1, 120, 158, 165, 134, 956, -1, 83, 307, 455, 38, 967, 456, -1, 83, 307, 969, 456, -1, 969, -1, -1, 456, 457, -1, -1, 508, -1, 684, -1, 548, -1, 603, -1, 664, -1, 754, -1, 319, 459, -1, 319, 211, 459, -1, 319, 317, 459, -1, 354, 752, -1, 317, 59, 31, 354, 752, -1, 460, -1, 461, 352, 462, -1, 461, 413, 462, -1, 461, 352, 103, -1, 461, 413, 103, -1, 461, 150, 86, -1, 350, 409, 466, -1, 55, 966, -1, 307, 966, -1, 225, 467, -1, 301, 468, -1, 317, 38, 468, -1, 317, 38, 103, -1, 397, 249, 903, -1, 354, 326, 966, -1, 969, -1, 461, 428, 969, -1, 463, -1, 462, 430, 463, -1, 465, -1, 554, -1, 280, 364, -1, 280, 72, -1, 291, 280, -1, 315, -1, 358, -1, 139, -1, 246, -1, 468, -1, 966, -1, 3, -1, 890, 966, 892, -1, 890, 426, 965, 427, 966, 892, -1, 554, -1, 103, -1, 211, -1, 966, -1, 103, -1, -1, 969, -1, 966, -1, 294, 461, -1, 294, 350, 409, -1, 294, 354, 193, 206, -1, 294, 317, 38, -1, 294, 22, -1, 319, 459, -1, 469, -1, 319, 460, -1, 469, -1, 322, 461, -1, 322, 350, 409, -1, 322, 354, 193, 206, -1, 322, 317, 38, -1, 322, 22, -1, 319, 77, 474, 475, -1, 22, -1, 954, -1, 106, -1, 167, -1, 61, -1, 114, 22, -1, 114, 345, -1, 114, 347, -1, 114, 266, -1, 24, 342, 861, 479, -1, 24, 342, 165, 134, 861, 479, -1, 24, 173, 955, 479, -1, 24, 173, 165, 134, 955, 479, -1, 24, 313, 955, 479, -1, 24, 313, 165, 134, 955, 479, -1, 24, 386, 955, 479, -1, 24, 386, 165, 134, 955, 479, -1, 480, -1, 479, 430, 480, -1, 18, 516, -1, 18, 68, 516, -1, 24, 733, 969, 481, -1, 24, 733, 969, 120, 232, 237, -1, 24, 733, 969, 319, 232, 237, -1, 24, 733, 969, 319, 332, 968, -1, 24, 733, 969, 319, 485, -1, 24, 733, 969, 294, 485, -1, 24, 733, 969, 319, 335, 969, -1, 120, 733, 165, 134, 969, 482, -1, 120, 733, 969, 482, -1, 24, 733, 969, 734, 361, 870, 483, 484, -1, 24, 733, 969, 582, -1, 18, 525, -1, 377, 76, 957, -1, 120, 76, 165, 134, 957, 482, -1, 120, 76, 957, 482, -1, 319, 392, 245, -1, 319, 393, 245, -1, 64, 246, 957, -1, 319, 393, 64, -1, 123, 356, 957, -1, 123, 25, 356, 957, -1, 123, 293, 356, 957, -1, 123, 356, 22, -1, 123, 356, 373, -1, 113, 356, 957, -1, 113, 356, 22, -1, 113, 356, 373, -1, 123, 305, 957, -1, 123, 25, 305, 957, -1, 123, 293, 305, 957, -1, 113, 305, 957, -1, 175, 955, -1, 230, 175, 955, -1, 242, 649, -1, 232, 242, -1, 259, 352, 967, -1, 319, 344, 957, -1, 319, 485, -1, 294, 485, -1, 582, -1, 319, 103, 894, -1, 120, 103, -1, 51, -1, 296, -1, -1, 66, 649, -1, -1, 374, 894, -1, -1, 426, 487, 427, -1, 392, 485, -1, -1, 488, -1, 487, 430, 488, -1, 971, 413, 623, -1, 971, -1, 971, 428, 971, 413, 623, -1, 971, 428, 971, -1, 24, 361, 649, 490, -1, 491, -1, 490, 430, 491, -1, 18, 37, 869, 482, -1, 120, 37, 165, 134, 969, 482, -1, 120, 37, 969, 482, -1, 24, 37, 969, 734, 361, 870, 483, 482, -1, 63, 814, -1, 63, 22, -1, 81, 499, 955, 528, 500, 494, 495, 501, 437, 496, -1, 81, 818, 352, 495, 437, 496, -1, 150, -1, 352, -1, 966, -1, 333, -1, 334, -1, 497, -1, 426, 503, 427, -1, 497, 498, -1, -1, 44, -1, 245, -1, 109, 768, 966, -1, 237, 768, 966, -1, 85, -1, 161, -1, 278, 768, 966, -1, 128, 768, 966, -1, 146, 278, 529, -1, 146, 278, 419, -1, 146, 232, 237, 529, -1, 124, 966, -1, 44, -1, -1, 392, 245, -1, -1, 502, 110, 966, -1, -1, 374, -1, -1, 504, -1, 503, 430, 504, -1, 971, 505, -1, 465, -1, 554, -1, 419, -1, 426, 506, 427, -1, -1, 507, -1, 506, 430, 507, -1, 465, -1, 83, 509, 342, 955, 426, 510, 427, 539, 540, 541, 542, -1, 83, 509, 342, 165, 232, 134, 955, 426, 510, 427, 539, 540, 541, 542, -1, 83, 509, 342, 955, 242, 649, 511, 540, 541, 542, -1, 83, 509, 342, 165, 232, 134, 955, 242, 649, 511, 540, 541, 542, -1, 347, -1, 345, -1, 211, 347, -1, 211, 345, -1, 154, 347, -1, 154, 345, -1, 370, -1, -1, 512, -1, -1, 426, 513, 427, -1, -1, 514, -1, 512, 430, 514, -1, 515, -1, 513, 430, 515, -1, 516, -1, 522, -1, 525, -1, 517, -1, 525, -1, 969, 870, 580, 518, -1, 969, 392, 250, 518, -1, 518, 519, -1, -1, 76, 957, 520, -1, 520, -1, 521, -1, 66, 649, -1, 232, 237, -1, 237, -1, 367, 711, 543, -1, 273, 195, 711, 543, -1, 60, 426, 894, 427, 527, -1, 103, 895, -1, 286, 955, 528, 531, 535, -1, 105, -1, 232, 105, -1, 177, 106, -1, 177, 167, -1, 207, 955, 523, -1, 523, 171, 524, -1, 523, 131, 524, -1, -1, 104, -1, 77, -1, 174, -1, 335, -1, 70, -1, 22, -1, 76, 957, 526, -1, 526, -1, 60, 426, 894, 427, 614, -1, 367, 426, 529, 427, 711, 543, 614, -1, 367, 544, 614, -1, 273, 195, 426, 529, 427, 711, 543, 614, -1, 273, 195, 544, 614, -1, 130, 688, 426, 532, 427, 711, 543, 534, 614, -1, 147, 195, 426, 529, 427, 286, 955, 528, 531, 535, 614, -1, 230, 175, -1, -1, 426, 529, 427, -1, -1, 530, -1, 529, 430, 530, -1, 969, -1, 217, 151, -1, 217, 261, -1, 217, 324, -1, -1, 533, -1, 532, 430, 533, -1, 690, 392, 721, -1, 690, 392, 248, 426, 721, 427, -1, 389, 426, 894, 427, -1, -1, 536, -1, 537, -1, 536, 537, -1, 537, 536, -1, -1, 246, 372, 538, -1, 246, 108, 538, -1, 230, 17, -1, 296, -1, 51, -1, 319, 237, -1, 319, 103, -1, 176, 426, 954, 427, -1, -1, 392, 485, -1, 392, 245, -1, 393, 245, -1, -1, 246, 71, 120, -1, 246, 71, 108, 304, -1, 246, 71, 270, 304, -1, -1, 344, 957, -1, -1, 374, 173, 344, 957, -1, -1, 374, 173, 961, -1, 83, 509, 342, 546, 31, 817, 547, -1, 955, 528, 540, 541, 542, -1, 392, 96, -1, 392, 230, 96, -1, -1, 83, 509, 313, 955, 550, -1, 24, 313, 955, 551, -1, 24, 313, 165, 134, 955, 551, -1, 551, -1, -1, 552, -1, 551, 552, -1, 49, 554, -1, 95, -1, 230, 95, -1, 172, 553, 554, -1, 218, 554, -1, 220, 554, -1, 230, 218, -1, 230, 220, -1, 258, 48, 649, -1, 330, 437, 554, -1, 295, -1, 295, 437, 554, -1, 48, -1, -1, 4, -1, 418, 4, -1, 968, -1, 554, -1, 555, 430, 554, -1, 83, 696, 557, 563, 197, 468, -1, 83, 696, 557, 563, 197, 468, 159, 558, 559, 561, -1, 360, -1, -1, 957, -1, 957, 650, -1, 178, 558, -1, -1, 378, 558, -1, 230, 378, -1, 560, -1, -1, 120, 563, 197, 468, 482, -1, 120, 563, 197, 165, 134, 468, 482, -1, 276, -1, -1, 83, 344, 957, 565, 214, 966, -1, 259, 957, -1, -1, 120, 344, 957, -1, 120, 344, 165, 134, 957, -1, 83, 136, 957, 437, 568, -1, 83, 136, 165, 232, 134, 957, 437, 568, -1, 568, 569, -1, -1, 307, 957, -1, 385, 468, -1, 150, 468, -1, 24, 136, 957, 372, 571, -1, 571, 572, -1, -1, 352, 468, -1, 24, 136, 957, 452, 21, 963, 624, -1, 24, 136, 957, 452, 54, 426, 870, 31, 870, 427, -1, 24, 136, 957, 452, 67, 649, -1, 24, 136, 957, 452, 80, 649, -1, 24, 136, 957, 452, 118, 649, -1, 24, 136, 957, 452, 152, 674, -1, 24, 136, 957, 452, 563, 197, 957, -1, 24, 136, 957, 452, 248, 721, 720, -1, 24, 136, 957, 452, 248, 62, 649, 374, 959, -1, 24, 136, 957, 452, 248, 140, 649, 374, 959, -1, 24, 136, 957, 452, 307, 957, -1, 24, 136, 957, 452, 342, 649, -1, 24, 136, 957, 452, 348, 309, 260, 649, -1, 24, 136, 957, 452, 348, 309, 112, 649, -1, 24, 136, 957, 452, 348, 309, 346, 649, -1, 24, 136, 957, 452, 348, 309, 74, 649, -1, 24, 136, 957, 452, 313, 649, -1, 24, 136, 957, 452, 386, 649, -1, 24, 136, 957, 452, 147, 342, 649, -1, 24, 136, 957, 452, 147, 96, 395, 957, -1, 24, 136, 957, 452, 316, 957, -1, 24, 136, 957, 452, 361, 649, -1, 83, 147, 96, 395, 957, 577, 580, -1, 159, 558, -1, 230, 159, -1, 378, 558, -1, 230, 378, -1, 575, -1, 576, 575, -1, 576, -1, -1, 120, 147, 96, 395, 957, 482, -1, 120, 147, 96, 395, 165, 134, 957, 482, -1, 24, 147, 96, 395, 957, 577, 582, -1, 24, 147, 96, 395, 957, 576, -1, 250, 426, 581, 427, -1, -1, 585, -1, 581, 430, 585, -1, 250, 426, 583, 427, -1, 584, -1, 583, 430, 584, -1, 585, -1, 319, 585, -1, 18, 585, -1, 120, 586, -1, 586, 587, -1, 971, -1, 966, -1, 83, 316, 957, 589, 591, 147, 96, 395, 957, 580, -1, 361, 966, -1, -1, 385, 966, -1, 385, 237, -1, 590, -1, -1, 120, 316, 957, 482, -1, 120, 316, 165, 134, 957, 482, -1, 24, 316, 957, 590, 582, -1, 24, 316, 957, 590, -1, 24, 316, 957, 582, -1, 83, 147, 342, 955, 595, 316, 957, 580, -1, 83, 147, 342, 165, 232, 134, 955, 595, 316, 957, 580, -1, 426, 596, 427, -1, 426, 427, -1, 597, -1, 596, 430, 597, -1, 516, -1, 24, 147, 342, 861, 479, -1, 24, 147, 342, 165, 134, 861, 479, -1, 83, 373, 216, 145, 600, 316, 957, 580, -1, 93, -1, 373, -1, 967, -1, 120, 373, 216, 145, 600, 316, 957, -1, 120, 373, 216, 165, 134, 145, 600, 316, 957, -1, 24, 373, 216, 145, 600, 316, 957, 582, -1, 83, 356, 957, 604, 605, 246, 955, 607, 610, 133, 277, 963, 426, 611, 427, -1, 83, 76, 356, 957, 20, 605, 246, 955, 613, 614, 145, 121, 303, 610, 133, 277, 963, 426, 611, 427, -1, 40, -1, 20, -1, 184, 242, -1, 606, -1, 605, 251, 606, -1, 183, -1, 108, -1, 372, -1, 372, 242, 529, -1, 359, -1, 145, 608, 609, -1, -1, 121, -1, -1, 303, -1, 331, -1, 388, 426, 894, 427, -1, -1, 612, -1, 611, 430, 612, -1, -1, 965, -1, 4, -1, 966, -1, 971, -1, 150, 955, -1, -1, -1, 614, 615, -1, 232, 105, -1, 105, -1, 177, 167, -1, 177, 106, -1, 232, 376, -1, 230, 175, -1, 120, 356, 957, 246, 649, 482, -1, 120, 356, 165, 134, 957, 246, 649, 482, -1, 83, 33, 957, 60, 426, 894, 427, 614, -1, 120, 33, 957, 482, -1, 83, 21, 963, 624, 620, -1, 83, 21, 963, 625, -1, 83, 248, 721, 620, -1, 83, 361, 649, 620, -1, 83, 361, 649, -1, 83, 361, 649, 31, 426, 867, 427, -1, 83, 361, 649, 31, 127, 426, 628, 427, -1, 83, 361, 649, 31, 279, 620, -1, 83, 348, 309, 260, 649, 620, -1, 83, 348, 309, 112, 649, 620, -1, 83, 348, 309, 346, 649, 620, -1, 83, 348, 309, 74, 649, 620, -1, 83, 67, 649, 620, -1, 83, 67, 649, 150, 649, -1, 426, 621, 427, -1, 622, -1, 621, 430, 622, -1, 971, 413, 623, -1, 971, -1, 705, -1, 975, -1, 921, -1, 554, -1, 966, -1, 426, 926, 427, -1, 426, 419, 427, -1, 426, 626, 427, -1, 627, -1, 626, 430, 627, -1, 3, 413, 623, -1, 629, -1, -1, 966, -1, 629, 430, 966, -1, 24, 361, 649, 18, 379, 966, -1, 24, 361, 649, 18, 379, 966, 40, 966, -1, 24, 361, 649, 18, 379, 966, 20, 966, -1, 83, 248, 62, 649, 634, 145, 361, 870, 374, 959, 635, 31, 632, -1, 633, -1, 632, 430, 633, -1, 248, 965, 721, 636, 637, -1, 248, 965, 721, 720, 636, 637, -1, 152, 965, 963, 697, -1, 152, 965, 426, 926, 427, 963, 697, -1, 335, 870, -1, 103, -1, -1, 140, 649, -1, -1, 145, 309, -1, 145, 252, 48, 649, -1, -1, 283, -1, -1, 83, 248, 140, 649, 374, 959, -1, 24, 248, 140, 649, 374, 959, 18, 632, -1, 24, 248, 140, 649, 374, 959, 120, 640, -1, 641, -1, 640, 430, 641, -1, 248, 965, 426, 926, 427, -1, 152, 965, 426, 926, 427, -1, 120, 248, 62, 649, 374, 959, 482, -1, 120, 248, 62, 165, 134, 649, 374, 959, 482, -1, 120, 248, 140, 649, 374, 959, 482, -1, 120, 248, 140, 165, 134, 649, 374, 959, 482, -1, 120, 258, 48, 956, 482, -1, 282, 258, 48, 956, 352, 957, -1, 120, 647, 165, 134, 648, 482, -1, 120, 647, 648, 482, -1, 120, 173, 73, 648, 482, -1, 120, 173, 73, 165, 134, 648, 482, -1, 342, -1, 313, -1, 386, -1, 173, -1, 147, 342, -1, 361, -1, 118, -1, 67, -1, 80, -1, 307, -1, 136, -1, 348, 309, 260, -1, 348, 309, 112, -1, 348, 309, 346, -1, 348, 309, 74, -1, 649, -1, 648, 430, 649, -1, 969, -1, 969, 650, -1, 428, 960, -1, 650, 428, 960, -1, 359, 828, 862, 652, 482, -1, 79, 164, -1, 295, 164, -1, -1, 69, 246, 654, 649, 191, 655, -1, 69, 246, 21, 963, 624, 191, 655, -1, 69, 246, 152, 963, 697, 191, 655, -1, 69, 246, 248, 721, 720, 191, 655, -1, 69, 246, 76, 957, 246, 649, 191, 655, -1, 69, 246, 305, 957, 246, 649, 191, 655, -1, 69, 246, 305, 957, 191, 655, -1, 69, 246, 356, 957, 246, 649, 191, 655, -1, 69, 246, 248, 62, 649, 374, 959, 191, 655, -1, 69, 246, 248, 140, 649, 374, 959, 191, 655, -1, 69, 246, 198, 241, 554, 191, 655, -1, 69, 246, 54, 426, 870, 31, 870, 427, 191, 655, -1, 69, 246, 563, 197, 649, 191, 655, -1, 69, 246, 348, 309, 260, 649, 191, 655, -1, 69, 246, 348, 309, 112, 649, 191, 655, -1, 69, 246, 348, 309, 346, 649, 191, 655, -1, 69, 246, 348, 309, 74, 649, 191, 655, -1, 68, -1, 97, -1, 307, -1, 173, -1, 313, -1, 342, -1, 118, -1, 361, -1, 386, -1, 67, -1, 80, -1, 344, -1, 136, -1, 301, -1, 147, 342, -1, 316, -1, 147, 96, 395, -1, 966, -1, 237, -1, 311, 196, 657, 246, 658, 649, 191, 659, -1, 311, 196, 657, 246, 21, 963, 624, 191, 659, -1, 311, 196, 657, 246, 152, 963, 697, 191, 659, -1, 311, 196, 657, 246, 198, 241, 554, 191, 659, -1, 311, 196, 657, 246, 563, 197, 649, 191, 659, -1, 145, 468, -1, -1, 68, -1, 97, -1, 147, 342, -1, 307, -1, 313, -1, 342, -1, 118, -1, 301, -1, 344, -1, 361, -1, 386, -1, 966, -1, 237, -1, 141, 661, -1, 223, 661, -1, 814, -1, 662, 814, -1, 229, 663, 814, -1, 274, 663, 814, -1, 142, 663, 814, -1, 199, 663, 814, -1, 15, 968, 663, 814, -1, 288, 968, 663, 814, -1, 968, 663, 814, -1, 22, 663, 814, -1, 148, 663, 814, -1, 148, 968, 663, 814, -1, 148, 22, 663, 814, -1, 39, 663, 814, -1, 39, 968, 663, 814, -1, 39, 22, 663, 814, -1, 150, -1, 170, -1, 662, -1, -1, 155, 666, 246, 669, 352, 670, 672, -1, 299, 666, 246, 669, 150, 670, 482, -1, 299, 155, 249, 145, 666, 246, 669, 150, 670, 482, -1, 667, -1, 22, -1, 22, 275, -1, 22, 426, 529, 427, -1, 22, 275, 426, 529, 427, -1, 668, -1, 667, 430, 668, -1, 312, 528, -1, 286, 528, -1, 83, 528, -1, 969, 528, -1, 954, -1, 342, 954, -1, 313, 954, -1, 147, 96, 395, 956, -1, 147, 316, 956, -1, 152, 673, -1, 97, 956, -1, 118, 648, -1, 197, 956, -1, 198, 241, 555, -1, 307, 956, -1, 344, 956, -1, 361, 648, -1, 22, 343, 170, 307, 956, -1, 22, 314, 170, 307, 956, -1, 22, 153, 170, 307, 956, -1, 671, -1, 670, 430, 671, -1, 967, -1, 158, 967, -1, 392, 155, 249, -1, -1, 674, -1, 673, 430, 674, -1, 963, 697, -1, 155, 667, 352, 956, 677, 678, -1, 299, 667, 150, 956, 678, 482, -1, 299, 19, 249, 145, 667, 150, 956, 678, 482, -1, 392, 19, 249, -1, -1, 156, 48, 967, -1, -1, 24, 103, 275, 680, 682, -1, 680, 681, -1, -1, 170, 307, 956, -1, 145, 301, 956, -1, 145, 373, 956, -1, 155, 666, 246, 683, 352, 670, 672, -1, 299, 666, 246, 683, 150, 670, 482, -1, 299, 155, 249, 145, 666, 246, 683, 150, 670, 482, -1, 343, -1, 153, -1, 314, -1, 362, -1, 83, 685, 173, 686, 687, 246, 955, 688, 426, 689, 427, 486, 542, 865, -1, 367, -1, -1, 73, -1, -1, 961, -1, -1, 374, 959, -1, -1, 690, -1, 689, 430, 690, -1, 969, 691, 692, 693, 694, -1, 897, 691, 692, 693, 694, -1, 426, 894, 427, 691, 692, 693, 694, -1, 66, 649, -1, -1, 649, -1, 374, 649, -1, -1, 32, -1, 111, -1, -1, 410, -1, 411, -1, -1, 83, 696, 152, 963, 699, 298, 704, 707, 711, -1, 83, 696, 152, 963, 699, 298, 342, 426, 713, 427, 707, 711, -1, 83, 696, 152, 963, 699, 707, 711, -1, 251, 292, -1, -1, 426, 698, 427, -1, 426, 427, -1, 701, -1, 698, 430, 701, -1, 426, 700, 427, -1, 426, 427, -1, 706, -1, 700, 430, 706, -1, 702, 703, 705, -1, 703, 702, 705, -1, 703, 705, -1, 702, 705, -1, 705, -1, 170, -1, 253, -1, 180, -1, 170, 253, -1, 382, -1, 970, -1, 705, -1, 870, -1, 970, 650, 421, 361, -1, 320, 970, 650, 421, 361, -1, 701, -1, 701, 103, 894, -1, 701, 413, 894, -1, 709, -1, 707, 709, -1, 50, 246, 237, 181, -1, 298, 237, 246, 237, 181, -1, 336, -1, 168, -1, 328, -1, 387, -1, 137, 311, 107, -1, 137, 311, 190, -1, 311, 107, -1, 311, 190, -1, 203, -1, 232, 203, -1, 82, 554, -1, 304, 554, -1, 471, -1, 31, 710, -1, 197, 468, -1, 391, -1, 708, -1, 966, -1, 966, 430, 966, -1, 392, 620, -1, -1, 703, 705, -1, 712, -1, 713, 430, 712, -1, 24, 152, 674, 715, 716, -1, 708, -1, 715, 708, -1, 296, -1, -1, 120, 152, 963, 697, 482, -1, 120, 152, 165, 134, 963, 697, 482, -1, 120, 21, 963, 624, 482, -1, 120, 21, 165, 134, 963, 624, 482, -1, 120, 248, 721, 720, 482, -1, 120, 248, 165, 134, 721, 720, 482, -1, 426, 870, 427, -1, 426, 870, 430, 870, 427, -1, 426, 231, 430, 870, 427, -1, 426, 870, 430, 231, 427, -1, 918, -1, 969, 428, 721, -1, 116, 723, -1, 724, -1, 723, 724, -1, 966, -1, 197, 468, -1, 83, 54, 426, 870, 31, 870, 427, 392, 152, 674, 726, -1, 83, 54, 426, 870, 31, 870, 427, 393, 152, 726, -1, 83, 54, 426, 870, 31, 870, 427, 392, 180, 726, -1, 31, 169, -1, 31, 34, -1, -1, 120, 54, 728, 426, 870, 31, 870, 427, 482, -1, 165, 134, -1, -1, 287, 730, 955, 731, -1, 287, 341, 957, 731, -1, 287, 97, 957, 731, -1, 173, -1, 342, -1, 146, -1, -1, 24, 21, 963, 624, 290, 352, 957, -1, 24, 67, 649, 290, 352, 957, -1, 24, 80, 649, 290, 352, 957, -1, 24, 97, 958, 290, 352, 958, -1, 24, 118, 649, 290, 352, 957, -1, 24, 118, 649, 290, 76, 957, 352, 957, -1, 24, 147, 96, 395, 957, 290, 352, 957, -1, 24, 152, 674, 290, 352, 957, -1, 24, 158, 967, 290, 352, 967, -1, 24, 563, 197, 957, 290, 352, 957, -1, 24, 248, 62, 649, 374, 959, 290, 352, 957, -1, 24, 248, 140, 649, 374, 959, 290, 352, 957, -1, 24, 307, 957, 290, 352, 957, -1, 24, 316, 957, 290, 352, 957, -1, 24, 342, 861, 290, 352, 957, -1, 24, 342, 165, 134, 861, 290, 352, 957, -1, 24, 313, 955, 290, 352, 957, -1, 24, 313, 165, 134, 955, 290, 352, 957, -1, 24, 386, 955, 290, 352, 957, -1, 24, 386, 165, 134, 955, 290, 352, 957, -1, 24, 173, 955, 290, 352, 957, -1, 24, 173, 165, 134, 955, 290, 352, 957, -1, 24, 147, 342, 861, 290, 352, 957, -1, 24, 147, 342, 165, 134, 861, 290, 352, 957, -1, 24, 342, 861, 290, 733, 957, 352, 957, -1, 24, 342, 165, 134, 861, 290, 733, 957, 352, 957, -1, 24, 342, 861, 290, 76, 957, 352, 957, -1, 24, 147, 342, 861, 290, 733, 957, 352, 957, -1, 24, 147, 342, 165, 134, 861, 290, 733, 957, 352, 957, -1, 24, 356, 957, 246, 955, 290, 352, 957, -1, 24, 301, 967, 290, 352, 967, -1, 24, 373, 967, 290, 352, 967, -1, 24, 344, 957, 290, 352, 957, -1, 24, 344, 957, 319, 485, -1, 24, 344, 957, 294, 485, -1, 24, 348, 309, 260, 649, 290, 352, 957, -1, 24, 348, 309, 112, 649, 290, 352, 957, -1, 24, 348, 309, 346, 649, 290, 352, 957, -1, 24, 348, 309, 74, 649, 290, 352, 957, -1, 24, 361, 649, 290, 352, 957, -1, 24, 361, 649, 290, 37, 957, 352, 957, 482, -1, 68, -1, -1, 319, 96, -1, -1, 24, 21, 963, 624, 319, 307, 957, -1, 24, 67, 649, 319, 307, 957, -1, 24, 80, 649, 319, 307, 957, -1, 24, 118, 649, 319, 307, 957, -1, 24, 136, 649, 319, 307, 957, -1, 24, 152, 674, 319, 307, 957, -1, 24, 248, 721, 720, 319, 307, 957, -1, 24, 248, 62, 649, 374, 959, 319, 307, 957, -1, 24, 248, 140, 649, 374, 959, 319, 307, 957, -1, 24, 342, 861, 319, 307, 957, -1, 24, 342, 165, 134, 861, 319, 307, 957, -1, 24, 348, 309, 260, 649, 319, 307, 957, -1, 24, 348, 309, 112, 649, 319, 307, 957, -1, 24, 348, 309, 346, 649, 319, 307, 957, -1, 24, 348, 309, 74, 649, 319, 307, 957, -1, 24, 313, 955, 319, 307, 957, -1, 24, 313, 165, 134, 955, 319, 307, 957, -1, 24, 386, 955, 319, 307, 957, -1, 24, 386, 165, 134, 955, 319, 307, 957, -1, 24, 147, 342, 861, 319, 307, 957, -1, 24, 147, 342, 165, 134, 861, 319, 307, 957, -1, 24, 361, 649, 319, 307, 957, -1, 24, 21, 963, 624, 259, 352, 967, -1, 24, 67, 649, 259, 352, 967, -1, 24, 80, 649, 259, 352, 967, -1, 24, 97, 958, 259, 352, 967, -1, 24, 118, 649, 259, 352, 967, -1, 24, 152, 674, 259, 352, 967, -1, 24, 563, 197, 957, 259, 352, 967, -1, 24, 198, 241, 554, 259, 352, 967, -1, 24, 248, 721, 720, 259, 352, 967, -1, 24, 248, 62, 649, 374, 959, 259, 352, 967, -1, 24, 248, 140, 649, 374, 959, 259, 352, 967, -1, 24, 307, 957, 259, 352, 967, -1, 24, 361, 649, 259, 352, 967, -1, 24, 344, 957, 259, 352, 967, -1, 24, 348, 309, 112, 649, 259, 352, 967, -1, 24, 348, 309, 74, 649, 259, 352, 967, -1, 24, 147, 96, 395, 957, 259, 352, 967, -1, 24, 316, 957, 259, 352, 967, -1, 83, 696, 305, 957, 31, 246, 742, 352, 955, 865, 116, 743, 738, -1, 233, -1, 740, -1, 426, 739, 427, -1, 739, 429, 741, -1, 741, -1, 817, -1, 795, -1, 806, -1, 800, -1, 745, -1, 740, -1, -1, 312, -1, 372, -1, 108, -1, 183, -1, 184, -1, 23, -1, -1, 120, 305, 957, 246, 649, 482, -1, 120, 305, 165, 134, 957, 246, 649, 482, -1, 234, 969, 746, -1, 430, 966, -1, -1, 209, 969, -1, 369, 969, -1, 369, 419, -1, 14, 750, -1, 41, 750, 753, -1, 330, 354, 753, -1, 71, 750, -1, 126, 750, -1, 302, 750, -1, 306, 969, -1, 289, 306, 969, -1, 289, 969, -1, 302, 750, 352, 306, 969, -1, 302, 750, 352, 969, -1, 271, 354, 966, -1, 71, 272, 966, -1, 302, 272, 966, -1, 394, -1, 354, -1, -1, 193, 206, 464, -1, 280, 247, -1, 280, 396, -1, 105, -1, 232, 105, -1, 751, -1, 752, 430, 751, -1, 752, 751, -1, 752, -1, -1, 83, 509, 386, 955, 528, 486, 31, 817, 755, -1, 83, 251, 292, 509, 386, 955, 528, 486, 31, 817, 755, -1, 392, 60, 249, -1, 392, 52, 60, 249, -1, 392, 211, 60, 249, -1, -1, 210, 962, -1, 83, 97, 958, 437, 758, -1, 758, 759, -1, -1, 344, 760, 957, -1, 344, 760, 103, -1, 214, 760, 966, -1, 214, 760, 103, -1, 346, 760, 957, -1, 346, 760, 103, -1, 124, 760, 966, -1, 124, 760, 965, -1, 124, 760, 103, -1, 200, 760, 966, -1, 200, 760, 103, -1, 201, 760, 966, -1, 201, 760, 103, -1, 75, 208, 760, 968, -1, 259, 760, 957, -1, 259, 760, 103, -1, 413, -1, -1, 24, 97, 958, 437, 763, -1, 24, 97, 958, 319, 344, 957, -1, 24, 97, 958, 470, -1, 763, 764, -1, -1, 75, 208, 760, 968, -1, 120, 97, 958, -1, 120, 97, 165, 134, 958, -1, 83, 118, 649, 768, 870, 518, -1, 24, 118, 649, 481, -1, 24, 118, 649, 120, 232, 237, -1, 24, 118, 649, 319, 232, 237, -1, 24, 118, 649, 18, 525, -1, 24, 118, 649, 120, 76, 957, 482, -1, 24, 118, 649, 120, 76, 165, 134, 957, 482, -1, 24, 118, 649, 377, 76, 957, -1, 31, -1, -1, 24, 348, 309, 112, 649, 620, -1, 24, 348, 309, 74, 649, 18, 216, 145, 956, 392, 648, -1, 24, 348, 309, 74, 649, 24, 216, 145, 956, 392, 648, -1, 24, 348, 309, 74, 649, 24, 216, 292, 649, 392, 649, -1, 24, 348, 309, 74, 649, 24, 216, 145, 956, 292, 649, 392, 649, -1, 24, 348, 309, 74, 649, 120, 216, 145, 956, -1, 24, 348, 309, 74, 649, 120, 216, 165, 134, 145, 956, -1, 83, 634, 80, 649, 145, 966, 352, 966, 150, 649, -1, 64, 779, 955, 773, -1, 64, 779, -1, 64, 779, 961, 246, 955, -1, 374, 961, -1, -1, 375, 780, 781, 779, -1, 375, 780, 781, 779, 955, -1, 375, 780, 781, 779, 777, -1, 375, 426, 775, 427, -1, 375, 426, 775, 427, 955, 782, -1, 776, -1, 775, 430, 776, -1, 778, -1, 384, -1, 149, -1, 151, -1, 778, 779, -1, 778, 779, 955, 782, -1, 27, -1, 26, -1, 384, -1, -1, 151, -1, -1, 149, -1, -1, 426, 956, 427, -1, -1, 135, 784, -1, 135, 778, 779, 784, -1, 135, 384, 784, -1, 135, 426, 785, 427, 784, -1, 817, -1, 795, -1, 806, -1, 800, -1, 813, -1, 545, -1, 792, -1, 786, -1, 785, 430, 786, -1, 787, 788, -1, 969, -1, 778, -1, 384, -1, 465, -1, 554, -1, -1, 271, 957, 790, 31, 791, -1, 426, 926, 427, -1, -1, 817, -1, 795, -1, 806, -1, 800, -1, 133, 957, 793, -1, 83, 509, 342, 546, 31, 133, 957, 793, 547, -1, 426, 923, 427, -1, -1, 99, 957, -1, 99, 271, 957, -1, 99, 22, -1, 99, 271, 22, -1, 825, 183, 189, 955, 796, 799, -1, 817, -1, 426, 797, 427, 817, -1, 103, 380, -1, 798, -1, 797, 430, 798, -1, 969, 947, -1, 297, 952, -1, -1, 825, 108, 150, 863, 801, 866, 799, -1, 374, 854, -1, -1, 215, 828, 862, 803, 805, -1, 170, 804, 221, -1, -1, 16, 321, -1, 303, 321, -1, 303, 132, -1, 321, 372, 132, -1, 321, -1, 321, 303, 132, -1, 132, -1, 16, 132, -1, 236, -1, -1, 825, 372, 863, 319, 807, 853, 866, 799, -1, 808, -1, 807, 430, 808, -1, 809, -1, 810, -1, 811, 413, 949, -1, 426, 812, 427, 413, 951, -1, 969, 947, -1, 811, -1, 812, 430, 811, -1, 102, 814, 815, 94, 816, 145, 817, -1, 957, -1, -1, 815, 230, 308, -1, 815, 308, -1, 815, 44, -1, 815, 182, -1, -1, 392, 162, -1, 393, 162, -1, 819, -1, 818, -1, 426, 819, 427, -1, 426, 818, 427, -1, 821, -1, 820, 832, -1, 820, 831, 847, 836, -1, 820, 831, 835, 848, -1, 822, 820, -1, 822, 820, 832, -1, 822, 820, 831, 847, 836, -1, 822, 820, 831, 835, 848, -1, 821, -1, 818, -1, 312, 830, 952, 826, 853, 865, 845, 846, 906, -1, 852, -1, 342, 861, -1, 820, 366, 829, 820, -1, 820, 187, 829, 820, -1, 820, 129, 829, 820, -1, 392, 823, -1, 392, 284, 823, -1, 824, -1, 823, 430, 824, -1, 957, 782, 31, 426, 791, 427, -1, 822, -1, -1, 189, 827, -1, -1, 347, 828, 955, -1, 345, 828, 955, -1, 211, 347, 828, 955, -1, 211, 345, 828, 955, -1, 154, 347, 828, 955, -1, 154, 345, 828, 955, -1, 370, 828, 955, -1, 342, 955, -1, 955, -1, 342, -1, -1, 22, -1, 115, -1, -1, 115, -1, 115, 246, 426, 923, 427, -1, 22, -1, -1, 832, -1, -1, 252, 48, 833, -1, 834, -1, 833, 430, 834, -1, 894, 374, 921, 694, -1, 894, 693, 694, -1, 837, 838, -1, 838, 837, -1, 837, -1, 838, -1, 835, -1, -1, 208, 839, -1, 208, 839, 430, 840, -1, 141, 844, 841, 843, 247, -1, 244, 840, -1, 244, 842, 843, -1, 894, -1, 22, -1, 894, -1, 968, -1, 426, 894, 427, -1, -1, 896, -1, 303, -1, 304, -1, 142, -1, 229, -1, 158, 48, 923, -1, -1, 160, 894, -1, -1, 849, -1, 145, 280, 247, -1, 847, -1, -1, 850, -1, 849, 850, -1, 145, 372, 851, 805, -1, 145, 321, 851, 805, -1, 242, 954, -1, -1, 380, 951, -1, 852, 430, 951, -1, 150, 854, -1, -1, 855, -1, 854, 430, 855, -1, 861, -1, 861, 857, -1, 864, -1, 864, 857, -1, 864, 31, 426, 868, 427, -1, 864, 31, 969, 426, 868, 427, -1, 864, 969, 426, 868, 427, -1, 818, -1, 818, 857, -1, 856, -1, 426, 856, 427, 857, -1, 426, 856, 427, -1, 855, 84, 194, 855, -1, 855, 858, 194, 855, 860, -1, 855, 194, 855, 860, -1, 855, 227, 858, 194, 855, -1, 855, 227, 194, 855, -1, 31, 969, 426, 956, 427, -1, 31, 969, -1, 969, 426, 956, 427, -1, 969, -1, 151, 859, -1, 205, 859, -1, 300, 859, -1, 179, -1, 254, -1, -1, 374, 426, 956, 427, -1, 246, 894, -1, 955, -1, 955, 419, -1, 247, 955, -1, 247, 426, 955, 427, -1, 861, -1, 862, 430, 861, -1, 861, -1, 861, 969, -1, 861, 31, 969, -1, 897, -1, 389, 894, -1, -1, 389, 894, -1, 389, 86, 242, 814, -1, -1, 868, -1, -1, 869, -1, 868, 430, 869, -1, 969, 870, 483, -1, 872, 871, -1, 320, 872, 871, -1, 872, 30, 424, 965, 425, -1, 320, 872, 30, 424, 965, 425, -1, 872, 30, -1, 320, 872, 30, -1, 871, 424, 425, -1, 871, 424, 965, 425, -1, -1, 874, -1, 876, -1, 878, -1, 882, -1, 889, -1, 890, 892, -1, 890, 426, 965, 427, 892, -1, 876, -1, 879, -1, 883, -1, 889, -1, 970, 875, -1, 970, 650, 875, -1, 426, 923, 427, -1, -1, 185, -1, 186, -1, 325, -1, 43, -1, 281, -1, 143, 877, -1, 119, 269, -1, 101, 875, -1, 100, 875, -1, 240, 875, -1, 46, -1, 426, 965, 427, -1, -1, 880, -1, 881, -1, 880, -1, 881, -1, 45, 887, 426, 923, 427, -1, 45, 887, -1, 884, -1, 885, -1, 884, -1, 885, -1, 886, 426, 965, 427, 888, -1, 886, 888, -1, 58, 887, -1, 57, 887, -1, 381, -1, 226, 58, 887, -1, 226, 57, 887, -1, 228, 887, -1, 383, -1, -1, 58, 319, 969, -1, -1, 351, 426, 965, 427, 891, -1, 351, 891, -1, 350, 426, 965, 427, 891, -1, 350, 891, -1, 188, -1, 412, 409, -1, 393, 350, 409, -1, -1, 407, -1, 222, -1, 98, -1, 163, -1, 219, -1, 893, -1, 407, 352, 222, -1, 98, 352, 163, -1, 98, 352, 219, -1, 98, 352, 893, -1, 163, 352, 219, -1, 163, 352, 893, -1, 219, 352, 893, -1, -1, 310, -1, 310, 426, 965, 427, -1, 896, -1, 894, 11, 870, -1, 894, 66, 649, -1, 894, 36, 350, 409, 894, -1, 417, 894, -1, 418, 894, -1, 894, 417, 894, -1, 894, 418, 894, -1, 894, 419, 894, -1, 894, 420, 894, -1, 894, 421, 894, -1, 894, 422, 894, -1, 894, 414, 894, -1, 894, 415, 894, -1, 894, 413, 894, -1, 894, 920, 894, -1, 920, 894, -1, 894, 920, -1, 894, 28, 894, -1, 894, 251, 894, -1, 232, 894, -1, 894, 207, 894, -1, 894, 207, 894, 128, 894, -1, 894, 232, 207, 894, -1, 894, 232, 207, 894, 128, 894, -1, 894, 166, 894, -1, 894, 166, 894, 128, 894, -1, 894, 232, 166, 894, -1, 894, 232, 166, 894, 128, 894, -1, 894, 323, 352, 894, -1, 894, 323, 352, 894, 128, 894, -1, 894, 232, 323, 352, 894, -1, 894, 232, 323, 352, 894, 128, 894, -1, 894, 191, 237, -1, 894, 192, -1, 894, 191, 232, 237, -1, 894, 235, -1, 916, 256, 916, -1, 894, 191, 358, -1, 894, 191, 232, 358, -1, 894, 191, 139, -1, 894, 191, 232, 139, -1, 894, 191, 368, -1, 894, 191, 232, 368, -1, 894, 191, 115, 150, 894, -1, 894, 191, 232, 115, 150, 894, -1, 894, 191, 242, 426, 926, 427, -1, 894, 191, 232, 242, 426, 926, 427, -1, 894, 42, 948, 895, 28, 895, -1, 894, 232, 42, 948, 895, 28, 895, -1, 894, 42, 339, 895, 28, 895, -1, 894, 232, 42, 339, 895, 28, 895, -1, 894, 170, 938, -1, 894, 232, 170, 938, -1, 894, 922, 917, 818, -1, 894, 922, 917, 426, 894, 427, -1, 367, 818, -1, 894, 191, 117, -1, 894, 191, 232, 117, -1, 896, -1, 895, 11, 870, -1, 417, 895, -1, 418, 895, -1, 895, 417, 895, -1, 895, 418, 895, -1, 895, 419, 895, -1, 895, 420, 895, -1, 895, 421, 895, -1, 895, 422, 895, -1, 895, 414, 895, -1, 895, 415, 895, -1, 895, 413, 895, -1, 895, 920, 895, -1, 920, 895, -1, 895, 920, -1, 895, 191, 115, 150, 895, -1, 895, 191, 232, 115, 150, 895, -1, 895, 191, 242, 426, 926, 427, -1, 895, 191, 232, 242, 426, 926, 427, -1, 895, 191, 117, -1, 895, 191, 232, 117, -1, 944, -1, 964, -1, 10, 947, -1, 426, 894, 427, 947, -1, 939, -1, 897, -1, 818, -1, 818, 946, -1, 134, 818, -1, 30, 818, -1, 30, 927, -1, 916, -1, 963, 426, 427, 909, -1, 963, 426, 924, 427, 909, -1, 963, 426, 382, 925, 427, 909, -1, 963, 426, 924, 430, 382, 925, 427, 909, -1, 963, 426, 924, 832, 427, 909, -1, 963, 426, 22, 924, 831, 427, 909, -1, 963, 426, 115, 924, 831, 427, 909, -1, 963, 426, 419, 427, 909, -1, 67, 145, 426, 894, 427, -1, 88, -1, 91, -1, 91, 426, 965, 427, -1, 92, -1, 92, 426, 965, 427, -1, 212, -1, 212, 426, 965, 427, -1, 213, -1, 213, 426, 965, 427, -1, 89, -1, 93, -1, 318, -1, 373, -1, 87, -1, 90, -1, 54, 426, 894, 31, 870, 427, -1, 138, 426, 929, 427, -1, 257, 426, 931, 427, -1, 267, 426, 933, 427, -1, 338, 426, 934, 427, -1, 355, 426, 894, 31, 870, 427, -1, 357, 426, 47, 937, 427, -1, 357, 426, 202, 937, 427, -1, 357, 426, 353, 937, 427, -1, 357, 426, 937, 427, -1, 238, 426, 894, 430, 894, 427, -1, 65, 426, 923, 427, -1, 157, 426, 923, 427, -1, 204, 426, 923, 427, -1, 399, 426, 923, 427, -1, 400, 426, 224, 971, 427, -1, 400, 426, 224, 971, 430, 900, 427, -1, 400, 426, 224, 971, 430, 923, 427, -1, 400, 426, 224, 971, 430, 900, 430, 923, 427, -1, 401, 426, 896, 905, 427, -1, 402, 426, 901, 427, -1, 403, 426, 903, 894, 904, 427, -1, 404, 426, 224, 971, 427, -1, 404, 426, 224, 971, 430, 894, 427, -1, 405, 426, 894, 430, 898, 899, 427, -1, 406, 426, 903, 894, 31, 872, 427, -1, 385, 894, -1, 385, 230, 379, -1, 430, 329, 408, -1, 430, 329, 230, -1, 430, 329, 230, 379, -1, -1, 398, 426, 901, 427, -1, 902, -1, 901, 430, 902, -1, 894, 31, 971, -1, 894, -1, 117, -1, 78, -1, 270, 390, -1, 337, 390, -1, -1, 263, 896, -1, 263, 896, 48, 285, -1, 263, 48, 285, 896, -1, 263, 48, 285, 896, 48, 285, -1, 391, 907, -1, -1, 908, -1, 907, 430, 908, -1, 969, 31, 910, -1, 255, 910, -1, 255, 969, -1, -1, 426, 911, 912, 831, 913, 427, -1, 969, -1, -1, 262, 48, 923, -1, -1, 279, 914, -1, 304, 914, -1, -1, 915, -1, 42, 915, 28, 915, -1, 363, 268, -1, 363, 144, -1, 86, 303, -1, 894, 268, -1, 894, 144, -1, 303, 426, 923, 427, -1, 303, 426, 427, -1, 426, 923, 430, 894, 427, -1, 29, -1, 327, -1, 22, -1, 8, -1, 919, -1, 417, -1, 418, -1, 419, -1, 420, -1, 421, -1, 422, -1, 414, -1, 415, -1, 413, -1, 8, -1, 248, 426, 721, 427, -1, 918, -1, 248, 426, 721, 427, -1, 918, -1, 248, 426, 721, 427, -1, 207, -1, 232, 207, -1, 166, -1, 232, 166, -1, 894, -1, 923, 430, 894, -1, 925, -1, 924, 430, 925, -1, 894, -1, 703, 13, 894, -1, 870, -1, 926, 430, 870, -1, 424, 923, 425, -1, 424, 928, 425, -1, 424, 425, -1, 927, -1, 928, 430, 927, -1, 930, 150, 894, -1, -1, 3, -1, 407, -1, 222, -1, 98, -1, 163, -1, 219, -1, 310, -1, 966, -1, 894, 932, 935, 936, -1, 894, 932, 935, -1, 265, 894, -1, 895, 170, 895, -1, -1, 894, 935, 936, -1, 894, 936, 935, -1, 894, 935, -1, 894, 936, -1, 923, -1, -1, 150, 894, -1, 145, 894, -1, 894, 150, 923, -1, 150, 923, -1, 923, -1, 818, -1, 426, 923, 427, -1, 53, 943, 940, 942, 126, -1, 941, -1, 940, 941, -1, 388, 894, 349, 894, -1, 122, 894, -1, -1, 894, -1, -1, 969, -1, 969, 946, -1, 428, 960, -1, 428, 419, -1, 424, 894, 425, -1, 424, 894, 431, 894, 425, -1, 945, -1, 946, 945, -1, -1, 947, 945, -1, 35, -1, -1, 894, -1, 103, -1, 949, -1, 950, 430, 949, -1, 426, 950, 427, -1, 953, -1, 952, 430, 953, -1, 894, 31, 971, -1, 894, 3, -1, 894, -1, 419, -1, 955, -1, 954, 430, 955, -1, 969, -1, 969, 946, -1, 957, -1, 956, 430, 957, -1, 969, -1, 969, -1, 969, -1, 971, -1, 969, -1, 966, -1, 970, -1, 969, 946, -1, 965, -1, 4, -1, 966, -1, 6, -1, 7, -1, 963, 966, -1, 963, 426, 924, 427, 966, -1, 873, 966, -1, 890, 966, 892, -1, 890, 426, 965, 427, 966, 892, -1, 358, -1, 139, -1, 237, -1, 9, -1, 5, -1, 969, -1, 965, -1, 417, 965, -1, 418, 965, -1, 3, -1, 972, -1, 973, -1, 3, -1, 972, -1, 974, -1, 3, -1, 972, -1, 973, -1, 974, -1, 975, -1, 14, -1, 15, -1, 16, -1, 17, -1, 18, -1, 19, -1, 20, -1, 21, -1, 23, -1, 24, -1, 25, -1, 33, -1, 34, -1, 36, -1, 37, -1, 39, -1, 40, -1, 41, -1, 48, -1, 49, -1, 50, -1, 51, -1, 52, -1, 55, -1, 56, -1, 59, -1, 61, -1, 62, -1, 63, -1, 64, -1, 69, -1, 70, -1, 71, -1, 72, -1, 74, -1, 75, -1, 77, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, -1, 85, -1, 86, -1, 94, -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, 102, -1, 104, -1, 106, -1, 107, -1, 108, -1, 109, -1, 110, -1, 112, -1, 113, -1, 114, -1, 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 123, -1, 124, -1, 125, -1, 127, -1, 128, -1, 130, -1, 131, -1, 132, -1, 133, -1, 135, -1, 136, -1, 137, -1, 140, -1, 142, -1, 144, -1, 146, -1, 148, -1, 152, -1, 153, -1, 154, -1, 156, -1, 159, -1, 161, -1, 162, -1, 163, -1, 164, -1, 165, -1, 167, -1, 168, -1, 169, -1, 171, -1, 172, -1, 173, -1, 174, -1, 175, -1, 176, -1, 178, -1, 181, -1, 182, -1, 183, -1, 184, -1, 190, -1, 193, -1, 195, -1, 196, -1, 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, 203, -1, 206, -1, 209, -1, 210, -1, 211, -1, 214, -1, 215, -1, 216, -1, 217, -1, 218, -1, 219, -1, 220, -1, 221, -1, 222, -1, 223, -1, 224, -1, 225, -1, 229, -1, 230, -1, 233, -1, 234, -1, 236, -1, 239, -1, 241, -1, 242, -1, 243, -1, 245, -1, 248, -1, 249, -1, 250, -1, 258, -1, 259, -1, 260, -1, 261, -1, 262, -1, 263, -1, 264, -1, 266, -1, 268, -1, 271, -1, 272, -1, 270, -1, 274, -1, 275, -1, 276, -1, 277, -1, 278, -1, 279, -1, 280, -1, 282, -1, 283, -1, 284, -1, 285, -1, 287, -1, 288, -1, 289, -1, 290, -1, 291, -1, 292, -1, 293, -1, 294, -1, 295, -1, 296, -1, 298, -1, 299, -1, 301, -1, 302, -1, 304, -1, 305, -1, 306, -1, 307, -1, 308, -1, 309, -1, 310, -1, 311, -1, 313, -1, 314, -1, 315, -1, 316, -1, 317, -1, 319, -1, 321, -1, 322, -1, 324, -1, 326, -1, 328, -1, 329, -1, 330, -1, 331, -1, 332, -1, 333, -1, 334, -1, 335, -1, 336, -1, 337, -1, 340, -1, 341, -1, 343, -1, 344, -1, 345, -1, 346, -1, 347, -1, 348, -1, 354, -1, 356, -1, 359, -1, 360, -1, 361, -1, 362, -1, 363, -1, 364, -1, 365, -1, 368, -1, 369, -1, 370, -1, 371, -1, 372, -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, -1, 383, -1, 385, -1, 386, -1, 387, -1, 390, -1, 393, -1, 394, -1, 395, -1, 396, -1, 397, -1, 407, -1, 408, -1, 409, -1, 42, -1, 43, -1, 45, -1, 46, -1, 57, -1, 58, -1, 65, -1, 100, -1, 101, -1, 134, -1, 138, -1, 143, -1, 157, -1, 180, -1, 185, -1, 186, -1, 188, -1, 204, -1, 226, -1, 228, -1, 231, -1, 238, -1, 240, -1, 253, -1, 257, -1, 267, -1, 269, -1, 281, -1, 303, -1, 320, -1, 325, -1, 338, -1, 350, -1, 351, -1, 355, -1, 357, -1, 380, -1, 381, -1, 398, -1, 399, -1, 400, -1, 401, -1, 402, -1, 403, -1, 404, -1, 405, -1, 406, -1, 38, -1, 44, -1, 67, -1, 73, -1, 84, -1, 90, -1, 149, -1, 151, -1, 166, -1, 179, -1, 191, -1, 192, -1, 194, -1, 205, -1, 207, -1, 227, -1, 235, -1, 254, -1, 255, -1, 256, -1, 300, -1, 323, -1, 384, -1, 22, -1, 26, -1, 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, 32, -1, 35, -1, 47, -1, 53, -1, 54, -1, 60, -1, 66, -1, 68, -1, 76, -1, 83, -1, 87, -1, 88, -1, 89, -1, 91, -1, 92, -1, 93, -1, 103, -1, 105, -1, 111, -1, 115, -1, 116, -1, 122, -1, 126, -1, 129, -1, 139, -1, 141, -1, 145, -1, 147, -1, 150, -1, 155, -1, 158, -1, 160, -1, 170, -1, 177, -1, 187, -1, 189, -1, 202, -1, 208, -1, 212, -1, 213, -1, 232, -1, 237, -1, 244, -1, 246, -1, 247, -1, 251, -1, 252, -1, 265, -1, 273, -1, 286, -1, 297, -1, 312, -1, 318, -1, 327, -1, 339, -1, 342, -1, 349, -1, 352, -1, 353, -1, 358, -1, 366, -1, 367, -1, 373, -1, 374, -1, 382, -1, 388, -1, 389, -1, 391, -1, 392, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 665, 665, 672, 679, 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, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 800, 810, 821, 822, 831, 832, 836, 837, 841, 846, 850, 855, 860, 864, 868, 873, 877, 931, 933, 937, 941, 945, 949, 963, 981, 992, 993, 997, 1015, 1027, 1048, 1055, 1074, 1081, 1098, 1116, 1127, 1128, 1140, 1147, 1164, 1176, 1188, 1189, 1193, 1194, 1202, 1203, 1204, 1205, 1206, 1207, 1221, 1227, 1233, 1242, 1250, 1258, 1262, 1270, 1278, 1285, 1292, 1300, 1311, 1319, 1327, 1338, 1346, 1354, 1361, 1370, 1380, 1381, 1388, 1389, 1392, 1394, 1398, 1399, 1400, 1401, 1405, 1406, 1407, 1413, 1425, 1429, 1433, 1448, 1471, 1472, 1473, 1477, 1478, 1479, 1483, 1484, 1488, 1495, 1502, 1509, 1516, 1526, 1527, 1532, 1533, 1538, 1544, 1550, 1556, 1562, 1572, 1582, 1583, 1587, 1588, 1596, 1611, 1617, 1623, 1629, 1647, 1656, 1665, 1674, 1683, 1692, 1701, 1710, 1722, 1723, 1728, 1736, 1744, 1753, 1761, 1769, 1778, 1787, 1796, 1805, 1815, 1828, 1842, 1851, 1859, 1867, 1877, 1887, 1894, 1901, 1909, 1917, 1925, 1933, 1941, 1948, 1955, 1963, 1970, 1977, 1985, 1993, 2001, 2009, 2017, 2025, 2035, 2042, 2050, 2058, 2066, 2073, 2083, 2084, 2088, 2089, 2090, 2094, 2102, 2106, 2107, 2111, 2114, 2115, 2119, 2120, 2125, 2129, 2133, 2138, 2153, 2166, 2167, 2172, 2181, 2191, 2201, 2226, 2232, 2259, 2281, 2295, 2296, 2305, 2306, 2307, 2310, 2311, 2316, 2317, 2321, 2325, 2329, 2333, 2337, 2341, 2345, 2349, 2353, 2357, 2361, 2365, 2374, 2378, 2382, 2386, 2390, 2394, 2398, 2399, 2404, 2408, 2415, 2422, 2423, 2424, 2425, 2426, 2430, 2434, 2442, 2453, 2468, 2484, 2500, 2529, 2530, 2531, 2532, 2533, 2540, 2547, 2548, 2552, 2553, 2557, 2558, 2562, 2566, 2573, 2577, 2584, 2585, 2586, 2590, 2591, 2594, 2614, 2634, 2635, 2639, 2647, 2648, 2649, 2680, 2687, 2694, 2705, 2716, 2726, 2735, 2768, 2775, 2782, 2789, 2800, 2810, 2811, 2812, 2816, 2817, 2818, 2819, 2820, 2821, 2830, 2838, 2842, 2855, 2870, 2884, 2899, 2913, 2931, 2952, 2953, 2957, 2958, 2962, 2963, 2966, 2972, 2976, 2984, 2989, 2995, 2996, 3000, 3005, 3012, 3013, 3023, 3025, 3027, 3029, 3032, 3035, 3038, 3042, 3043, 3044, 3045, 3046, 3049, 3050, 3055, 3056, 3057, 3058, 3061, 3062, 3063, 3064, 3067, 3068, 3071, 3072, 3075, 3090, 3104, 3117, 3118, 3119, 3132, 3144, 3152, 3163, 3164, 3167, 3168, 3171, 3175, 3179, 3183, 3187, 3191, 3195, 3199, 3203, 3207, 3211, 3215, 3221, 3222, 3226, 3227, 3232, 3235, 3236, 3248, 3260, 3275, 3276, 3284, 3285, 3289, 3290, 3294, 3295, 3299, 3300, 3304, 3315, 3328, 3329, 3339, 3349, 3350, 3363, 3370, 3387, 3395, 3406, 3409, 3413, 3417, 3421, 3433, 3443, 3446, 3450, 3463, 3473, 3483, 3492, 3501, 3510, 3520, 3529, 3539, 3549, 3559, 3568, 3577, 3586, 3595, 3604, 3613, 3622, 3631, 3640, 3649, 3658, 3676, 3687, 3688, 3689, 3690, 3694, 3695, 3699, 3700, 3710, 3721, 3741, 3749, 3761, 3762, 3766, 3770, 3778, 3782, 3786, 3793, 3797, 3802, 3807, 3814, 3821, 3826, 3836, 3850, 3851, 3856, 3857, 3861, 3862, 3872, 3883, 3903, 3912, 3920, 3937, 3952, 3970, 3971, 3975, 3979, 3986, 3997, 4006, 4024, 4036, 4037, 4038, 4048, 4056, 4073, 4092, 4112, 4137, 4138, 4139, 4143, 4145, 4167, 4169, 4171, 4173, 4175, 4180, 4185, 4195, 4196, 4200, 4201, 4205, 4206, 4210, 4211, 4212, 4216, 4222, 4223, 4224, 4228, 4229, 4234, 4235, 4262, 4263, 4264, 4265, 4266, 4267, 4272, 4283, 4306, 4326, 4349, 4359, 4370, 4380, 4390, 4401, 4410, 4417, 4424, 4433, 4442, 4451, 4460, 4469, 4480, 4483, 4484, 4487, 4491, 4498, 4499, 4500, 4501, 4502, 4505, 4506, 4509, 4512, 4513, 4521, 4528, 4529, 4532, 4534, 4545, 4554, 4563, 4587, 4602, 4603, 4607, 4617, 4628, 4637, 4647, 4656, 4657, 4660, 4661, 4664, 4665, 4666, 4669, 4683, 4688, 4698, 4707, 4719, 4720, 4724, 4732, 4744, 4755, 4769, 4780, 4803, 4813, 4831, 4842, 4853, 4864, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4896, 4897, 4900, 4901, 4904, 4906, 4919, 4930, 4931, 4932, 4958, 4967, 4976, 4985, 4994, 5003, 5012, 5022, 5031, 5040, 5049, 5058, 5067, 5076, 5084, 5092, 5100, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5131, 5132, 5146, 5157, 5168, 5179, 5190, 5203, 5204, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5221, 5222, 5232, 5238, 5246, 5254, 5262, 5270, 5278, 5286, 5294, 5302, 5310, 5318, 5326, 5334, 5342, 5350, 5358, 5366, 5376, 5377, 5380, 5381, 5391, 5407, 5421, 5447, 5449, 5451, 5453, 5460, 5469, 5470, 5473, 5480, 5487, 5494, 5508, 5516, 5524, 5532, 5540, 5548, 5556, 5564, 5572, 5580, 5588, 5596, 5604, 5612, 5620, 5628, 5640, 5641, 5644, 5654, 5668, 5669, 5673, 5674, 5679, 5695, 5708, 5718, 5730, 5731, 5734, 5735, 5745, 5755, 5756, 5760, 5764, 5768, 5779, 5792, 5806, 5823, 5824, 5825, 5826, 5838, 5865, 5866, 5870, 5871, 5875, 5876, 5880, 5881, 5884, 5885, 5893, 5904, 5915, 5928, 5929, 5932, 5933, 5934, 5937, 5938, 5939, 5942, 5943, 5944, 5960, 5972, 5985, 6000, 6001, 6004, 6005, 6009, 6010, 6018, 6019, 6023, 6024, 6039, 6048, 6057, 6066, 6075, 6087, 6088, 6089, 6090, 6091, 6097, 6101, 6116, 6117, 6123, 6133, 6137, 6142, 6152, 6153, 6160, 6164, 6168, 6172, 6176, 6180, 6184, 6188, 6192, 6196, 6200, 6204, 6208, 6212, 6216, 6224, 6228, 6232, 6236, 6242, 6243, 6250, 6251, 6254, 6266, 6270, 6285, 6296, 6297, 6302, 6303, 6318, 6329, 6343, 6354, 6368, 6379, 6393, 6401, 6403, 6405, 6410, 6412, 6425, 6434, 6435, 6439, 6443, 6455, 6466, 6477, 6490, 6491, 6492, 6496, 6509, 6510, 6524, 6532, 6542, 6555, 6556, 6559, 6560, 6570, 6580, 6589, 6598, 6607, 6616, 6626, 6635, 6645, 6654, 6663, 6673, 6683, 6692, 6701, 6711, 6721, 6731, 6741, 6751, 6761, 6771, 6781, 6791, 6801, 6812, 6823, 6833, 6844, 6855, 6865, 6874, 6883, 6892, 6901, 6910, 6919, 6928, 6937, 6946, 6955, 6969, 6970, 6973, 6974, 6984, 6994, 7003, 7012, 7021, 7030, 7040, 7050, 7060, 7070, 7079, 7088, 7097, 7106, 7115, 7124, 7133, 7142, 7151, 7160, 7169, 7178, 7195, 7204, 7212, 7220, 7228, 7236, 7245, 7253, 7261, 7270, 7279, 7288, 7296, 7304, 7312, 7320, 7328, 7336, 7353, 7370, 7371, 7372, 7377, 7383, 7392, 7393, 7394, 7395, 7396, 7400, 7401, 7404, 7405, 7406, 7407, 7411, 7412, 7413, 7418, 7429, 7451, 7461, 7462, 7465, 7474, 7480, 7499, 7506, 7513, 7520, 7527, 7534, 7541, 7549, 7557, 7565, 7573, 7581, 7588, 7595, 7604, 7605, 7606, 7610, 7613, 7616, 7619, 7622, 7629, 7631, 7633, 7638, 7640, 7652, 7664, 7679, 7685, 7691, 7697, 7707, 7723, 7733, 7734, 7738, 7742, 7746, 7750, 7754, 7758, 7762, 7766, 7770, 7774, 7778, 7782, 7786, 7790, 7794, 7798, 7808, 7809, 7820, 7827, 7838, 7849, 7850, 7854, 7868, 7875, 7892, 7905, 7914, 7922, 7930, 7939, 7950, 7961, 7971, 7972, 7983, 7993, 8003, 8013, 8023, 8033, 8041, 8062, 8085, 8093, 8102, 8113, 8114, 8126, 8140, 8154, 8166, 8178, 8195, 8196, 8200, 8201, 8202, 8203, 8207, 8219, 8234, 8235, 8239, 8240, 8243, 8244, 8247, 8248, 8252, 8253, 8266, 8273, 8283, 8290, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8310, 8314, 8321, 8328, 8329, 8330, 8334, 8335, 8336, 8346, 8356, 8357, 8361, 8362, 8363, 8364, 8374, 8381, 8398, 8399, 8409, 8415, 8421, 8427, 8443, 8453, 8459, 8465, 8474, 8476, 8481, 8492, 8493, 8504, 8518, 8519, 8530, 8541, 8542, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8555, 8556, 8567, 8585, 8586, 8590, 8591, 8595, 8603, 8631, 8642, 8643, 8653, 8664, 8667, 8668, 8669, 8670, 8671, 8674, 8675, 8676, 8724, 8725, 8729, 8730, 8744, 8745, 8752, 8760, 8768, 8776, 8784, 8792, 8803, 8804, 8831, 8846, 8847, 8866, 8870, 8874, 8889, 8896, 8906, 8907, 8910, 8922, 8923, 8927, 8938, 8946, 8951, 8956, 8961, 8966, 8974, 8982, 8987, 8992, 8999, 9000, 9003, 9004, 9005, 9012, 9013, 9014, 9015, 9019, 9020, 9024, 9028, 9029, 9032, 9041, 9054, 9055, 9056, 9057, 9061, 9062, 9066, 9068, 9078, 9083, 9086, 9091, 9092, 9100, 9110, 9111, 9112, 9120, 9124, 9125, 9128, 9129, 9134, 9135, 9139, 9140, 9144, 9145, 9149, 9150, 9154, 9155, 9159, 9167, 9178, 9179, 9184, 9190, 9208, 9209, 9213, 9214, 9224, 9228, 9233, 9240, 9248, 9255, 9265, 9275, 9303, 9310, 9314, 9340, 9344, 9356, 9369, 9383, 9394, 9409, 9415, 9420, 9426, 9433, 9434, 9435, 9436, 9440, 9441, 9453, 9454, 9459, 9466, 9473, 9480, 9491, 9492, 9505, 9509, 9516, 9526, 9531, 9532, 9537, 9538, 9546, 9551, 9552, 9556, 9560, 9566, 9595, 9600, 9607, 9612, 9618, 9623, 9632, 9634, 9637, 9641, 9642, 9643, 9644, 9645, 9646, 9651, 9681, 9682, 9683, 9684, 9695, 9701, 9709, 9710, 9716, 9721, 9726, 9731, 9736, 9741, 9746, 9751, 9757, 9763, 9769, 9776, 9798, 9807, 9811, 9819, 9823, 9831, 9843, 9864, 9868, 9874, 9878, 9891, 9910, 9933, 9935, 9937, 9939, 9941, 9943, 9948, 9949, 9953, 9954, 9961, 9970, 9978, 9987, 9998, 10006, 10007, 10008, 10012, 10014, 10016, 10018, 10020, 10022, 10024, 10029, 10034, 10040, 10048, 10053, 10060, 10067, 10071, 10075, 10105, 10106, 10108, 10116, 10138, 10140, 10142, 10144, 10146, 10148, 10150, 10152, 10154, 10156, 10158, 10161, 10163, 10165, 10168, 10170, 10172, 10175, 10177, 10190, 10192, 10205, 10207, 10220, 10222, 10236, 10249, 10262, 10275, 10298, 10305, 10312, 10319, 10326, 10330, 10337, 10344, 10351, 10358, 10365, 10372, 10376, 10384, 10388, 10398, 10405, 10412, 10425, 10438, 10457, 10478, 10488, 10495, 10511, 10516, 10534, 10536, 10538, 10540, 10542, 10544, 10546, 10548, 10550, 10552, 10554, 10556, 10558, 10560, 10562, 10564, 10566, 10570, 10575, 10579, 10583, 10588, 10605, 10606, 10607, 10622, 10634, 10636, 10638, 10648, 10671, 10681, 10691, 10699, 10718, 10731, 10744, 10757, 10770, 10783, 10800, 10813, 10836, 10849, 10870, 10880, 10893, 10910, 10923, 10933, 10946, 10956, 10969, 10982, 10995, 11008, 11021, 11034, 11047, 11049, 11062, 11080, 11094, 11110, 11132, 11148, 11161, 11174, 11187, 11191, 11198, 11206, 11214, 11218, 11222, 11226, 11230, 11234, 11249, 11253, 11262, 11266, 11270, 11275, 11289, 11291, 11295, 11297, 11299, 11302, 11305, 11308, 11309, 11312, 11320, 11330, 11331, 11334, 11335, 11336, 11341, 11345, 11349, 11353, 11364, 11365, 11369, 11370, 11375, 11383, 11385, 11399, 11402, 11429, 11430, 11433, 11434, 11445, 11463, 11470, 11479, 11496, 11541, 11549, 11557, 11565, 11573, 11594, 11595, 11596, 11599, 11600, 11601, 11604, 11605, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11619, 11621, 11626, 11628, 11633, 11635, 11637, 11639, 11641, 11643, 11655, 11659, 11666, 11670, 11676, 11680, 11691, 11692, 11695, 11699, 11703, 11709, 11710, 11715, 11719, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11743, 11747, 11754, 11761, 11762, 11778, 11782, 11787, 11791, 11806, 11811, 11815, 11818, 11821, 11822, 11823, 11826, 11833, 11843, 11857, 11858, 11862, 11873, 11874, 11877, 11878, 11881, 11885, 11892, 11896, 11900, 11907, 11917, 11918, 11922, 11923, 11926, 11927, 11938, 11939, 11948, 11949, 11957, 11968, 11969, 11972, 11988, 11996, 12004, 12026, 12027, 12038, 12042, 12069, 12071, 12076, 12079, 12082, 12084, 12086, 12088, 12098, 12100, 12111, 12115, 12119, 12123, 12127, 12136, 12143, 12168, 12172, 12178, 12195, 12199, 12203, 12209, 12210, 12211, 12213, 12214, 12215, 12231, 12232, 12233, 12238, 12239, 12240, 12246, 12247, 12248, 12249, 12250, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700 }; #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", "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", "CONFIGURATION", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", "CROSS", "CSV", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DESC", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IN_P", "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LC_COLLATE_P", "LC_CTYPE_P", "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "MAPPING", "MATCH", "MAXVALUE", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NEXT", "NO", "NONE", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OWNED", "OWNER", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "QUOTE", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCHEMA", "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SMALLINT", "SNAPSHOT", "SOME", "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STRICT_P", "STRIP_P", "SUBSTRING", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UNBOUNDED", "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHOUT", "WORK", "WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "YEAR_P", "YES_P", "ZONE", "NULLS_FIRST", "NULLS_LAST", "WITH_TIME", "'='", "'<'", "'>'", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "CreateRoleStmt", "opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", "AlterUserStmt", "AlterUserSetStmt", "DropRoleStmt", "DropUserStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", "DropGroupStmt", "CreateSchemaStmt", "OptSchemaName", "OptSchemaEltList", "schema_stmt", "VariableSetStmt", "set_rest", "set_rest_more", "var_name", "var_list", "var_value", "iso_level", "opt_boolean_or_string", "zone_value", "opt_encoding", "ColId_or_Sconst", "VariableResetStmt", "SetResetClause", "FunctionSetResetClause", "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list", "constraints_set_mode", "CheckPointStmt", "DiscardStmt", "AlterTableStmt", "alter_table_cmds", "alter_table_cmd", "alter_column_default", "opt_drop_behavior", "opt_collate_clause", "alter_using", "reloptions", "opt_reloptions", "reloption_list", "reloption_elem", "AlterCompositeTypeStmt", "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt", "copy_from", "copy_file_name", "copy_options", "copy_opt_list", "copy_opt_item", "opt_binary", "opt_oids", "copy_delimiter", "opt_using", "copy_generic_opt_list", "copy_generic_opt_elem", "copy_generic_opt_arg", "copy_generic_opt_arg_list", "copy_generic_opt_arg_list_item", "CreateStmt", "OptTemp", "OptTableElementList", "OptTypedTableElementList", "TableElementList", "TypedTableElementList", "TableElement", "TypedTableElement", "columnDef", "columnOptions", "ColQualList", "ColConstraint", "ColConstraintElem", "ConstraintAttr", "TableLikeClause", "TableLikeOptionList", "TableLikeOption", "TableConstraint", "ConstraintElem", "opt_no_inherit", "opt_column_list", "columnList", "columnElem", "key_match", "ExclusionConstraintList", "ExclusionConstraintElem", "ExclusionWhereClause", "key_actions", "key_update", "key_delete", "key_action", "OptInherit", "OptWith", "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateAsStmt", "create_as_target", "opt_with_data", "CreateSeqStmt", "AlterSeqStmt", "OptSeqOptList", "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list", "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler", "validator_clause", "opt_validator", "DropPLangStmt", "opt_procedural", "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt", "CreateExtensionStmt", "create_extension_opt_list", "create_extension_opt_item", "AlterExtensionStmt", "alter_extension_opt_list", "alter_extension_opt_item", "AlterExtensionContentsStmt", "CreateFdwStmt", "fdw_option", "fdw_options", "opt_fdw_options", "DropFdwStmt", "AlterFdwStmt", "create_generic_options", "generic_option_list", "alter_generic_options", "alter_generic_option_list", "alter_generic_option_elem", "generic_option_elem", "generic_option_name", "generic_option_arg", "CreateForeignServerStmt", "opt_type", "foreign_server_version", "opt_foreign_server_version", "DropForeignServerStmt", "AlterForeignServerStmt", "CreateForeignTableStmt", "OptForeignTableElementList", "ForeignTableElementList", "ForeignTableElement", "AlterForeignTableStmt", "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt", "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", "TriggerOneEvent", "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen", "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", "ConstraintAttributeSpec", "ConstraintAttributeElem", "DropTrigStmt", "CreateAssertStmt", "DropAssertStmt", "DefineStmt", "definition", "def_list", "def_elem", "def_arg", "aggr_args", "old_aggr_definition", "old_aggr_list", "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt", "CreateOpClassStmt", "opclass_item_list", "opclass_item", "opt_default", "opt_opfamily", "opclass_purpose", "opt_recheck", "CreateOpFamilyStmt", "AlterOpFamilyStmt", "opclass_drop_list", "opclass_drop", "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt", "ReassignOwnedStmt", "DropStmt", "drop_type", "any_name_list", "any_name", "attrs", "TruncateStmt", "opt_restart_seqs", "CommentStmt", "comment_type", "comment_text", "SecLabelStmt", "opt_provider", "security_label_type", "security_label", "FetchStmt", "fetch_args", "from_in", "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list", "privilege", "privilege_target", "grantee_list", "grantee", "opt_grant_grant_option", "function_with_argtypes_list", "function_with_argtypes", "GrantRoleStmt", "RevokeRoleStmt", "opt_grant_admin_option", "opt_granted_by", "AlterDefaultPrivilegesStmt", "DefACLOptionList", "DefACLOption", "DefACLAction", "defacl_privilege_target", "IndexStmt", "opt_unique", "opt_concurrently", "opt_index_name", "access_method_clause", "index_params", "index_elem", "opt_collate", "opt_class", "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list", "func_args_with_defaults", "func_args_with_defaults_list", "func_arg", "arg_class", "param_name", "func_return", "func_type", "func_arg_with_default", "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item", "func_as", "opt_definition", "table_func_column", "table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list", "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", "oper_argtypes", "any_operator", "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt", "opt_if_exists", "ReindexStmt", "reindex_type", "opt_force", "RenameStmt", "opt_column", "opt_set_data", "AlterObjectSchemaStmt", "AlterOwnerStmt", "RuleStmt", "RuleActionList", "RuleActionMulti", "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead", "DropRuleStmt", "NotifyStmt", "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt", "opt_transaction", "transaction_mode_item", "transaction_mode_list", "transaction_mode_list_or_empty", "ViewStmt", "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_item", "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "alterdb_opt_list", "alterdb_opt_item", "DropdbStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "CreateConversionStmt", "ClusterStmt", "cluster_index_specification", "VacuumStmt", "vacuum_option_list", "vacuum_option_elem", "AnalyzeStmt", "analyze_keyword", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list", "ExplainStmt", "ExplainableStmt", "explain_option_list", "explain_option_elem", "explain_option_name", "explain_option_arg", "PrepareStmt", "prep_type_clause", "PreparableStmt", "ExecuteStmt", "execute_param_clause", "DeallocateStmt", "InsertStmt", "insert_rest", "insert_column_list", "insert_column_item", "returning_clause", "DeleteStmt", "using_clause", "LockStmt", "opt_lock", "lock_type", "opt_nowait", "UpdateStmt", "set_clause_list", "set_clause", "single_set_clause", "multiple_set_clause", "set_target", "set_target_list", "DeclareCursorStmt", "cursor_name", "cursor_options", "opt_hold", "SelectStmt", "select_with_parens", "select_no_parens", "select_clause", "simple_select", "with_clause", "cte_list", "common_table_expr", "opt_with_clause", "into_clause", "OptTempTableName", "opt_table", "opt_all", "opt_distinct", "opt_sort_clause", "sort_clause", "sortby_list", "sortby", "select_limit", "opt_select_limit", "limit_clause", "offset_clause", "select_limit_value", "select_offset_value", "opt_select_fetch_first_value", "select_offset_value2", "row_or_rows", "first_or_next", "group_clause", "having_clause", "for_locking_clause", "opt_for_locking_clause", "for_locking_items", "for_locking_item", "locked_rels_list", "values_clause", "from_clause", "from_list", "table_ref", "joined_table", "alias_clause", "join_type", "join_outer", "join_qual", "relation_expr", "relation_expr_list", "relation_expr_opt_alias", "func_table", "where_clause", "where_or_current_clause", "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement", "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", "character", "opt_varying", "opt_charset", "ConstDatetime", "ConstInterval", "opt_timezone", "opt_interval", "interval_second", "a_expr", "b_expr", "c_expr", "func_expr", "xml_root_version", "opt_xml_root_standalone", "xml_attributes", "xml_attribute_list", "xml_attribute_el", "document_or_content", "xml_whitespace_option", "xmlexists_argument", "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", "row", "sub_type", "all_Op", "MathOp", "qual_Op", "qual_all_Op", "subquery_Op", "expr_list", "func_arg_list", "func_arg_expr", "type_list", "array_expr", "array_expr_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", "indirection_el", "indirection", "opt_indirection", "opt_asymmetric", "ctext_expr", "ctext_expr_list", "ctext_row", "target_list", "target_el", "qualified_name_list", "qualified_name", "name_list", "name", "database_name", "access_method", "attr_name", "index_name", "file_name", "func_name", "AexprConst", "Iconst", "Sconst", "RoleId", "SignedIconst", "ColId", "type_function_name", "ColLabel", "unreserved_keyword", "col_name_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, 61, 60, 62, 668, 43, 45, 42, 47, 37, 94, 669, 91, 93, 40, 41, 46, 59, 44, 58 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 432, 433, 434, 434, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 436, 437, 437, 438, 438, 439, 439, 440, 440, 440, 440, 440, 440, 440, 440, 440, 441, 441, 441, 441, 441, 441, 442, 443, 444, 444, 445, 446, 447, 448, 448, 449, 449, 450, 451, 452, 452, 453, 453, 454, 454, 455, 455, 456, 456, 457, 457, 457, 457, 457, 457, 458, 458, 458, 459, 459, 459, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 461, 462, 462, 463, 463, 464, 464, 464, 464, 465, 465, 465, 465, 466, 466, 466, 466, 466, 466, 466, 467, 467, 467, 468, 468, 469, 469, 469, 469, 469, 470, 470, 471, 471, 472, 472, 472, 472, 472, 473, 474, 474, 475, 475, 476, 477, 477, 477, 477, 478, 478, 478, 478, 478, 478, 478, 478, 479, 479, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 481, 481, 482, 482, 482, 483, 483, 484, 484, 485, 486, 486, 487, 487, 488, 488, 488, 488, 489, 490, 490, 491, 491, 491, 491, 492, 492, 493, 493, 494, 494, 495, 495, 495, 496, 496, 497, 497, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 499, 499, 500, 500, 501, 501, 502, 502, 503, 503, 504, 505, 505, 505, 505, 505, 506, 506, 507, 508, 508, 508, 508, 509, 509, 509, 509, 509, 509, 509, 509, 510, 510, 511, 511, 512, 512, 513, 513, 514, 514, 514, 515, 515, 516, 517, 518, 518, 519, 519, 519, 519, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 522, 523, 523, 523, 524, 524, 524, 524, 524, 524, 525, 525, 526, 526, 526, 526, 526, 526, 526, 527, 527, 528, 528, 529, 529, 530, 531, 531, 531, 531, 532, 532, 533, 533, 534, 534, 535, 535, 535, 535, 535, 536, 537, 538, 538, 538, 538, 538, 539, 539, 540, 540, 540, 540, 541, 541, 541, 541, 542, 542, 543, 543, 544, 545, 546, 547, 547, 547, 548, 549, 549, 550, 550, 551, 551, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 553, 553, 554, 554, 554, 555, 555, 556, 556, 557, 557, 558, 558, 559, 559, 560, 560, 561, 561, 562, 562, 563, 563, 564, 565, 565, 566, 566, 567, 567, 568, 568, 569, 569, 569, 570, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 575, 575, 575, 575, 576, 576, 577, 577, 578, 578, 579, 579, 580, 580, 581, 581, 582, 583, 583, 584, 584, 584, 584, 585, 586, 587, 588, 589, 589, 590, 590, 591, 591, 592, 592, 593, 593, 593, 594, 594, 595, 595, 596, 596, 597, 598, 598, 599, 600, 600, 600, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 606, 606, 606, 606, 606, 607, 607, 608, 608, 609, 609, 610, 610, 611, 611, 611, 612, 612, 612, 612, 613, 613, 614, 614, 615, 615, 615, 615, 615, 615, 616, 616, 617, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 620, 621, 621, 622, 622, 623, 623, 623, 623, 623, 624, 624, 625, 626, 626, 627, 628, 628, 629, 629, 630, 630, 630, 631, 632, 632, 633, 633, 633, 633, 633, 634, 634, 635, 635, 636, 636, 636, 637, 637, 638, 639, 639, 640, 640, 641, 641, 642, 642, 643, 643, 644, 645, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 649, 649, 650, 650, 651, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 655, 655, 656, 656, 656, 656, 656, 657, 657, 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, 659, 659, 660, 660, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 662, 662, 663, 663, 664, 665, 665, 666, 666, 666, 666, 666, 667, 667, 668, 668, 668, 668, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 670, 670, 671, 671, 672, 672, 673, 673, 674, 675, 676, 676, 677, 677, 678, 678, 679, 680, 680, 681, 681, 681, 682, 682, 682, 683, 683, 683, 683, 684, 685, 685, 686, 686, 687, 687, 688, 688, 689, 689, 690, 690, 690, 691, 691, 692, 692, 692, 693, 693, 693, 694, 694, 694, 695, 695, 695, 696, 696, 697, 697, 698, 698, 699, 699, 700, 700, 701, 701, 701, 701, 701, 702, 702, 702, 702, 702, 703, 704, 705, 705, 705, 706, 706, 706, 707, 707, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 709, 709, 709, 709, 710, 710, 711, 711, 712, 713, 713, 714, 715, 715, 716, 716, 717, 717, 718, 718, 719, 719, 720, 720, 720, 720, 721, 721, 722, 723, 723, 724, 724, 725, 725, 725, 726, 726, 726, 727, 728, 728, 729, 729, 729, 730, 730, 731, 731, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 733, 733, 734, 734, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, 737, 738, 738, 738, 739, 739, 740, 740, 740, 740, 740, 741, 741, 742, 742, 742, 742, 743, 743, 743, 744, 744, 745, 746, 746, 747, 748, 748, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 750, 750, 750, 751, 751, 751, 751, 751, 752, 752, 752, 753, 753, 754, 754, 755, 755, 755, 755, 756, 757, 758, 758, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 760, 760, 761, 761, 762, 763, 763, 764, 765, 765, 766, 767, 767, 767, 767, 767, 767, 767, 768, 768, 769, 770, 770, 770, 770, 770, 770, 771, 772, 772, 772, 773, 773, 774, 774, 774, 774, 774, 775, 775, 776, 776, 776, 776, 777, 777, 778, 778, 779, 779, 780, 780, 781, 781, 782, 782, 783, 783, 783, 783, 784, 784, 784, 784, 784, 784, 784, 785, 785, 786, 787, 787, 787, 788, 788, 788, 789, 790, 790, 791, 791, 791, 791, 792, 792, 793, 793, 794, 794, 794, 794, 795, 796, 796, 796, 797, 797, 798, 799, 799, 800, 801, 801, 802, 803, 803, 804, 804, 804, 804, 804, 804, 804, 804, 805, 805, 806, 807, 807, 808, 808, 809, 810, 811, 812, 812, 813, 814, 815, 815, 815, 815, 815, 816, 816, 816, 817, 817, 818, 818, 819, 819, 819, 819, 819, 819, 819, 819, 820, 820, 821, 821, 821, 821, 821, 821, 822, 822, 823, 823, 824, 825, 825, 826, 826, 827, 827, 827, 827, 827, 827, 827, 827, 827, 828, 828, 829, 829, 829, 830, 830, 830, 830, 831, 831, 832, 833, 833, 834, 834, 835, 835, 835, 835, 836, 836, 837, 837, 837, 838, 838, 839, 839, 840, 841, 841, 841, 842, 843, 843, 844, 844, 845, 845, 846, 846, 847, 847, 848, 848, 849, 849, 850, 850, 851, 851, 852, 852, 853, 853, 854, 854, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 856, 856, 856, 856, 856, 856, 857, 857, 857, 857, 858, 858, 858, 858, 859, 859, 860, 860, 861, 861, 861, 861, 862, 862, 863, 863, 863, 864, 865, 865, 866, 866, 866, 867, 867, 868, 868, 869, 870, 870, 870, 870, 870, 870, 871, 871, 871, 872, 872, 872, 872, 872, 872, 872, 873, 873, 873, 873, 874, 874, 875, 875, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 877, 877, 878, 878, 879, 879, 880, 881, 882, 882, 883, 883, 884, 885, 886, 886, 886, 886, 886, 886, 887, 887, 888, 888, 889, 889, 889, 889, 890, 891, 891, 891, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 893, 893, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 898, 898, 899, 899, 899, 899, 900, 901, 901, 902, 902, 903, 903, 904, 904, 904, 905, 905, 905, 905, 906, 906, 907, 907, 908, 909, 909, 909, 910, 911, 911, 912, 912, 913, 913, 913, 914, 914, 915, 915, 915, 915, 915, 916, 916, 916, 917, 917, 917, 918, 918, 919, 919, 919, 919, 919, 919, 919, 919, 919, 920, 920, 921, 921, 922, 922, 922, 922, 922, 922, 923, 923, 924, 924, 925, 925, 926, 926, 927, 927, 927, 928, 928, 929, 929, 930, 930, 930, 930, 930, 930, 930, 930, 931, 931, 932, 933, 933, 934, 934, 934, 934, 934, 934, 935, 936, 937, 937, 937, 938, 938, 939, 940, 940, 941, 942, 942, 943, 943, 944, 944, 945, 945, 945, 945, 946, 946, 947, 947, 948, 948, 949, 949, 950, 950, 951, 952, 952, 953, 953, 953, 953, 954, 954, 955, 955, 956, 956, 957, 958, 959, 960, 961, 962, 963, 963, 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, 965, 966, 967, 968, 968, 968, 969, 969, 969, 970, 970, 970, 971, 971, 971, 971, 971, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975 }; /* 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 5, 1, 0, 2, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 5, 5, 0, 3, 5, 5, 4, 3, 5, 3, 5, 5, 6, 1, 1, 3, 5, 6, 4, 1, 0, 2, 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 5, 1, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 6, 1, 1, 1, 1, 1, 0, 1, 1, 2, 3, 4, 3, 2, 2, 1, 2, 1, 2, 3, 4, 3, 2, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 6, 4, 6, 4, 6, 4, 6, 1, 3, 2, 3, 4, 6, 6, 6, 5, 5, 6, 6, 4, 8, 4, 2, 3, 6, 4, 3, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, 2, 3, 2, 2, 3, 3, 2, 2, 1, 3, 2, 1, 1, 0, 2, 0, 2, 0, 3, 2, 0, 1, 3, 3, 1, 5, 3, 4, 1, 3, 4, 6, 4, 8, 2, 2, 10, 6, 1, 1, 1, 1, 1, 1, 3, 2, 0, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 4, 2, 1, 0, 2, 0, 3, 0, 1, 0, 1, 3, 2, 1, 1, 1, 3, 0, 1, 3, 1, 11, 14, 10, 13, 1, 1, 2, 2, 2, 2, 1, 0, 1, 0, 3, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, 4, 2, 0, 3, 1, 1, 2, 2, 1, 3, 4, 5, 2, 5, 1, 2, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 3, 1, 5, 7, 3, 8, 4, 9, 11, 2, 0, 3, 0, 1, 3, 1, 2, 2, 2, 0, 1, 3, 3, 6, 4, 0, 1, 1, 2, 2, 0, 3, 3, 2, 1, 1, 2, 2, 4, 0, 2, 2, 2, 0, 3, 4, 4, 0, 2, 0, 4, 0, 3, 7, 5, 2, 3, 0, 5, 4, 6, 1, 0, 1, 2, 2, 1, 2, 3, 2, 2, 2, 2, 3, 3, 1, 3, 1, 0, 1, 2, 1, 1, 3, 6, 10, 1, 0, 1, 2, 2, 0, 2, 2, 1, 0, 5, 7, 1, 0, 6, 2, 0, 3, 5, 5, 8, 2, 0, 2, 2, 2, 5, 2, 0, 2, 7, 10, 6, 6, 6, 6, 7, 7, 9, 9, 6, 6, 8, 8, 8, 8, 6, 6, 7, 8, 6, 6, 7, 2, 2, 2, 2, 1, 2, 1, 0, 6, 8, 7, 6, 4, 0, 1, 3, 4, 1, 3, 1, 2, 2, 2, 2, 1, 1, 10, 2, 0, 2, 2, 1, 0, 4, 6, 5, 4, 4, 8, 11, 3, 2, 1, 3, 1, 5, 7, 8, 1, 1, 1, 7, 9, 8, 15, 20, 1, 1, 2, 1, 3, 1, 1, 1, 3, 1, 3, 0, 1, 0, 1, 1, 4, 0, 1, 3, 0, 1, 1, 1, 1, 2, 0, 0, 2, 2, 1, 2, 2, 2, 2, 6, 8, 8, 4, 5, 4, 4, 4, 3, 7, 8, 6, 6, 6, 6, 6, 4, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, 0, 1, 3, 6, 8, 8, 13, 1, 3, 5, 6, 4, 7, 2, 1, 0, 2, 0, 2, 4, 0, 1, 0, 6, 8, 8, 1, 3, 5, 5, 7, 9, 7, 9, 5, 6, 6, 4, 5, 7, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 1, 2, 2, 3, 5, 2, 2, 0, 6, 7, 7, 7, 8, 8, 6, 8, 9, 9, 7, 10, 7, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 8, 9, 9, 9, 9, 2, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 4, 4, 1, 1, 1, 0, 7, 7, 10, 1, 1, 2, 4, 5, 1, 3, 2, 2, 2, 2, 1, 2, 2, 4, 3, 2, 2, 2, 2, 3, 2, 2, 2, 5, 5, 5, 1, 3, 1, 2, 3, 0, 1, 3, 2, 6, 6, 9, 3, 0, 3, 0, 5, 2, 0, 3, 3, 3, 7, 7, 10, 1, 1, 1, 1, 14, 1, 0, 1, 0, 1, 0, 2, 0, 1, 3, 5, 5, 7, 2, 0, 1, 2, 0, 1, 1, 0, 1, 1, 0, 9, 12, 7, 2, 0, 3, 2, 1, 3, 3, 2, 1, 3, 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 4, 5, 1, 3, 3, 1, 2, 4, 5, 1, 1, 1, 1, 3, 3, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 3, 2, 0, 2, 1, 3, 5, 1, 2, 1, 0, 5, 7, 5, 7, 5, 7, 3, 5, 5, 5, 1, 3, 2, 1, 2, 1, 2, 11, 10, 10, 2, 2, 0, 9, 2, 0, 4, 4, 4, 1, 1, 1, 0, 7, 6, 6, 6, 6, 8, 8, 6, 6, 7, 9, 9, 6, 6, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 8, 10, 8, 9, 11, 8, 6, 6, 6, 5, 5, 8, 8, 8, 8, 6, 9, 1, 0, 2, 0, 7, 6, 6, 6, 6, 6, 7, 9, 9, 6, 8, 8, 8, 8, 8, 6, 8, 6, 8, 7, 9, 6, 7, 6, 6, 6, 6, 6, 7, 7, 7, 9, 9, 6, 6, 6, 8, 8, 8, 6, 13, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 6, 8, 3, 2, 0, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 3, 2, 5, 4, 3, 3, 3, 1, 1, 0, 3, 2, 2, 1, 2, 1, 3, 2, 1, 0, 9, 11, 3, 4, 4, 0, 2, 5, 2, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 1, 0, 5, 6, 4, 2, 0, 4, 3, 5, 6, 4, 6, 6, 5, 7, 9, 6, 1, 0, 6, 11, 11, 11, 13, 9, 11, 10, 4, 2, 5, 2, 0, 4, 5, 5, 4, 6, 1, 3, 1, 1, 1, 1, 2, 4, 1, 1, 1, 0, 1, 0, 1, 0, 3, 0, 2, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 0, 5, 3, 0, 1, 1, 1, 1, 3, 9, 3, 0, 2, 3, 2, 3, 6, 1, 4, 2, 1, 3, 2, 2, 0, 7, 2, 0, 5, 3, 0, 2, 2, 2, 3, 1, 3, 1, 2, 1, 0, 8, 1, 3, 1, 1, 3, 5, 2, 1, 3, 7, 1, 0, 3, 2, 2, 2, 0, 2, 2, 1, 1, 3, 3, 1, 2, 4, 4, 2, 3, 5, 5, 1, 1, 9, 1, 2, 4, 4, 4, 2, 3, 1, 3, 6, 1, 0, 2, 0, 3, 3, 4, 4, 4, 4, 3, 2, 1, 1, 0, 1, 1, 0, 1, 5, 1, 0, 1, 0, 3, 1, 3, 4, 3, 2, 2, 1, 1, 1, 0, 2, 4, 5, 2, 3, 1, 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 3, 0, 2, 0, 1, 3, 1, 0, 1, 2, 4, 4, 2, 0, 2, 3, 2, 0, 1, 3, 1, 2, 1, 2, 5, 6, 5, 1, 2, 1, 4, 3, 4, 5, 4, 5, 4, 5, 2, 4, 1, 2, 2, 2, 1, 1, 0, 4, 2, 1, 2, 2, 4, 1, 3, 1, 2, 3, 1, 2, 0, 2, 4, 0, 1, 0, 1, 3, 3, 2, 3, 5, 6, 2, 3, 3, 4, 0, 1, 1, 1, 1, 1, 2, 5, 1, 1, 1, 1, 2, 3, 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, 5, 2, 2, 2, 1, 3, 3, 2, 1, 0, 3, 0, 5, 2, 5, 2, 1, 2, 3, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, 1, 4, 1, 3, 3, 5, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 5, 4, 6, 3, 5, 4, 6, 4, 6, 5, 7, 3, 2, 4, 2, 3, 3, 4, 3, 4, 3, 4, 5, 6, 6, 7, 6, 7, 6, 7, 3, 4, 4, 6, 2, 3, 4, 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 5, 6, 6, 7, 3, 4, 1, 1, 2, 4, 1, 1, 1, 2, 2, 2, 2, 1, 4, 5, 6, 8, 6, 7, 7, 5, 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 6, 4, 4, 4, 4, 6, 5, 5, 5, 4, 6, 4, 4, 4, 4, 5, 7, 7, 9, 5, 4, 6, 5, 7, 7, 7, 2, 3, 3, 3, 4, 0, 4, 1, 3, 3, 1, 1, 1, 2, 2, 0, 2, 4, 4, 6, 2, 0, 1, 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, 2, 2, 0, 1, 4, 2, 2, 2, 2, 2, 4, 3, 5, 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, 3, 1, 3, 1, 3, 1, 3, 3, 3, 2, 1, 3, 3, 0, 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, 5, 1, 2, 4, 2, 0, 1, 0, 1, 2, 2, 2, 3, 5, 1, 2, 0, 2, 1, 0, 1, 1, 1, 3, 3, 1, 3, 3, 2, 1, 1, 1, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 5, 2, 3, 6, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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[] = { 1329, 1130, 511, 1214, 1213, 1130, 232, 0, 1216, 0, 1130, 340, 908, 0, 0, 0, 0, 511, 1130, 0, 1329, 0, 0, 0, 0, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 1130, 0, 0, 1349, 0, 0, 0, 0, 1342, 0, 1218, 0, 0, 0, 0, 2, 4, 56, 57, 23, 22, 28, 27, 79, 80, 46, 16, 70, 51, 112, 111, 113, 34, 30, 64, 20, 21, 31, 35, 53, 36, 52, 19, 50, 74, 54, 77, 41, 10, 11, 42, 68, 12, 43, 69, 13, 44, 14, 58, 81, 26, 55, 78, 37, 66, 62, 9, 47, 48, 49, 71, 72, 73, 95, 76, 107, 33, 104, 85, 86, 101, 87, 102, 7, 88, 45, 15, 98, 97, 99, 65, 38, 67, 96, 100, 17, 18, 103, 75, 93, 90, 108, 106, 114, 91, 59, 5, 6, 82, 40, 8, 25, 24, 39, 32, 110, 29, 1216, 84, 94, 83, 60, 89, 63, 92, 109, 61, 105, 1316, 1303, 1351, 1315, 1328, 0, 1318, 1129, 1128, 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1140, 1849, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 315, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 2110, 2111, 2112, 2113, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 2114, 2115, 1885, 1886, 1887, 1888, 1889, 2116, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 2117, 2118, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 2119, 1934, 1935, 1936, 2120, 1937, 1938, 2121, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 2122, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 2123, 1962, 1963, 1964, 1965, 2124, 2125, 2126, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 2127, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 2128, 2129, 1992, 1993, 2130, 1994, 1995, 1996, 2131, 1997, 2132, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2133, 2134, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2135, 2013, 2136, 2016, 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2137, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2138, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2139, 2056, 2057, 2058, 2140, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2141, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2142, 2143, 2078, 2144, 2079, 2145, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2146, 2147, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2107, 2108, 2109, 314, 1294, 1822, 1850, 1851, 1215, 1196, 511, 0, 1117, 339, 0, 0, 0, 0, 0, 0, 0, 0, 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 363, 362, 0, 0, 0, 880, 368, 0, 0, 0, 0, 499, 1256, 2014, 1254, 1295, 233, 236, 234, 235, 1844, 0, 980, 981, 983, 0, 0, 993, 724, 725, 0, 723, 727, 0, 0, 0, 720, 0, 0, 0, 0, 726, 718, 0, 717, 0, 0, 0, 722, 0, 719, 0, 0, 1118, 1253, 369, 1329, 0, 1232, 1216, 1223, 1233, 1228, 1230, 1229, 1231, 1227, 1843, 1861, 819, 819, 819, 819, 816, 817, 819, 819, 819, 2029, 0, 0, 798, 0, 800, 1846, 819, 824, 424, 424, 424, 0, 823, 828, 424, 1111, 1147, 1827, 1341, 0, 799, 1110, 2078, 1245, 0, 0, 997, 0, 998, 0, 2044, 1122, 217, 2054, 2142, 2078, 213, 187, 1865, 0, 0, 823, 0, 1119, 1120, 784, 1348, 1346, 0, 1883, 1896, 1979, 210, 2040, 2045, 2054, 2142, 2078, 2106, 167, 172, 0, 226, 2054, 2142, 2078, 222, 1140, 0, 1319, 1428, 1818, 0, 1113, 1112, 1217, 0, 1220, 0, 1393, 2026, 1323, 1325, 1222, 1316, 0, 0, 1, 1329, 1211, 1345, 1345, 0, 1345, 0, 1308, 1316, 1311, 1315, 0, 0, 0, 0, 1849, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 0, 0, 1828, 1850, 1854, 0, 734, 0, 118, 1823, 868, 0, 0, 0, 1822, 0, 0, 0, 0, 0, 1845, 1951, 0, 0, 1723, 1887, 1937, 1733, 1731, 1732, 1725, 1726, 1727, 1728, 1729, 1730, 0, 978, 1724, 0, 118, 0, 1951, 0, 0, 1951, 0, 0, 0, 0, 0, 1982, 118, 1951, 0, 0, 1134, 0, 0, 0, 1136, 1139, 1115, 1199, 0, 1818, 0, 0, 768, 759, 0, 769, 760, 765, 771, 0, 0, 762, 0, 0, 772, 0, 761, 763, 774, 764, 770, 0, 0, 766, 767, 0, 0, 1126, 424, 0, 0, 0, 0, 0, 0, 118, 1186, 1951, 118, 0, 0, 367, 366, 118, 365, 364, 1887, 1937, 0, 907, 118, 0, 160, 579, 514, 0, 0, 650, 1982, 118, 0, 0, 0, 0, 883, 0, 0, 498, 511, 1257, 1255, 0, 984, 212, 211, 982, 1951, 0, 293, 0, 0, 1951, 1175, 0, 721, 1951, 0, 1951, 153, 1820, 0, 1887, 1937, 1951, 0, 0, 1951, 145, 1951, 0, 1951, 293, 1951, 515, 0, 1951, 0, 1951, 1982, 147, 0, 1951, 293, 732, 0, 1250, 0, 1225, 2146, 1239, 1238, 0, 1234, 1242, 1237, 1329, 819, 818, 0, 819, 0, 819, 0, 819, 0, 819, 0, 0, 0, 819, 1847, 1848, 801, 0, 825, 0, 0, 832, 831, 830, 0, 0, 0, 833, 1432, 1272, 0, 1108, 1125, 0, 0, 0, 1000, 1000, 1000, 1121, 216, 214, 0, 0, 0, 0, 0, 0, 1127, 0, 0, 0, 0, 1831, 1833, 1834, 1734, 1801, 0, 2111, 2112, 2113, 1792, 0, 2114, 2115, 2116, 2159, 1646, 1633, 1642, 1647, 1634, 1636, 1643, 2117, 2118, 1922, 2119, 2120, 1841, 2121, 2122, 2124, 2125, 2126, 2127, 1638, 1640, 2128, 2129, 0, 1842, 2131, 2132, 2002, 2134, 2135, 2137, 2138, 1644, 2140, 2141, 2142, 2143, 2144, 2145, 1840, 0, 1645, 2147, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 0, 0, 1815, 0, 1618, 0, 1464, 1465, 1487, 1488, 1466, 1493, 1494, 1506, 1467, 0, 1814, 1531, 1617, 1623, 0, 1616, 1612, 1331, 1810, 0, 1613, 1830, 1832, 1793, 179, 228, 0, 229, 1816, 2054, 168, 209, 181, 208, 182, 180, 0, 1885, 169, 0, 0, 170, 0, 0, 0, 0, 225, 223, 0, 1116, 0, 1430, 1429, 0, 0, 1799, 1819, 741, 1209, 1210, 1208, 0, 1205, 1207, 1219, 1216, 1806, 1805, 1807, 0, 1324, 0, 0, 0, 1306, 1305, 3, 1222, 1343, 1344, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 1359, 1360, 1362, 1383, 1387, 0, 1312, 0, 0, 1434, 0, 1394, 0, 0, 1829, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 117, 1173, 219, 1171, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 151, 152, 526, 511, 0, 1951, 0, 0, 0, 0, 940, 947, 0, 0, 0, 0, 0, 0, 0, 941, 939, 942, 221, 951, 964, 967, 0, 858, 0, 0, 0, 0, 1043, 0, 0, 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 245, 288, 491, 0, 0, 493, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 478, 490, 0, 0, 0, 0, 0, 487, 0, 118, 241, 471, 475, 0, 0, 0, 588, 587, 0, 1043, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 308, 0, 0, 0, 122, 144, 0, 0, 0, 243, 0, 0, 1135, 1132, 1133, 0, 1138, 0, 1195, 0, 0, 0, 0, 0, 773, 0, 0, 1887, 1937, 0, 0, 0, 0, 0, 0, 342, 321, 322, 118, 320, 0, 0, 647, 0, 1852, 1475, 1504, 1482, 1504, 1504, 1471, 1471, 1484, 1472, 1473, 1511, 0, 1504, 1471, 1476, 0, 1474, 1514, 1514, 1499, 0, 1456, 1457, 1458, 1459, 1485, 1486, 1460, 1491, 1492, 1461, 1528, 1471, 1853, 0, 0, 658, 0, 1150, 1185, 0, 0, 520, 0, 1951, 0, 120, 692, 0, 648, 0, 120, 0, 156, 0, 583, 0, 0, 0, 0, 0, 0, 608, 607, 0, 0, 0, 649, 0, 120, 474, 1951, 0, 424, 424, 0, 882, 885, 0, 0, 0, 1298, 1300, 1299, 0, 1297, 0, 293, 291, 292, 645, 992, 0, 0, 0, 0, 293, 0, 0, 1951, 293, 1951, 0, 1951, 0, 0, 293, 293, 0, 0, 0, 0, 584, 0, 731, 729, 728, 730, 0, 0, 0, 0, 0, 1951, 293, 0, 0, 714, 1744, 0, 0, 1329, 0, 198, 199, 197, 1240, 200, 1241, 1236, 1224, 0, 809, 0, 813, 0, 804, 0, 810, 0, 805, 802, 803, 0, 808, 0, 0, 425, 427, 0, 0, 1907, 1921, 0, 1942, 1970, 1971, 2045, 2050, 0, 2073, 2082, 0, 834, 863, 829, 0, 0, 1282, 1109, 1750, 0, 1329, 0, 999, 996, 995, 994, 215, 188, 0, 0, 0, 865, 2044, 1124, 783, 511, 0, 1614, 0, 1621, 1622, 1503, 1490, 1791, 0, 0, 1498, 1497, 0, 0, 0, 0, 0, 1480, 1479, 1478, 1620, 1758, 0, 1477, 0, 0, 0, 0, 1504, 1504, 1502, 1551, 0, 1481, 0, 0, 1771, 0, 1777, 0, 0, 0, 1510, 0, 1508, 0, 0, 1587, 0, 0, 0, 0, 0, 0, 0, 0, 1535, 1536, 1618, 1744, 0, 1619, 1837, 0, 0, 1496, 0, 1528, 1813, 1734, 0, 0, 0, 0, 1804, 0, 1742, 0, 0, 1565, 1740, 0, 1567, 0, 0, 0, 1733, 1731, 1732, 1725, 1726, 1727, 1728, 1729, 1730, 1738, 1548, 0, 0, 1547, 0, 0, 1396, 0, 1835, 1794, 230, 231, 227, 0, 0, 184, 183, 0, 202, 206, 207, 178, 205, 0, 201, 186, 1686, 1685, 185, 177, 175, 173, 189, 191, 192, 176, 174, 224, 0, 0, 1855, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 1796, 1795, 1825, 1856, 1857, 1858, 1859, 1800, 0, 0, 293, 1203, 0, 1200, 1809, 0, 1326, 0, 0, 1212, 1322, 1321, 1352, 1353, 900, 1320, 1377, 1378, 1373, 0, 1392, 1392, 1369, 1363, 1368, 1366, 0, 1370, 1531, 1385, 1310, 1357, 1358, 1361, 1309, 0, 1388, 1386, 1362, 1269, 0, 0, 1435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 2073, 218, 1169, 0, 0, 0, 0, 867, 866, 0, 0, 887, 0, 0, 0, 1181, 413, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 1043, 0, 596, 0, 949, 0, 948, 0, 0, 0, 950, 945, 946, 2045, 2054, 2078, 220, 966, 0, 965, 963, 922, 924, 923, 0, 926, 910, 0, 911, 0, 0, 921, 929, 927, 0, 0, 0, 0, 1930, 247, 260, 0, 1042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 283, 282, 0, 0, 0, 0, 287, 0, 0, 0, 286, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 979, 0, 0, 139, 142, 0, 0, 0, 477, 489, 0, 481, 482, 479, 483, 484, 0, 0, 0, 0, 0, 0, 476, 0, 0, 581, 580, 586, 0, 0, 0, 0, 0, 0, 0, 1035, 1034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 599, 600, 0, 601, 0, 143, 0, 0, 0, 0, 0, 0, 0, 196, 1131, 1137, 1198, 1826, 1197, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 1852, 0, 673, 646, 0, 1456, 0, 1452, 1448, 1517, 1518, 1519, 1516, 1529, 1515, 0, 1462, 1520, 1471, 1468, 659, 0, 661, 664, 0, 1148, 386, 0, 517, 558, 0, 0, 0, 149, 0, 0, 0, 116, 160, 369, 0, 159, 161, 163, 164, 165, 162, 166, 578, 582, 0, 513, 0, 0, 0, 0, 0, 609, 613, 612, 616, 614, 0, 610, 0, 0, 1444, 0, 138, 470, 473, 0, 0, 0, 371, 455, 300, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 1296, 0, 970, 0, 1176, 1951, 293, 0, 968, 154, 1821, 0, 715, 0, 0, 0, 0, 0, 972, 711, 146, 0, 293, 293, 516, 0, 293, 148, 0, 0, 0, 508, 293, 733, 1252, 0, 424, 1226, 1235, 806, 815, 814, 812, 811, 807, 0, 826, 0, 423, 0, 0, 0, 840, 841, 0, 0, 839, 856, 842, 0, 844, 836, 835, 845, 846, 0, 0, 865, 0, 1279, 0, 1277, 0, 1433, 1281, 1270, 1244, 0, 1243, 1247, 1249, 1248, 1246, 0, 0, 0, 823, 0, 0, 293, 1123, 0, 785, 786, 791, 0, 0, 0, 792, 788, 789, 790, 793, 794, 795, 0, 0, 0, 1802, 1754, 0, 1755, 0, 0, 0, 1790, 1786, 0, 0, 0, 0, 0, 0, 1759, 1762, 1763, 1764, 1761, 1765, 1760, 0, 0, 1766, 0, 0, 0, 0, 0, 1501, 1500, 0, 0, 0, 0, 0, 0, 0, 1590, 1623, 0, 0, 1718, 0, 1744, 1776, 0, 0, 1512, 0, 0, 0, 0, 0, 0, 0, 1744, 1782, 0, 0, 0, 0, 1684, 0, 1681, 0, 0, 0, 0, 1801, 0, 0, 0, 0, 1838, 1532, 1549, 1812, 0, 1803, 0, 0, 1533, 1556, 0, 1783, 1583, 0, 1588, 1571, 0, 1564, 0, 1569, 1573, 1552, 1804, 1743, 0, 1741, 0, 0, 1550, 0, 1545, 1543, 1544, 1537, 1538, 1539, 1540, 1541, 1542, 1546, 1722, 1720, 1721, 0, 0, 0, 1568, 1944, 1979, 0, 1342, 1342, 1342, 1330, 1340, 1811, 0, 1439, 0, 0, 0, 0, 1701, 0, 1748, 0, 1746, 1828, 1817, 0, 0, 1528, 0, 1431, 1797, 0, 739, 740, 738, 1222, 1206, 1202, 1201, 1808, 1221, 1329, 0, 898, 899, 0, 903, 0, 0, 1371, 1384, 0, 1282, 1282, 0, 1375, 1376, 1367, 1314, 1313, 0, 1442, 0, 0, 1266, 1259, 1436, 0, 1396, 1284, 1286, 1287, 0, 1801, 671, 670, 0, 0, 0, 1069, 1002, 1047, 737, 1070, 1003, 1048, 1071, 1004, 1170, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 1951, 293, 1179, 1072, 0, 1005, 289, 1180, 1049, 1184, 1050, 0, 525, 0, 0, 530, 531, 532, 0, 0, 533, 1887, 1937, 0, 538, 544, 548, 539, 0, 549, 545, 0, 0, 0, 0, 0, 0, 555, 562, 0, 0, 0, 0, 0, 0, 943, 944, 1073, 1008, 0, 1051, 925, 1471, 909, 0, 0, 920, 0, 919, 1471, 1471, 1009, 150, 0, 240, 248, 564, 1045, 266, 279, 274, 275, 273, 1951, 293, 1951, 293, 0, 0, 0, 0, 276, 271, 272, 268, 281, 1864, 1923, 2055, 0, 568, 570, 0, 575, 284, 1021, 0, 301, 304, 285, 264, 267, 265, 261, 246, 0, 0, 1824, 0, 0, 974, 0, 0, 0, 141, 1031, 131, 0, 0, 127, 0, 0, 0, 0, 121, 1079, 1013, 0, 0, 242, 472, 480, 485, 1017, 488, 1061, 486, 1085, 1014, 1043, 0, 238, 0, 1015, 0, 1055, 1081, 1033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 293, 0, 680, 1045, 1951, 293, 1080, 0, 1040, 1067, 0, 309, 0, 1032, 0, 0, 244, 1019, 1063, 0, 0, 194, 193, 195, 0, 0, 0, 0, 0, 0, 0, 0, 777, 748, 776, 0, 0, 0, 0, 0, 0, 0, 742, 341, 318, 319, 0, 0, 317, 323, 0, 672, 0, 0, 1453, 1449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1469, 660, 0, 0, 0, 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1149, 1177, 118, 0, 0, 0, 519, 557, 564, 0, 592, 595, 0, 593, 0, 0, 0, 0, 0, 132, 119, 0, 700, 424, 155, 0, 0, 0, 512, 657, 655, 654, 656, 0, 0, 0, 677, 653, 0, 1443, 1445, 0, 0, 0, 469, 373, 0, 0, 370, 374, 378, 379, 380, 427, 0, 0, 459, 0, 0, 0, 0, 914, 0, 932, 915, 0, 0, 0, 954, 959, 955, 935, 0, 496, 1301, 1302, 0, 293, 0, 0, 559, 293, 293, 0, 293, 0, 293, 293, 0, 1106, 585, 0, 642, 0, 0, 293, 713, 1745, 827, 426, 0, 0, 0, 0, 838, 0, 494, 843, 0, 855, 850, 852, 0, 859, 1280, 1273, 1275, 1274, 0, 0, 1271, 1751, 712, 0, 0, 293, 0, 860, 0, 787, 0, 0, 0, 0, 1347, 1752, 1753, 0, 0, 0, 0, 1787, 0, 0, 1659, 0, 1635, 1637, 1470, 1649, 0, 1483, 1660, 1661, 1639, 1641, 0, 1735, 0, 0, 1650, 1592, 1593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 1604, 1651, 1717, 0, 0, 1774, 1775, 1652, 1513, 1514, 1514, 0, 0, 1781, 0, 0, 0, 1657, 1662, 0, 0, 0, 0, 1668, 0, 1689, 0, 0, 0, 1615, 1745, 1505, 1506, 0, 0, 0, 0, 0, 0, 0, 0, 1589, 1572, 1566, 0, 1570, 1574, 0, 0, 0, 0, 1558, 1584, 1554, 0, 0, 1560, 0, 1585, 1342, 1342, 1342, 1342, 1339, 0, 0, 0, 0, 1406, 1395, 1397, 1408, 1399, 1401, 1437, 0, 1818, 0, 1380, 1351, 1351, 0, 1701, 0, 1624, 0, 1701, 0, 0, 171, 0, 203, 190, 0, 1204, 0, 1354, 0, 1736, 903, 901, 902, 1356, 0, 0, 1391, 1390, 1389, 1364, 1268, 0, 1266, 1261, 0, 1262, 1801, 0, 1258, 1291, 0, 0, 1442, 0, 1290, 1068, 1001, 1046, 1168, 870, 871, 0, 869, 0, 0, 0, 412, 886, 0, 0, 0, 634, 0, 0, 416, 0, 1182, 0, 527, 528, 0, 0, 546, 0, 0, 535, 0, 0, 0, 0, 534, 551, 500, 552, 554, 0, 0, 553, 556, 561, 1043, 0, 597, 1023, 0, 1065, 937, 0, 1471, 912, 917, 918, 0, 0, 0, 386, 0, 0, 0, 249, 259, 0, 0, 263, 0, 257, 277, 269, 278, 270, 572, 573, 571, 567, 0, 574, 576, 298, 0, 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1052, 0, 0, 124, 123, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 295, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 1074, 1010, 743, 0, 0, 744, 752, 0, 0, 745, 0, 0, 0, 0, 0, 0, 754, 344, 0, 347, 354, 327, 331, 1186, 0, 1186, 0, 332, 1186, 328, 1186, 325, 2002, 1725, 1726, 668, 675, 665, 667, 669, 666, 0, 674, 634, 0, 0, 0, 1454, 0, 1522, 1523, 1524, 1525, 1526, 1527, 0, 1521, 1528, 662, 663, 0, 1168, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 392, 0, 0, 959, 385, 388, 389, 520, 523, 521, 522, 550, 0, 591, 0, 564, 134, 0, 0, 135, 133, 0, 300, 369, 0, 0, 615, 618, 611, 0, 676, 678, 651, 0, 564, 0, 1253, 0, 465, 0, 455, 405, 451, 0, 453, 452, 454, 0, 461, 299, 0, 0, 887, 913, 0, 0, 0, 952, 956, 953, 0, 0, 928, 0, 936, 906, 1101, 1102, 1099, 1100, 0, 0, 1293, 971, 0, 293, 969, 716, 0, 707, 0, 709, 973, 293, 293, 602, 0, 509, 0, 0, 0, 837, 857, 0, 853, 0, 0, 820, 862, 1278, 1276, 865, 0, 821, 864, 0, 0, 0, 0, 0, 1756, 1489, 0, 1789, 1785, 0, 1632, 1757, 0, 1769, 1768, 1591, 1770, 0, 1610, 0, 0, 1602, 1600, 1601, 1594, 1595, 1596, 1597, 1598, 1599, 1603, 1779, 1778, 1772, 1773, 1509, 1507, 0, 1654, 1655, 1656, 1780, 1663, 0, 1878, 1690, 1667, 1683, 1682, 0, 0, 0, 1670, 0, 0, 1679, 0, 1719, 1495, 1528, 1534, 0, 0, 1557, 1784, 1575, 0, 0, 0, 1553, 0, 0, 0, 0, 1562, 1735, 0, 0, 0, 0, 0, 0, 1333, 1332, 1338, 1316, 0, 1408, 0, 1407, 1419, 0, 0, 1425, 1423, 0, 1425, 0, 1425, 0, 1400, 0, 1402, 1419, 0, 1819, 1438, 0, 1382, 0, 0, 1350, 0, 1701, 1631, 1704, 1699, 1700, 1749, 1625, 1836, 0, 1747, 1701, 0, 1798, 1327, 0, 1355, 1372, 1365, 1903, 1440, 1267, 0, 0, 1264, 1265, 0, 0, 1285, 1266, 1288, 0, 876, 877, 875, 878, 0, 0, 0, 634, 0, 0, 432, 0, 894, 894, 0, 0, 418, 464, 959, 637, 0, 0, 0, 635, 293, 1006, 0, 547, 0, 0, 543, 541, 540, 542, 501, 1084, 1007, 0, 0, 0, 0, 938, 0, 930, 1022, 0, 383, 0, 254, 1044, 0, 0, 0, 253, 0, 293, 293, 569, 302, 303, 306, 0, 0, 0, 0, 0, 0, 701, 684, 0, 0, 702, 703, 0, 0, 0, 976, 977, 975, 128, 125, 126, 129, 1018, 1062, 1016, 0, 1056, 1027, 1025, 0, 0, 0, 0, 0, 1083, 1039, 1060, 1082, 1037, 1058, 1036, 1057, 1038, 1059, 1030, 0, 1447, 682, 681, 0, 293, 293, 604, 1020, 1064, 0, 746, 0, 0, 747, 758, 756, 755, 757, 749, 345, 118, 0, 324, 0, 352, 0, 350, 349, 351, 0, 338, 0, 0, 0, 0, 0, 644, 0, 0, 0, 1450, 1455, 1530, 1463, 633, 0, 1159, 1158, 1157, 1161, 1160, 1163, 1162, 1154, 1153, 1166, 1165, 1152, 1151, 1156, 1155, 0, 390, 0, 396, 400, 401, 399, 391, 959, 424, 463, 518, 0, 594, 589, 137, 136, 0, 0, 0, 0, 620, 624, 652, 0, 1446, 598, 0, 371, 469, 467, 0, 0, 376, 381, 382, 0, 459, 402, 0, 455, 375, 0, 0, 466, 1146, 0, 0, 916, 933, 934, 0, 0, 959, 958, 0, 503, 293, 560, 293, 293, 1107, 643, 0, 849, 848, 847, 495, 0, 851, 293, 0, 0, 0, 0, 0, 797, 778, 796, 1788, 1648, 1658, 1767, 0, 0, 1611, 0, 0, 1653, 2148, 0, 0, 0, 0, 1687, 1688, 1669, 0, 1993, 1674, 0, 0, 0, 1839, 1581, 1579, 1576, 0, 1577, 0, 0, 1559, 1555, 0, 1561, 1586, 1337, 1336, 1335, 1334, 1410, 1417, 0, 1398, 0, 1424, 1420, 0, 1421, 0, 0, 1422, 0, 0, 1417, 0, 0, 0, 0, 1695, 1701, 1701, 1626, 1706, 1703, 0, 1628, 1528, 0, 0, 1260, 1263, 0, 1292, 1283, 1174, 0, 0, 0, 414, 0, 959, 0, 0, 0, 897, 897, 0, 959, 463, 639, 638, 641, 636, 640, 1183, 0, 536, 537, 1024, 0, 1066, 1028, 931, 0, 565, 250, 251, 252, 255, 295, 262, 256, 0, 1077, 1011, 1053, 0, 0, 690, 0, 0, 0, 0, 1078, 1012, 1054, 0, 0, 0, 0, 1192, 0, 294, 295, 311, 1041, 0, 750, 751, 326, 0, 348, 357, 0, 355, 329, 334, 0, 336, 335, 330, 333, 1451, 0, 990, 990, 0, 634, 1164, 0, 0, 387, 463, 431, 0, 393, 0, 0, 0, 371, 564, 619, 0, 0, 0, 679, 373, 0, 1251, 468, 372, 0, 0, 461, 0, 0, 0, 459, 0, 456, 0, 460, 0, 1141, 0, 0, 957, 0, 961, 0, 927, 904, 1439, 0, 507, 991, 708, 710, 603, 854, 861, 293, 779, 780, 781, 782, 1606, 0, 0, 0, 0, 1664, 0, 1665, 1692, 1691, 1671, 1675, 0, 1672, 1673, 1578, 1582, 1580, 1563, 1409, 0, 0, 1411, 0, 0, 1413, 1415, 0, 0, 0, 0, 0, 1822, 1701, 1379, 1381, 0, 1317, 1629, 1630, 0, 1351, 1701, 204, 1737, 1441, 1289, 855, 0, 293, 894, 463, 433, 2002, 434, 893, 0, 895, 900, 900, 0, 463, 634, 529, 0, 563, 0, 297, 305, 0, 0, 697, 685, 0, 0, 704, 1026, 0, 0, 0, 0, 0, 293, 753, 316, 343, 353, 0, 337, 990, 0, 987, 986, 632, 0, 422, 394, 0, 442, 0, 564, 694, 1146, 577, 621, 622, 617, 0, 0, 455, 451, 377, 386, 360, 411, 410, 407, 406, 408, 409, 404, 403, 0, 461, 457, 458, 0, 0, 0, 1194, 0, 888, 960, 0, 0, 0, 502, 0, 0, 506, 497, 822, 1607, 0, 1608, 0, 0, 0, 1677, 1676, 0, 1418, 1427, 0, 1414, 1412, 1403, 0, 1405, 1694, 1696, 0, 0, 1709, 1627, 872, 0, 873, 897, 437, 0, 896, 903, 903, 424, 634, 415, 1029, 566, 0, 258, 0, 688, 0, 699, 697, 0, 0, 1188, 0, 1189, 1190, 1193, 313, 356, 985, 989, 988, 0, 0, 395, 428, 429, 430, 0, 397, 438, 439, 0, 590, 0, 0, 1142, 0, 0, 459, 455, 384, 450, 358, 0, 1143, 0, 300, 0, 959, 962, 1105, 505, 504, 1609, 1680, 1666, 1693, 1678, 1416, 0, 1404, 0, 0, 1705, 0, 0, 0, 0, 900, 0, 634, 0, 891, 890, 431, 417, 296, 0, 0, 695, 698, 686, 699, 706, 705, 0, 0, 421, 0, 0, 0, 440, 0, 441, 462, 693, 0, 623, 0, 461, 459, 1144, 1145, 461, 889, 905, 1104, 1103, 1329, 1426, 1697, 1698, 2110, 1903, 2084, 0, 1707, 1710, 1708, 1702, 293, 903, 0, 419, 435, 442, 0, 0, 687, 1191, 624, 447, 0, 446, 0, 444, 443, 683, 627, 361, 461, 1439, 1087, 1329, 1086, 1088, 1096, 1093, 1095, 1094, 1092, 0, 1714, 1713, 1712, 1716, 1715, 874, 892, 0, 634, 689, 696, 0, 445, 449, 448, 629, 0, 625, 628, 630, 631, 359, 879, 0, 1097, 1091, 1316, 1303, 0, 436, 420, 0, 605, 0, 1089, 1329, 1711, 0, 626, 1090, 0, 627, 0, 606 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 48, 49, 50, 51, 1169, 2058, 1937, 2705, 2706, 52, 53, 1243, 54, 55, 56, 57, 58, 59, 60, 1184, 61, 62, 853, 1384, 2066, 63, 1812, 669, 670, 1656, 1657, 1999, 1658, 1646, 1085, 1468, 1203, 1171, 1204, 65, 66, 1079, 1637, 67, 68, 69, 1228, 1229, 1179, 1421, 3561, 4099, 1923, 2744, 2541, 2542, 70, 1285, 1286, 71, 72, 2654, 1324, 2656, 2657, 3158, 509, 2023, 3581, 3582, 3145, 3146, 3588, 3846, 3847, 73, 1381, 2733, 3244, 2734, 3654, 2735, 3655, 2736, 3656, 2687, 3208, 3209, 3210, 2737, 3660, 4039, 2738, 1827, 4119, 2100, 1490, 1488, 4017, 3463, 3464, 4166, 4124, 4125, 4126, 4231, 3662, 2742, 3252, 3666, 3868, 2444, 588, 1403, 3242, 75, 76, 2094, 1259, 1260, 1944, 3162, 2793, 77, 870, 3023, 3907, 4058, 4059, 78, 197, 79, 1388, 80, 81, 2053, 2692, 82, 1839, 2457, 83, 84, 2482, 2483, 2484, 85, 86, 3047, 3806, 1230, 2534, 2535, 2536, 2537, 3067, 87, 1386, 1265, 2075, 88, 89, 90, 2057, 2698, 2699, 91, 92, 1987, 93, 94, 95, 1396, 2087, 2088, 3644, 3875, 4025, 3877, 4264, 4265, 3860, 3006, 3477, 96, 97, 98, 99, 1367, 2046, 2047, 3163, 1155, 1328, 2026, 2027, 3233, 3234, 100, 101, 3521, 3522, 539, 4130, 4103, 4177, 102, 103, 3525, 3526, 104, 105, 106, 107, 108, 582, 914, 915, 1161, 109, 1752, 110, 828, 2641, 111, 979, 2218, 3699, 112, 611, 929, 930, 113, 114, 620, 2198, 622, 1503, 2795, 2796, 3301, 2168, 753, 115, 116, 2179, 2201, 117, 1172, 1818, 1819, 3458, 118, 540, 1408, 2103, 2439, 4049, 3465, 3787, 3977, 2385, 2965, 119, 541, 1208, 1885, 2106, 2748, 2749, 1887, 2358, 3265, 1889, 2750, 2755, 2756, 2757, 3261, 3269, 3901, 3902, 120, 1206, 1878, 121, 122, 123, 1238, 772, 124, 552, 553, 125, 4010, 126, 882, 127, 638, 1516, 128, 1901, 3053, 129, 130, 131, 4240, 4271, 4272, 4273, 3274, 4204, 132, 4242, 959, 134, 135, 136, 171, 796, 797, 798, 137, 3896, 138, 139, 2050, 2686, 3190, 140, 141, 1813, 2429, 142, 143, 144, 1371, 145, 146, 147, 148, 1304, 149, 1114, 1115, 150, 151, 504, 686, 1118, 1126, 152, 590, 923, 924, 925, 1470, 153, 962, 2190, 591, 917, 155, 592, 2403, 2976, 2977, 2980, 593, 2400, 158, 1509, 2184, 2187, 594, 2407, 2408, 2409, 2410, 2411, 2982, 595, 613, 873, 2111, 596, 1051, 163, 164, 165, 695, 690, 691, 167, 1631, 2348, 628, 1133, 657, 703, 3421, 1764, 1765, 1785, 1786, 1142, 1143, 1775, 1777, 2387, 1778, 2396, 1770, 3418, 3761, 1781, 1782, 1145, 1146, 2391, 168, 2352, 2932, 2933, 2934, 3399, 3409, 3748, 3944, 2935, 957, 1152, 2936, 2941, 2974, 2724, 2725, 2726, 1890, 2033, 1352, 1052, 1353, 2044, 1053, 1552, 1355, 1054, 1055, 1056, 1358, 1057, 1058, 1059, 1060, 1535, 1594, 1061, 1062, 1571, 2041, 2042, 1459, 2258, 1064, 1065, 3365, 3723, 3712, 2284, 2285, 1653, 3361, 2884, 3956, 4078, 4079, 3429, 3426, 3765, 3960, 4162, 4212, 4213, 1066, 2338, 1624, 774, 1067, 3165, 1626, 2278, 2360, 2361, 1797, 1533, 2224, 2242, 2243, 2255, 2845, 2262, 2267, 2868, 2869, 2279, 2307, 1068, 2227, 2228, 2828, 1537, 1069, 1108, 1109, 1530, 2302, 1121, 1122, 688, 1070, 1071, 1504, 679, 3940, 891, 744, 2551, 1743, 800, 625, 1072, 1073, 1074, 1075, 2797, 1234, 500, 738, 2538, 501, 502, 740, 1748 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -3866 static const int yypact[] = { 6714, 1130, 10084, -3866, -3866, 1130, -3866, 46296, -12, 619, 56, 128, 12079, 46703, 54436, 219, 264, 7882, 1130, 54436, 921, 37342, 42226, 54436, 401, 534, 37342, 54436, 54843, 719, 1068, 55250, 47110, 41005, 792, 54436, 713, 325, 55657, 47517, 686, 47924, 534, 34513, 107, 705, 56064, 1634, 1212, 822, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -12, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 197, -3866, 668, 340, 1296, 140, 838, -3866, -3866, -3866, 38970, 54436, 54436, 54436, 1063, 54436, 54436, 137, 38970, 54436, 56471, 1107, 31177, -3866, 54436, 54436, 56878, 54436, 48331, 54436, 1103, 54436, 54436, 57285, 57692, 1248, 1150, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 54436, 10117, 401, -3866, -3866, 54436, 1099, 38970, 54436, 1031, 54436, 1127, 54436, -3866, 54436, 58099, 659, 1610, 54436, 1635, 31597, 1253, 54436, 54436, 54436, 54436, -3866, -3866, 1362, 54436, 54436, -3866, -3866, 58506, 906, 1604, 1550, 160, -3866, 48738, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 49145, 264, -3866, -3866, 39377, 54436, 1568, -3866, -3866, 58913, -3866, -3866, 660, 39784, 59320, 1668, 32017, 1704, 59727, 60134, -3866, -3866, 60541, -3866, 60948, 1451, 61355, -3866, 61762, -3866, 1590, 62169, -3866, 1341, 1034, 905, 28279, -3866, -12, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 294, 1528, 228, 171, 259, -3866, -3866, 175, 186, 189, 294, 1782, 1782, -3866, 54436, -3866, -3866, 1528, 15, 1393, 1393, 1393, 1577, 522, -3866, 1393, -3866, -3866, -3866, -3866, 47924, -3866, 1402, 401, 1419, 1809, 54436, -3866, 54436, -3866, 54436, 54436, -3866, -3866, 1858, 1491, 1719, 1499, -3866, 1667, 1696, 1703, 80, 401, 1663, -3866, 1877, -3866, 1789, 19045, 401, 49552, 62576, 179, 49145, 401, 49959, 1637, 1621, 1805, -3866, -3866, 631, -3866, 2026, 1686, 1908, 1499, 1150, 29105, -3866, 1695, -40, 47924, -3866, -3866, -3866, 300, 1975, 19469, -3866, 54436, 1700, -3866, 1709, 1712, 1716, 1296, -3866, 6714, 54436, 815, 815, 2099, 815, 1742, 1764, -3866, 1455, -3866, 2000, 1983, 47924, 705, 191, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 1757, -40, -3866, 194, -3866, 109, 1762, 1059, 1570, -3866, -3866, 771, 1857, 184, 11, 1799, 50366, 5120, 1781, 399, -3866, 2078, 1967, 261, -3866, 54436, 54436, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 1794, -3866, -3866, 1796, 1288, 1407, 2096, 3927, 1371, 2108, 2293, 1694, 796, 2025, 1326, 2104, 1575, 2121, 6371, 54436, -3866, 2097, 2203, 68, -3866, 86, -3866, 1940, 2076, 39, 38970, 1911, -3866, -3866, 54436, -3866, -3866, -3866, -3866, 674, 38970, -3866, 2137, 32437, -3866, 54436, -3866, -3866, -3866, -3866, -3866, 2077, 54436, -3866, -3866, 2206, 54436, -3866, 1393, 396, 1981, 2351, 71079, 67, 54436, 2032, 2387, 2196, 2032, 2034, 62983, -3866, -3866, 2032, -3866, -3866, 54436, 54436, 2015, 1504, 2032, 2397, 2415, 2093, 2213, 807, 911, 154, 2335, 2032, 54436, 63390, 54436, 54436, 2419, 38970, 54436, -3866, 2223, -3866, -3866, 1100, -3866, -3866, -3866, -3866, 2348, 1757, 181, 2366, 2075, 2369, -3866, 2111, -3866, 2373, 1781, 2375, 2080, -3866, 63797, 64204, 64611, 2377, 1794, 54436, 2379, 2080, 2382, 2271, 2384, 181, 2385, -3866, 920, 2388, 2275, 2390, 1395, 2080, 50773, 2392, 119, -3866, 21165, -3866, 2187, -3866, 705, -3866, -3866, 1175, -3866, 36935, -3866, 905, 1528, -3866, 54436, 1528, 54436, 1528, 54436, 1528, 54436, 1528, 54436, 54436, 54436, 1528, -3866, -3866, -3866, 54436, 2106, 54436, 54436, -3866, -3866, -3866, 43040, 54436, 43447, -3866, -3866, 85, 401, -3866, -3866, 71079, 2499, 54436, 2391, 2391, 2391, -3866, -3866, -3866, 2327, 54436, 2389, 2393, 43040, 54436, -3866, 65018, 49145, 2290, 2113, -3866, -3866, -3866, -3866, -3866, 1758, 2535, 195, 2536, 21165, 2116, 182, 182, 2120, 2404, -3866, -3866, -3866, 203, 2124, 2125, -3866, 229, 229, 2284, 2132, 2133, -3866, 242, 2134, 2557, 2558, 244, 2139, 2140, 2141, 1345, 182, 21165, -3866, 2143, 229, 2144, 2145, 2146, 2569, 2149, -3866, 2573, 2154, 255, 293, 2155, 2158, -3866, 2132, -3866, 206, 2160, 2162, 2164, 2165, 2166, 2167, 2170, 2171, 21165, 21165, -3866, 18197, -40, 401, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 135, -3866, 246, 4431, -3866, -3866, 2342, 21165, -3866, -3866, 72, -3866, 247, -3866, -3866, -3866, -40, -3866, -3866, 257, 2173, -3866, 1683, -3866, -3866, -3866, -3866, -3866, -3866, 44261, 2574, -3866, 292, 401, 86, 283, 2520, 36121, 36528, -3866, -3866, 2401, -3866, 54436, -3866, -3866, 21165, 34106, -3866, -40, 130, -3866, -3866, -3866, 1385, -3866, -3866, -3866, -12, -3866, 9740, -3866, 1416, 1700, 54436, 54436, 2577, -3866, -3866, -3866, 1709, -3866, -3866, 1296, 1296, 21165, 1296, 209, 956, 19893, 21165, 2464, 2367, 224, 698, 2465, -3866, 1742, 1764, 47924, 54436, 65425, 2294, -3866, 35327, 1075, -40, 2262, 2263, 2309, 38156, 2189, 2266, 2267, 2314, 2268, 2270, 65832, -3866, -3866, -3866, -3866, 1280, 1164, 1018, 2273, 309, 648, 2552, -3866, 2325, -3866, -3866, -3866, 2477, 54436, 2500, 6745, 2395, 261, 2322, -3866, -3866, 2432, 2285, 2286, 2405, 261, 720, 66239, -3866, -3866, -3866, -3866, -3866, -3866, 5809, 16567, -3866, 2291, 2274, 54436, 40191, 2578, 2402, 1061, 303, 220, 54436, 2475, 2411, 54436, 2225, 2302, 2303, 2230, 1313, 2582, 2229, -3866, -3866, -3866, 1543, 2403, -3866, 2289, 2292, 69880, 1087, 32857, 2563, 2312, -3866, 1370, 2316, 2319, 54436, 261, -3866, 2617, 261, 261, 1094, 2624, 2321, 304, 1372, 2032, 2229, 1514, -3866, 2324, 2326, 368, -3866, 2424, 47924, 199, 1396, 2229, 2332, 2333, 2230, 2230, 54436, 54436, 54436, 54436, 54436, 168, 2642, 2649, 2337, 187, 2380, 2264, -3866, 44668, 2345, 62576, -3866, -3866, 54436, 2346, 1652, 2229, 1424, 1520, -3866, -3866, -3866, 1150, -3866, 54436, -3866, 54436, 1757, 71079, 2453, 2305, -3866, 1781, 261, 54436, 54436, 1794, 986, 950, 2456, 54436, 2512, 2315, -3866, -3866, 2032, -3866, 35724, 2015, -3866, 2278, -3866, -3866, 2328, -3866, 2328, 2328, 2282, 2282, 2283, -3866, -3866, -3866, 1345, 2328, 2282, -3866, 71871, -3866, 1224, 1255, -3866, 2679, 2682, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 989, 1692, -3866, 54436, 38156, -3866, 2694, -3866, -3866, 71079, 2581, -3866, 54436, 2484, 2295, -3866, 2614, 2344, -3866, 2334, -3866, 54436, 790, 401, 2338, 54436, 2505, 54436, 54436, 54436, 54436, -3866, -3866, 2480, 820, 151, -3866, 44668, -3866, 1514, 2492, 2705, 30, 1393, 2592, -3866, 54436, 2320, 2709, 2548, -3866, 1165, -3866, 2440, -3866, 38970, 181, -3866, -3866, -3866, -3866, 71079, 54436, 66646, 38970, 181, 54436, 54436, 2615, 119, 2616, 2378, 2620, 2381, 32857, 181, 139, 54436, 54436, 54436, 54436, -3866, 54436, -3866, -3866, -3866, -3866, 54436, 54436, 54436, 44668, 2622, 2623, 181, 54436, 54436, -3866, 9740, 1441, 54436, 905, 43854, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 54436, -3866, 54436, -3866, 54436, -3866, 54436, -3866, 54436, -3866, -3866, -3866, 54436, -3866, 54436, 1483, -3866, -3866, 1602, 708, 54436, 54436, 696, 38970, 54436, 2517, 54436, 54436, 54436, 54436, 54436, 2407, 2173, -28, -3866, 725, 47924, 2524, -3866, -3866, 1620, 1634, 763, -3866, -3866, -3866, -3866, -3866, -3866, 43447, 42226, 2611, 301, 54436, -3866, -3866, 2671, 21165, -40, 18621, -3866, -3866, -3866, 2347, 9740, 2376, 21165, -3866, -3866, 21165, 2349, 1782, 1782, 21165, -3866, -3866, -3866, -3866, 910, 1782, -3866, 21165, 21165, 1782, 1782, 2328, 2328, -3866, 4920, 21165, -3866, 32857, 21165, 23709, 15737, 21165, 2421, 2363, 1782, -3866, 1782, -3866, 21165, 17773, -3866, 21165, 2550, 24551, 21165, 283, 2555, 21165, 283, 2770, 2770, 1861, 4466, 2352, -40, -3866, 2466, 1782, -3866, 1782, 685, -3866, 190, 71079, 21165, 38156, 2433, 166, 54436, 21165, 2361, 1412, -3866, 21165, 984, -3866, 2362, 21165, 2439, 21165, 21165, 21165, 21165, 21165, 21165, 21165, 21165, 21165, -3866, 25377, 213, 804, 1501, 51180, 19045, 2646, 15312, -3866, 234, -3866, -3866, -3866, 54436, 2574, -3866, -3866, 2438, -3866, -3866, -3866, -3866, -3866, 248, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2371, -3866, -3866, -3866, -3866, 2371, -3866, 2370, 2313, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2640, 2641, 181, 54436, 300, 45075, -3866, 19469, -3866, 1636, 2383, -3866, 2619, -3866, 2386, -3866, 8091, 2619, -3866, -3866, 265, 2564, 2570, 2570, -3866, 2410, 9740, -3866, 1582, 9740, 1632, -3866, -3866, -3866, -3866, -3866, -3866, 1232, -3866, 2464, 698, 2441, 1003, 54436, -3866, 29518, 2412, 1645, 2461, 2462, 2510, 54436, 54436, 54436, -3866, 38156, 54436, 54436, 54436, 54436, 54436, 54436, -3866, 2745, 894, 42226, 2515, 41412, -3866, -3866, 2406, 54436, 2460, 2648, 2650, 882, -3866, -3866, 67053, -3866, 2600, 54436, 54436, 54436, 21165, 2604, 54436, 54436, 54436, 2494, 38970, 2418, 54436, 54436, 54436, 676, 38970, 33277, 54436, 54436, 54436, 54436, 2539, 54436, 54436, 2652, 1111, 47924, 352, 1690, 2229, 2613, -3866, 1028, -3866, 54436, 54436, 2605, -3866, -3866, -3866, 49145, 2814, 2527, -3866, -3866, 67460, -3866, -3866, 2603, -3866, -3866, 71871, -3866, -3866, 1699, -3866, 71475, 67867, -3866, -3866, 386, 54436, 54436, 7094, 54436, 945, -3866, -3866, 71079, -3866, 54436, 54436, 54436, 45482, 68263, 68670, 1254, 1355, 54436, 45889, -3866, 54436, -3866, -3866, 38563, 54436, 54436, 38156, -3866, 54436, 2612, 225, -3866, 54436, 2841, -3866, 2506, 54436, 54436, 2430, 1707, 2509, 2559, -3866, 54436, 54436, 765, -3866, 54436, 54436, 6124, -3866, -3866, 261, -3866, -3866, -3866, -3866, -3866, 54436, 54436, 261, 54436, 261, 741, -3866, 54436, 54436, -3866, -3866, -3866, 7539, 54436, 54436, 54436, 54436, 54436, 54436, -3866, -3866, 1429, 34, 1243, 1275, 2572, 54436, 401, 54436, 69077, 54436, 54436, 54436, 54436, 314, -3866, -3866, 2551, -3866, 54436, 765, 8520, 54436, 54436, 2518, 2523, 150, 2584, -3866, -3866, -3866, -3866, -3866, -3866, 2685, 2846, 54436, -3866, 2689, 2690, 2508, 2514, 2692, 738, 54436, 54436, 54436, 54436, 54436, 54436, 2693, 738, 2645, 123, 2467, 2478, 1724, -3866, -3866, 21165, 2862, 71079, 2470, 2471, 2544, 2546, 2547, -3866, 2474, 2549, 1782, -3866, -3866, 1763, -3866, -3866, 1728, -3866, 2489, 820, 1495, -3866, 54436, 706, 642, 2769, 16963, 2588, 1502, 2761, 54436, 54436, 1502, -3866, 1480, 42226, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2760, -3866, 401, 2015, 2015, 2015, 2015, -3866, -3866, -3866, -3866, 2667, 1580, -3866, 2485, 2015, 54436, 2594, 1502, -3866, 1514, 2778, 1140, 54436, 40598, 1600, 2522, 401, 2669, -3866, 17377, 3806, 2670, 49145, 2756, 2757, 2776, -3866, 1757, -3866, 2892, -3866, 2791, 181, 1781, -3866, 2080, -3866, 54436, -3866, 54436, 54436, 54436, 54436, 1794, -3866, -3866, 2080, 2680, 181, 181, -3866, 2681, 181, 2080, 2618, 2784, 49145, -3866, 119, -3866, -3866, 21165, 1393, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 1732, -3866, 54436, -3866, 2762, 2763, 2765, 2080, 2501, 2541, 54436, 2516, -3866, 2080, 261, 2080, 2173, 2173, 2080, 2501, 51587, 2919, 2783, 677, -3866, 747, 581, 2724, -3866, -3866, -3866, -3866, 71079, -3866, -3866, -3866, -3866, -3866, 54436, 104, 2702, 2521, 51587, 2904, 181, -3866, 38970, -3866, -3866, -3866, 2621, 38970, 2714, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2759, 54436, 1734, -3866, -3866, 1245, -3866, 1526, 21165, 21165, 170, -3866, 8430, 1738, 21165, 2530, 2531, 1739, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2532, 2810, -3866, 2540, 1740, 1750, 2542, 2553, -3866, -3866, 3401, 2556, 8718, 2560, 23709, 23709, 480, -3866, -3866, 23709, 2562, -3866, 1751, 7940, 2545, 2567, 2568, -3866, 2571, 2580, 8730, 20317, 21165, 20317, 20317, 9147, 2545, 2583, 1784, 38156, 2699, 9210, 1786, -3866, 21165, 38156, 4125, 21165, -3866, 21165, 54436, 2585, 2587, -3866, -3866, 4920, -3866, 2586, -3866, 23709, 23709, -3866, 2758, 18197, -3866, -3866, 2816, -3866, -3866, 1508, -3866, 2565, -3866, -3866, 4938, 188, 21165, 2361, 21165, 2627, 32857, 3663, 21165, 5400, 1953, 1953, 432, 432, 177, 177, 177, 1841, 1501, -3866, -3866, -3866, 2575, 2149, 21165, -3866, 1855, 1915, 54436, 2444, 3351, 3561, -3866, -3866, -3866, 26627, 2593, 21165, 21165, 21165, 2590, 2721, 2973, 9740, 808, -3866, 2977, -3866, 1150, 1782, 685, 36935, -3866, -3866, 21165, -3866, -3866, -3866, 1709, -3866, -3866, -3866, -3866, -3866, 1634, 21165, -3866, -3866, 657, 1666, 21165, 1582, -3866, -3866, 54436, 2524, 2524, 21165, -3866, -3866, -3866, -3866, -3866, 26627, 2607, 2625, 28692, 2700, -3866, -3866, 54436, 138, -3866, -3866, -3866, 2595, -3866, -3866, -3866, 54436, 54436, 54436, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2792, -3866, 54436, 54436, 2753, 54436, 2772, 2773, 21165, 245, 54436, 2596, 2597, 1037, 2836, 54436, -3866, 2877, 181, -3866, -3866, 2666, -3866, 9740, -3866, -3866, -3866, -3866, 49145, -3866, 1757, 71079, -3866, -3866, -3866, 2629, 54436, -3866, 54436, 54436, 1794, -3866, -3866, -3866, -3866, 1109, -3866, -3866, 54436, 54436, 615, 2673, 2674, 54436, -3866, 704, 2424, 9001, 54436, 54436, 54436, 2849, -3866, -3866, -3866, -3866, 2790, -3866, -3866, 1692, -3866, 67867, 71475, -3866, 71475, -3866, 1692, 1597, -3866, 2080, 2683, 2229, -3866, 2786, 1349, -3866, -3866, -3866, -3866, -3866, 2899, 181, 2900, 181, 54436, 54436, 54436, 54436, -3866, -3866, -3866, -3866, -3866, 38156, 38156, 38156, 1792, -3866, -3866, 401, -3866, -3866, -3866, 1801, -3866, 1133, -3866, -3866, -3866, -3866, -3866, -3866, 54436, 1207, -3866, 762, 71079, -3866, 70276, 54436, 54436, -3866, -3866, -3866, 2830, 2775, -3866, 744, 2777, 54436, 2672, -3866, -3866, -3866, 2695, 1748, 2229, 1514, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 363, 1760, 2229, 2697, -3866, 2698, -3866, -3866, -3866, 2826, 2828, 2829, 2701, 2703, 2739, 2704, 2706, 2744, -3866, 2713, 2747, 2715, 2754, 2716, 181, 71079, 1697, 2733, 2932, 181, -3866, 2717, -3866, -3866, 3033, -3866, 54436, -3866, 2720, 1914, 2229, -3866, -3866, 54436, 54436, -3866, -3866, -3866, 738, 71079, 2883, 738, 738, 54436, 54436, 738, -3866, -3866, -3866, 2884, 2885, 2886, 2887, 2894, 2895, 738, -3866, -3866, -3866, -3866, 396, 38156, -3866, 2047, 30757, -3866, 3084, 4956, 2664, 2471, 2662, 1782, 156, 136, 103, 2785, 1782, 2871, 2675, -3866, -3866, 38156, 30757, 1720, 2890, 2686, 2686, 2686, 2686, 2686, 2686, 2686, -3866, 1488, 2032, 49145, 54436, 49145, -3866, 642, 2786, 54436, -3866, -3866, 1807, -3866, 54436, 54436, 153, 54436, 1782, -3866, -3866, 2740, -3866, 1393, 790, 2802, 1123, 3007, -3866, -3866, -3866, -3866, -3866, 54436, 54436, 820, 401, -3866, 2678, 2676, -3866, 54436, 54436, 54436, 2718, 2687, 54436, 2688, 2677, -3866, -3866, -3866, -3866, 71079, 64, 2872, 2870, 2230, 3087, 2771, 54436, -3866, 1829, 111, -3866, 401, 49145, 69484, -3866, 3061, -3866, -3866, 667, 2962, -3866, -3866, 1634, 181, 71079, 54436, -3866, 181, 119, 2750, 181, 2751, 181, 181, 54436, -3866, -3866, 54436, -3866, 54436, 44668, 181, -3866, 9740, -3866, -3866, 2819, 2820, 2832, 54436, 2080, 38970, -3866, 2707, 54436, -22, -3866, -3866, 2891, -3866, -3866, -3866, -3866, -3866, 3009, 3012, -3866, -3866, -3866, 54436, 43040, 263, 54436, -3866, 1757, -3866, 1781, 261, 54436, 2954, -3866, -3866, -3866, 2722, 1853, 9412, 21165, -3866, 3021, 71079, -3866, 5279, -3866, -3866, -3866, -3866, 21165, -3866, -3866, -3866, -3866, -3866, 21165, -3866, 21165, 2998, -3866, 3138, 3138, 71079, 23709, 1496, 2144, 23709, 23709, 23709, 23709, 23709, 23709, 23709, 23709, 23709, 25801, 411, -3866, -3866, 21165, 21165, 3005, 2998, -3866, -3866, 1315, 1315, 71079, 2725, 2545, 2726, 2727, 21165, -3866, -3866, 1860, 24964, 2728, 38156, -3866, 21165, 8140, 1886, 2766, 9299, -40, 5381, -3866, 3098, 401, 21165, 1058, 1364, 21165, 1888, 21165, 3008, -3866, -3866, -3866, 2731, -3866, -3866, 71079, 21165, 23709, 23709, 5158, -3866, 5417, 21165, 2732, 5677, 18197, -3866, 534, 534, 534, 534, -3866, 54436, 54436, 54436, 26214, 51994, 2734, 1822, -3866, 51994, 52401, -3866, 2735, -40, 21165, 3010, 548, 548, 2736, 2721, 29931, -3866, 21165, 226, 20741, 2738, 86, 2742, -3866, -3866, 4160, -3866, 2743, -3866, 2741, -3866, 1666, -3866, -3866, -3866, 5837, 2924, 2173, -3866, -3866, -3866, 2734, 21589, 2700, -3866, 1893, -3866, -3866, 19045, -3866, -3866, 1900, 29518, 2607, 19469, -40, -3866, -3866, -3866, 2686, 2080, 2080, 1054, 2080, 3028, 1054, 6481, -3866, -3866, 27040, 54436, 54436, -3866, 54436, 1904, 1523, 54436, -3866, 54436, -3866, -3866, 3135, 54436, -3866, 2800, 2813, -3866, 54436, 54436, 54436, 54436, -3866, -3866, 1762, -3866, -3866, 54436, 54436, -3866, -3866, -3866, 384, 1984, 2229, -3866, 2837, -3866, -3866, 3011, 1612, -3866, -3866, -3866, 2827, 54436, 2764, -3866, 690, 2230, 1055, -3866, -3866, 2833, 54436, -3866, 54436, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 38563, -3866, -3866, -3866, 38156, 30757, 38156, -3866, 2839, 2843, 2893, 789, 638, 2845, 2847, 2897, 2774, 2779, 2780, -3866, -3866, 294, 401, -3866, -3866, 401, 2080, 401, 54436, 54436, 54436, 54436, 54436, 54436, 54436, 3048, 722, 1606, 54436, 54436, 54436, 54436, 54436, 54436, 54436, 54436, 54436, 54436, 54436, -3866, 3136, 401, 401, 3112, 2850, 54436, -3866, 54436, 2424, 54436, 54436, -3866, -3866, -3866, 2787, 738, -3866, -3866, 3019, 3022, -3866, 738, 738, 738, 738, 738, 738, -3866, 196, 1905, -3866, 27866, -3866, -3866, 2387, 401, 2387, 586, -3866, 2387, -3866, 2387, -3866, 2741, 1782, 1543, -3866, -3866, -3866, -3866, -3866, -3866, 2478, -3866, -3866, 1782, 1843, 2794, -3866, 2795, -3866, -3866, -3866, -3866, -3866, -3866, 2789, -3866, 685, -3866, -3866, 54436, 2686, -3866, 1498, 341, 1040, 1042, 52808, 53215, 53622, 2796, 54436, 54436, 23709, -3866, 779, 778, -3866, 3017, 54436, 2831, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2295, -3866, 54436, 2786, 2080, 54436, 54436, 2080, -3866, 71079, 2522, 1034, 63390, 2835, 2798, 3076, -3866, 2797, 2803, -3866, -3866, 54436, 2786, 45, 1341, 223, -3866, 41819, 1600, -3866, 3049, 40598, -3866, -3866, -3866, 3161, 2896, -3866, 1634, 401, 2460, -3866, 67867, 21165, 21165, -3866, 2804, -3866, 2812, 5660, -3866, 2015, -3866, -3866, -3866, -3866, -3866, -3866, 2889, 54436, -3866, -3866, 2817, 181, -3866, -3866, 54436, -3866, 54436, -3866, -3866, 181, 181, -3866, 2934, -3866, 54436, 54436, 54436, 2080, -3866, 261, -3866, 3096, 51587, -3866, -3866, -3866, -3866, 301, 3103, -3866, -3866, 3065, 3068, 3070, 3074, 774, -3866, -3866, 21165, 9740, -3866, 2840, -3866, 9740, 7079, 9740, 3005, -3866, 783, 3116, -3866, 216, 2842, 783, 1880, 1880, 385, 385, 163, 163, 163, 3138, 411, 9740, 9740, -3866, -3866, -3866, -3866, 2851, -3866, -3866, -3866, 2545, -3866, 22013, 2984, 3224, -3866, -3866, -3866, 2898, 2901, 2853, -3866, 21165, 22437, 2844, 71871, -3866, -3866, 685, 1273, 23709, 23709, 2409, -3866, 1074, 21165, 71079, 1906, 2409, 1511, 1826, 21165, 21165, 6237, 320, 21165, 7106, 54436, 54436, 54436, 54436, -3866, -3866, -3866, 16153, 1822, 2855, 54436, -3866, 2858, 26627, 3079, 3023, -3866, 26627, 3023, 1611, 3023, 3082, -3866, 30344, -3866, 2859, 15312, 1579, 9740, 3238, 3127, 21165, 2865, -3866, 2867, 2721, -3866, 70672, -3866, -3866, 9740, -3866, -3866, 21165, -3866, 2721, 401, -3866, -3866, 32857, -3866, -3866, -3866, 3053, 9740, -3866, 1634, 54436, -40, 2866, 2888, 54436, -3866, 2700, -3866, 294, -3866, -3866, -3866, -3866, 2945, 42226, 3148, -3866, 21165, 1912, -3866, 2907, 3234, 129, 1916, 1918, 1523, -3866, 2831, -3866, 1282, 3131, 120, -3866, 181, -3866, 71079, -3866, 54436, 54436, -3866, -3866, -3866, -3866, 2189, -3866, -3866, 54436, 54436, 54436, 54436, -3866, 2941, -3866, -3866, 38156, 1488, 3071, -3866, -3866, 3072, 294, 54436, -3866, 71079, 181, 181, -3866, -3866, -3866, 2902, 54436, 54436, 54436, 1782, 1782, 71079, 2880, -3866, 1782, 1782, 2881, -3866, 54436, 54436, 54436, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2960, -3866, -3866, -3866, 54436, 54436, 54436, 54436, 3179, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 54436, -3866, -3866, -3866, 71079, 181, 181, -3866, -3866, -3866, 3123, -3866, 738, 738, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2032, 3207, -3866, 38156, -3866, 42633, -3866, -3866, -3866, 401, -3866, 401, 3081, 34920, 401, 401, 1523, 2903, 217, 3167, -3866, -3866, -3866, -3866, 3170, 294, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 21165, -3866, 1168, 783, -3866, -3866, -3866, -3866, 2831, 1393, 2947, 706, 3013, -3866, -3866, 2080, 2080, 2949, 3293, 60, 54436, 3205, 2937, -3866, 401, -3866, -3866, 54436, 40598, 2718, -3866, 3231, 1920, -3866, -3866, -3866, 2938, 2870, 1357, 2905, 1600, -3866, 879, 54436, -3866, 2940, 3185, 2911, -3866, 9740, 9740, 401, 72267, 3061, -3866, 54436, 3160, 181, -3866, 181, 181, -3866, -3866, 54436, 2080, 2080, 2080, -3866, 3090, -3866, 181, 51587, 774, 774, 774, 774, -3866, -3866, -3866, 9740, -3866, -3866, -3866, 23709, 3190, -3866, 2915, 71079, -3866, 2916, 1926, 1961, 24551, 3058, -3866, -3866, -3866, 7124, 2966, 9740, 3020, 2921, 2923, -3866, 742, 742, 1074, 1966, -3866, 23709, 23709, 2409, 2409, 21165, 2409, -3866, -3866, -3866, -3866, -3866, 51994, 2920, 54436, 1822, 26627, -3866, -3866, 1952, -3866, 26627, 3158, -3866, 26627, 54436, 2927, 54436, 991, 21165, 21165, 2963, 2721, 2721, -3866, 3094, -3866, 2930, -3866, 685, 2931, 54436, -3866, -3866, 705, -3866, -3866, -3866, 51587, 3114, 51587, 1523, 7388, 2831, 27040, 33697, 54436, 54029, 54029, 3075, 2831, 2947, -3866, -3866, -3866, -3866, -3866, -3866, 2935, -3866, -3866, -3866, 3014, -3866, -3866, -3866, 1968, -3866, -3866, -3866, -3866, -3866, 3136, -3866, -3866, 30757, -3866, -3866, -3866, 27453, 32857, -3866, 789, 2942, 2943, 638, -3866, -3866, -3866, 54436, 745, 495, 2971, 2080, 3219, -3866, 3136, -3866, -3866, 738, -3866, -3866, 2467, 401, -3866, -3866, 1974, -3866, -3866, -3866, 54436, -3866, 2798, -3866, -3866, -3866, 38970, 3336, 3336, 54436, -3866, -3866, 7629, 3133, -3866, 2947, 3154, 3200, -3866, 54436, 54436, 1634, 40598, 2786, -3866, 903, 2948, 3242, -3866, 2687, 2956, -3866, -3866, -3866, 41819, 3137, 2896, 240, 240, 54436, 2870, 3089, -3866, 3091, -3866, 1067, -3866, 54436, 27040, -3866, 71475, -3866, 1978, -3866, -3866, 2593, 54436, 589, -3866, -3866, -3866, -3866, -3866, -3866, 263, -3866, -3866, -3866, -3866, 752, 23709, 71079, 1985, 21165, -3866, 21165, -3866, 3343, -3866, -3866, -3866, 61, -3866, -3866, -3866, 742, 742, 2409, -3866, 54436, 1995, -3866, 21165, 2976, -3866, -3866, 26627, 1952, 1996, 54436, 2003, 71079, 2721, 2545, 9740, 54436, -3866, -3866, -3866, 3355, 3152, 2721, -3866, -3866, -3866, -3866, -22, 1054, 263, 3234, 2947, -3866, 2980, -3866, -3866, 54436, -3866, 316, 316, 54436, 2947, -3866, -3866, 54436, -3866, 38156, 3036, -3866, 71079, 1781, 82, -3866, 71079, 71079, -3866, -3866, 54436, 54436, 54436, 54436, 54436, 181, -3866, -3866, -3866, -3866, 42633, 2798, 3336, 286, -3866, -3866, -3866, 1293, 3177, -3866, 711, 3165, 3069, 2786, 3274, 2940, -3866, -3866, -3866, -3866, 21165, 3139, 1600, 3049, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2007, 2896, -3866, -3866, 3357, 3166, 3358, -3866, 2009, -3866, -3866, 5660, 72267, 3303, -3866, 3042, 54436, -3866, -3866, -3866, 752, 2019, -3866, 2039, 2040, 3141, 3043, -3866, 2044, -3866, 9740, 54436, -3866, -3866, -3866, 2046, -3866, 2991, -3866, 3393, 21165, 1390, -3866, -3866, 3277, -3866, 54029, 3039, 32857, -3866, 1666, 1666, 1393, -3866, 1523, -3866, -3866, 21165, -3866, 2051, -3866, 110, 3147, 3286, 2059, 2060, 2501, 3040, 2501, -3866, 2080, -3866, -3866, -3866, -3866, -3866, 3314, 3261, -3866, -3866, -3866, -3866, 365, -3866, 3193, 3194, 54436, -3866, 54436, 3410, -3866, 7647, 38970, 2870, 1600, 1488, -3866, -3866, 3198, -3866, 3201, 2522, 27040, 3061, -3866, 812, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2061, -3866, 54436, 3016, 2545, 22861, 22861, 3024, 51587, 316, 3029, -3866, 3027, -3866, -3866, 3154, 1523, 9740, 38970, 3408, -3866, -3866, -3866, 3147, -3866, -3866, 54436, 3146, -3866, 714, 714, 3349, -3866, 3086, -3866, -3866, -3866, 789, -3866, 3034, 2896, 2870, -3866, -3866, 2896, -3866, -3866, -3866, -3866, 2017, -3866, -3866, -3866, 24133, 3156, 898, 8407, -3866, -3866, -3866, -3866, 263, 1666, 21165, 1523, -3866, 3165, 1781, 54436, -3866, -3866, 2937, -3866, 3445, -3866, 651, -3866, -3866, 2880, 37749, -3866, 2896, 2593, -3866, 1883, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 3440, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 7674, -3866, -3866, -3866, 3337, -3866, -3866, -3866, -3866, 2066, -3866, -3866, -3866, -3866, -3866, -3866, 1840, -3866, -3866, 1925, 1716, 23285, -3866, 1523, 3192, -3866, 37749, -3866, 1883, -3866, 38970, -3866, -3866, 3045, 37749, 2067, -3866 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -3866, -3866, -3866, 2782, -3866, -734, -1006, 2182, -452, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2719, -3866, -3866, -3866, 1410, -3866, -3866, 118, -1050, 348, 2396, 1108, -3866, -909, -3866, -3866, -486, 148, -624, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -681, 1551, 965, -711, -3445, -3866, -1151, -3084, -3866, 412, -3866, -3866, 1497, -3866, -3866, -3866, 829, -357, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -98, -3866, -3866, -519, -1290, 43, -162, -390, -3866, -3866, 243, -391, -1181, -3866, -2923, -3866, -129, -3866, -3866, -3866, -388, -1137, 1060, -3866, -594, -913, 1343, -667, -3866, -280, -3866, -714, -618, -615, -673, -514, -3110, -3504, -3688, -3508, 1072, 141, -3866, -137, -1288, -3866, -3866, -1238, -1127, -3866, -715, -3866, -3866, -3866, -2398, -3866, -3866, -3866, -3866, 62, -3866, -3866, -3866, -3866, 305, -3866, -3866, -3866, -3866, -3866, -3866, -2217, 1463, 1464, -3866, -3866, -2575, -3866, -737, -3866, 453, -2442, 988, -3866, -3866, -3866, 2135, -3866, -3866, -3866, -3866, 307, -3866, 306, -3866, -3866, -1313, -3866, -3866, -1284, -3866, 1476, 805, -3866, -3866, -3866, -699, -758, -752, -3866, -2863, -3866, -3866, -3866, -3866, -3866, -790, -3866, 859, -2562, -784, -3866, -3866, 875, -3866, -3866, -3866, -3866, -656, -285, 2161, -3866, -564, -637, -3866, -3866, -3866, -283, -3866, -3866, -3866, -3866, -3866, -3866, -862, 7090, -1281, -3866, -3866, -3866, -3866, -1815, -3866, -3866, -3866, -1585, -3866, 3519, 1957, 1337, -1282, -3866, -21, 51, 2598, -915, -2143, 250, -420, -3866, -1456, -3866, -3866, -3866, -2063, -3866, -3866, -3866, -3866, -2858, -1279, -3866, -3866, -3866, 291, -3866, -3660, -3310, -3532, -3109, -2865, -3866, -3866, -875, -3866, -3866, -3866, -1114, 1665, -1179, -3866, -1762, 296, -3128, -592, -2670, -3866, -3024, -502, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -870, -515, -3866, -3866, 3003, -3866, -3542, -3866, -3866, -3866, -3866, 1119, -3866, -1152, 946, -3866, -3866, -3866, -3866, -3866, -646, -723, -3866, -3866, -3866, 144, -3866, -3866, -3866, -3866, 1874, -760, -596, 2906, -1276, -459, -3866, -3866, -3866, -3866, -2503, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -1192, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 1811, 1813, 79, -6, -3866, -3866, -1010, -3866, -443, -3866, 2103, -3866, -3866, -3866, -3866, 1189, 147, 330, -3866, 3, -3866, -3866, 127, -2815, 4, -3866, -3866, -3866, -3866, -110, 5, -3866, 590, -3866, -3866, -2273, -3866, 152, 26, -3866, -3866, 1, 0, -41, -20, -8, 2, 2908, 2451, -3866, -3866, -3866, 19, 1660, -3866, -689, -156, -3866, 1195, -536, 1788, 2436, 2442, -3866, 1187, -3866, -3866, 1198, -3866, -3866, -3866, -534, 1800, -3866, 2443, 1817, -3866, 1184, 1197, -2762, 664, -2785, 193, -966, -349, 36, 2925, 2452, -3866, -3711, 620, -3866, -2932, -1863, -460, 1583, -1308, -3866, -3866, -932, 10205, -3866, -3866, -3866, 10356, 10719, -3866, -3866, 10894, 11316, -3866, -772, 710, 11351, 8308, -991, -1551, -658, 8991, -1757, -398, -2122, -3866, -3866, -3866, -316, 723, 458, -3866, -3866, -3866, -3866, -548, -2276, -546, -3866, -3866, -3866, -547, -3865, -1499, -3866, -174, -3866, 9671, 1231, -3866, -806, -2224, -2232, -929, -1424, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -1214, -2708, -474, 1297, -3866, -3866, 1391, -3866, -3866, -3866, -1052, -716, -2136, 1300, -1645, -3866, -684, 640, 1990, -641, 75, -516, 5764, -424, -1842, -1007, -1235, -3866, -122, -3866, 25, -9, -119, -7, 3204, 8168, -1029, 7469, -1072, -945, -2541 }; /* 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 -2163 static const yytype_int16 yytable[] = { 162, 161, 166, 156, 157, 159, 694, 554, 704, 850, 773, 510, 649, 1427, 615, 626, 1467, 1147, 1080, 615, 162, 1156, 166, 949, 950, 951, 1437, 1153, 1888, 955, 1431, 1897, 1512, 498, 1487, 1746, 1826, 1302, 2030, 2169, 545, 1573, 1242, 1264, 1233, 2295, 614, 693, 1327, 890, 736, 614, 896, 899, 1290, 538, 2811, 1749, 754, 1523, 1380, 681, 755, 911, 1906, 874, 2260, 776, 2001, 1398, 1094, 1546, 1547, 621, 1919, 1898, 788, 678, 1744, 581, 2260, 2947, 2043, 3029, 650, 3268, 2092, 2553, 1746, 3062, 1562, 3064, 837, 1886, 2067, 1418, 2068, 3438, 1258, 589, 2069, 1269, 2070, 1369, 1749, 2071, 1373, 2223, 2072, 1295, 1460, 1377, 2378, 2608, 3186, 1965, 2799, 3167, 1382, 3215, 1761, 1969, 1970, 2944, 3500, 2501, 2503, 1400, 2341, 2942, 2943, 1744, 1956, 2981, 3659, 3167, 884, 3675, 3460, 2140, 3470, 74, 3640, 919, 133, 698, 706, 154, 64, 1874, 3410, 3412, 160, 1804, 2892, 3886, 668, 3788, 707, 3443, 3343, 1205, 1747, 2095, 1291, 597, 705, 1141, 3396, 1144, 1419, -1938, 508, 2104, 2849, -1972, 1087, 3191, 3192, 3193, 3194, 3195, 3196, 3632, 550, 1397, -1992, -1504, 1599, -2017, 1419, 792, 1443, 1592, 4054, 3786, -1852, -1304, 4032, -1853, -1504, 2300, 1181, 1458, -1852, 1976, 2650, -1853, -2162, 1750, 1469, -1499, -1723, 1602, 3259, 1747, -2162, 1365, 2708, -1723, 1539, 1540, 2629, 2300, 1981, 3795, 782, 4102, -1875, 2937, 975, 550, 1419, 751, -1471, 2335, 1321, 597, 4050, -1829, -1504, 546, 2336, 1604, 1589, 1907, 1559, -1484, 708, -1511, 931, 550, 550, 550, 2809, 1507, 3978, 758, 684, -1941, -1514, 1629, 4033, 779, -1499, 1231, 3030, 1900, 597, 550, 597, 790, 2098, 2652, 597, 1963, 2986, 2937, 2089, 793, -1304, 935, 1084, 3981, 2770, -1826, 2772, 3649, 2351, 2546, 946, 4067, 2826, 2599, 1746, 1643, 1231, 550, -1514, 3176, 1315, 597, 2098, 597, 1182, 1820, -346, 3597, -118, 3248, 4034, 3221, 867, -118, 1419, 1299, 4011, 4035, 794, 3652, 4115, 603, 3179, 709, 2600, 603, 3, 4, 506, -1991, -734, 3706, 2618, 3707, 1302, 1590, 603, 2048, 1280, 603, -1307, 604, -1739, 4247, 4036, 604, 550, 655, 2382, -1739, 773, 1768, -1304, 2601, 4138, 3177, 604, 4015, 1573, 604, 1634, 1651, 4174, 1635, 2178, 1137, 795, 3986, 1157, 3856, 3299, 1900, 503, 550, 1351, 1822, 2062, 1647, 603, 1905, 645, 1438, 1659, 1659, 1106, 1832, 4042, 675, 1107, 832, 2465, 4001, 1823, 773, 2093, 1644, 2849, 3857, 604, 1158, 1652, 550, 1429, 845, 1546, 1547, 550, 852, 3300, 603, 169, 4284, 1562, 2038, 4037, 1420, -1471, 1181, 861, 4175, 1900, 1747, 2849, -1307, 1636, 1751, 1455, 2383, 1159, 604, 2090, 1900, 1139, 879, 1281, 1420, 2008, 1505, 1769, 1160, 656, 947, 888, 1599, 3610, 2012, 2038, 1514, 3791, 1111, 170, 1112, 1900, 3653, 3222, 4116, 2099, 2200, 3708, 1524, 1366, 551, 4088, 1106, 1300, 868, 4114, 1107, 1602, 4068, 2547, 3650, 4094, 4184, 1862, 2653, 3030, 1420, 2220, 752, 1341, 2946, 1868, 4200, 1471, 547, 3872, 3453, 984, -1471, 1918, 2849, 1527, 1366, -1304, -1307, 3796, 829, 1604, 2847, 2848, 1511, 1630, 1645, 2863, 2301, 1860, 4235, 1237, 3513, 954, 4237, 710, 1908, 2630, 1508, 1301, -1723, 1824, 1182, 869, 1952, 2004, 1954, 3260, 1909, 4270, 2912, 1961, 1746, 3167, -1991, 1942, 685, 954, 1945, 1946, 2028, 1749, 1982, 2337, 2000, 875, 554, 2898, 2899, 694, 1977, 4269, 1457, 1148, 1964, 3890, 1106, 47, 4164, 1183, 1107, 2226, 1420, 1508, 1593, 1539, 1540, 548, 1534, 549, 827, 2983, 1429, 3580, 1559, 2298, 2157, 2030, 4038, 1910, 2091, 1534, 799, 1366, 3174, 1749, 927, 830, 2861, 162, 693, 166, -1304, 2024, 928, -1991, 933, 2144, 937, 2999, 2009, 3781, 1623, -1938, 941, 2851, 1641, -1972, 1959, 3865, -1991, -1504, 1759, 2505, 1789, 1825, 1790, 1877, -1992, 3704, -1852, -2017, 1938, -1853, -1504, 960, 614, -1304, 614, -1304, 614, 918, -2162, 4195, 2165, -1499, 614, 942, 943, 3776, -1307, 944, 3745, 2176, 773, 976, 3749, 3636, 609, 610, -1739, 1568, 1077, 2850, 3904, 1086, 875, 1088, 1545, 1747, -1875, 1106, 4087, -1829, 1833, 1107, 3648, 956, 760, 922, 1569, 1551, 3424, -1511, 2851, 1595, 1632, 2365, 706, 609, 610, 609, 1232, 1306, 1570, 609, 610, 1113, 3606, 1568, 707, -1941, 1209, 1311, 2386, 4236, 3300, 1511, 705, 1168, 162, 161, 166, 156, 157, 159, 2575, 2486, 1569, 2487, 2114, 2500, 609, 1232, 609, 610, 966, 2510, 3096, 2120, 956, 3432, 1572, 2124, -118, -118, 2219, 1934, 2222, 2130, 2131, 2852, 1322, 1323, 1429, -1307, 1746, 1081, 2230, 3491, 4185, 3042, 2234, 3043, 2180, 1780, 550, 2143, 1409, 1151, 2246, 2247, 550, 984, 1834, 1104, 2849, 4261, 841, 885, 2260, 2260, 3970, 2264, 2266, 2260, 2849, 1116, 4227, 3980, -1307, 2561, -1307, 1309, 2280, 2463, 1130, 3025, 3270, 1744, 1931, 1083, 550, 3077, 1096, 1091, 2034, 614, 2250, 2251, 3997, 1187, 1173, 3523, 984, 2166, 1829, 2849, 3134, 3135, 699, 2421, -1471, 701, 2477, 2260, 2260, 2858, 2859, 2860, 2861, 2937, 2800, -1471, 2101, 1545, -1471, 1160, 2954, -1471, 3129, 3593, 4056, 3132, 3133, 1325, 3948, 3136, 3950, 1874, 1869, 2856, 2857, 2858, 2859, 2860, 2861, 3143, 4202, 1947, 1131, 74, 1137, 2562, 133, 3446, 1746, 154, 64, 1746, 2005, 2035, 160, 3271, 1620, 1621, 1622, 1623, 700, 2689, 2181, 2173, 2174, 1747, 2161, 4120, 2477, 3594, 505, 1511, 3545, 4091, 4092, 1274, 1590, 2478, 2064, 953, 2697, 627, 3678, 3466, 2802, 1835, 1389, 3078, 3628, 2804, 3626, 3524, 3998, 4262, 2543, 2563, 1174, 1170, 2853, 2854, 2855, 3164, 2856, 2857, 2858, 2859, 2860, 2861, 875, 2036, 2960, 1139, 2037, 1275, 654, 1870, 2051, 2121, 2235, 3164, 550, 875, 1376, 4134, 1390, 701, 2129, 3501, 2132, 4144, 1429, 1888, 162, 2083, 166, 1132, 1393, 1411, 2851, 2478, 2139, 1170, 1401, 1404, 1405, 2564, 3518, 1140, -2163, 4228, 2065, 3627, 3, 4, 1510, 614, 1394, 954, 2805, -557, 1836, 1473, 3938, 1475, 1948, 1477, 1949, 1479, 2115, 1481, 1482, 1483, 4057, 1956, 875, 1747, 1485, 4121, 1747, 2851, 2640, 2164, 633, 3419, 3272, 2170, 3089, 2172, 1097, 3941, 2175, 1532, 3891, 585, 3945, 2852, 3266, 3947, 3026, 1445, 2038, 4203, 4013, 2801, 3892, 2116, 842, 886, 2084, 585, 3268, 1549, 14, 2236, 694, 4229, 3698, 2167, 2690, 3546, 3629, 1310, 4076, 2464, 2149, 2481, 3079, 2162, 14, 2015, 4196, 2317, 1081, 2182, 2565, 1175, 2852, 1446, 4230, 702, 4122, 1576, 3519, 19, 3273, 676, 2373, 4249, 1591, 1098, 550, 2183, 550, 2253, 1081, 1587, 2163, 3080, 1596, 19, 4217, 1276, 3807, 4199, 971, 701, 1176, 2016, 1633, 651, 773, 984, 1391, 2803, 2849, 763, 764, 765, 2237, 766, 767, 768, 769, 770, 771, 875, 3081, 2481, 1649, 1650, 1599, 3371, 2034, 875, 875, 1177, 2691, 2039, 3326, 1828, 1395, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 2401, 2339, 4136, 4085, 1602, 2673, 1755, 1762, 1763, 2195, 1767, 614, 4095, 4045, 4201, 1829, 614, 614, 3520, 707, 707, 4046, 707, 2238, 2566, 687, 2239, 705, 705, 2490, 705, 3996, 2567, 2296, 1604, 2568, 1277, 3612, 1412, 3614, 169, 3764, 1178, 3893, 2318, 3503, 2035, 1392, 2319, 3380, 3381, 3768, 1834, 2856, 2857, 2858, 2859, 2860, 2861, 634, 4250, 2259, 1988, 2856, 2857, 2858, 2859, 2860, 2861, 1429, 3775, 2013, 1663, 2085, 1447, 2282, 2602, 3018, 4073, 1151, 170, 3432, 521, 1947, 3758, 2320, 2086, 1429, 1413, 2430, 2853, 2854, 2855, 3767, 2856, 2857, 2858, 2859, 2860, 2861, 4023, 3454, 2036, 1746, 2017, 2037, 696, 2509, 614, 1746, 3040, 37, 2491, 862, 2240, 3019, 614, 2505, 1820, 1792, 4168, 4169, 3197, 2576, 2340, 4171, 2014, 37, 4024, 2949, 1771, 2579, 2950, 2581, 1821, 635, 3692, 701, 2767, 523, 1855, 41, 863, 2851, 1830, 697, 2882, 3987, 1960, 792, 2442, 943, 2889, 2773, 2574, 2768, 773, 41, 2063, -2163, 1448, 2431, 711, 1912, 2477, 3200, 614, 2729, 3167, 614, 614, 1772, 4047, 2937, 1988, 2586, 1414, 2937, 1599, 45, 1894, 3504, 2715, 2716, 2717, 2718, 864, 1911, 1822, 2113, 2018, 46, 4022, 2038, 2723, 45, 1962, 4219, 2119, 586, 2852, 2321, 2443, 3164, 2624, 1823, 1948, 46, 1949, 37, 3571, 2241, 1162, 2438, 1888, 1941, 3574, 3575, 3576, 3577, 3578, 3579, 1773, 2763, 1415, 47, 2468, 1988, 1798, 3296, 1747, 614, 746, 1604, 3452, 2478, 1747, 793, 1279, 41, 1932, 587, 759, 1163, 1280, 2260, 4254, 1975, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2957, 1799, 1903, 1991, 3455, 3020, 2479, -887, 984, 754, 3647, 2849, 2073, 2507, 1164, 530, 2003, 531, 794, 45, 2260, 3041, 2426, 3505, 3792, 773, 3506, 1170, 3372, 4278, 1800, 46, 2039, 3456, 3473, 3314, 3863, 2480, 1557, 1558, 536, 3204, 1933, 2766, 1416, 636, 637, 2442, 784, 2260, 2260, 2040, 3457, 1904, 3952, 2824, 2067, 2950, 2068, 2775, 2776, 1814, 2069, 2778, 2070, 2402, 795, 2071, 3097, 2782, 2072, 1815, 862, 1824, 4117, 2511, 3681, 3205, 3682, 3625, 4128, 791, 1281, 2593, 1956, 3793, 1816, 831, 37, 2594, 3206, 3021, 2792, 834, 1240, 1746, 1746, 1746, 162, 3002, 166, 3228, 3074, 3290, 2876, 3048, 3474, 2853, 2854, 2855, 3268, 2856, 2857, 2858, 2859, 2860, 2861, 1918, 41, 836, 169, 2569, 3957, 3958, 3887, 2481, 2813, 1618, 1619, 1620, 1621, 1622, 1623, 3075, 2151, 2901, 2152, 2197, 2153, 550, 2154, 2561, 2155, 597, 4055, 864, 2156, 2559, 1599, 162, 2194, 166, 2191, 2192, 2193, 984, 45, 2701, 2849, 3475, 170, 3476, 3076, 2308, 3888, 2309, 3005, 1825, 46, 2603, 1589, 3207, 2148, 1602, 2569, 3731, 1452, 2244, 922, 4097, 2185, 851, 3071, 1926, 3197, 2595, 3914, 2310, 597, 1772, 3198, 2851, 515, 2109, 2110, 2522, 1453, 3072, 2604, 1247, 3199, 2605, 47, 1604, 2232, 2233, 2678, 2664, 2196, 2673, 1081, 1081, 2245, 2562, 1241, 1817, 2248, 2249, -140, 1746, 699, 1282, 1747, 1747, 1747, 3249, 2217, 3200, 3253, 3201, 2606, 2270, -1351, 2271, 3017, 1222, -1351, 3607, 1462, 1746, 1773, 1463, 2306, -140, 37, 1248, 2523, 3327, 2852, 3328, 3726, 3727, 1283, 1568, 2293, 2679, 2294, 1222, 2759, 2903, 2937, 2904, 3147, 2563, 3473, 2937, 1261, 3324, 2937, 3604, 521, 3966, 1569, 3968, 41, 2366, 3799, 3800, 700, 3049, 2311, 1284, 2048, 2905, 1568, 2312, 1570, 2790, 1659, -881, 2313, 3344, 2781, 1920, 521, 4148, 2524, 1262, 3466, -1351, 32, 3202, 1244, 1569, 3050, 4160, 2821, 857, 2702, 773, 3011, 2147, 45, 2564, 603, 1953, 1168, 1572, 2418, 1994, 865, 4083, 1249, 2422, 2596, 1289, 2425, 523, 1607, 1608, 4161, 2680, 2681, 1245, 604, -1351, 3474, 2260, 2851, 1966, 2349, 1921, 1922, 701, 1568, 2682, 1747, 2525, 2448, 2363, 1995, 523, 1920, 3117, 2458, 2597, 3203, 1089, 47, 866, 754, 3204, 792, 1569, 3329, 2807, 1747, 2711, 1250, 881, 1251, 3008, 1611, 3118, 3330, 1918, 1920, 892, 1639, 3488, 1955, 2906, 2492, 3031, 2598, 2968, 2907, 3547, 897, 3475, 2683, 3476, 1263, 3840, 3841, 2852, 906, 3205, 3403, 2388, 1921, 1922, 2565, 916, 2952, 3471, 2314, 3548, 1253, 2506, 3206, 3052, 3466, 2853, 2854, 2855, 2315, 2856, 2857, 2858, 2859, 2860, 2861, 912, 1921, 1922, 3404, 597, 162, 2404, 2432, 614, 2435, 2539, 1918, 2875, 1996, 2877, 2878, 2703, 3034, 3751, 3230, 2918, 3055, 1255, 3057, 1997, 1753, 1746, 793, 1754, 3406, 2560, 3725, 948, 2570, 702, 1918, 952, 2937, 530, 2720, 531, 2374, 1165, 2377, 2721, 958, 1116, 984, 1998, 533, 2849, 2582, 2684, 2220, 2685, 2704, 1756, 1257, 961, 1757, 535, 2591, 530, 536, 531, 1599, 794, 3732, 3207, 3357, 963, 2259, 2259, 1166, 2614, 1088, 2259, 32, 1288, 2908, 2566, 2146, 32, 2621, 2147, 2260, 2260, 536, 2567, 2909, 1602, 2568, 198, 3492, 3345, 3346, 1137, 507, 2394, 2395, 1138, 984, 1167, -369, 2849, 583, 2485, 1289, 3306, 968, 3115, 3502, 3507, 969, 795, 3122, 2259, 2259, -1350, 3402, 1604, 652, -1350, 2158, 3408, 970, 2159, 2991, 2992, 972, 2994, 1618, 1619, 1620, 1621, 1622, 1623, 2853, 2854, 2855, 971, 2856, 2857, 2858, 2859, 2860, 2861, 2220, -1374, -1374, 932, 934, 936, 1747, 3310, 938, 939, 940, 973, 37, 1093, 3919, 974, 1139, 2822, 945, 1270, 3211, 843, 2823, 844, 3590, 1993, 3592, 1598, 1168, 3595, 1599, 3596, 3187, 1168, 2610, 614, 3010, 2721, -1350, 3403, 3935, 3936, 41, 614, 612, 614, 846, 3378, 847, 612, 1271, 1212, 1140, 2530, 1272, 1602, -1316, 1213, 2740, 2741, 1746, 1603, 1920, 2488, 1746, 3012, 1746, 3404, -1316, 1106, 2642, -1829, -1316, 1107, -1350, 3178, 3180, 3181, 2642, 1273, 45, 977, 3405, 2851, 3044, 1604, 4216, 3466, 978, 1545, 4002, 1805, 46, 3406, 4020, 2160, 3309, 1214, 2159, 3496, 1920, 980, 3402, 2697, 1545, 2286, 1805, 2543, 2289, 3514, 1921, 1922, 1092, 2188, -1316, 3407, 2189, 3092, 3277, 3164, 1095, 3095, 3280, 3281, 3724, 3283, 47, 3285, 3286, 2379, 1099, 2672, 1429, 3098, 2714, -1316, 3291, 2851, 2414, 3351, 2852, 2189, 2963, 2964, 1918, 1888, 1215, 2814, 1921, 1922, 1517, 1518, 2816, 1216, 3468, 3469, 1217, 3148, 1920, 2745, 3082, 1100, 3084, 162, 2730, 875, 3307, 1101, 3311, 3403, 1920, -1316, 3657, 2712, 2673, 3915, 3916, 3917, 3918, -1316, 1105, 3226, 1918, 27, 1545, 1605, 1160, 1747, 3408, 1606, 1117, 1747, 2498, 1747, 2852, 2499, 1124, 3404, 3149, 875, 2555, 1125, 2709, 2556, 4051, 1127, 1921, 1922, 1218, 1128, 1607, 1608, 3405, 1135, 773, 3116, 1149, 2659, 1921, 1922, 2660, 2674, 3150, 3406, 2675, 2784, 1609, 2820, 2159, 4061, 2147, 2830, 2834, 2838, 2147, 2147, 2147, 3151, 1150, 3130, 1918, 3152, 1180, 2839, 2865, 3407, 2147, 2147, 1531, 1154, 47, 3220, 1918, 3223, 1611, 1545, 1160, 1805, 1302, 3153, 1185, 37, 614, 1219, 3942, 1220, 2922, 1612, 2923, 3212, 2951, 3214, 2260, 1207, 3154, 1221, 2961, 2881, 1211, 2886, 2147, 2260, 2887, 1222, 3962, 3065, 1237, 3126, 3066, 3415, 1239, 41, 1223, -1316, 3069, 2938, 1246, 3070, 2260, 2260, 3217, 3599, 3600, 3218, 3587, 2853, 2854, 2855, 1266, 2856, 2857, 2858, 2859, 2860, 2861, 1287, 4238, 27, 3408, 3420, 3422, 1292, 3257, 1224, 1920, 3258, 2924, 1225, 2925, 45, 694, 1472, 3263, 4282, 1474, 4283, 1476, 1278, 1478, 3295, 1480, 46, 1614, 2938, 1484, 2511, 3315, 2969, 2970, 2147, 3155, 1106, 1226, 3352, 1127, 1107, 3353, 3493, 3156, 3305, -2163, -2163, 2987, 2856, 2857, 2858, 2859, 2860, 2861, 1297, 3278, 1587, 1921, 1922, 1298, 47, -1098, 1212, -1098, 3362, 1303, 3374, 3363, 1213, 2147, 2306, 3444, 1598, 1305, 3445, 1599, 3157, 3943, 3448, 1920, 37, 3449, 3472, 3583, 3730, 2159, 3584, 2189, 1307, 2921, 3783, 1918, 1600, 3784, 3789, 1227, 3790, 2159, 3883, 2159, 1602, 3884, 2931, 1127, 3924, -1304, 1603, 3925, 1214, 875, 41, 1134, 694, 1136, 1749, 2927, 2928, 2929, -2163, -2163, 3319, 1618, 1619, 1620, 1621, 1622, 1623, 1921, 1922, 1312, 1604, 162, 2194, 166, 2191, 2192, 2193, 1317, 3567, 3926, 3325, 2953, 2147, 614, 3934, 2220, 3984, 2189, 45, 3985, 2931, 4008, 4005, 693, 1319, 4006, 4052, 1215, 1326, 4053, 46, 1918, 1329, 4063, 1216, 3347, 2189, 1217, 1598, 1370, 2926, 1599, 2260, 4070, 4075, 1168, 1429, 3237, 1746, 1372, 1374, 4077, 3073, 3589, 3237, 4137, 1383, 4142, 1638, 3085, 4143, 3750, 1366, 3753, 4239, -2074, 1602, 4149, 875, 3729, 2189, 1511, 1603, 2259, -157, 1385, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 1081, 4150, 4151, 1218, 2887, 2147, 4154, 1387, 4156, 1429, 1604, 3237, 3676, 4173, 1605, 1399, 2189, 1417, 1606, 2961, 3355, 4179, 4180, 4205, 2189, 2189, 1429, 1407, 4280, 4291, 3900, 4281, 4281, 1840, 185, 1422, 1423, 2961, 1424, 1607, 1608, 1425, 1426, 3127, 1428, 1429, 1436, 1746, 1439, 2259, 2259, 1440, 1441, 1442, 1444, 1609, 1450, 1449, 1219, 1451, 1220, 1456, -2074, 3068, 1461, 1513, 1841, 1486, 1519, 1521, 1221, 1528, 1515, 1522, 1529, -1475, -1482, 1538, 1222, 1842, 1610, 1541, 3713, 1611, 1542, 1543, 1544, 1223, 1548, 1747, 3147, 3090, 1843, 47, 1550, 1553, 1612, -1472, -1473, 1613, 1554, 1555, 1556, 3680, 1561, 1563, 1564, 1565, -2074, -1476, 1566, 3683, 3684, -1474, 1606, 1567, 1574, 3689, 1267, 1575, -2074, 1577, 1225, 1578, -2074, 1579, 1580, 1581, 1582, -2074, 1844, 1583, 1584, 1627, -2074, 1607, 1608, -2074, 1638, -2074, 1642, 1654, 1662, 1760, 1138, 1787, 1140, 1268, 1795, 1801, 1802, 1803, 1805, 1806, 1807, 1809, 1808, 1810, 2642, 1845, 1831, 2642, 2642, 1837, 1846, 2642, -2074, 1838, 1863, 1857, 1864, 1614, 1865, 1866, 1747, 2642, 1861, 1867, 1892, 1611, 1325, 1900, 1893, 1902, 3166, 1912, 1915, -2074, 1913, 1916, 1917, 1918, 1612, 1924, 1925, 1935, 1988, 1927, 1928, 1936, 1943, 1929, 3166, 1939, 754, 1227, 1940, 1950, 1951, 1222, 3298, 1957, 3845, 1958, 1978, 875, 3852, 875, 614, 1967, 1968, 1979, 1983, -2074, 1980, 3173, 3175, 2203, 3308, 1984, 3182, -2074, 1989, 1992, 2006, 2007, 614, 2019, 2021, 2029, 3637, 3638, 2022, 1545, 1551, 2031, 1534, 2032, 3235, 2049, 2052, 2055, 517, 2060, 2077, 2061, 2056, 2082, 1263, 2096, 1847, 1615, 1616, 1617, 3224, 1618, 1619, 1620, 1621, 1622, 1623, 2097, 2102, 2369, 2204, 2107, -2074, 3262, 875, 2370, 2108, 2105, 3657, 2112, 2123, 2125, 1156, 2126, 185, 2127, 2128, 2141, 2142, 2171, 2177, 2186, 2199, 162, 3276, 2226, 3639, 1598, 3797, 2205, 1599, 3216, 2268, 2269, 2225, 2281, 2231, 3686, 3687, 3688, 2287, 3922, 1599, 2291, 2299, 1848, 2292, 627, 2305, 2322, 2206, 1849, 2324, 2364, 1850, 1602, 3231, 2351, 2368, 3813, 3814, 1603, 2367, 2259, 3239, 2371, 2372, 700, 3245, 2938, 2380, -2074, 2389, 2390, 2415, 2416, 2399, 2381, 2417, 2207, 1851, 2428, 3256, 2433, 2208, 1604, 1852, 1618, 1619, 1620, 1621, 1622, 1623, 2436, -2074, 2438, -2074, -2074, 2447, 1853, 2413, 2393, 2452, 614, 2440, 2459, 2441, 2456, 3842, 2473, 2476, 2489, 2494, 1089, 1093, 3837, 3838, 2496, 2545, 2550, 1212, 2554, 2557, 2607, 1854, 2631, 1213, 2558, 2620, -2074, 2209, 2627, -2074, -2074, -2074, 3900, 2628, 2632, 2633, 2938, 694, 2635, 2636, 2637, 2639, 2649, 1081, 2900, 3369, 2638, 694, 2651, 2658, 2662, 2655, 2665, 2666, 2667, 2961, 2668, 2669, 2670, 2671, 2676, 2695, 2700, 1214, 2707, 2713, 3489, 2719, 2727, 2722, 2728, 1746, 2743, 2746, 2758, 1511, 2760, 2761, 1587, 2762, 3770, 2764, -2163, 2765, 2774, 2777, 1606, 2780, 3395, 1457, 2786, 2787, 2779, 2788, 2789, 4007, 2798, 2200, 3430, 3388, 3389, 3390, 3391, 2806, 2791, 185, 2810, 1607, 1608, 954, 2812, 3953, 1215, 2817, 2818, 2832, 2833, 2835, 2836, 1216, 2883, 2815, 1217, -2163, 2902, 2837, 3908, 2840, 3909, 3910, 2210, 2259, 2259, 2147, 2946, 2871, 2211, 2917, 2841, 3913, 2940, 2843, 2212, 3549, 2948, 2846, 3552, 2864, -927, 2910, 4062, 1611, 2870, 2897, 2973, 2979, 2872, 2993, 2990, 2920, 3392, 3393, 3394, 2975, 1612, 2873, 2985, 3004, 2880, 3007, 2895, 2213, 2896, 2214, 1218, 2945, 3009, 2996, 3798, 2995, 3000, 3001, 3013, 3027, 3028, 3039, 3830, 3831, 3038, 3833, 2215, 3054, 3056, 3045, 3046, 3866, 3087, 3088, 1747, 3091, 3101, 3093, 3102, 3103, 3106, 3094, 3812, 3099, 3100, 3109, 3119, 3104, 3111, 3105, 3107, 2216, 3108, 4100, 3821, 3113, 3166, 4105, 4106, 3110, 3121, 3112, 3114, 3123, 1976, 1219, 3125, 1220, 3131, 3137, 3138, 3139, 3140, 3534, 3533, -2163, 3535, 1221, 3536, 3141, 3142, 3168, 3171, 3172, 3965, 1222, 2751, 3183, 3227, 2038, 614, 3845, 3188, 3189, 1223, 3225, 3184, 3229, 3836, 3236, 3237, 3247, 3562, 3563, 3241, 1188, 614, 3243, 4101, 3246, 3251, 3250, 3254, 4065, 4104, 3275, 2642, 3255, 3282, 3284, 3292, 3293, 2642, 2642, 2642, 2642, 2642, 2642, 4107, 1225, 4109, 3297, 875, 3294, 3302, 3303, 3591, 1189, 3304, 3313, 1531, 3318, 2867, 2849, 2866, 3364, 3348, 3349, 3350, 3356, 1592, 3377, 3376, 3385, 1226, 3414, 1746, 3423, 3401, 3433, 3480, 3437, 3417, 3434, 3436, 3440, 614, 3459, 3482, 1618, 1619, 1620, 1621, 1622, 1623, 3609, 3611, 3613, 3615, 942, 943, 3483, 3497, 3494, 3499, 3515, 3495, 3544, 3508, 3516, 3598, 3527, 1190, 3528, 3517, 3530, 3560, 4060, 3529, 4268, 3531, 3532, 3503, 1746, 3572, 3564, 3630, 3573, 3570, 3608, 3603, 1746, 1227, 3601, 3602, 3643, 3622, 3267, 3645, 3661, 623, 624, 2159, 1191, 3642, 630, 3664, 3646, 3673, 640, 646, 623, 3674, 653, 3665, 3677, 646, 646, 3679, 680, 3668, 683, 4041, 1511, 3685, 3690, 4268, 3693, 162, 3667, 3694, 4086, 2752, 3695, 4268, 3696, 3605, 773, 1192, 3697, 3705, 3702, 3709, 3714, 3973, 4082, 3715, 3746, 3722, 4159, 3754, 3747, 3710, 2938, 3718, 3631, 3742, 2938, 3744, 3757, 3759, 3760, 3716, 1747, 4112, 3717, 3762, 1193, 3763, 3771, 1630, 3778, 3780, 3785, 3786, 3774, 3805, 3641, 3700, 3990, 3794, 2259, 3808, 3809, 3822, 3825, 3829, 3834, 3839, 3815, 3927, 3843, 3850, 3858, 3859, 3867, 614, 3870, 3871, 3876, 3874, 3882, 3855, 3869, 3885, 3889, 3895, 2259, 2259, 3897, 1747, 3898, 3906, 3912, 3920, 3921, 3923, 3928, 1747, 3930, 3939, 4257, 3932, 3931, 3933, -2076, 3946, 3949, 3955, 32, 3959, 3961, 3963, 1196, 3967, 3979, 3982, 3999, 4000, 1197, 3983, 4009, 3992, 3993, 3629, 4016, 1198, 4018, 4026, 4027, 737, 742, 742, 745, 1876, 742, 750, 4029, 737, 756, 680, 4031, 775, 1200, 756, 4066, 680, 4043, 680, 4044, 3816, 1201, 742, 756, 680, 2931, 4072, 4081, 701, 2931, 4089, 4118, 3826, 1598, 4098, 4123, 1599, 4127, 4129, 4140, 4133, 4139, 4141, 4146, 4147, 4157, 4153, 4069, 4158, 3769, 4152, 4163, 4165, 1600, 4176, 4102, 4181, 4069, -2076, 4182, 4183, 1602, 3779, 4186, 4188, 4192, 3425, 1603, 162, 3772, 3777, 4197, 1202, 4226, 4198, 4215, 2754, 3267, 4220, 4218, 4223, 4184, 4185, 4248, 4234, 1511, 4260, 3738, 3739, 3740, 3741, 1604, 4276, 4285, 4279, 4289, 1990, 2710, 1210, 2955, 2549, 3051, 614, 1129, -2076, 2619, 3512, 3144, 4111, 4003, 3844, 4113, 3880, 4028, 3663, 3116, -2076, 4030, 1661, 3864, -2076, 2998, 3810, 4170, 4040, -2076, 2785, 4221, 3971, 4253, -2076, 4256, 4189, -2076, 4187, -2076, 4232, 3003, 3881, 4135, 3633, 2693, 2694, 3511, 3063, 2074, 2259, 3634, 3635, 2677, 3232, 4259, 1511, 4286, 614, 4290, 1511, 1511, 3185, 3169, 4233, 3991, -2076, 2059, 4178, 4224, 3994, 3819, 3820, 629, 4084, 3669, 3823, 3824, 3691, 4145, 1506, 2502, 3670, 877, 4155, 3120, 4241, -2076, 4287, -2089, 4131, 2642, 2642, 2375, 2150, 1605, 2376, 2958, 3651, 1606, 3773, 3450, 4167, 1758, 2959, 875, 2398, 1784, 2971, 3848, 1102, 3849, 1783, 2967, 3853, 3854, 1788, 2397, 2392, 2984, 1607, 1608, 3397, -2076, 2972, 1123, 4074, 3861, 3752, 1791, 2951, -2076, 3451, 3368, 1110, 4064, 1609, 4206, 3358, 773, 4207, 2663, 4214, 2962, 2915, 2913, 2827, 3447, 2350, 0, 0, 0, 2938, 0, 0, 0, 0, 2938, 0, 614, 2938, 1610, 0, 0, 1611, 3878, 0, 0, 0, 2961, 0, 0, -2089, 0, 773, 0, -2076, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2938, 0, 3899, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3700, 3700, 3700, 3700, 0, -2089, 1600, 0, 627, 0, 0, 0, 3989, 0, 1602, 0, 0, -2089, 0, 0, 1603, -2089, 0, 801, 0, 0, -2089, 0, 680, 0, 737, -2089, -2076, 742, -2089, 745, -2089, 742, 0, 1614, 0, 756, 0, 775, 1604, 756, 854, 0, 0, 754, 0, 0, 0, 742, 0, -2076, 756, -2076, -2076, 0, 0, 2931, 0, -2089, 0, 0, 2931, 3905, 0, 2931, 876, 0, 0, 0, 737, 0, 0, 0, 0, 745, 0, 0, 0, 737, -2089, 0, 775, 0, 0, 0, -2076, 2938, 0, -2076, -2076, -2076, 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 926, 0, 0, 0, 0, 0, 3964, 0, 0, 0, 0, 0, 0, 0, -2089, 3166, 0, 0, 0, 0, 0, 0, -2089, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 2938, 0, 0, 0, 0, 1605, 2642, 2842, 680, 1606, 4004, 0, 0, 2751, 0, 0, 614, 0, 680, 967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 1608, 1188, 0, -2089, 0, 0, 1076, 0, 680, 646, 0, 876, 0, 646, 0, 1609, 162, 4021, 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 680, 0, 0, 1189, 0, 0, 1076, 0, 0, 0, 1610, 0, 0, 1611, 0, 0, 0, 680, 627, 0, 0, 0, 0, 0, 0, 0, 1612, 0, 0, 680, 773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2089, 0, 0, 0, 0, 0, 0, 4012, 0, 0, 0, 0, 0, 0, 0, 0, 1190, 0, 1212, 2931, 0, 0, 0, -2089, 1213, -2089, -2089, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 1081, 742, 742, 0, 0, 0, 0, 0, 0, 0, 1191, 0, 1247, 0, 0, 0, 0, 0, 0, 0, 0, -2089, 1614, 0, -2089, -2089, -2089, 1214, 0, 0, 0, 0, 0, 875, 0, 0, 0, 0, 0, 2752, 0, 0, 737, 0, 0, 1192, 0, 4194, 0, 0, 0, 0, 737, 0, 0, 775, 0, 2938, 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, 1193, 0, 1215, 0, 0, 0, 0, 0, 680, 1216, 0, 0, 1217, 4222, 742, 742, 4093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, 680, 680, 742, 0, 737, 0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 742, 742, 742, 1249, 32, 0, 1218, 0, 2753, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 876, 1198, 0, 0, 1076, 0, 0, 0, 0, 1876, 0, 0, 0, 876, 0, 0, 0, 1598, 1200, 0, 1599, 0, 0, 0, 0, 0, 1201, 0, 0, 1250, 0, 1251, 0, 0, 0, 1489, 1489, 1600, 0, 0, 680, 1252, 623, 1220, 0, 1602, 0, 4288, 0, 0, 0, 1603, 1598, 1221, 0, 1599, 0, 0, 0, 1520, 0, 1222, 680, 0, 0, 1526, 876, 0, 0, 1253, 1223, 0, 1600, 0, 0, 1604, 0, 1202, 1076, 0, 1602, 2754, 4275, 0, 0, 0, 1603, 0, 162, 4246, 166, 4243, 4244, 4245, 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0, 1225, 1255, 1076, 0, 4267, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4274, 4246, 166, 4243, 4244, 4245, 0, 1256, 0, 0, 0, 0, 1076, 1076, 0, 1076, 0, 0, 1257, 0, 4266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 4267, 0, 0, 0, 0, 0, 0, 0, 4267, 0, 0, 162, 4246, 166, 4243, 4244, 4245, 0, 0, 1605, 0, 876, 0, 1606, 0, 0, 0, 0, 0, 876, 876, 0, 1227, 0, 4266, 680, 0, 0, 1076, 0, 0, 0, 4266, 0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 0, 0, 0, 1606, 0, 1609, 0, 0, 0, 0, 0, 0, 1076, 0, 0, 0, 1076, 1076, 0, 0, 0, 0, 0, 0, 1607, 1608, 680, 680, 1794, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 1609, 0, 0, 0, 646, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 680, 1899, 0, 0, 0, 0, 0, 680, 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0, 1598, 0, 0, 1599, 775, 0, 0, 0, 0, 1614, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0, 0, 1601, 0, 0, 0, 0, 1602, 0, 0, 680, 0, 0, 1603, 1598, 0, 0, 1599, 742, 742, 742, 742, 680, 1614, 0, 0, 0, 0, 0, 0, 0, 756, 0, 646, 1600, 0, 680, 1604, 0, 0, 0, 0, 1602, 0, 0, 0, 0, 2002, 1603, 680, 0, 0, 0, 0, 0, 0, 0, 742, 742, 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 0, 0, 2890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 742, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 3435, 0, 756, 0, 0, 0, 0, 0, 742, 742, 742, 742, 1605, 0, 0, 0, 1606, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 2002, 0, 0, 0, 0, 0, 0, 0, 0, 737, 1607, 1608, 0, 0, 0, 0, 745, 0, 737, 0, 1605, 0, 0, 0, 1606, 0, 1609, 0, 775, 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 742, 0, 756, 1607, 1608, 0, 742, 742, 0, 1610, 0, 680, 1611, 926, 0, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 1489, 0, 0, 0, 0, 0, 0, 742, 1610, 737, 0, 1611, 0, 680, 680, 0, 742, 0, 0, 0, 0, 0, 680, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 623, 623, 0, 0, 2202, 0, 0, 0, 1076, 0, 1076, 0, 0, 0, 0, 0, 0, 1076, 0, 0, 1076, 0, 0, 0, 1076, 0, 0, 0, 0, 1614, 0, 0, 1076, 1076, 0, 0, 0, 0, 0, 0, 1076, 0, 775, 1076, 1076, 1076, 1076, 0, 0, 0, 0, 0, 0, 1076, 1076, 0, 1076, 0, 1076, 1076, 0, 0, 1076, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 0, 0, 742, 1076, 0, 0, 0, 1076, 0, 0, 0, 1076, 0, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 0, 1076, 0, 0, 0, 680, 1076, 0, 1076, 0, 0, 0, 0, 0, 680, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 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, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 2290, 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, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 1602, 680, 0, 680, 0, 1076, 1603, 0, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 1600, 0, 1604, 0, 0, 0, 0, 0, 1602, 0, 0, 0, 0, 2405, 1603, 2412, 0, 0, 0, 0, 1604, 756, 0, 0, 0, 0, 756, 0, 0, 756, 745, 0, 0, 0, 0, 623, 0, 623, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 1076, 0, 0, 0, 0, 0, 737, 0, 742, 742, 742, 0, 737, 775, 0, 742, 0, 742, 0, 742, 742, 0, 0, 680, 0, 0, 0, 0, 2911, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 1605, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 756, 0, 0, 1899, 0, 0, 0, 0, -2163, 2512, 0, 0, 1606, 0, 2521, 1607, 1608, 0, 0, 0, 680, 0, 0, 0, 756, 0, 1605, 0, 0, 0, 1606, 1609, 0, 1607, 1608, 0, 2552, 2552, 0, 0, 0, 0, 0, 745, 756, 0, 0, 756, 0, -2163, 0, 1607, 1608, 0, 0, 0, 1610, 0, 742, 1611, 0, 0, 0, 0, 0, 756, 0, 1609, 0, 0, 1598, 0, 1612, 1599, 1188, 756, 0, 1611, 0, 0, 0, 0, 0, 0, 2609, 0, 2611, 2613, 756, 0, 1612, 0, 1610, 0, 0, 1611, 0, 756, 1602, 0, 0, 0, 0, 0, 1603, 0, 1189, 0, 1612, 0, 0, 1613, 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 742, 742, 742, 742, 742, 742, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, 1899, -2163, 0, 0, 2552, 680, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 3382, 1598, 1191, 0, 1599, 0, 0, 0, 0, 2609, 0, 0, 0, 0, 0, 0, 742, 2739, 0, 0, 0, 1600, 0, 0, 0, 0, 876, 0, 0, 1602, 0, 0, 0, 0, 0, 1603, 0, 1192, -2163, 0, 0, 742, 1606, 742, 2552, 742, 2552, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1604, 876, 0, 0, 1607, 1608, 1076, 1193, 0, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1489, 0, -2163, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 1194, 0, 756, 0, 3170, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 1612, 737, 1598, 1600, 1195, 1599, 737, 0, 32, 0, 0, 1602, 1196, 0, 0, 0, 742, 1603, 1197, 1598, 0, 0, 1599, 1076, 1076, 1198, 0, 0, 0, 1076, 1602, 0, 0, 1199, 0, 0, 1603, 0, 0, 1605, 0, 1604, 1200, 1606, 0, 0, 0, 1602, 0, 0, 1201, 0, 0, 1603, 1076, 1076, 0, 0, 0, 1076, 1604, 0, 0, 0, 1607, 1608, 0, 0, 0, 0, 0, 1076, 1076, 1076, 1076, -2163, 0, 1604, 0, 0, 1609, 0, 0, 0, 1076, 0, 0, 1076, 0, 1076, 2894, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1076, 1202, 0, 1076, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 1076, 0, 775, 1612, 1076, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 3383, 0, 1605, 680, 0, 0, 1606, 0, 0, 0, 2939, 0, 1076, 1076, 1076, 0, 0, 0, 0, 0, 0, 1605, 0, 0, 0, 1606, 876, 1607, 1608, 1076, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, -2163, 0, 1076, 0, 1606, 1609, 0, 1076, 1607, 1608, 0, 680, 0, 0, 1076, 0, 0, 0, 0, 1614, 2939, 0, 0, 2978, 1609, 1607, 1608, 2412, 0, 0, 1610, 0, 0, 1611, 0, 0, 756, 0, 0, 0, 0, -2163, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 1611, 0, 0, 0, 0, 1076, 0, 2552, 0, 0, 0, 0, 1489, 1612, 0, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 876, 0, 0, 0, 0, 1612, 0, 0, 742, 0, 742, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 0, 0, 2751, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1614, 0, 3320, 0, 0, 0, 1188, 0, 0, 1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2163, 0, 1189, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 544, 499, 0, 0, 0, 0, 584, 0, 499, 0, 0, 0, 0, 499, 0, 632, 0, 1615, 1616, 1617, 1190, 1618, 1619, 1620, 1621, 1622, 1623, 0, 3386, 0, 0, 3367, 0, 692, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 1191, 0, 0, 756, 0, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 2552, 2552, -2163, 0, 1598, 0, 1606, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 2752, 0, 1188, 0, 0, 0, 1192, 0, 1600, 0, 0, 1607, 1608, 0, 0, 0, 1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 0, -2163, 0, 0, 0, 0, 0, 0, 1189, 1193, 876, 0, 876, 0, 0, 0, 680, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1489, 680, 1612, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 680, 0, 0, 0, 0, 0, 749, 0, 0, 0, 1190, 0, 0, 0, 680, 777, 0, 780, 32, 783, 876, 785, 1196, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 1191, 742, 1876, 0, 742, 0, 0, 756, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 737, 1201, 0, 756, 0, -2163, 0, 0, 1605, 0, 0, 0, 1606, 0, 0, 0, 0, 1192, 0, 680, 0, 756, 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, 1607, 1608, 1076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1193, 0, 0, 1609, 0, 1076, 1202, 1076, 0, 0, 2754, 0, 0, 1076, 0, 0, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 0, 0, 1610, 1076, 1076, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 1612, 0, 1076, 1613, 0, 0, 1076, 0, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 1076, 0, 32, 1076, 1875, 1076, 1196, 0, 0, 0, 0, 0, 1197, 0, 1076, 1076, 1076, 0, 0, 1198, 1076, 0, 0, 1076, 0, 0, 0, 1876, 0, 0, 680, 680, 680, 2939, 3400, 0, 1200, 0, 3400, 3413, 0, 1212, 0, 1076, 1201, 0, 0, 1213, 0, 3427, 0, 1076, 0, 1076, 0, 0, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1247, 0, 0, 0, 1076, 0, 0, 0, 0, 0, 1076, 0, 0, 0, 2412, 1214, 1076, 0, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 3467, 1489, 1489, 0, 2002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1248, 0, 0, 742, 742, 742, 742, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 1216, 1598, 0, 1217, 1599, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 3510, 0, 0, 0, 3439, 0, 0, 0, 0, 0, 0, 0, 0, 1602, 0, 0, 833, 0, 0, 1603, 0, 0, 0, 840, 0, 0, 0, 0, 0, 0, 0, 0, 855, 856, 0, 0, 1249, 858, 0, 1218, 0, 0, 0, 1604, 0, 0, 0, 872, 756, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 880, 0, 0, 0, 0, 3565, 0, 0, 0, 0, 0, 0, 0, 0, 901, 0, 0, 903, 0, 905, 0, 908, 1250, 0, 1251, 0, 0, 0, 0, 0, 0, 876, 0, 0, 1252, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 3735, 1221, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 499, 0, 0, 0, 0, 0, 1253, 1223, 0, 0, 0, 0, 0, 1212, 0, 680, 0, 0, 0, 1213, 0, 0, 964, 0, 965, 0, 742, -2163, 1076, 0, 0, 1606, 0, 0, 680, 0, 0, 0, 2572, 0, 0, 0, 1225, 1255, 0, 0, 1899, 0, 0, 0, 0, 0, 1607, 1608, 0, 0, 680, 0, 0, 1214, 0, 0, 0, 0, 0, 2609, 0, 2573, -2163, 0, 0, 3658, 0, 0, 0, 1899, 0, 692, 1257, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1076, 0, 0, 0, 0, 0, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1215, 1612, 2552, 0, 2552, 1598, 0, 1216, 1599, 0, 1217, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 756, 0, 0, 0, 0, 1600, 0, 0, 0, 0, 0, 0, 0, 1602, 0, 0, 1076, 0, 0, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, 1604, 0, 0, 0, 0, 0, 0, 0, 1296, 0, 1076, 0, 0, -2163, 0, 0, 0, 0, 0, 0, 1076, 1076, 0, 1308, 0, 0, 0, 0, 1076, 1076, 0, 0, 0, 1076, 1316, 0, 0, 0, 0, 1076, 1076, 1318, 0, 1076, 0, 680, 680, 680, 680, 0, 0, 0, 3400, 1368, 1219, 3743, 1220, 0, 2939, 0, 0, 0, 2939, 0, 0, 0, 1221, 0, 3756, 0, 0, 1076, 0, 0, 1222, 0, 1076, 0, 0, 0, 0, 0, 3766, 1223, 0, 1410, 0, 0, 1076, 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 1605, 0, 2978, 0, 1606, 0, 2412, 1618, 1619, 1620, 1621, 1622, 1623, 0, 1293, 0, 623, 0, 1225, 1076, 0, 0, 0, 0, 0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2552, 2552, 1609, 0, 1294, 0, 0, 0, 499, 0, 499, 0, 499, 0, 499, 0, 499, 499, 499, 0, 0, 0, 0, 499, 3811, 0, 0, 1610, -115, 0, 1611, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1612, 0, 756, 1613, 0, 0, 0, 0, 0, 2, 0, 3, 4, 0, 0, 0, 0, 0, 0, 1227, 0, 742, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 1212, 742, 0, 0, 0, 0, 1213, 0, 0, 0, 0, 0, 6, 0, 7, 8, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 876, 0, 0, 0, 0, 11, 0, 12, 1489, 0, 0, 0, 0, 0, 1614, 0, 0, 0, 0, 1214, 0, 0, 0, 13, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 15, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 19, 0, 20, 0, 0, 0, 742, 1899, 21, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 1216, 0, 0, 1217, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 1615, 1616, 1617, 756, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 3461, 1076, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 1218, 0, 0, 23, 24, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 1076, 1076, 26, 0, 1076, 0, 0, 0, 0, 0, 0, 3400, 0, 27, 1856, 2939, 0, 0, 0, 0, 2939, 0, 0, 2939, 2609, 0, 3951, 0, 1076, 1076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, 1220, 0, 0, 0, 0, 756, 0, 756, 28, 0, 1221, 3467, 775, 742, 742, 742, 0, 0, 1222, 29, 0, 0, 0, 0, 30, 0, 31, 1223, 0, 0, 0, 32, 0, 0, 0, 0, 33, 0, 0, 34, 0, 0, 0, 35, 0, 0, 737, 775, 36, 37, 0, 0, 0, 0, 0, 0, 38, 0, 1858, 39, 0, 0, 1225, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1489, 0, 41, 0, 0, 0, 737, 0, 0, 680, 1859, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2552, 0, 1899, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 1598, 3658, 44, 1599, 0, 0, 680, 45, 0, 0, 0, 0, 0, 0, 742, 3467, 0, 0, 0, 46, 1600, 0, 0, 0, 0, 1212, 0, 1598, 1602, 0, 1599, 1213, 0, 0, 1603, 1227, 0, 1076, 0, 0, 1076, 0, 1076, 0, 0, 1598, 0, 1600, 1599, 0, 0, 2054, 0, 47, 0, 1602, -115, 0, 1604, 1076, 0, 1603, 0, 2939, 2076, 1600, 3951, 0, 0, 0, 0, 1214, 4080, 1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 742, 0, 0, 0, 680, 0, 0, 0, 0, 0, 2118, 1604, 0, 0, 2122, 0, 0, 0, 0, 0, 0, 742, 742, 742, 742, 2133, 0, 2135, 1215, 2136, 0, 876, 0, 0, 2137, 1216, 0, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 0, 0, 0, 0, 499, 0, 499, 0, 499, 0, 499, 0, 499, 1605, 0, 0, 499, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 741, 743, 0, 0, 747, 748, 1218, 1607, 1608, 1605, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 786, 1076, 1609, 0, 0, 0, 1605, 742, 0, 775, 1606, 0, 0, 1607, 1608, 0, 0, 0, 1076, 0, 0, 0, 0, 0, 0, 0, 0, 1610, 0, 1609, 1611, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 1219, 0, 1220, 1612, 0, 0, 1613, 1609, 0, 742, 0, 0, 1221, 737, 1610, 0, 0, 1611, 0, 0, 1222, 0, 0, 3467, 0, 0, 0, 0, 0, 1223, 1612, 0, 1610, 1613, 0, 1611, 0, 4080, 0, 0, 1076, 1076, 0, 756, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 737, 0, 0, 0, 0, 0, 0, 2508, 742, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1226, 0, 0, 1600, 0, 0, 0, 0, 0, 1076, 0, 1602, 0, 0, 742, 0, 1614, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, 0, 0, 0, 0, 0, 1076, 0, 0, 0, 0, 0, 0, 0, 0, 737, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 3703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 3737, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 3929, 0, 0, 1605, 0, 0, 1212, 1606, 0, 0, 0, 0, 1213, 0, 0, 2419, 2420, 0, 0, 0, 2423, 2424, 0, 0, 2427, 0, 0, 0, 1607, 1608, 0, 0, 0, 0, 2437, 0, 0, 0, 0, 0, 0, 2446, 0, 0, 1609, 2449, 2450, 0, 0, 2453, 2454, 2455, 1214, 835, 0, 0, 0, 838, 0, 0, 0, 2469, 0, 2471, 0, 0, 0, 0, 0, 1610, 0, 0, 1611, 859, 0, 0, 0, 0, 0, 2493, 0, 0, 0, 0, 2495, 1612, 1598, 0, 1613, 1599, 739, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 1215, 0, 0, 1598, 0, 1600, 1599, 1216, 0, 0, 1217, 0, 0, 1602, 2513, 2514, 2517, 2519, 0, 1603, 0, 2526, 2529, 1600, 0, 0, 0, 0, 0, 2540, 1598, 1602, 2544, 1599, 0, 0, 2548, 1603, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 1600, 0, 2571, 0, 0, 0, 0, 0, 1602, 1614, 0, 1604, 1218, 2578, 1603, 2580, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 2587, 2588, 2589, 2590, 0, 2592, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 2615, 2616, 2617, 0, 0, 0, 0, 0, 0, 0, 0, 2625, 2626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 0, 0, 0, 1605, 0, 0, 1223, 1606, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1605, 0, 3969, 2688, 1606, 0, 0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 2584, 0, 0, 0, 1225, 0, 0, 1609, 0, 1607, 1608, 1605, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 1235, 1236, 0, 1609, 0, 0, 0, 2585, 0, 0, 1610, 0, 0, 1611, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1612, 0, 1610, 1613, 1609, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 555, 0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 556, 1227, 0, 1320, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, 1378, 1379, 0, 0, 0, 0, 0, 0, 0, 0, 1598, 558, 0, 1599, 1614, 0, 0, 1406, 0, 0, 0, 2808, 0, 0, 559, 0, 0, 0, 0, 0, 1600, 0, 1614, 0, 0, 0, 0, 0, 1602, 0, 0, 560, 739, 0, 1603, 1433, 1435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1614, 0, 0, 561, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 563, 0, 0, 0, 739, 564, 0, 0, 0, 0, 0, 565, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 566, 4014, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 4193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2866, 0, 1615, 1616, 1617, 2867, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1598, 0, 4277, 1599, 0, 0, 0, 1605, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0, 0, 0, 2382, 0, 0, 739, 1602, 0, 0, 567, 1607, 1608, 1603, 0, 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, 0, 1609, 1598, 0, 0, 1599, 0, 0, 0, 0, 739, 1604, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0, 0, 0, 1610, 0, 0, 1611, 1602, 0, 0, 0, 2988, 2989, 1603, 569, 0, 0, 0, 570, 1612, 571, 0, 1613, 0, 0, 0, 572, 0, 0, 573, 0, 0, 0, 2383, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 575, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 577, 0, 3022, 3024, 0, 578, 0, 3024, 0, 0, 0, 0, 3035, 3036, 3037, 0, 0, 579, 0, 1605, 0, 0, 0, 1606, 0, 1614, 0, 0, 0, 0, 580, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 1607, 1608, 0, 0, 3058, 3059, 3060, 3061, 0, 0, 0, 0, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 1364, 0, 0, 1605, 0, 0, 0, 1606, 1914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3086, 1610, 0, 0, 1611, 0, 0, 0, 0, 1607, 1608, 0, 0, 0, 739, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 1971, 1972, 1973, 1974, 0, 0, 0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 3124, 739, 0, 0, 1612, 0, 0, 1613, 3128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2010, 2011, 0, 0, 0, 0, 2020, 3359, 0, 0, 0, 1614, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 1600, 0, 0, 1598, 0, 0, 1599, 0, 1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 0, 3213, 2045, 0, 0, 1600, 739, 0, 2829, 0, 1614, 3219, 2384, 1602, 0, 0, 0, 0, 0, 1603, 1604, 0, 0, 0, 3360, 0, 2078, 2079, 2080, 2081, 0, 0, 0, 0, 0, 739, 0, 0, 3238, 0, 3240, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 739, 739, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3279, 0, 2134, 0, 0, 0, 0, 739, 0, 1212, 0, 2138, 0, 0, 3289, 1213, 0, 0, 2145, 0, 0, 0, 4251, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 0, 739, 1745, 1606, 0, 0, 0, 0, 0, 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 0, 1607, 1608, 1606, 0, 0, 0, 739, 0, 0, 0, 739, 739, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 0, 0, 1607, 1608, 1364, 0, 0, 0, 0, 0, 1745, 0, 0, 0, 1215, 0, 0, 0, 1609, 0, 1610, 1216, 0, 1611, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4252, 1364, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2303, 1218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 1614, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599, 0, 0, 0, 0, 1600, 0, 0, 0, 1219, 0, 1220, 1614, 1602, 0, 0, 0, 1600, 0, 1603, 2874, 1221, 0, 0, 0, 1602, 0, 0, 0, 1222, 3478, 1603, 3479, 0, 0, 1364, 3481, 0, 1223, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 3490, 0, 0, 1364, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3498, 2622, 0, 0, 0, 1225, 1364, 0, 0, 3509, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 1745, 0, 0, 0, 2623, 1364, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 0, 0, 0, 0, 3550, 3551, 0, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 0, 0, 0, 0, 0, 1605, 0, 739, 3566, 1606, 3568, 3569, 0, 1364, 0, 0, 739, 1605, 1227, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 1608, 0, 0, 1609, 0, 0, 0, 0, 0, 0, 2460, 2461, 2462, 0, 0, 1609, 0, 2470, 0, 2472, 0, 2474, 2475, 0, 0, 0, 0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0, 3617, 3619, 3621, 0, 1610, 3624, 739, 1611, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 2844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 739, 0, 1363, 0, 0, 0, 0, 739, 0, 0, 739, 0, 0, 0, 739, 0, 0, 0, 0, 1212, 0, 0, 739, 739, 0, 1213, 0, 0, 0, 0, 739, 0, 0, 739, 739, 739, 739, 0, 0, 3024, 2577, 1614, 0, 739, 739, 0, 739, 0, 739, 739, 0, 0, 739, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1214, 0, 0, 1364, 739, 1745, 0, 0, 0, 739, 0, 0, 0, 739, 0, 0, 0, 739, 0, 739, 739, 739, 739, 739, 739, 739, 739, 739, 0, 739, 0, 2634, 0, 0, 739, 0, 739, 0, 0, 2643, 2644, 2645, 2646, 2647, 2648, 0, 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 1216, 0, 0, 1217, 0, 0, 0, 0, 1363, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 1362, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 1218, 0, 0, 0, 0, 0, 0, 1602, 0, 0, 0, 0, 2731, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 2769, 0, 2771, 1598, 0, 0, 1599, 0, 0, 0, 0, 739, 0, 0, 0, 0, 1219, 0, 1220, 0, 0, 0, 0, 1600, 0, 0, 2885, 0, 1221, 0, 0, 1602, 0, 0, 0, 0, 1222, 1603, 0, 0, 3801, 3802, 3803, 3804, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 1745, 0, 1604, 0, 0, 0, 3817, 3818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3032, 3827, 3828, 0, 1225, 0, 2879, 0, 0, 0, 0, 0, 739, 0, 0, 0, 1598, 2819, 739, 1599, 0, 0, 1605, 0, 739, 0, 1606, 0, 0, 3033, 0, 1363, 0, 0, 0, 0, 1600, 0, 0, 3366, 0, 0, 0, 0, 1602, 0, 0, 1607, 1608, 0, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 1609, 0, 1364, 1364, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 1891, 1605, 0, 1227, 1610, 1606, 0, 1611, 0, 1745, 0, 0, 1745, 0, 0, 0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 1648, 1607, 1608, 0, 0, 1363, 3873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1609, 0, 0, 1598, 0, 0, 1599, 0, 0, 0, 0, 0, 3894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0, 1610, 0, 0, 1611, 0, 0, 1602, 3911, 0, 0, 0, 0, 1603, 0, 0, 0, 1612, 0, 0, 1613, 1362, 0, 0, 1605, 0, 0, 0, 1606, 1614, 0, 0, 0, 0, 1363, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 1608, 0, 0, 1363, 0, 0, 0, 739, 0, 1364, 0, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 0, 0, 0, 1363, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610, 0, 1614, 1611, 499, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 1362, 0, 1612, 0, 0, 1613, 0, 0, 0, 3014, 0, 3015, 3016, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 1364, 0, 0, 0, 1605, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 1363, 0, 3995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 739, 0, 0, 1609, 0, 0, 1614, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 4019, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610, 0, 0, 1611, 1063, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 1364, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 3024, 0, 739, 0, 0, 0, 0, 739, 1120, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 739, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 739, 739, 0, 0, 0, 739, 1362, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 739, 739, 739, 739, 0, 4096, 1598, 0, 1745, 1599, 0, 0, 0, 739, 1745, 0, 739, 0, 739, 3316, 0, 0, 0, 0, 0, 1363, 1600, 0, 739, 739, 0, 0, 739, 0, 1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 0, 739, 0, 739, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 2362, 0, 0, 0, 0, 0, 1604, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 3024, 739, 739, 739, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 739, 0, 3287, 0, 0, 3288, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 1605, 1362, 3312, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 1364, 0, 1364, 1610, 0, 0, 1611, 0, 0, 0, 0, 0, 1536, 0, 0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 1745, 1745, 1745, 0, 0, 0, 0, 0, 0, 0, 1560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1585, 1586, 0, 1588, 0, 0, 0, 0, 0, 0, 0, 0, 2497, 0, 0, 0, 0, 1891, 2504, 0, 1628, 0, 0, 0, 0, 1614, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, 0, 0, 0, 1364, 0, 0, 172, 0, 0, 3484, 3485, 3486, 3487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1745, 0, 1766, 1364, 0, 0, 1776, 1779, 0, 0, 0, 0, 0, 0, 802, 0, 0, 0, 0, 0, 1745, 1364, 0, 0, 0, 0, 0, 173, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 174, 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0, 804, 805, 0, 176, 0, 0, 1362, 0, 0, 806, 0, 1362, 1362, 807, 0, 1363, 0, 0, 177, 0, 0, 0, 0, 1362, 1364, 0, 0, 0, 0, 0, 808, 0, 0, 0, 0, 0, 178, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 1364, 0, 809, 180, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 810, 0, 0, 0, 182, 0, 0, 739, 0, 0, 0, 811, 0, 0, 0, 0, 812, 0, 0, 0, 1891, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 3623, 0, 813, 0, 0, 0, 0, 739, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 739, 0, 739, 0, 814, 0, 0, 1364, 739, 0, 0, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 184, 0, 0, 739, 739, 0, 0, 1362, 0, 0, 0, 1364, 0, 0, 0, 0, 739, 0, 0, 0, 739, 0, 1745, 0, 739, 1363, 0, 0, 185, 0, 0, 0, 0, 815, 739, 0, 0, 739, 0, 739, 0, 0, 0, 0, 0, 0, 0, 1364, 739, 739, 739, 0, 0, 186, 739, 0, 0, 739, 0, 187, 0, 185, 0, 0, 0, 188, 0, 739, 189, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 1362, 0, 0, 0, 739, 816, 739, 0, 0, 817, 0, 818, 0, 190, 0, 191, 0, 819, 0, 192, 820, 0, 0, 0, 0, 0, 0, 193, 0, 739, 0, 0, 194, 0, 0, 739, 0, 0, 0, 0, 0, 739, 0, 0, 195, 0, 821, 0, 822, 0, 0, 0, 823, 0, 0, 0, 739, 196, 0, 0, 824, 0, 0, 0, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2362, 2362, 2362, 0, 0, 0, 0, 0, 2229, 0, 0, 0, 0, 0, 1745, 0, 0, 0, 1745, 1364, 1745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2252, 0, 0, 2254, 0, 0, 2265, 0, 0, 0, 0, 0, 0, 2272, 2277, 0, 0, 0, 0, 2283, 0, 0, 2288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2297, 0, 0, 0, 0, 2304, 0, 0, 0, 2316, 0, 0, 0, 2323, 0, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 0, 2334, 0, 0, 0, 0, 1063, 0, 2359, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 3832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1891, 2504, 739, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 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, 1363, 0, 1363, 0, 0, 1364, 739, 739, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 3879, 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 1362, 1362, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 2451, 2504, 0, 0, 0, 0, 0, 739, 739, 0, 1364, 0, 0, 0, 0, 739, 739, 0, 0, 2504, 739, 1364, 0, 0, 0, 0, 739, 739, 0, 0, 739, 0, 0, 0, 0, 0, 0, 1362, 0, 1362, 0, 0, 0, 0, 0, 739, 0, 0, 0, 739, 0, 3974, 3976, 3976, 0, 0, 0, 0, 739, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 4048, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 2661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 1354, 0, 0, 1363, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 1745, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 4090, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 4108, 0, 4110, 0, 739, 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, 2362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 1362, 2783, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 3976, 1364, 0, 0, 0, 1362, 739, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 739, 0, 0, 739, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 739, 0, 2825, 1362, 4191, 739, 0, 2831, 739, 0, 0, 0, 0, 739, 739, 0, 1625, 0, 0, 0, 0, 2261, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 1625, 1625, 0, 1625, 0, 0, 0, 0, 2277, 0, 2277, 2277, 0, 0, 0, 4225, 0, 0, 0, 0, 0, 2888, 0, 0, 2891, 0, 2893, 0, 1364, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2914, 0, 2916, 0, 4258, 0, 2919, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 2359, 2359, 2359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 2956, 0, 0, 0, 0, 0, 739, 0, 1364, 0, 0, 1766, 0, 0, 0, 0, 2966, 0, 1362, 0, 0, 0, 0, 1779, 0, 0, 0, 0, 739, 1364, 0, 739, 1363, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 1354, 0, 0, 739, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 1891, 2997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 1625, 0, 0, 1625, 0, 0, 0, 1745, 0, 0, 1364, 0, 0, 0, 1364, 1364, 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, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 1362, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 739, 1354, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 1362, 739, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 2362, 0, 0, 0, 0, 2362, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 2362, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 739, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 1363, 739, 0, 0, 1357, 0, 1356, 0, 0, 1362, 0, 739, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 1745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 1359, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 1745, 0, 0, 0, 739, 0, 0, 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 3317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3321, 1362, 0, 0, 0, 0, 3322, 0, 3323, 0, 0, 0, 0, 0, 0, 3903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 3341, 3342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 1357, 0, 0, 0, 1363, 2283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3370, 0, 0, 3373, 0, 3375, 0, 0, 0, 0, 0, 0, 1625, 0, 3379, 0, 0, 0, 0, 0, 3384, 0, 0, 3387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 1625, 1357, 2261, 2261, 2862, 0, 3416, 2261, 0, 0, 0, 1625, 0, 0, 3428, 0, 2359, 0, 1625, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 1625, 1356, 1357, 0, 0, 1625, 0, 0, 0, 0, 3442, 0, 0, 0, 1625, 0, 1063, 0, 2261, 2261, 0, 1625, 1120, 0, 0, 0, 0, 0, 0, 2504, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 1625, 0, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 1363, 1357, 0, 1354, 1354, 0, 0, 0, 0, 0, 0, 511, 1359, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, 1363, 0, 0, 1625, 1362, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 513, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 514, 0, 0, 0, 1360, 0, 0, 0, 0, 515, 1363, 0, 0, -692, 1363, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, 0, 0, 517, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, 1359, 3903, 0, 0, 0, 0, 520, 0, 0, 1362, 0, 0, 0, 521, 0, 0, 1354, 522, 1356, 0, 1359, 0, 0, 1356, 1356, 0, 0, 0, 0, 0, 3671, 3672, -881, 0, 0, 1356, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 1362, 1362, 0, 0, 0, 0, 0, 3701, 0, 0, 1354, 0, 1361, 0, 0, 0, 0, 1359, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, 0, 525, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3719, 3721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3728, 0, 0, 0, 0, 0, 3733, 3734, 0, 0, 3736, 0, 0, 526, 0, 0, 0, 0, 0, 527, 1356, 0, 0, 0, 0, -369, 0, 1354, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2359, 0, 0, 0, 0, 2359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 2359, 529, 530, 0, 531, 532, 0, 0, 0, 0, 0, 0, 0, 533, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 535, 0, 0, 536, 0, 0, 537, 3782, 1625, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, -369, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 1625, 0, 0, 0, 0, 0, 1625, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2862, 2862, 0, 2261, 0, 1360, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 1361, 1625, 0, 0, 1625, 0, 1625, 0, 0, 0, 0, 2862, 2862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2261, 2261, 1625, 0, 1625, 1361, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 1357, 1357, 0, 0, 0, 0, 0, 3862, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 1360, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 1360, 0, 1354, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 1354, 1354, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 3937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 3954, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 1359, 0, 0, 0, 0, 1359, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 1356, 0, 1356, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 2261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 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, 1357, 0, 1356, 0, 1356, 0, 2283, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 4071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 1356, 0, 0, 1625, 1625, 1625, 0, 0, 2862, 0, 1359, 0, 0, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 1625, 1625, 1356, 0, 0, 4132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 1354, 0, 0, 0, 0, 0, 0, 1625, 2261, 2261, 1625, 0, 1625, 0, 0, 0, 1625, 2862, 2862, 0, 1354, 1625, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 1359, 0, 0, 0, 1625, 0, 4172, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 1625, 0, 1354, 0, 0, 0, 0, 1356, 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, 4211, 4211, 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, 1357, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 4211, 0, 0, 0, 1360, 1360, 1356, 0, 0, 0, 4255, 0, 0, 0, 0, 0, 1360, 0, 0, 1357, 1357, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 1361, 0, 0, 0, 0, 1361, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 4211, 0, 0, 0, 0, 0, 1357, 0, 1357, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2862, 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, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 1625, 0, 0, 0, 1360, 0, 0, 0, 0, 1357, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 2261, 1357, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 1625, 1359, 1359, 1357, 1359, 2862, 2862, 1625, 0, 0, 2261, 2261, 1625, 1625, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 1356, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 1359, 0, 0, 1625, 0, 0, 1361, 0, 1357, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 1359, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 1354, 0, 0, 0, 0, 0, 0, 0, 2862, 2261, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2862, 2862, 1625, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 1357, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 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, 1354, 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, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 1359, 0, 1354, 0, 0, 0, 0, 0, 0, 2862, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 1354, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625, 1359, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 1360, 1360, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 1361, 1361, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 1360, 0, 1360, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 1361, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 1360, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 1361, 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, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 1361, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 1354, 0, 0, 0, 1354, 1354, 1357, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 1360, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 1359, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 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, 1356, 0, 0, 0, 1356, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 1357, 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, 1359, 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, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 1360, 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, 1360, 0, 1361, 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, 1359, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 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, 1357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 0, 1359, 0, 1357, 1357, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 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, 1359, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 1359, 0, 0, 0, 1359, 1359, 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, 1361, 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, 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, 1360, 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, 1361, 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, 0, 0, 0, 1360, 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, 1361, 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, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 1361, 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, 1361, 0, 1360, 0, 0, 0, 1360, 1360, 0, 0, 0, 0, 0, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 2353, 209, 210, 211, 0, 1361, 0, 0, 986, 1361, 1361, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 2354, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 2355, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 2356, 0, 0, 0, 0, 0, 0, 1050, 2357, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 199, 0, 0, 0, 0, 0, 0, 1050, 2263, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 3398, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, -1406, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, -1406, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, -1406, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, -1406, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, -1406, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1406, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, -1406, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1127, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1879, 309, 310, 311, 312, 313, 314, 0, 315, 722, 1880, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 1881, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1882, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 1883, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 199, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 1884, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2696, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1879, 309, 310, 311, 312, 313, 314, 0, 315, 722, 1880, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 1881, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1882, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 1883, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 712, 981, 550, 982, 983, 984, 597, 985, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 2747, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 2273, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 2274, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 2275, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 2276, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 37, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 41, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 920, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 46, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 1531, 2221, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 1049, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 1119, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1774, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 2274, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 3431, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 3441, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 3711, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 3720, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 4208, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 4209, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 4210, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 4209, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 4210, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 2256, 2257, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, -2163, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 4209, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 0, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 0, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 4210, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 712, 981, 550, 982, 983, 1050, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 712, 981, 550, 982, 983, 0, 597, 985, 0, 0, 1050, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 987, 714, 988, 989, 0, 3354, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 1050, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 0, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 0, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 0, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050, 712, 981, 550, 982, 983, 984, 597, 985, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 986, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 987, 714, 988, 989, 0, 223, 224, 225, 226, 227, 990, 991, 228, 229, 992, 993, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 0, 0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 0, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1026, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 1027, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 0, 429, 1029, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 712, 2256, 2257, 0, 0, 0, 0, 0, 0, 0, 1050, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 991, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 1007, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 1021, 360, 361, 362, 363, 364, 0, 365, 0, 677, 366, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 37, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 41, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 1033, 455, 1034, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 920, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 46, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2930, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 991, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 1007, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 1021, 360, 361, 362, 363, 364, 0, 365, 0, 677, 366, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 1033, 455, 1034, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2930, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 991, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 994, 0, 995, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 1007, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 1010, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 1021, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 1024, 371, 372, 373, 374, 375, 376, 377, 0, 378, 1025, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 1028, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1030, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 1033, 455, 1034, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1037, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3462, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 1231, 550, 0, 0, 0, 597, 0, 0, 0, 3988, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1464, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 1465, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 1466, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 609, 1232, 3585, 0, 0, 0, 0, 0, 0, 3586, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 3, 4, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 37, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 41, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 920, 475, 0, 476, 921, 477, 478, 479, 0, 0, 480, 0, 46, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 37, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 41, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 920, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 46, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3425, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 0, 0, 1330, 1231, 550, 0, 0, 760, 597, 0, 0, 0, 3755, 200, 201, 202, 203, 204, 205, 206, 207, 1666, 209, 210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212, 213, 1674, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 1675, 223, 224, 225, 226, 227, 1676, 1677, 228, 229, 1334, 1335, 232, 1678, 233, 234, 235, 236, 0, 1679, 715, 1680, 238, 239, 240, 241, 716, 242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682, 717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 1689, 261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268, 269, 1692, 1693, 270, 271, 1005, 273, 274, 1694, 275, 276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283, 0, 285, 286, 287, 0, 1697, 289, 1698, 290, 1338, 292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296, 297, 1702, 298, 0, 1703, 300, 1704, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1705, 309, 310, 311, 312, 313, 314, 1706, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 1707, 1341, 1708, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 1709, 333, 0, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 1713, 356, 357, 729, 358, 1714, 0, 360, 1344, 362, 363, 364, 1715, 365, 1716, 1717, 3159, 367, 368, 1718, 1719, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 1720, 378, 0, 380, 0, 382, 383, 384, 1721, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 1722, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 1723, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 1724, 420, 421, 422, 423, 424, 1725, 425, 1882, 427, 428, 734, 429, 1347, 431, 1726, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 1727, 443, 444, 1728, 445, 446, 447, 448, 449, 450, 1729, 1348, 1349, 1730, 1731, 453, 0, 455, 0, 1732, 457, 458, 459, 460, 461, 462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735, 1736, 469, 470, 471, 472, 473, 0, 1350, 1737, 476, 735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 3160, 3161, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 761, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 762, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 848, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 849, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 893, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 894, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 895, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 1313, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 1314, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 2466, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 2467, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 199, 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 3972, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 1665, 763, 764, 765, 0, 766, 767, 768, 769, 770, 771, 200, 201, 202, 203, 204, 205, 206, 207, 1666, 209, 210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212, 213, 1674, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 1675, 223, 224, 225, 226, 227, 1676, 1677, 228, 229, 230, 231, 232, 1678, 233, 234, 235, 236, 237, 1679, 715, 1680, 238, 239, 240, 241, 716, 242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682, 717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1689, 261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268, 269, 1692, 1693, 270, 271, 272, 273, 274, 1694, 275, 276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1697, 289, 1698, 290, 291, 292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296, 297, 1702, 298, 299, 1703, 300, 1704, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1705, 309, 310, 311, 312, 313, 314, 1706, 315, 722, 316, 317, 318, 319, 320, 321, 322, 1707, 323, 1708, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 1709, 333, 334, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 1713, 356, 357, 729, 358, 1714, 359, 360, 361, 362, 363, 364, 1715, 365, 1716, 1717, 366, 367, 368, 1718, 1719, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 1720, 378, 379, 380, 381, 382, 383, 384, 1721, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 1722, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 1723, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 1724, 420, 421, 422, 423, 424, 1725, 425, 426, 427, 428, 734, 429, 430, 431, 1726, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 1727, 443, 444, 1728, 445, 446, 447, 448, 449, 450, 1729, 451, 452, 1730, 1731, 453, 454, 455, 456, 1732, 457, 458, 459, 460, 461, 462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735, 1736, 469, 470, 471, 472, 473, 474, 475, 1737, 476, 735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 1742, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 682, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 3851, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1346, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 0, 2025, 0, 0, 0, 0, 0, 0, 495, 496, 497, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1796, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1346, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 0, 199, 1231, 550, 0, 0, 0, 597, 495, 496, 497, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1796, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1655, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1464, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 1465, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 1466, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 1231, 550, 0, 0, 0, 597, 609, 1232, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1660, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1464, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 1465, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 1466, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 1231, 550, 0, 0, 0, 597, 609, 1232, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1464, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 1465, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 1466, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 597, 609, 1232, 0, 0, 200, 598, 202, 203, 204, 205, 206, 207, 599, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 600, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 601, 291, 292, 0, 293, 0, 602, 0, 603, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 604, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 605, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 606, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 607, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 608, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1665, 4263, 550, 0, 0, 0, 597, 609, 610, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1666, 209, 210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212, 213, 1674, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 1675, 223, 224, 225, 226, 227, 1676, 1677, 228, 229, 230, 231, 232, 1678, 233, 234, 235, 236, 237, 1679, 715, 1680, 238, 239, 240, 241, 716, 242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682, 717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1689, 261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268, 269, 1692, 1693, 270, 271, 272, 273, 274, 1694, 275, 276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1697, 289, 1698, 290, 291, 292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296, 297, 1702, 298, 299, 1703, 300, 1704, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1705, 309, 310, 311, 312, 313, 314, 1706, 315, 722, 316, 317, 318, 319, 320, 321, 322, 1707, 323, 1708, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 1709, 333, 334, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 1713, 356, 357, 729, 358, 1714, 359, 360, 361, 362, 363, 364, 1715, 365, 1716, 1717, 366, 367, 368, 1718, 1719, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 1720, 378, 379, 380, 381, 382, 383, 384, 1721, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 1722, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 1723, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 1724, 420, 421, 422, 423, 424, 1725, 425, 426, 427, 428, 734, 429, 430, 431, 1726, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 1727, 443, 444, 1728, 445, 446, 447, 448, 449, 450, 1729, 451, 452, 1730, 1731, 453, 454, 455, 456, 1732, 457, 458, 459, 460, 461, 462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735, 1736, 469, 470, 471, 472, 473, 474, 475, 1737, 476, 735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1666, 209, 210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212, 213, 1674, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 1675, 223, 224, 225, 226, 227, 1676, 1677, 228, 229, 230, 231, 232, 1678, 233, 234, 235, 236, 237, 1679, 715, 1680, 238, 239, 240, 241, 716, 242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682, 717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1689, 261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268, 269, 1692, 1693, 270, 271, 272, 273, 274, 1694, 275, 276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1697, 289, 1698, 290, 291, 292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296, 297, 1702, 298, 299, 1703, 300, 1704, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1705, 309, 310, 311, 312, 313, 314, 1706, 315, 722, 316, 317, 318, 319, 320, 321, 322, 1707, 323, 1708, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 1709, 333, 334, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 1713, 356, 357, 729, 358, 1714, 359, 360, 361, 362, 363, 364, 1715, 365, 1716, 1717, 366, 367, 368, 1718, 1719, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 1720, 378, 379, 380, 381, 382, 383, 384, 1721, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 1722, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 1723, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 1724, 420, 421, 422, 423, 424, 1725, 425, 426, 427, 428, 734, 429, 430, 431, 1726, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 1727, 443, 444, 1728, 445, 446, 447, 448, 449, 450, 1729, 451, 452, 1730, 1731, 453, 454, 455, 456, 1732, 457, 458, 459, 460, 461, 462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735, 1736, 469, 470, 471, 472, 473, 474, 475, 1737, 476, 735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 2531, 205, 206, 207, 1666, 209, 210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212, 213, 1674, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 1675, 223, 224, 225, 226, 227, 1676, 1677, 228, 229, 230, 231, 232, 1678, 233, 234, 235, 236, 237, 1679, 715, 1680, 238, 239, 240, 241, 716, 242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682, 717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1689, 261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268, 269, 1692, 1693, 270, 271, 272, 2532, 274, 1694, 275, 276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1697, 289, 1698, 290, 291, 292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296, 297, 1702, 298, 299, 1703, 300, 1704, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1705, 309, 310, 311, 312, 313, 314, 1706, 315, 722, 316, 317, 318, 319, 320, 321, 322, 1707, 323, 1708, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 1709, 333, 334, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 1713, 356, 357, 729, 358, 1714, 359, 360, 361, 362, 363, 364, 1715, 365, 1716, 1717, 366, 367, 368, 1718, 1719, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 1720, 378, 379, 380, 381, 382, 383, 384, 1721, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 1722, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 1723, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 1724, 420, 421, 422, 423, 424, 1725, 2533, 426, 427, 428, 734, 429, 430, 431, 1726, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 1727, 443, 444, 1728, 445, 446, 447, 448, 449, 450, 1729, 451, 452, 1730, 1731, 453, 454, 455, 456, 1732, 457, 458, 459, 460, 461, 462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735, 1736, 469, 470, 471, 472, 473, 474, 475, 1737, 476, 735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 878, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 219, 220, 714, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 887, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 728, 352, 353, 354, 355, 0, 356, 357, 729, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 730, 731, 732, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 734, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 1820, 233, 234, 235, 236, 237, 0, 0, 1895, 238, 239, 240, 241, 0, 242, 243, 1821, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 1896, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 1823, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 1824, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 1825, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 1820, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 1821, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 1896, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 1823, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 2732, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 1824, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 1825, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 647, 206, 207, 616, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 617, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 648, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 618, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 619, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 616, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 617, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 2434, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 618, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 619, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 1820, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 1821, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 1896, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 1823, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 1824, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 1825, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 616, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 617, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 618, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 619, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1464, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 1465, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 1466, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1491, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 1492, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 1493, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 1494, 294, 0, 0, 0, 1495, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 1496, 1497, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 1498, 416, 417, 418, 419, 0, 1499, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 1500, 445, 1501, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 1502, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 617, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 618, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 619, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 3, 4, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 921, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 1640, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 1985, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 1986, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 3, 4, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 2515, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 2516, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 2527, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 2528, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 542, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 543, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 641, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 642, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 643, 452, 0, 0, 644, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 671, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 672, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 673, 452, 0, 0, 674, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 677, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 781, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 677, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 871, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 1078, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 1089, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 658, 229, 230, 231, 1090, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 661, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 662, 410, 411, 412, 413, 414, 663, 416, 417, 418, 419, 0, 420, 421, 422, 423, 1082, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 665, 452, 0, 0, 666, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 667, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1186, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 677, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1454, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 2342, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 2343, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 2344, 445, 446, 2345, 448, 2346, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 2347, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 2794, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 3398, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 3411, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 3616, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 3618, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 3620, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 3975, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 631, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 639, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 658, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 659, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 660, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 661, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 662, 410, 411, 412, 413, 414, 663, 416, 417, 418, 419, 0, 420, 421, 422, 423, 664, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 665, 452, 0, 0, 666, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 667, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 689, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 757, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 778, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 787, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 789, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 839, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 860, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 883, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 889, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 898, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 900, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 902, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 904, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 907, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 909, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 910, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 913, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 658, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 661, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 662, 410, 411, 412, 413, 414, 663, 416, 417, 418, 419, 0, 420, 421, 422, 423, 1082, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 665, 452, 0, 0, 666, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 667, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1375, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1402, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1430, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1432, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 1434, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 1525, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 1793, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 0, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 658, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 661, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 662, 410, 411, 412, 413, 414, 663, 416, 417, 418, 419, 0, 420, 421, 422, 423, 1082, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 1811, 447, 448, 449, 450, 0, 665, 452, 0, 0, 666, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 667, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 658, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 661, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 662, 410, 411, 412, 413, 414, 1871, 416, 417, 418, 419, 0, 420, 421, 422, 423, 1872, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 665, 452, 0, 0, 1873, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 667, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 2117, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 2445, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 658, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 661, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 662, 410, 411, 412, 413, 414, 663, 416, 417, 418, 419, 0, 420, 421, 422, 423, 1872, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 665, 452, 0, 0, 1873, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 667, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 1879, 309, 310, 311, 312, 313, 314, 0, 315, 722, 1880, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 1881, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1882, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 1883, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 199, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 2518, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 2520, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 2612, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 1867, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1882, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 3264, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 1930, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1346, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 3083, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1346, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 199, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 0, 216, 217, 218, 219, 220, 0, 221, 222, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 0, 0, 0, 238, 239, 240, 241, 0, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 0, 250, 251, 0, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 289, 0, 290, 291, 292, 0, 293, 0, 294, 0, 0, 0, 295, 296, 297, 0, 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, 0, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 0, 316, 317, 318, 319, 320, 321, 322, 0, 323, 0, 324, 0, 0, 325, 0, 326, 327, 328, 329, 330, 331, 332, 0, 333, 334, 0, 335, 0, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 0, 356, 357, 0, 358, 0, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 369, 0, 0, 0, 370, 371, 372, 373, 374, 0, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 0, 391, 392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 0, 429, 430, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 451, 452, 0, 0, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 474, 475, 0, 476, 0, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1346, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 1882, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 1005, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 1338, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 1344, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1345, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 0, 427, 428, 734, 429, 1347, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 1350, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, 214, 215, 713, 216, 217, 218, 0, 0, 714, 0, 0, 0, 223, 224, 225, 226, 227, 0, 0, 228, 229, 0, 0, 232, 0, 233, 234, 235, 236, 0, 0, 715, 0, 238, 239, 240, 241, 716, 242, 243, 0, 244, 245, 246, 247, 248, 249, 0, 717, 250, 251, 0, 0, 0, 718, 0, 0, 0, 252, 253, 254, 255, 256, 257, 0, 0, 260, 0, 261, 0, 262, 263, 264, 265, 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 0, 278, 279, 0, 280, 281, 282, 283, 0, 285, 286, 287, 0, 0, 289, 0, 290, 0, 292, 0, 293, 0, 294, 719, 0, 720, 295, 296, 297, 0, 298, 0, 0, 300, 0, 301, 302, 303, 304, 305, 721, 306, 307, 308, 0, 309, 310, 311, 312, 313, 314, 0, 315, 722, 0, 317, 318, 319, 320, 0, 0, 0, 0, 0, 324, 723, 724, 325, 725, 326, 327, 328, 329, 330, 331, 332, 0, 333, 0, 726, 335, 727, 0, 336, 337, 338, 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 0, 728, 0, 353, 354, 0, 0, 356, 357, 729, 358, 0, 0, 360, 0, 362, 363, 364, 0, 365, 0, 0, 366, 367, 368, 0, 0, 0, 730, 731, 732, 0, 371, 372, 373, 374, 375, 376, 377, 0, 378, 0, 380, 0, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 0, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 733, 409, 410, 0, 412, 413, 414, 415, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 0, 425, 0, 427, 428, 734, 429, 0, 431, 0, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 0, 0, 0, 0, 453, 0, 455, 0, 0, 457, 458, 459, 460, 461, 462, 463, 0, 0, 464, 465, 466, 467, 468, 0, 0, 469, 470, 471, 472, 473, 0, 0, 0, 476, 735, 477, 478, 479, 0, 0, 480, 0, 0, 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 496, 497 }; static const yytype_int16 yycheck[] = { 0, 0, 0, 0, 0, 0, 47, 16, 164, 524, 184, 11, 33, 888, 21, 24, 925, 706, 659, 26, 20, 737, 20, 617, 618, 619, 896, 711, 1207, 623, 892, 1212, 961, 7, 947, 1107, 1173, 797, 1346, 1495, 14, 1032, 776, 780, 759, 1596, 21, 47, 832, 565, 172, 26, 567, 569, 788, 12, 2199, 1109, 180, 974, 850, 42, 181, 579, 1216, 551, 1565, 186, 1303, 859, 666, 1003, 1004, 22, 1225, 1212, 195, 41, 1107, 17, 1579, 2357, 1363, 2481, 33, 2755, 1399, 1929, 1160, 2531, 1022, 2533, 516, 1207, 1384, 879, 1384, 2962, 779, 20, 1384, 782, 1384, 837, 1156, 1384, 840, 1531, 1384, 790, 916, 845, 1757, 1976, 2676, 1267, 2179, 2658, 852, 2694, 1130, 1272, 1273, 2355, 3047, 1887, 1888, 861, 1627, 2353, 2354, 1160, 1259, 2406, 3244, 2676, 560, 3265, 2996, 1452, 3003, 0, 3226, 586, 0, 151, 166, 0, 0, 1199, 2935, 2936, 0, 1160, 2290, 3659, 38, 3467, 166, 2974, 2868, 753, 1107, 1401, 788, 9, 166, 703, 2930, 703, 51, 0, 44, 1408, 11, 0, 662, 2680, 2681, 2682, 2683, 2684, 2685, 3207, 5, 31, 0, 5, 11, 0, 51, 105, 903, 58, 3905, 66, 5, 0, 3886, 5, 5, 35, 18, 914, 13, 37, 2021, 13, 5, 79, 925, 5, 22, 36, 103, 1160, 13, 150, 2060, 29, 992, 993, 72, 35, 37, 105, 190, 145, 0, 2351, 150, 5, 51, 96, 5, 22, 830, 9, 3898, 5, 58, 22, 29, 66, 1050, 25, 1018, 5, 108, 5, 22, 5, 5, 5, 150, 170, 3788, 182, 151, 0, 5, 189, 22, 188, 58, 4, 2483, 68, 9, 5, 9, 196, 242, 150, 9, 76, 2412, 2399, 127, 193, 83, 22, 103, 3791, 2126, 246, 2128, 242, 150, 64, 275, 230, 122, 259, 1366, 3, 4, 5, 5, 163, 815, 9, 242, 9, 120, 60, 110, 3170, 4, 245, 70, 158, 152, 9, 51, 247, 3858, 77, 232, 96, 34, 150, 219, 183, 290, 150, 26, 27, 272, 150, 319, 115, 18, 117, 1094, 1051, 150, 1366, 24, 150, 0, 170, 22, 4208, 104, 170, 5, 22, 32, 29, 524, 142, 155, 319, 4042, 219, 170, 3865, 1349, 170, 1076, 78, 252, 106, 392, 141, 280, 3812, 259, 152, 392, 68, 384, 5, 834, 130, 1382, 1092, 150, 76, 32, 897, 1097, 1098, 424, 76, 3890, 39, 428, 511, 1846, 3836, 147, 567, 1400, 103, 11, 180, 170, 290, 117, 5, 430, 522, 1336, 1337, 5, 526, 430, 150, 354, 4276, 1344, 310, 174, 296, 30, 18, 537, 309, 68, 1366, 11, 83, 167, 295, 912, 111, 319, 170, 279, 68, 208, 555, 120, 296, 1311, 953, 229, 428, 115, 426, 564, 11, 103, 1315, 310, 963, 3472, 149, 394, 151, 68, 230, 301, 169, 426, 156, 242, 975, 426, 197, 3970, 424, 396, 305, 4008, 428, 36, 408, 245, 426, 3980, 108, 1189, 352, 2693, 296, 1530, 342, 188, 255, 1197, 4143, 927, 266, 426, 2990, 8, 103, 426, 11, 978, 426, 297, 155, 376, 506, 66, 2256, 2257, 961, 430, 211, 2261, 339, 1187, 4195, 426, 3071, 430, 4199, 372, 293, 364, 430, 430, 327, 273, 120, 360, 1255, 1306, 1257, 413, 305, 4237, 339, 1265, 1601, 3071, 352, 1247, 426, 430, 1250, 1251, 1327, 1590, 352, 327, 1301, 551, 552, 2301, 2302, 587, 379, 4236, 430, 706, 352, 3662, 424, 426, 4087, 372, 428, 388, 296, 430, 426, 1334, 1335, 345, 383, 347, 505, 430, 430, 374, 1343, 1601, 1486, 1882, 335, 356, 426, 383, 504, 426, 425, 1634, 589, 509, 422, 586, 587, 586, 392, 1324, 598, 413, 600, 1456, 602, 2438, 1312, 3461, 422, 429, 608, 191, 1089, 429, 237, 3630, 428, 426, 1125, 1891, 1147, 367, 1147, 1206, 429, 3324, 426, 429, 1243, 426, 426, 631, 598, 427, 600, 429, 602, 585, 426, 4134, 1493, 426, 608, 609, 610, 3451, 297, 612, 3401, 1502, 815, 651, 3405, 3219, 417, 418, 327, 393, 658, 170, 3675, 661, 662, 663, 426, 1601, 429, 424, 3969, 426, 352, 428, 3238, 628, 8, 587, 412, 426, 2945, 426, 191, 426, 426, 426, 695, 417, 418, 417, 418, 802, 426, 417, 418, 384, 3188, 393, 695, 429, 290, 812, 426, 4196, 430, 1154, 695, 392, 697, 697, 697, 697, 697, 697, 1941, 352, 412, 1858, 1418, 1887, 417, 418, 417, 418, 638, 1895, 352, 1427, 681, 2950, 426, 1431, 417, 418, 1529, 1239, 1531, 1437, 1438, 248, 333, 334, 430, 392, 1805, 659, 1541, 352, 372, 2500, 1545, 2502, 16, 1140, 5, 1455, 867, 710, 1553, 1554, 5, 8, 103, 677, 11, 103, 96, 96, 2256, 2257, 3783, 1566, 1567, 2261, 11, 685, 51, 3790, 427, 3, 429, 96, 1577, 96, 698, 159, 108, 1805, 1237, 660, 5, 18, 150, 664, 98, 759, 1557, 1558, 292, 752, 18, 152, 8, 96, 103, 11, 2637, 2638, 129, 1805, 413, 252, 159, 2301, 2302, 419, 420, 421, 422, 2930, 132, 424, 1405, 426, 427, 428, 2366, 430, 2632, 232, 230, 2635, 2636, 831, 3755, 2639, 3757, 1876, 107, 417, 418, 419, 420, 421, 422, 2649, 23, 95, 22, 697, 141, 75, 697, 2978, 1915, 697, 697, 1918, 1307, 163, 697, 183, 419, 420, 421, 422, 187, 150, 132, 1499, 1500, 1805, 153, 151, 159, 278, 246, 1326, 145, 3977, 3978, 74, 1587, 230, 83, 352, 2056, 342, 3275, 3000, 132, 232, 74, 120, 105, 303, 106, 248, 392, 237, 1918, 125, 120, 744, 413, 414, 415, 2658, 417, 418, 419, 420, 421, 422, 912, 219, 248, 208, 222, 112, 196, 190, 1371, 1428, 3, 2676, 5, 925, 842, 4028, 112, 252, 1436, 232, 1439, 4052, 430, 2105, 927, 108, 927, 115, 20, 870, 191, 230, 1451, 788, 862, 863, 864, 175, 152, 244, 191, 230, 155, 167, 26, 27, 958, 925, 40, 430, 372, 250, 307, 930, 3742, 932, 218, 934, 220, 936, 1423, 938, 939, 940, 378, 2095, 978, 1915, 945, 261, 1918, 191, 237, 1492, 258, 430, 312, 1496, 237, 1498, 352, 3746, 1501, 986, 108, 83, 3751, 248, 2753, 3754, 378, 74, 310, 184, 3860, 321, 120, 1424, 342, 342, 183, 83, 3675, 1006, 102, 98, 1050, 296, 237, 316, 307, 292, 237, 342, 3949, 342, 1462, 378, 259, 314, 102, 74, 4135, 42, 952, 303, 264, 259, 248, 112, 319, 366, 324, 1036, 248, 133, 372, 354, 1752, 144, 1052, 413, 5, 321, 5, 1563, 974, 1050, 343, 290, 1062, 133, 4164, 260, 3499, 4142, 428, 252, 290, 112, 1072, 272, 1239, 8, 260, 321, 11, 413, 414, 415, 163, 417, 418, 419, 420, 421, 422, 1089, 319, 378, 1092, 1093, 11, 28, 98, 1097, 1098, 319, 385, 407, 2850, 76, 184, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 103, 303, 4031, 3967, 36, 2043, 1118, 1133, 1134, 352, 1136, 1092, 3981, 52, 4144, 103, 1097, 1098, 335, 1133, 1134, 60, 1136, 219, 365, 426, 222, 1133, 1134, 107, 1136, 392, 373, 1599, 66, 376, 346, 103, 44, 103, 354, 3423, 377, 270, 166, 96, 163, 346, 170, 2912, 2913, 3433, 103, 417, 418, 419, 420, 421, 422, 97, 268, 1565, 1287, 417, 418, 419, 420, 421, 422, 430, 3449, 191, 1103, 359, 260, 1579, 1972, 74, 3946, 1149, 394, 3419, 154, 95, 3414, 207, 372, 430, 94, 301, 413, 414, 415, 3431, 417, 418, 419, 420, 421, 422, 303, 153, 219, 2281, 260, 222, 0, 1894, 1189, 2287, 2497, 312, 190, 313, 310, 112, 1197, 2504, 60, 1150, 4091, 4092, 60, 1944, 426, 4094, 246, 312, 331, 427, 280, 1952, 430, 1954, 76, 173, 3305, 252, 2119, 211, 1184, 342, 342, 191, 232, 429, 2281, 3815, 1263, 105, 374, 1232, 2287, 2129, 1941, 2123, 1436, 342, 1383, 191, 346, 373, 430, 175, 159, 103, 1247, 133, 3815, 1250, 1251, 321, 211, 3401, 1399, 1962, 182, 3405, 11, 380, 1211, 232, 2078, 2079, 2080, 2081, 386, 1218, 130, 1417, 346, 392, 3873, 310, 2090, 380, 1266, 4166, 1426, 384, 248, 323, 426, 3071, 1991, 147, 218, 392, 220, 312, 3131, 407, 259, 374, 2499, 1246, 3137, 3138, 3139, 3140, 3141, 3142, 372, 2113, 230, 426, 1847, 1452, 259, 2791, 2281, 1312, 275, 66, 2985, 230, 2287, 193, 18, 342, 259, 426, 241, 290, 24, 2850, 4217, 1278, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2374, 290, 305, 1292, 314, 260, 259, 426, 8, 1495, 3237, 11, 1385, 1893, 319, 345, 1305, 347, 232, 380, 2883, 2499, 1810, 332, 106, 1563, 335, 1243, 28, 4256, 319, 392, 407, 343, 105, 2823, 232, 290, 57, 58, 370, 237, 319, 2118, 308, 341, 342, 374, 309, 2912, 2913, 426, 362, 356, 427, 2225, 2710, 430, 2710, 2134, 2135, 145, 2710, 2138, 2710, 426, 280, 2710, 2584, 2144, 2710, 155, 313, 273, 145, 1899, 3282, 273, 3284, 3200, 4019, 197, 120, 18, 2575, 167, 170, 352, 312, 24, 286, 346, 2171, 426, 170, 2531, 2532, 2533, 1462, 426, 1462, 342, 259, 2780, 2274, 120, 177, 413, 414, 415, 4144, 417, 418, 419, 420, 421, 422, 426, 342, 356, 354, 1937, 3762, 3763, 131, 378, 2201, 417, 418, 419, 420, 421, 422, 290, 1472, 2305, 1474, 1522, 1476, 5, 1478, 3, 1480, 9, 3906, 386, 1484, 1935, 11, 1513, 1513, 1513, 1513, 1513, 1513, 8, 380, 19, 11, 230, 394, 232, 319, 115, 171, 117, 2443, 367, 392, 290, 2340, 367, 1461, 36, 1990, 28, 145, 1550, 1463, 3985, 1508, 292, 413, 4, 60, 120, 3693, 139, 9, 321, 66, 191, 76, 392, 393, 305, 165, 428, 319, 49, 76, 290, 426, 66, 1543, 1544, 75, 2031, 1521, 2505, 1499, 1500, 1551, 75, 290, 299, 1555, 1556, 294, 2655, 129, 259, 2531, 2532, 2533, 2740, 1528, 103, 2743, 105, 319, 1570, 141, 1572, 2468, 250, 145, 103, 427, 2675, 372, 430, 1606, 319, 312, 95, 356, 115, 248, 117, 3371, 3372, 290, 393, 1593, 124, 1595, 250, 2108, 115, 3746, 117, 2655, 125, 105, 3751, 259, 2845, 3754, 3184, 154, 3778, 412, 3780, 342, 1648, 3482, 3483, 187, 294, 232, 319, 2675, 139, 393, 237, 426, 2167, 2367, 173, 242, 2869, 2142, 344, 154, 4057, 305, 290, 3784, 208, 294, 177, 259, 412, 319, 279, 425, 309, 170, 1847, 2458, 430, 380, 175, 150, 307, 392, 426, 1801, 259, 80, 3961, 172, 1806, 259, 319, 1809, 211, 191, 192, 304, 200, 201, 290, 170, 244, 177, 3200, 191, 307, 1629, 392, 393, 252, 393, 214, 2655, 356, 1831, 1638, 290, 211, 344, 20, 1840, 290, 232, 38, 426, 173, 1846, 237, 105, 412, 232, 2189, 2675, 251, 218, 165, 220, 2446, 235, 40, 242, 426, 344, 73, 59, 3024, 230, 237, 1865, 2484, 319, 2390, 242, 145, 48, 230, 259, 232, 385, 3572, 3573, 248, 309, 273, 151, 1770, 392, 393, 264, 426, 2364, 3004, 358, 165, 258, 1892, 286, 2512, 3898, 413, 414, 415, 368, 417, 418, 419, 420, 421, 422, 197, 392, 393, 179, 9, 1792, 1792, 1815, 1770, 1817, 1916, 426, 2273, 280, 2275, 2276, 301, 2485, 194, 2719, 2322, 2519, 295, 2521, 291, 427, 2885, 193, 430, 205, 1936, 3369, 426, 1939, 366, 426, 246, 3946, 345, 246, 347, 1753, 259, 1755, 251, 430, 1754, 8, 315, 356, 11, 1957, 344, 2892, 346, 340, 427, 330, 426, 430, 367, 1967, 345, 370, 347, 11, 232, 28, 367, 2885, 48, 2256, 2257, 290, 1980, 1871, 2261, 294, 290, 358, 365, 427, 294, 1989, 430, 3371, 3372, 370, 373, 368, 36, 376, 5, 3032, 2872, 2873, 141, 10, 303, 304, 145, 8, 319, 386, 11, 18, 1857, 319, 2810, 38, 2608, 3049, 3050, 409, 280, 2613, 2301, 2302, 141, 84, 66, 34, 145, 427, 300, 193, 430, 2430, 2431, 249, 2433, 417, 418, 419, 420, 421, 422, 413, 414, 415, 428, 417, 418, 419, 420, 421, 422, 2986, 303, 304, 600, 601, 602, 2885, 2816, 605, 606, 607, 249, 312, 326, 3705, 246, 208, 425, 615, 259, 2688, 345, 430, 347, 3150, 307, 3152, 8, 392, 3155, 11, 3157, 246, 392, 1977, 1944, 2456, 251, 208, 151, 3731, 3732, 342, 1952, 21, 1954, 345, 2910, 347, 26, 290, 18, 244, 1912, 294, 36, 129, 24, 392, 393, 3066, 42, 344, 307, 3070, 2459, 3072, 179, 141, 424, 2013, 426, 145, 428, 244, 2667, 2668, 2669, 2021, 319, 380, 352, 194, 191, 421, 66, 4163, 4143, 145, 426, 3839, 428, 392, 205, 3870, 427, 2814, 64, 430, 421, 344, 246, 84, 3218, 426, 1581, 428, 3070, 1584, 3072, 392, 393, 409, 427, 187, 227, 430, 2567, 2763, 3815, 249, 307, 2767, 2768, 3366, 2770, 426, 2772, 2773, 427, 38, 2040, 430, 307, 2077, 208, 2781, 191, 427, 2879, 248, 430, 410, 411, 426, 3258, 113, 2203, 392, 393, 965, 966, 2208, 120, 3001, 3002, 123, 44, 344, 2102, 2554, 409, 2556, 2097, 2097, 2108, 2811, 193, 2817, 151, 344, 244, 3243, 2064, 3040, 3694, 3695, 3696, 3697, 252, 419, 2709, 426, 234, 426, 166, 428, 3066, 300, 170, 149, 3070, 427, 3072, 248, 430, 430, 179, 85, 2142, 427, 426, 2061, 430, 3900, 427, 392, 393, 175, 427, 191, 192, 194, 48, 2322, 2609, 150, 427, 392, 393, 430, 427, 109, 205, 430, 427, 207, 427, 430, 3920, 430, 427, 427, 427, 430, 430, 430, 124, 189, 2633, 426, 128, 319, 427, 427, 227, 430, 430, 424, 426, 426, 2701, 426, 2703, 235, 426, 428, 428, 2952, 146, 395, 312, 2171, 230, 246, 232, 345, 248, 347, 2689, 2360, 2691, 3705, 426, 161, 242, 2384, 427, 134, 427, 430, 3714, 430, 250, 3769, 427, 426, 307, 430, 2939, 428, 342, 259, 366, 427, 2351, 134, 430, 3731, 3732, 427, 392, 393, 430, 3147, 413, 414, 415, 134, 417, 418, 419, 420, 421, 422, 145, 233, 234, 300, 2942, 2943, 134, 427, 290, 344, 430, 345, 294, 347, 380, 2305, 928, 2752, 427, 931, 429, 933, 246, 935, 2789, 937, 392, 323, 2399, 941, 2739, 427, 2391, 2392, 430, 237, 424, 319, 427, 427, 428, 430, 307, 245, 2809, 414, 415, 2415, 417, 418, 419, 420, 421, 422, 206, 2764, 2305, 392, 393, 105, 426, 427, 18, 429, 427, 374, 427, 430, 24, 430, 2319, 427, 8, 246, 430, 11, 278, 374, 427, 344, 312, 430, 427, 427, 427, 430, 430, 430, 426, 2338, 427, 426, 28, 430, 427, 377, 427, 430, 427, 430, 36, 430, 2351, 427, 427, 429, 42, 430, 64, 2367, 342, 700, 2402, 702, 3415, 2345, 2346, 2347, 414, 415, 2829, 417, 418, 419, 420, 421, 422, 392, 393, 241, 66, 2380, 2380, 2380, 2380, 2380, 2380, 309, 3124, 427, 2849, 2365, 430, 2367, 427, 3446, 427, 430, 380, 430, 2399, 3856, 427, 2402, 197, 430, 427, 113, 426, 430, 392, 426, 60, 427, 120, 2874, 430, 123, 8, 31, 2344, 11, 3920, 427, 427, 392, 430, 430, 3499, 232, 395, 427, 2550, 3147, 430, 427, 38, 427, 430, 2557, 430, 3406, 426, 3408, 426, 0, 36, 427, 2456, 3377, 430, 2910, 42, 2850, 38, 361, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2390, 427, 427, 175, 430, 430, 427, 259, 427, 430, 66, 430, 3267, 427, 166, 145, 430, 134, 170, 2658, 2883, 427, 427, 427, 430, 430, 430, 73, 427, 427, 3674, 430, 430, 21, 276, 134, 426, 2676, 134, 191, 192, 395, 134, 2627, 134, 430, 134, 3584, 134, 2912, 2913, 134, 246, 134, 134, 207, 246, 134, 230, 134, 232, 134, 83, 2537, 342, 31, 54, 426, 206, 145, 242, 246, 146, 145, 426, 5, 5, 426, 250, 67, 232, 426, 3353, 235, 145, 426, 426, 259, 269, 3499, 3584, 2565, 80, 426, 426, 426, 248, 5, 5, 251, 426, 426, 426, 3279, 426, 426, 426, 426, 129, 5, 426, 3287, 3288, 5, 170, 426, 426, 3297, 290, 426, 141, 426, 294, 426, 145, 426, 426, 426, 426, 150, 118, 426, 426, 256, 155, 191, 192, 158, 430, 160, 31, 86, 206, 31, 145, 145, 244, 319, 319, 352, 352, 307, 428, 352, 352, 352, 307, 352, 2632, 147, 352, 2635, 2636, 76, 152, 2639, 187, 307, 311, 134, 203, 323, 352, 352, 3584, 2649, 246, 237, 352, 235, 2654, 68, 373, 246, 2658, 175, 426, 208, 242, 352, 352, 426, 248, 76, 430, 97, 2780, 259, 374, 352, 48, 374, 2676, 352, 2791, 377, 352, 48, 352, 250, 2794, 352, 3586, 352, 37, 2689, 3594, 2691, 2658, 352, 352, 37, 307, 244, 352, 2665, 2666, 21, 2812, 430, 2670, 252, 352, 352, 246, 395, 2676, 246, 191, 426, 3221, 3222, 392, 426, 426, 31, 383, 30, 2722, 20, 134, 232, 103, 374, 214, 386, 426, 242, 385, 232, 248, 413, 414, 415, 2704, 417, 418, 419, 420, 421, 422, 31, 145, 425, 68, 31, 297, 2751, 2752, 431, 197, 426, 3884, 308, 134, 134, 3467, 374, 276, 134, 374, 134, 134, 241, 352, 236, 150, 2762, 2762, 388, 3225, 8, 3478, 97, 11, 2695, 350, 409, 426, 224, 426, 3292, 3293, 3294, 224, 3709, 11, 430, 350, 307, 319, 342, 426, 426, 118, 313, 352, 354, 316, 36, 2720, 150, 427, 3509, 3510, 42, 430, 3200, 2728, 164, 164, 187, 2732, 2930, 426, 366, 247, 242, 352, 352, 374, 430, 307, 147, 342, 75, 2746, 307, 152, 66, 348, 417, 418, 419, 420, 421, 422, 426, 389, 374, 391, 392, 237, 361, 427, 430, 237, 2817, 195, 426, 195, 352, 3581, 309, 197, 237, 246, 38, 326, 3565, 3566, 253, 245, 352, 18, 430, 352, 290, 386, 280, 24, 307, 316, 424, 198, 352, 427, 428, 429, 4053, 352, 191, 31, 3000, 2920, 191, 191, 374, 191, 191, 2810, 128, 2896, 374, 2930, 245, 413, 30, 426, 424, 424, 352, 3071, 352, 352, 426, 352, 413, 134, 316, 64, 145, 147, 3027, 242, 316, 426, 134, 3985, 392, 246, 246, 3377, 162, 162, 2920, 145, 3437, 31, 166, 134, 246, 246, 170, 145, 2930, 430, 170, 170, 316, 170, 395, 3850, 19, 156, 2949, 2922, 2923, 2924, 2925, 221, 430, 276, 246, 191, 192, 430, 48, 3759, 113, 241, 197, 427, 427, 427, 150, 120, 263, 342, 123, 207, 150, 427, 3679, 427, 3681, 3682, 301, 3371, 3372, 430, 255, 409, 307, 352, 427, 3692, 389, 427, 313, 3104, 13, 427, 3107, 427, 13, 426, 3921, 235, 427, 409, 389, 297, 427, 246, 208, 426, 2927, 2928, 2929, 380, 248, 427, 413, 173, 427, 134, 427, 342, 427, 344, 175, 427, 352, 246, 3480, 249, 426, 426, 395, 352, 352, 237, 3544, 3545, 181, 3547, 361, 134, 134, 352, 250, 3631, 208, 264, 3985, 264, 216, 371, 216, 216, 307, 352, 3508, 352, 352, 307, 319, 352, 307, 352, 352, 386, 352, 3988, 3520, 307, 3071, 3992, 3993, 352, 134, 352, 352, 352, 37, 230, 352, 232, 191, 191, 191, 191, 191, 3088, 3087, 323, 3091, 242, 3093, 191, 191, 3, 424, 427, 3774, 250, 31, 222, 292, 310, 3071, 4006, 208, 413, 259, 361, 427, 96, 3564, 427, 430, 430, 3117, 3118, 392, 50, 3087, 426, 3989, 427, 246, 245, 31, 3925, 3990, 159, 3131, 352, 374, 374, 307, 307, 3137, 3138, 3139, 3140, 3141, 3142, 3996, 294, 3998, 430, 3147, 307, 249, 132, 3151, 82, 132, 191, 424, 126, 150, 11, 145, 385, 427, 427, 427, 427, 58, 426, 150, 427, 319, 426, 4234, 427, 430, 427, 31, 426, 158, 427, 427, 247, 3147, 145, 374, 417, 418, 419, 420, 421, 422, 3190, 3191, 3192, 3193, 3160, 3161, 374, 361, 352, 426, 352, 181, 145, 361, 352, 3171, 352, 137, 352, 307, 427, 66, 3914, 307, 4234, 427, 427, 96, 4281, 191, 361, 195, 191, 427, 3190, 427, 4289, 377, 425, 425, 145, 426, 392, 427, 176, 22, 23, 430, 168, 395, 27, 71, 430, 430, 31, 32, 33, 426, 35, 344, 352, 38, 39, 427, 41, 3255, 43, 3889, 3709, 316, 155, 4281, 150, 3254, 3254, 191, 3968, 197, 191, 4289, 191, 3187, 3437, 203, 191, 150, 427, 426, 285, 3785, 3960, 48, 194, 430, 4081, 194, 254, 427, 3401, 427, 3206, 427, 3405, 426, 426, 48, 160, 390, 4234, 4001, 390, 427, 232, 427, 242, 430, 352, 150, 392, 66, 413, 361, 3228, 3313, 3820, 175, 3705, 237, 237, 430, 430, 352, 134, 191, 413, 3714, 110, 237, 152, 150, 374, 3297, 374, 31, 388, 121, 96, 425, 316, 392, 426, 392, 3731, 3732, 150, 4281, 426, 178, 249, 150, 426, 426, 285, 4289, 379, 426, 4222, 427, 329, 427, 0, 194, 426, 391, 294, 262, 427, 427, 298, 246, 286, 427, 392, 145, 304, 352, 31, 426, 426, 237, 217, 311, 173, 426, 133, 172, 173, 174, 175, 319, 177, 178, 427, 180, 181, 182, 250, 184, 328, 186, 48, 188, 304, 190, 304, 3515, 336, 194, 195, 196, 3401, 426, 48, 252, 3405, 426, 230, 3527, 8, 374, 246, 11, 344, 140, 249, 277, 60, 60, 116, 378, 430, 379, 3939, 31, 3434, 285, 150, 389, 28, 283, 145, 392, 3949, 83, 121, 175, 36, 3459, 246, 246, 31, 426, 42, 3444, 3444, 3453, 249, 387, 303, 249, 427, 391, 392, 427, 426, 48, 108, 372, 303, 426, 3921, 17, 3388, 3389, 3390, 3391, 66, 28, 277, 133, 426, 1290, 2063, 755, 2367, 1925, 2512, 3453, 697, 129, 1984, 3070, 2654, 4000, 3842, 3584, 4006, 3650, 3879, 3247, 3951, 141, 3884, 1098, 3624, 145, 2437, 3505, 4093, 3888, 150, 2159, 4170, 3784, 4216, 155, 4221, 4126, 158, 4125, 160, 4185, 2441, 3651, 4029, 3211, 2054, 2054, 3066, 2532, 1386, 3920, 3216, 3218, 2049, 2721, 4226, 3988, 4281, 3505, 4289, 3992, 3993, 2675, 2660, 4192, 3822, 187, 1378, 4104, 4178, 3825, 3518, 3519, 26, 3966, 3256, 3523, 3524, 3300, 4053, 954, 1888, 3258, 552, 4072, 2611, 4204, 208, 4283, 0, 4021, 3572, 3573, 1754, 1463, 166, 1755, 2380, 3240, 170, 3445, 2983, 4089, 1124, 2381, 3586, 1790, 1143, 2393, 3590, 676, 3592, 1142, 2387, 3595, 3596, 1145, 1789, 1773, 2407, 191, 192, 2930, 244, 2399, 689, 3947, 3606, 3407, 1149, 3758, 252, 2984, 2895, 681, 3923, 207, 4157, 2887, 3785, 4158, 2030, 4161, 2384, 2319, 2317, 2227, 2979, 1630, -1, -1, -1, 3746, -1, -1, -1, -1, 3751, -1, 3606, 3754, 232, -1, -1, 235, 3646, -1, -1, -1, 3815, -1, -1, 83, -1, 3820, -1, 297, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3784, -1, 3673, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694, 3695, 3696, 3697, -1, 129, 28, -1, 342, -1, -1, -1, 3819, -1, 36, -1, -1, 141, -1, -1, 42, 145, -1, 504, -1, -1, 150, -1, 509, -1, 511, 155, 366, 514, 158, 516, 160, 518, -1, 323, -1, 522, -1, 524, 66, 526, 527, -1, -1, 3856, -1, -1, -1, 534, -1, 389, 537, 391, 392, -1, -1, 3746, -1, 187, -1, -1, 3751, 3677, -1, 3754, 551, -1, -1, -1, 555, -1, -1, -1, -1, 560, -1, -1, -1, 564, 208, -1, 567, -1, -1, -1, 424, 3898, -1, 427, 428, 429, -1, -1, -1, -1, -1, 582, -1, -1, -1, -1, 587, -1, -1, -1, -1, -1, 3771, -1, -1, -1, -1, -1, -1, -1, 244, 3815, -1, -1, -1, -1, -1, -1, 252, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3946, -1, -1, -1, -1, 166, 3839, 430, 628, 170, 3843, -1, -1, 31, -1, -1, 3815, -1, 638, 639, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, 50, -1, 297, -1, -1, 657, -1, 659, 660, -1, 662, -1, 664, -1, 207, 3871, 3871, -1, -1, -1, -1, -1, -1, -1, -1, 677, -1, -1, -1, 681, -1, -1, 82, -1, -1, 687, -1, -1, -1, 232, -1, -1, 235, -1, -1, -1, 698, 342, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 710, 4089, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, -1, -1, -1, -1, 3859, -1, -1, -1, -1, -1, -1, -1, -1, 137, -1, 18, 3946, -1, -1, -1, 389, 24, 391, 392, -1, -1, 752, -1, -1, -1, -1, -1, -1, -1, 3889, 761, 762, -1, -1, -1, -1, -1, -1, -1, 168, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, 424, 323, -1, 427, 428, 429, 64, -1, -1, -1, -1, -1, 4006, -1, -1, -1, -1, -1, 197, -1, -1, 802, -1, -1, 203, -1, 4133, -1, -1, -1, -1, 812, -1, -1, 815, -1, 4143, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, 828, -1, -1, -1, -1, -1, 232, -1, 113, -1, -1, -1, -1, -1, 842, 120, -1, -1, 123, 4173, 848, 849, 3979, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 862, 863, 864, 865, -1, 867, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 892, 893, 894, 172, 294, -1, 175, -1, 298, -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, 912, 311, -1, -1, 916, -1, -1, -1, -1, 319, -1, -1, -1, 925, -1, -1, -1, 8, 328, -1, 11, -1, -1, -1, -1, -1, 336, -1, -1, 218, -1, 220, -1, -1, -1, 947, 948, 28, -1, -1, 952, 230, 954, 232, -1, 36, -1, 4285, -1, -1, -1, 42, 8, 242, -1, 11, -1, -1, -1, 971, -1, 250, 974, -1, -1, 977, 978, -1, -1, 258, 259, -1, 28, -1, -1, 66, -1, 387, 990, -1, 36, 391, 4239, -1, -1, -1, 42, -1, 4204, 4204, 4204, 4204, 4204, 4204, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, 294, 295, 1019, -1, 4234, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4239, 4239, 4239, 4239, 4239, 4239, -1, 319, -1, -1, -1, -1, 1047, 1048, -1, 1050, -1, -1, 330, -1, 4234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1067, 4281, -1, -1, -1, -1, -1, -1, -1, 4289, -1, -1, 4283, 4283, 4283, 4283, 4283, 4283, -1, -1, 166, -1, 1089, -1, 170, -1, -1, -1, -1, -1, 1097, 1098, -1, 377, -1, 4281, 1103, -1, -1, 1106, -1, -1, -1, 4289, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, 170, -1, 207, -1, -1, -1, -1, -1, -1, 1135, -1, -1, -1, 1139, 1140, -1, -1, -1, -1, -1, -1, 191, 192, 1149, 1150, 1151, -1, 232, -1, -1, 235, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, 1167, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, 1199, -1, -1, -1, -1, 248, -1, -1, 251, -1, -1, -1, 1211, 1212, -1, -1, -1, -1, -1, 1218, -1, -1, 1221, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, 8, -1, -1, 11, 1239, -1, -1, -1, -1, 323, -1, 1246, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 31, -1, -1, -1, -1, 36, -1, -1, 1266, -1, -1, 42, 8, -1, -1, 11, 1274, 1275, 1276, 1277, 1278, 323, -1, -1, -1, -1, -1, -1, -1, 1287, -1, 1289, 28, -1, 1292, 66, -1, -1, -1, -1, 36, -1, -1, -1, -1, 1303, 42, 1305, -1, -1, -1, -1, -1, -1, -1, 1313, 1314, -1, -1, -1, -1, 1319, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, 430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1365, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, 425, -1, 1383, -1, -1, -1, -1, -1, 1389, 1390, 1391, 1392, 166, -1, -1, -1, 170, -1, 1399, -1, -1, -1, -1, -1, -1, -1, -1, 1408, -1, -1, -1, -1, -1, -1, -1, -1, 1417, 191, 192, -1, -1, -1, -1, 1424, -1, 1426, -1, 166, -1, -1, -1, 170, -1, 207, -1, 1436, -1, -1, -1, -1, 1441, -1, -1, -1, -1, -1, -1, -1, -1, 1450, -1, 1452, 191, 192, -1, 1456, 1457, -1, 232, -1, 1461, 235, 1463, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, 1486, -1, -1, -1, -1, -1, -1, 1493, 232, 1495, -1, 235, -1, 1499, 1500, -1, 1502, -1, -1, -1, -1, -1, 1508, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, 1521, 1522, -1, -1, 1525, -1, -1, -1, 1529, -1, 1531, -1, -1, -1, -1, -1, -1, 1538, -1, -1, 1541, -1, -1, -1, 1545, -1, -1, -1, -1, 323, -1, -1, 1553, 1554, -1, -1, -1, -1, -1, -1, 1561, -1, 1563, 1564, 1565, 1566, 1567, -1, -1, -1, -1, -1, -1, 1574, 1575, -1, 1577, -1, 1579, 1580, -1, -1, 1583, -1, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1600, -1, -1, -1, 1604, 1605, -1, -1, -1, 1609, -1, -1, -1, 1613, -1, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, -1, 1625, -1, -1, -1, 1629, 1630, -1, 1632, -1, -1, -1, -1, -1, 1638, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 427, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, -1, 36, 1753, -1, 1755, -1, 1757, 42, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, 28, -1, 66, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, 1793, 42, 1795, -1, -1, -1, -1, 66, 1801, -1, -1, -1, -1, 1806, -1, -1, 1809, 1810, -1, -1, -1, -1, 1815, -1, 1817, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1831, -1, -1, 1834, -1, -1, -1, -1, -1, 1840, -1, 1842, 1843, 1844, -1, 1846, 1847, -1, 1849, -1, 1851, -1, 1853, 1854, -1, -1, 1857, -1, -1, -1, -1, 128, -1, -1, 1865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1876, -1, -1, -1, -1, -1, 166, -1, -1, -1, 170, -1, -1, -1, -1, -1, 1892, -1, -1, 1895, -1, -1, -1, -1, 166, 1901, -1, -1, 170, -1, 1906, 191, 192, -1, -1, -1, 1912, -1, -1, -1, 1916, -1, 166, -1, -1, -1, 170, 207, -1, 191, 192, -1, 1928, 1929, -1, -1, -1, -1, -1, 1935, 1936, -1, -1, 1939, -1, 207, -1, 191, 192, -1, -1, -1, 232, -1, 1950, 235, -1, -1, -1, -1, -1, 1957, -1, 207, -1, -1, 8, -1, 248, 11, 50, 1967, -1, 235, -1, -1, -1, -1, -1, -1, 1976, -1, 1978, 1979, 1980, -1, 248, -1, 232, -1, -1, 235, -1, 1989, 36, -1, -1, -1, -1, -1, 42, -1, 82, -1, 248, -1, -1, 251, -1, -1, 2006, -1, -1, -1, -1, -1, -1, -1, 2014, 2015, 2016, 2017, 2018, 2019, 66, -1, -1, -1, -1, -1, -1, -1, -1, 2029, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, 2056, 323, -1, -1, 2060, 2061, -1, -1, -1, 2065, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 128, 8, 168, -1, 11, -1, -1, -1, -1, 2091, -1, -1, -1, -1, -1, -1, 2098, 2099, -1, -1, -1, 28, -1, -1, -1, -1, 2108, -1, -1, 36, -1, -1, -1, -1, -1, 42, -1, 203, 166, -1, -1, 2123, 170, 2125, 2126, 2127, 2128, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, 66, 2142, -1, -1, 191, 192, 2147, 232, -1, -1, 417, 418, 419, 420, 421, 422, -1, -1, 2159, -1, 207, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 259, -1, 2177, -1, 427, -1, -1, -1, -1, -1, 8, -1, -1, 11, 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2199, -1, -1, 248, 2203, 8, 28, 290, 11, 2208, -1, 294, -1, -1, 36, 298, -1, -1, -1, 2218, 42, 304, 8, -1, -1, 11, 2225, 2226, 311, -1, -1, -1, 2231, 36, -1, -1, 319, -1, -1, 42, -1, -1, 166, -1, 66, 328, 170, -1, -1, -1, 36, -1, -1, 336, -1, -1, 42, 2256, 2257, -1, -1, -1, 2261, 66, -1, -1, -1, 191, 192, -1, -1, -1, -1, -1, 2273, 2274, 2275, 2276, 323, -1, 66, -1, -1, 207, -1, -1, -1, 2286, -1, -1, 2289, -1, 2291, 2292, -1, -1, -1, -1, -1, -1, -1, -1, 2301, 2302, 387, -1, 2305, -1, 232, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, 2318, -1, 2320, -1, 2322, 248, 2324, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2340, 128, -1, 166, 2344, -1, -1, 170, -1, -1, -1, 2351, -1, 2353, 2354, 2355, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, 170, 2367, 191, 192, 2370, 417, 418, 419, 420, 421, 422, -1, -1, 166, -1, 2381, -1, 170, 207, -1, 2386, 191, 192, -1, 2390, -1, -1, 2393, -1, -1, -1, -1, 323, 2399, -1, -1, 2402, 207, 191, 192, 2406, -1, -1, 232, -1, -1, 235, -1, -1, 2415, -1, -1, -1, -1, 207, -1, -1, -1, -1, 248, -1, -1, 251, -1, -1, 235, -1, -1, -1, -1, 2436, -1, 2438, -1, -1, -1, -1, 2443, 248, -1, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, 2456, -1, -1, -1, -1, 248, -1, -1, 2464, -1, 2466, 2467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, 31, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, 323, -1, 427, -1, -1, -1, 50, -1, -1, 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, 82, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2550, -1, -1, -1, -1, -1, -1, 2557, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, 13, 14, -1, -1, -1, -1, 19, -1, 21, -1, -1, -1, -1, 26, -1, 28, -1, 413, 414, 415, 137, 417, 418, 419, 420, 421, 422, -1, 128, -1, -1, 427, -1, 46, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, 168, -1, -1, 2627, -1, -1, 417, 418, 419, 420, 421, 422, -1, 2637, 2638, 166, -1, 8, -1, 170, 11, -1, -1, -1, -1, -1, -1, -1, -1, 197, -1, 50, -1, -1, -1, 203, -1, 28, -1, -1, 191, 192, -1, -1, -1, 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, 82, 232, 2689, -1, 2691, -1, -1, -1, 2695, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2719, 2720, 248, -1, -1, -1, -1, -1, -1, 2728, -1, -1, -1, 2732, -1, -1, -1, -1, -1, 178, -1, -1, -1, 137, -1, -1, -1, 2746, 187, -1, 189, 294, 191, 2752, 193, 298, -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, 168, 2774, 319, -1, 2777, -1, -1, 2780, -1, -1, -1, 328, -1, -1, -1, -1, -1, -1, 2791, 336, -1, 2794, -1, 323, -1, -1, 166, -1, -1, -1, 170, -1, -1, -1, -1, 203, -1, 2810, -1, 2812, -1, -1, -1, -1, -1, 2818, -1, -1, -1, -1, -1, 191, 192, 2826, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2836, 232, -1, -1, 207, -1, 2842, 387, 2844, -1, -1, 391, -1, -1, 2850, -1, -1, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, -1, -1, 232, 2866, 2867, 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2879, -1, 248, -1, 2883, 251, -1, -1, 2887, -1, -1, 417, 418, 419, 420, 421, 422, -1, 2897, -1, 294, 2900, 296, 2902, 298, -1, -1, -1, -1, -1, 304, -1, 2911, 2912, 2913, -1, -1, 311, 2917, -1, -1, 2920, -1, -1, -1, 319, -1, -1, 2927, 2928, 2929, 2930, 2931, -1, 328, -1, 2935, 2936, -1, 18, -1, 2940, 336, -1, -1, 24, -1, 2946, -1, 2948, -1, 2950, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, 2973, -1, -1, -1, -1, -1, 2979, -1, -1, -1, 2983, 64, 2985, -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, 3000, 3001, 3002, -1, 3004, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, 3018, 3019, 3020, 3021, -1, -1, -1, -1, -1, 3027, -1, -1, -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, 120, 8, -1, 123, 11, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3056, -1, -1, -1, 427, -1, -1, -1, -1, -1, -1, -1, -1, 36, -1, -1, 512, -1, -1, 42, -1, -1, -1, 519, -1, -1, -1, -1, -1, -1, -1, -1, 528, 529, -1, -1, 172, 533, -1, 175, -1, -1, -1, 66, -1, -1, -1, 543, 3104, -1, -1, 3107, -1, -1, -1, -1, -1, -1, -1, -1, 556, -1, -1, -1, -1, 3121, -1, -1, -1, -1, -1, -1, -1, -1, 570, -1, -1, 573, -1, 575, -1, 577, 218, -1, 220, -1, -1, -1, -1, -1, -1, 3147, -1, -1, 230, -1, 232, -1, -1, -1, -1, -1, -1, -1, -1, 128, 242, -1, -1, -1, -1, -1, -1, -1, 250, -1, 612, -1, -1, -1, -1, -1, 258, 259, -1, -1, -1, -1, -1, 18, -1, 3187, -1, -1, -1, 24, -1, -1, 634, -1, 636, -1, 3198, 166, 3200, -1, -1, 170, -1, -1, 3206, -1, -1, -1, 290, -1, -1, -1, 294, 295, -1, -1, 3218, -1, -1, -1, -1, -1, 191, 192, -1, -1, 3228, -1, -1, 64, -1, -1, -1, -1, -1, 3237, -1, 319, 207, -1, -1, 3243, -1, -1, -1, 3247, -1, 689, 330, -1, -1, -1, -1, -1, -1, -1, -1, 3259, 3260, -1, -1, -1, -1, -1, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 248, 3282, -1, 3284, 8, -1, 120, 11, -1, 123, -1, -1, -1, -1, -1, -1, 377, -1, -1, 3300, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, 36, -1, -1, 3316, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, 66, -1, -1, -1, -1, -1, -1, -1, 791, -1, 3353, -1, -1, 323, -1, -1, -1, -1, -1, -1, 3363, 3364, -1, 806, -1, -1, -1, -1, 3371, 3372, -1, -1, -1, 3376, 817, -1, -1, -1, -1, 3382, 3383, 824, -1, 3386, -1, 3388, 3389, 3390, 3391, -1, -1, -1, 3395, 836, 230, 3398, 232, -1, 3401, -1, -1, -1, 3405, -1, -1, -1, 242, -1, 3411, -1, -1, 3414, -1, -1, 250, -1, 3419, -1, -1, -1, -1, -1, 3425, 259, -1, 868, -1, -1, 3431, -1, -1, -1, -1, -1, 3437, -1, -1, -1, -1, -1, 166, -1, 3445, -1, 170, -1, 3449, 417, 418, 419, 420, 421, 422, -1, 290, -1, 3459, -1, 294, 3462, -1, -1, -1, -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3482, 3483, 207, -1, 319, -1, -1, -1, 930, -1, 932, -1, 934, -1, 936, -1, 938, 939, 940, -1, -1, -1, -1, 945, 3506, -1, -1, 232, 0, -1, 235, -1, -1, 3515, -1, -1, -1, -1, -1, -1, -1, -1, 14, 248, -1, 3527, 251, -1, -1, -1, -1, -1, 24, -1, 26, 27, -1, -1, -1, -1, -1, -1, 377, -1, 3546, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, 18, 3560, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, 61, -1, 63, 64, -1, -1, -1, -1, 69, -1, 71, -1, -1, -1, -1, 3586, -1, -1, -1, -1, 81, -1, 83, 3594, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, 64, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3622, -1, 114, -1, 116, -1, -1, -1, 120, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, -1, 135, -1, -1, -1, 3649, 3650, 141, -1, -1, 113, -1, -1, -1, -1, -1, -1, 120, -1, -1, 123, 155, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3677, -1, -1, -1, -1, -1, -1, 1124, -1, -1, -1, -1, -1, 413, 414, 415, 3693, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 427, 3705, -1, -1, -1, -1, -1, -1, -1, -1, 3714, -1, 175, -1, -1, 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, 3731, 3732, 223, -1, 3735, -1, -1, -1, -1, -1, -1, 3742, -1, 234, 1185, 3746, -1, -1, -1, -1, 3751, -1, -1, 3754, 3755, -1, 3757, -1, 3759, 3760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 230, -1, 232, -1, -1, -1, -1, 3778, -1, 3780, 271, -1, 242, 3784, 3785, 3786, 3787, 3788, -1, -1, 250, 282, -1, -1, -1, -1, 287, -1, 289, 259, -1, -1, -1, 294, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, 306, -1, -1, 3819, 3820, 311, 312, -1, -1, -1, -1, -1, -1, 319, -1, 290, 322, -1, -1, 294, -1, -1, -1, -1, 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3850, -1, 342, -1, -1, -1, 3856, -1, -1, 3859, 319, -1, -1, -1, -1, -1, -1, -1, -1, 359, 3870, -1, 3872, -1, -1, -1, -1, -1, -1, 369, -1, -1, -1, 8, 3884, 375, 11, -1, -1, 3889, 380, -1, -1, -1, -1, -1, -1, 3897, 3898, -1, -1, -1, 392, 28, -1, -1, -1, -1, 18, -1, 8, 36, -1, 11, 24, -1, -1, 42, 377, -1, 3920, -1, -1, 3923, -1, 3925, -1, -1, 8, -1, 28, 11, -1, -1, 1374, -1, 426, -1, 36, 429, -1, 66, 3942, -1, 42, -1, 3946, 1387, 28, 3949, -1, -1, -1, -1, 64, 3955, 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, 3975, -1, -1, -1, 3979, -1, -1, -1, -1, -1, 1425, 66, -1, -1, 1429, -1, -1, -1, -1, -1, -1, 3996, 3997, 3998, 3999, 1440, -1, 1442, 113, 1444, -1, 4006, -1, -1, 1449, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4026, -1, -1, -1, -1, -1, 1472, -1, 1474, -1, 1476, -1, 1478, -1, 1480, 166, -1, -1, 1484, 170, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, 174, -1, -1, 177, 178, 175, 191, 192, 166, -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, -1, 194, 4081, 207, -1, -1, -1, 166, 4087, -1, 4089, 170, -1, -1, 191, 192, -1, -1, -1, 4098, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, 207, 235, 191, 192, -1, -1, -1, -1, -1, -1, -1, 230, -1, 232, 248, -1, -1, 251, 207, -1, 4129, -1, -1, 242, 4133, 232, -1, -1, 235, -1, -1, 250, -1, -1, 4143, -1, -1, -1, -1, -1, 259, 248, -1, 232, 251, -1, 235, -1, 4157, -1, -1, 4160, 4161, -1, 4163, -1, -1, -1, -1, 248, -1, -1, 251, -1, 4173, -1, -1, -1, -1, -1, -1, 290, 4181, -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4208, 319, -1, -1, 28, -1, -1, -1, -1, -1, 4218, -1, 36, -1, -1, 4223, -1, 323, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 377, -1, -1, -1, -1, -1, -1, -1, -1, 4276, -1, -1, -1, -1, -1, -1, -1, -1, 4285, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 427, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 427, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 427, -1, -1, 166, -1, -1, 18, 170, -1, -1, -1, -1, 24, -1, -1, 1802, 1803, -1, -1, -1, 1807, 1808, -1, -1, 1811, -1, -1, -1, 191, 192, -1, -1, -1, -1, 1821, -1, -1, -1, -1, -1, -1, 1828, -1, -1, 207, 1832, 1833, -1, -1, 1836, 1837, 1838, 64, 514, -1, -1, -1, 518, -1, -1, -1, 1848, -1, 1850, -1, -1, -1, -1, -1, 232, -1, -1, 235, 534, -1, -1, -1, -1, -1, 1866, -1, -1, -1, -1, 1871, 248, 8, -1, 251, 11, 172, -1, -1, -1, -1, -1, -1, -1, 180, -1, -1, 113, -1, -1, 8, -1, 28, 11, 120, -1, -1, 123, -1, -1, 36, 1902, 1903, 1904, 1905, -1, 42, -1, 1909, 1910, 28, -1, -1, -1, -1, -1, 1917, 8, 36, 1920, 11, -1, -1, 1924, 42, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, 28, -1, 1940, -1, -1, -1, -1, -1, 36, 323, -1, 66, 175, 1951, 42, 1953, -1, -1, -1, -1, 1958, -1, -1, -1, -1, 1963, 1964, 1965, 1966, -1, 1968, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, 1981, 1982, 1983, -1, -1, -1, -1, -1, -1, -1, -1, 1992, 1993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 230, -1, 232, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, 166, -1, -1, 259, 170, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, 166, -1, 427, 2052, 170, -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, 294, -1, -1, 207, -1, 191, 192, 166, -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, 761, 762, -1, 207, -1, -1, -1, 319, -1, -1, 232, -1, -1, 235, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, 232, 251, 207, 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, -1, -1, -1, 21, -1, -1, 232, -1, -1, 235, -1, -1, -1, -1, -1, 33, 377, -1, 828, -1, -1, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, 848, 849, -1, -1, -1, -1, -1, -1, -1, -1, 8, 67, -1, 11, 323, -1, -1, 865, -1, -1, -1, 2195, -1, -1, 80, -1, -1, -1, -1, -1, 28, -1, 323, -1, -1, -1, -1, -1, 36, -1, -1, 97, 511, -1, 42, 893, 894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, 118, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, 147, -1, -1, -1, 564, 152, -1, -1, -1, -1, -1, 158, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, 173, 427, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 427, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, 413, 414, 415, 150, 417, 418, 419, 420, 421, 422, -1, -1, 8, -1, 427, 11, -1, -1, -1, 166, -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 32, -1, -1, 657, 36, -1, -1, 248, 191, 192, 42, -1, -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, -1, -1, 207, 8, -1, -1, 11, -1, -1, -1, -1, 687, 66, 276, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 232, -1, -1, 235, 36, -1, -1, -1, 2416, 2417, 42, 301, -1, -1, -1, 305, 248, 307, -1, 251, -1, -1, -1, 313, -1, -1, 316, -1, -1, -1, 111, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, 344, -1, -1, -1, 348, -1, -1, -1, -1, -1, -1, -1, 356, -1, 2476, 2477, -1, 361, -1, 2481, -1, -1, -1, -1, 2486, 2487, 2488, -1, -1, 373, -1, 166, -1, -1, -1, 170, -1, 323, -1, -1, -1, -1, 386, -1, -1, 802, -1, -1, -1, -1, -1, -1, -1, -1, -1, 812, 191, 192, -1, -1, 2522, 2523, 2524, 2525, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, 834, -1, -1, 166, -1, -1, -1, 170, 1221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2558, 232, -1, -1, 235, -1, -1, -1, -1, 191, 192, -1, -1, -1, 867, -1, -1, 248, -1, -1, 251, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, 1274, 1275, 1276, 1277, -1, -1, -1, -1, 232, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, -1, 2620, 916, -1, -1, 248, -1, -1, 251, 2628, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1313, 1314, -1, -1, -1, -1, 1319, 270, -1, -1, -1, 323, 8, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 961, -1, -1, -1, -1, 28, -1, -1, 8, -1, -1, 11, -1, 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, 2690, 1365, -1, -1, 28, 990, -1, 31, -1, 323, 2700, 374, 36, -1, -1, -1, -1, -1, 42, 66, -1, -1, -1, 337, -1, 1389, 1390, 1391, 1392, -1, -1, -1, -1, -1, 1019, -1, -1, 2727, -1, 2729, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, 1047, 1048, -1, 1050, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2765, -1, 1441, -1, -1, -1, -1, 1067, -1, 18, -1, 1450, -1, -1, 2779, 24, -1, -1, 1457, -1, -1, -1, 144, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 166, -1, 1106, 1107, 170, -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 166, -1, 191, 192, 170, -1, -1, -1, 1135, -1, -1, -1, 1139, 1140, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, 191, 192, 1154, -1, -1, -1, -1, -1, 1160, -1, -1, -1, 113, -1, -1, -1, 207, -1, 232, 120, -1, 235, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, -1, -1, 232, -1, -1, 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, 1207, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1604, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 323, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, 28, -1, -1, -1, 230, -1, 232, 323, 36, -1, -1, -1, 28, -1, 42, 31, 242, -1, -1, -1, 36, -1, -1, -1, 250, 3007, 42, 3009, -1, -1, 1307, 3013, -1, 259, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 3028, -1, -1, 1326, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3045, 290, -1, -1, -1, 294, 1346, -1, -1, 3054, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, 1366, -1, -1, -1, 319, 1371, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, 3094, 3095, 3096, 3097, 3098, 3099, 3100, -1, -1, -1, -1, 3105, 3106, -1, 3108, 3109, 3110, 3111, 3112, 3113, 3114, -1, -1, -1, -1, -1, 166, -1, 1417, 3123, 170, 3125, 3126, -1, 1423, -1, -1, 1426, 166, 377, -1, -1, 170, -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, 207, -1, -1, -1, -1, -1, -1, 1842, 1843, 1844, -1, -1, 207, -1, 1849, -1, 1851, -1, 1853, 1854, -1, -1, -1, -1, -1, 232, -1, -1, 235, -1, -1, -1, -1, 3194, 3195, 3196, -1, 232, 3199, 1495, 235, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1529, -1, 1531, -1, 834, -1, -1, -1, -1, 1538, -1, -1, 1541, -1, -1, -1, 1545, -1, -1, -1, -1, 18, -1, -1, 1553, 1554, -1, 24, -1, -1, -1, -1, 1561, -1, -1, 1564, 1565, 1566, 1567, -1, -1, 3275, 1950, 323, -1, 1574, 1575, -1, 1577, -1, 1579, 1580, -1, -1, 1583, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, 1599, 1600, 1601, -1, -1, -1, 1605, -1, -1, -1, 1609, -1, -1, -1, 1613, -1, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, -1, 1625, -1, 2006, -1, -1, 1630, -1, 1632, -1, -1, 2014, 2015, 2016, 2017, 2018, 2019, -1, -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, 961, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, 834, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 175, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, 2098, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 2125, -1, 2127, 8, -1, -1, 11, -1, -1, -1, -1, 1757, -1, -1, -1, -1, 230, -1, 232, -1, -1, -1, -1, 28, -1, -1, 31, -1, 242, -1, -1, 36, -1, -1, -1, -1, 250, 42, -1, -1, 3491, 3492, 3493, 3494, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, 961, -1, -1, -1, -1, 1805, -1, 66, -1, -1, -1, 3516, 3517, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, 3528, 3529, -1, 294, -1, 150, -1, -1, -1, -1, -1, 1834, -1, -1, -1, 8, 2218, 1840, 11, -1, -1, 166, -1, 1846, -1, 170, -1, -1, 319, -1, 1154, -1, -1, -1, -1, 28, -1, -1, 31, -1, -1, -1, -1, 36, -1, -1, 191, 192, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1882, -1, -1, 207, -1, 1887, 1888, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, 1899, -1, -1, -1, -1, -1, -1, 1207, 166, -1, 377, 232, 170, -1, 235, -1, 1915, -1, -1, 1918, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, 1092, 191, 192, -1, -1, 1237, 3642, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, 3665, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 232, -1, -1, 235, -1, -1, 36, 3685, -1, -1, -1, -1, 42, -1, -1, -1, 248, -1, -1, 251, 1154, -1, -1, 166, -1, -1, -1, 170, 323, -1, -1, -1, -1, 1307, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, 1326, -1, -1, -1, 2029, -1, 2031, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, 1346, 1207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, 323, 235, 3771, -1, -1, -1, 1371, -1, -1, -1, -1, -1, 1237, -1, 248, -1, -1, 251, -1, -1, -1, 2464, -1, 2466, 2467, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 2105, -1, -1, -1, 166, -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, -1, -1, 1423, -1, 3829, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1307, 2147, -1, -1, 207, -1, -1, 323, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3869, 1326, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, -1, 235, 657, -1, -1, -1, -1, -1, 1346, -1, -1, -1, 2189, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, 3906, -1, 2203, -1, -1, -1, -1, 2208, 687, 1371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2225, 2226, -1, -1, -1, -1, 2231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, 2256, 2257, -1, -1, -1, 2261, 1423, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 2273, 2274, 2275, 2276, -1, 3983, 8, -1, 2281, 11, -1, -1, -1, 2286, 2287, -1, 2289, -1, 2291, 349, -1, -1, -1, -1, -1, 1599, 28, -1, 2301, 2302, -1, -1, 2305, -1, 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, 2318, -1, 2320, -1, -1, -1, 2324, -1, -1, -1, -1, -1, -1, 1632, -1, -1, -1, -1, -1, 66, -1, -1, 2340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2351, 4057, 2353, 2354, 2355, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, 2370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2381, -1, -1, -1, -1, 2386, -1, -1, -1, -1, -1, -1, 2393, -1, 2774, -1, -1, 2777, 2399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4127, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2436, 166, 1599, 2818, -1, 170, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2499, 2500, -1, 2502, 232, -1, -1, 235, -1, -1, -1, -1, -1, 990, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, 2531, 2532, 2533, -1, -1, -1, -1, -1, -1, -1, 1019, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1047, 1048, -1, 1050, -1, -1, -1, -1, -1, -1, -1, -1, 1882, -1, -1, -1, -1, 1887, 1888, -1, 1067, -1, -1, -1, -1, 323, -1, -1, -1, 1899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, -1, -1, 2633, -1, -1, 21, -1, -1, 3018, 3019, 3020, 3021, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2655, -1, 1135, 2658, -1, -1, 1139, 1140, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, 2675, 2676, -1, -1, -1, -1, -1, 67, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, -1, 80, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, 67, 68, -1, 103, -1, -1, 1882, -1, -1, 76, -1, 1887, 1888, 80, -1, 2031, -1, -1, 118, -1, -1, -1, -1, 1899, 2739, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, 136, -1, 2753, -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, 2764, -1, 118, 152, -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, 173, -1, -1, 2791, -1, -1, -1, 147, -1, -1, -1, -1, 152, -1, -1, -1, 2105, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, -1, 3198, -1, 173, -1, -1, -1, -1, 2826, -1, -1, 2829, -1, -1, -1, -1, -1, -1, 2836, -1, -1, -1, -1, -1, 2842, -1, 2844, -1, 198, -1, -1, 2849, 2850, -1, -1, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 248, -1, -1, 2866, 2867, -1, -1, 2031, -1, -1, -1, 2874, -1, -1, -1, -1, 2879, -1, -1, -1, 2883, -1, 2885, -1, 2887, 2189, -1, -1, 276, -1, -1, -1, -1, 248, 2897, -1, -1, 2900, -1, 2902, -1, -1, -1, -1, -1, -1, -1, 2910, 2911, 2912, 2913, -1, -1, 301, 2917, -1, -1, 2920, -1, 307, -1, 276, -1, -1, -1, 313, -1, 2930, 316, -1, -1, -1, -1, -1, -1, -1, -1, 2940, -1, -1, -1, 2105, -1, -1, -1, 2948, 301, 2950, -1, -1, 305, -1, 307, -1, 342, -1, 344, -1, 313, -1, 348, 316, -1, -1, -1, -1, -1, -1, 356, -1, 2973, -1, -1, 361, -1, -1, 2979, -1, -1, -1, -1, -1, 2985, -1, -1, 373, -1, 342, -1, 344, -1, -1, -1, 348, -1, -1, -1, 3000, 386, -1, -1, 356, -1, -1, -1, -1, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2189, -1, -1, -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2353, 2354, 2355, -1, -1, -1, -1, -1, 1538, -1, -1, -1, -1, -1, 3066, -1, -1, -1, 3070, 3071, 3072, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1561, -1, -1, 1564, -1, -1, 1567, -1, -1, -1, -1, -1, -1, 1574, 1575, -1, -1, -1, -1, 1580, -1, -1, 1583, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1600, -1, -1, -1, -1, 1605, -1, -1, -1, 1609, -1, -1, -1, 1613, -1, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, -1, 1625, -1, -1, -1, -1, 1630, -1, 1632, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, 3546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3560, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2499, 2500, 3200, 2502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, 3258, 3259, 3260, -1, -1, -1, -1, 1063, -1, -1, -1, -1, 3649, -1, -1, -1, -1, -1, -1, -1, -1, 1757, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, -1, -1, -1, -1, -1, -1, 3316, -1, -1, -1, -1, -1, 1120, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2633, -1, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3353, -1, -1, 1834, 2658, -1, -1, -1, -1, -1, 3363, 3364, -1, 3366, -1, -1, -1, -1, 3371, 3372, -1, -1, 2676, 3376, 3377, -1, -1, -1, -1, 3382, 3383, -1, -1, 3386, -1, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, -1, -1, -1, 3401, -1, -1, -1, 3405, -1, 3786, 3787, 3788, -1, -1, -1, -1, 3414, -1, -1, -1, -1, 3419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3431, -1, -1, -1, -1, -1, -1, 2739, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, -1, -1, 2753, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3462, 2764, -1, -1, -1, -1, -1, -1, -1, -1, 2633, -1, -1, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2658, -1, 3499, -1, -1, -1, -1, -1, -1, -1, -1, 3508, -1, -1, -1, -1, -1, -1, 2676, -1, -1, 3897, -1, 3520, -1, -1, -1, -1, -1, -1, -1, 2829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, -1, 2029, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3564, -1, -1, -1, -1, -1, 834, -1, -1, 2874, -1, -1, -1, -1, 2739, -1, -1, -1, -1, -1, 3584, -1, -1, -1, -1, -1, -1, -1, 2753, -1, -1, -1, 3975, -1, -1, -1, -1, -1, -1, 2764, -1, -1, -1, -1, -1, 2910, -1, -1, -1, -1, -1, -1, -1, -1, 3997, -1, 3999, -1, 3622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2950, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1459, -1, -1, -1, -1, -1, -1, 2829, 2147, -1, -1, -1, -1, 3674, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, -1, -1, -1, -1, -1, -1, -1, 961, -1, -1, -1, -1, -1, -1, -1, 3705, -1, -1, 4087, 3709, -1, -1, -1, 2874, 3714, -1, -1, -1, -1, -1, -1, 834, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731, 3732, -1, -1, 3735, -1, -1, 1536, -1, -1, -1, -1, -1, -1, -1, 3746, -1, 2226, 2910, 4129, 3751, -1, 2231, 3754, -1, -1, -1, -1, 3759, 3760, -1, 1560, -1, -1, -1, -1, 1565, -1, -1, 3071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3784, -1, -1, 1585, 1586, -1, 1588, -1, -1, -1, -1, 2273, -1, 2275, 2276, -1, -1, -1, 4181, -1, -1, -1, -1, -1, 2286, -1, -1, 2289, -1, 2291, -1, 3815, -1, -1, -1, 3819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1628, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2318, -1, 2320, -1, 4223, -1, 2324, -1, 961, -1, -1, -1, -1, -1, -1, -1, 3856, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1664, -1, -1, -1, -1, -1, -1, -1, -1, 2353, 2354, 2355, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1154, -1, 2370, -1, -1, -1, -1, -1, 3898, -1, 3900, -1, -1, 2381, -1, -1, -1, -1, 2386, -1, 3071, -1, -1, -1, -1, 2393, -1, -1, -1, -1, 3920, 3921, -1, 3923, 3225, 3925, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3942, 1207, -1, -1, 3946, -1, -1, -1, -1, 3951, -1, -1, -1, -1, -1, 3258, 2436, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1766, -1, -1, -1, -1, 1237, -1, -1, -1, -1, 1776, -1, -1, 1779, -1, -1, -1, 3985, -1, -1, 3988, -1, -1, -1, 3992, 3993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4026, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1154, -1, 1307, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4053, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, 3225, 3366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, 4081, 1346, -1, 834, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1207, -1, -1, 3258, 4098, -1, -1, -1, -1, -1, -1, -1, -1, 1371, -1, -1, -1, -1, -1, 3414, -1, -1, -1, -1, 3419, -1, -1, -1, -1, -1, 1237, -1, -1, -1, -1, -1, 3431, -1, -1, 4133, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1423, 4160, 4161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4173, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3366, -1, 3508, 4208, -1, -1, 961, -1, 1326, -1, -1, 3377, -1, 4218, 3520, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1346, 4234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1371, 834, -1, -1, -1, 3564, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4276, -1, -1, -1, -1, 4281, -1, -1, -1, 4285, -1, -1, -1, 4289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1423, -1, -1, -1, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508, 2826, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2836, 3520, -1, -1, -1, -1, 2842, -1, 2844, -1, -1, -1, -1, -1, -1, 3674, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 961, -1, 2866, 2867, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3564, 1154, -1, -1, -1, 3709, 2887, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2897, -1, -1, 2900, -1, 2902, -1, -1, -1, -1, -1, -1, 2229, -1, 2911, -1, -1, -1, -1, -1, 2917, -1, -1, 2920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2252, -1, 2254, 1207, 2256, 2257, 2258, -1, 2940, 2261, -1, -1, -1, 2265, -1, -1, 2948, -1, 2950, -1, 2272, -1, -1, -1, -1, 2277, -1, -1, -1, -1, -1, 2283, 1599, 1237, -1, -1, 2288, -1, -1, -1, -1, 2973, -1, -1, -1, 2297, -1, 2979, -1, 2301, 2302, -1, 2304, 2985, -1, -1, -1, -1, -1, -1, 3815, -1, -1, -1, 2316, -1, -1, -1, -1, -1, -1, 2323, -1, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709, -1, -1, -1, -1, -1, -1, -1, -1, 1307, -1, -1, -1, 2359, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, 1154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1346, -1, -1, 3900, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1882, -1, 3921, 1371, -1, 1887, 1888, -1, -1, -1, -1, -1, -1, 21, 1207, -1, -1, 1899, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 3951, -1, -1, 2451, 3815, -1, -1, -1, -1, -1, -1, -1, 1237, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 1423, -1, -1, -1, 67, -1, -1, -1, 834, -1, -1, -1, -1, 76, 3988, -1, -1, 80, 3992, 3993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, 103, -1, -1, 834, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 118, -1, -1, -1, 1307, -1, -1, -1, -1, -1, -1, 3900, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, 1326, 4053, -1, -1, -1, -1, 147, -1, -1, 3921, -1, -1, -1, 154, -1, -1, 2031, 158, 1882, -1, 1346, -1, -1, 1887, 1888, -1, -1, -1, -1, -1, 3259, 3260, 173, -1, -1, 1899, -1, -1, -1, 3951, -1, -1, -1, -1, -1, 1371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 961, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, -1, -1, -1, -1, -1, 3988, -1, -1, -1, 3992, 3993, -1, -1, -1, -1, -1, 3316, -1, -1, 2105, -1, 961, -1, -1, -1, -1, 1423, 1599, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, -1, 2661, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3363, 3364, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3376, -1, -1, -1, -1, -1, 3382, 3383, -1, -1, 3386, -1, -1, 301, -1, -1, -1, -1, -1, 307, 2031, -1, -1, -1, -1, 313, -1, 2189, 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3414, -1, -1, -1, -1, 3419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, 3431, 344, 345, -1, 347, 348, -1, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, -1, 361, -1, -1, -1, -1, -1, 367, -1, -1, 370, -1, -1, 373, 3462, 2783, -1, -1, -1, -1, -1, -1, 2105, -1, -1, -1, 386, -1, -1, -1, -1, 1154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, -1, 2825, -1, -1, -1, -1, -1, 2831, -1, -1, 1154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2847, 2848, -1, 2850, -1, 1207, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2189, -1, -1, -1, -1, -1, -1, -1, 1237, -1, -1, -1, -1, 1207, 2888, -1, -1, 2891, -1, 2893, -1, -1, -1, -1, 2898, 2899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2912, 2913, 2914, -1, 2916, 1237, -1, 2919, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1882, -1, -1, -1, -1, 1887, 1888, -1, -1, -1, -1, -1, 3622, -1, -1, -1, -1, 1899, -1, -1, -1, -1, 1307, -1, -1, -1, 2956, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2966, -1, -1, -1, -1, 1326, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1307, -1, -1, -1, 1346, -1, 2459, -1, -1, -1, 2997, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1371, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1346, -1, -1, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1371, -1, -1, -1, 3735, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1423, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2031, 3760, -1, -1, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1423, -1, 1882, -1, -1, -1, -1, 1887, 1888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, 2459, -1, -1, -1, -1, -1, -1, -1, -1, 2105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2633, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1, -1, -1, -1, 2658, -1, -1, -1, -1, -1, -1, -1, 3200, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2676, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2189, -1, 2554, -1, 2556, -1, 3923, 1599, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2031, -1, -1, -1, -1, -1, -1, -1, 3942, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2739, -1, -1, -1, -1, -1, 1599, -1, -1, -1, -1, -1, -1, -1, 2753, -1, -1, -1, -1, -1, -1, 2609, -1, -1, -1, 2764, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3317, 2633, -1, -1, 3321, 3322, 3323, -1, -1, 3326, -1, 2105, -1, -1, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 2658, -1, -1, 4026, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2676, -1, 2829, -1, -1, -1, -1, -1, -1, 3370, 3371, 3372, 3373, -1, 3375, -1, -1, -1, 3379, 3380, 3381, -1, 2849, 3384, -1, -1, 3387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874, -1, -1, -1, 2189, -1, -1, -1, 3416, -1, 4098, -1, -1, -1, -1, -1, 2739, -1, -1, -1, 3428, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2753, -1, -1, -1, 3442, -1, 2910, -1, -1, -1, -1, 2764, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4160, 4161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, 2829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1882, 4208, -1, -1, -1, 1887, 1888, 2849, -1, -1, -1, 4218, -1, -1, -1, -1, -1, 1899, -1, -1, 2499, 2500, -1, 2502, -1, -1, -1, -1, -1, -1, -1, -1, 2874, -1, -1, 1882, -1, -1, -1, -1, 1887, 1888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2910, 4276, -1, -1, -1, -1, -1, 2554, -1, 2556, 3071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3625, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3671, 3672, -1, -1, -1, 2031, -1, -1, -1, -1, 2633, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3701, -1, -1, -1, 3705, 2658, -1, -1, -1, -1, 2031, -1, -1, -1, -1, -1, -1, -1, 3719, -1, 3721, 2499, 2500, 2676, 2502, 3726, 3727, 3728, -1, -1, 3731, 3732, 3733, 3734, -1, 3736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2105, -1, -1, -1, -1, -1, 3071, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, 3782, -1, -1, 2105, -1, 2739, -1, -1, -1, -1, 3258, -1, -1, -1, -1, -1, -1, -1, -1, 2753, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2764, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, 2189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2633, -1, -1, -1, -1, -1, 3862, -1, -1, -1, -1, -1, -1, 2189, -1, -1, -1, -1, -1, -1, -1, 2829, -1, -1, -1, 2658, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, 2676, 3366, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, 3377, -1, -1, -1, -1, -1, -1, -1, 3919, 3920, -1, 2874, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3935, 3936, 3937, -1, -1, -1, -1, -1, 3258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3954, -1, -1, -1, 2910, -1, -1, -1, 2739, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2753, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2764, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508, -1, -1, -1, -1, -1, -1, -1, -1, 3366, 2829, -1, 3520, -1, -1, -1, -1, -1, -1, 4061, 3377, -1, -1, -1, -1, -1, -1, -1, -1, 4071, 2849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874, 3564, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4132, 2910, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, -1, -1, 4172, -1, -1, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, -1, 3520, -1, -1, -1, -1, -1, 4211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1, -1, -1, -1, -1, 3709, -1, -1, -1, -1, -1, 3564, -1, -1, -1, -1, 2609, 4255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, 2633, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, -1, -1, -1, 3071, -1, -1, -1, -1, -1, -1, -1, -1, 2658, -1, -1, 3258, -1, -1, -1, -1, -1, -1, 2633, -1, -1, -1, -1, -1, -1, -1, 2676, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2658, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3815, -1, -1, -1, -1, -1, -1, 2676, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2739, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709, -1, -1, -1, 2753, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2764, -1, -1, -1, -1, 3366, -1, -1, -1, -1, 2739, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, -1, -1, 2753, 3900, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2764, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, 3921, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2829, -1, -1, -1, -1, -1, -1, 3258, -1, -1, -1, 3951, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, -1, -1, -1, -1, 3815, -1, -1, -1, -1, -1, -1, -1, -1, 2829, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874, -1, -1, 3988, -1, -1, -1, 3992, 3993, 3480, 2849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874, 2910, 3508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900, -1, -1, -1, 3366, 2910, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, 3921, -1, -1, -1, -1, -1, 3564, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3951, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3988, -1, -1, -1, 3992, 3993, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 3071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520, -1, -1, -1, -1, -1, -1, -1, 3071, -1, -1, -1, -1, -1, 3709, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3564, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3815, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3258, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709, -1, -1, -1, -1, -1, 3258, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3951, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3988, -1, 3815, -1, 3992, 3993, -1, -1, -1, -1, 3366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900, -1, 3480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921, -1, -1, -1, -1, -1, -1, -1, -1, 3508, -1, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, 3520, -1, -1, -1, -1, -1, -1, -1, -1, 3951, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520, -1, -1, -1, -1, -1, -1, -1, -1, 3564, -1, 3988, -1, -1, -1, 3992, 3993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3564, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3815, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3815, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3951, -1, -1, -1, -1, 3921, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3951, -1, 3988, -1, -1, -1, 3992, 3993, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 3988, -1, -1, 30, 3992, 3993, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, 419, -1, -1, -1, -1, -1, -1, 426, 427, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, 3, -1, -1, -1, -1, -1, -1, 426, 427, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, 31, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 427, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, 427, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 427, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, 4, 5, 6, 7, 8, 9, 10, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, 427, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, 150, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 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, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, 424, 425, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, 419, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, 150, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, 3, 4, 5, 6, 7, 426, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, -1, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, -1, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, 30, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, -1, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, 417, 418, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, 247, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 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, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, 247, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, 246, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, 417, 418, 419, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, 8, 9, -1, -1, -1, 426, 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, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, 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, -1, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 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, -1, 232, 233, 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, 268, -1, 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, -1, 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, -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, -1, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, -1, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 3, 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, 419, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, 419, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, 419, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, -1, 3, -1, -1, -1, -1, -1, -1, 407, 408, 409, -1, 14, 15, 16, 17, 18, 19, 20, 21, 419, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, -1, 3, 4, 5, -1, -1, -1, 9, 407, 408, 409, -1, 14, 15, 16, 17, 18, 19, 20, 21, 419, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, 246, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, 4, 5, -1, -1, -1, 9, 417, 418, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, 246, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, 4, 5, -1, -1, -1, 9, 417, 418, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, 246, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, 9, 417, 418, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, 150, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, 4, 5, -1, -1, -1, 9, 417, 418, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, -1, 68, 69, 70, 71, 72, -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, 147, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, 147, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, 155, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, 155, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, 147, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, 246, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, 147, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, 247, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, 247, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, 247, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, 158, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, 31, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, 31, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, 31, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, -1, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, -1, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, -1, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, -1, -1, -1, 152, 153, 154, -1, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, -1, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, -1, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, -1, -1, 193, -1, 195, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, 206, -1, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, -1, 228, 229, 230, 231, -1, 233, 234, -1, 236, -1, 238, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, 253, -1, -1, -1, 257, 258, 259, 260, 261, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, -1, 383, -1, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, 240, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, 350, 351, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, 3, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, 36, 37, 38, 39, 40, 41, -1, -1, 44, -1, -1, -1, 48, 49, 50, 51, 52, -1, -1, 55, 56, -1, -1, 59, -1, 61, 62, 63, 64, -1, -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, 113, 114, -1, -1, 117, 118, 119, 120, 121, -1, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, 136, 137, -1, -1, 140, -1, 142, -1, 144, -1, 146, -1, 148, 149, -1, 151, 152, 153, 154, -1, 156, -1, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, 176, -1, 178, 179, -1, 181, 182, 183, 184, -1, -1, -1, -1, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, -1, 209, 210, 211, -1, -1, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, -1, 227, -1, 229, 230, -1, -1, 233, 234, 235, 236, -1, -1, 239, -1, 241, 242, 243, -1, 245, -1, -1, 248, 249, 250, -1, -1, -1, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, -1, 266, -1, 268, -1, 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, 317, -1, 319, -1, 321, 322, 323, 324, -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, -1, -1, -1, -1, -1, 354, -1, 356, -1, -1, 359, 360, 361, 362, 363, 364, 365, -1, -1, 368, 369, 370, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, -1, -1, 383, 384, 385, 386, 387, -1, -1, 390, -1, -1, 393, 394, 395, 396, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, 407, 408, 409 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 14, 24, 26, 27, 41, 61, 63, 64, 69, 71, 81, 83, 99, 102, 114, 116, 120, 126, 133, 135, 141, 155, 209, 210, 215, 223, 234, 271, 282, 287, 289, 294, 299, 302, 306, 311, 312, 319, 322, 330, 342, 359, 369, 375, 380, 392, 426, 433, 434, 435, 436, 442, 443, 445, 446, 447, 448, 449, 450, 451, 453, 454, 458, 469, 472, 473, 476, 477, 478, 489, 492, 493, 508, 545, 548, 549, 556, 562, 564, 566, 567, 570, 573, 574, 578, 579, 588, 592, 593, 594, 598, 599, 601, 602, 603, 616, 617, 618, 619, 630, 631, 638, 639, 642, 643, 644, 645, 646, 651, 653, 656, 660, 664, 665, 675, 676, 679, 684, 695, 714, 717, 718, 719, 722, 725, 727, 729, 732, 735, 736, 737, 744, 745, 747, 748, 749, 754, 756, 757, 761, 762, 765, 766, 767, 769, 770, 771, 772, 774, 777, 778, 783, 789, 792, 794, 795, 800, 802, 806, 813, 817, 818, 819, 820, 821, 822, 825, 852, 354, 394, 750, 21, 67, 80, 97, 103, 118, 136, 147, 152, 158, 173, 198, 248, 276, 301, 307, 313, 316, 342, 344, 348, 356, 361, 373, 386, 563, 750, 3, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 33, 34, 36, 37, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 69, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 82, 85, 86, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 108, 109, 110, 112, 113, 114, 117, 118, 119, 120, 121, 123, 124, 125, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 142, 143, 144, 146, 148, 152, 153, 154, 156, 157, 159, 161, 162, 163, 164, 165, 167, 168, 169, 171, 172, 173, 174, 175, 176, 178, 180, 181, 182, 183, 184, 185, 186, 188, 190, 193, 195, 196, 197, 198, 199, 200, 201, 203, 204, 206, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 233, 234, 236, 238, 239, 240, 241, 242, 243, 245, 248, 249, 250, 253, 257, 258, 259, 260, 261, 262, 263, 264, 266, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 313, 314, 315, 316, 317, 319, 320, 321, 322, 324, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 340, 341, 343, 344, 345, 346, 347, 348, 350, 351, 354, 355, 356, 357, 359, 360, 361, 362, 363, 364, 365, 368, 369, 370, 371, 372, 375, 376, 377, 378, 379, 380, 381, 383, 385, 386, 387, 390, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 814, 957, 969, 972, 973, 384, 779, 246, 272, 750, 44, 499, 818, 21, 33, 54, 67, 76, 97, 103, 118, 136, 147, 154, 158, 211, 248, 251, 301, 307, 316, 344, 345, 347, 348, 356, 361, 367, 370, 373, 509, 634, 685, 696, 22, 271, 957, 814, 22, 266, 345, 347, 5, 197, 723, 724, 966, 21, 33, 54, 67, 80, 97, 118, 136, 147, 152, 158, 173, 248, 258, 301, 305, 307, 313, 316, 342, 344, 348, 356, 361, 373, 386, 563, 647, 750, 957, 83, 384, 426, 545, 778, 784, 792, 795, 800, 806, 813, 817, 9, 15, 22, 39, 142, 148, 150, 170, 199, 229, 274, 288, 417, 418, 661, 662, 814, 965, 968, 22, 83, 286, 312, 666, 667, 668, 969, 969, 962, 966, 342, 828, 661, 969, 354, 957, 258, 97, 173, 341, 342, 730, 306, 969, 22, 317, 350, 354, 461, 969, 19, 155, 666, 667, 272, 750, 969, 196, 22, 115, 830, 55, 77, 211, 225, 301, 307, 317, 350, 354, 397, 459, 460, 461, 22, 317, 350, 354, 461, 354, 247, 861, 955, 969, 828, 419, 969, 151, 426, 780, 426, 951, 284, 823, 824, 957, 818, 819, 822, 0, 429, 779, 129, 187, 252, 366, 831, 832, 818, 820, 821, 108, 183, 372, 430, 3, 38, 44, 67, 73, 84, 90, 149, 151, 166, 179, 191, 192, 194, 205, 207, 227, 235, 254, 255, 256, 300, 323, 384, 963, 969, 970, 972, 974, 649, 969, 649, 958, 969, 275, 649, 649, 957, 969, 96, 342, 674, 963, 967, 969, 165, 955, 241, 8, 62, 140, 413, 414, 415, 417, 418, 419, 420, 421, 422, 721, 918, 919, 969, 967, 957, 165, 955, 957, 165, 861, 957, 309, 957, 649, 216, 967, 165, 955, 197, 105, 193, 232, 280, 751, 752, 753, 955, 961, 969, 21, 54, 67, 68, 76, 80, 97, 118, 136, 147, 152, 173, 198, 248, 301, 305, 307, 313, 316, 342, 344, 348, 356, 361, 386, 563, 654, 966, 955, 352, 963, 957, 426, 649, 356, 958, 649, 165, 957, 96, 342, 345, 347, 967, 345, 347, 62, 140, 721, 292, 967, 455, 969, 957, 957, 309, 957, 649, 216, 967, 313, 342, 386, 80, 173, 152, 305, 360, 557, 22, 957, 815, 468, 966, 969, 724, 165, 963, 957, 165, 728, 165, 958, 96, 342, 165, 963, 165, 956, 957, 73, 62, 140, 165, 721, 48, 165, 956, 165, 957, 165, 957, 165, 957, 309, 165, 957, 165, 216, 956, 197, 165, 648, 649, 426, 793, 509, 784, 380, 384, 778, 785, 786, 787, 969, 779, 968, 662, 663, 22, 663, 968, 663, 22, 663, 968, 663, 663, 663, 968, 965, 965, 814, 663, 275, 426, 426, 528, 528, 528, 246, 352, 430, 528, 861, 862, 430, 746, 966, 426, 790, 48, 957, 957, 955, 969, 38, 409, 193, 428, 249, 249, 246, 150, 966, 352, 145, 657, 246, 4, 6, 7, 8, 10, 30, 43, 45, 46, 53, 54, 57, 58, 65, 67, 87, 88, 89, 90, 91, 92, 93, 100, 101, 119, 134, 138, 139, 143, 157, 185, 186, 188, 204, 212, 213, 226, 228, 232, 237, 238, 240, 248, 257, 267, 281, 303, 318, 325, 338, 350, 351, 355, 357, 358, 367, 373, 381, 399, 400, 401, 402, 403, 404, 405, 406, 417, 418, 419, 426, 818, 873, 876, 879, 880, 881, 883, 884, 885, 886, 889, 890, 894, 896, 897, 916, 920, 939, 944, 952, 953, 963, 964, 965, 966, 969, 966, 22, 474, 954, 955, 317, 459, 103, 467, 966, 468, 966, 38, 59, 459, 409, 326, 752, 249, 150, 352, 413, 38, 409, 193, 753, 426, 955, 419, 424, 428, 945, 946, 862, 149, 151, 384, 775, 776, 778, 149, 781, 103, 894, 949, 950, 823, 430, 426, 782, 427, 427, 435, 955, 22, 115, 829, 829, 48, 829, 141, 145, 208, 244, 835, 837, 838, 847, 849, 850, 831, 832, 150, 189, 861, 863, 951, 426, 624, 946, 259, 290, 319, 428, 650, 259, 290, 319, 259, 290, 319, 392, 437, 469, 470, 680, 18, 120, 259, 290, 319, 377, 481, 319, 18, 120, 372, 452, 395, 165, 861, 50, 82, 137, 168, 203, 232, 259, 290, 298, 304, 311, 319, 328, 336, 387, 469, 471, 708, 715, 426, 697, 290, 452, 134, 18, 24, 64, 113, 120, 123, 175, 230, 232, 242, 250, 259, 290, 294, 319, 377, 479, 480, 582, 4, 418, 554, 968, 649, 649, 426, 720, 428, 170, 290, 437, 444, 259, 290, 134, 49, 95, 172, 218, 220, 230, 258, 290, 295, 319, 330, 479, 551, 552, 259, 290, 385, 582, 590, 134, 290, 319, 479, 259, 290, 294, 319, 74, 112, 260, 346, 246, 18, 24, 120, 259, 290, 319, 490, 491, 145, 290, 319, 437, 470, 134, 290, 319, 479, 957, 206, 105, 247, 396, 430, 751, 374, 773, 246, 963, 426, 957, 96, 342, 963, 241, 62, 140, 721, 957, 309, 957, 197, 649, 528, 333, 334, 495, 966, 426, 624, 625, 60, 3, 43, 45, 46, 57, 58, 100, 101, 143, 185, 186, 188, 226, 228, 240, 281, 320, 325, 350, 351, 381, 870, 872, 874, 876, 878, 880, 881, 882, 884, 885, 889, 890, 970, 972, 150, 426, 620, 957, 437, 31, 768, 232, 437, 395, 165, 955, 437, 649, 649, 620, 509, 437, 38, 456, 361, 589, 259, 565, 74, 112, 260, 346, 20, 40, 184, 604, 31, 620, 145, 437, 955, 165, 546, 955, 955, 649, 73, 686, 963, 957, 563, 44, 94, 182, 230, 308, 134, 624, 51, 296, 482, 134, 426, 134, 395, 134, 697, 134, 430, 165, 648, 165, 649, 165, 649, 134, 720, 956, 134, 134, 246, 134, 482, 134, 74, 112, 260, 346, 134, 246, 134, 145, 165, 165, 468, 134, 430, 482, 894, 923, 342, 427, 430, 139, 246, 358, 465, 468, 554, 788, 784, 663, 814, 663, 814, 663, 814, 663, 814, 663, 814, 814, 814, 663, 814, 426, 529, 530, 969, 529, 22, 97, 118, 147, 152, 197, 198, 307, 313, 342, 344, 361, 669, 954, 956, 668, 170, 430, 803, 966, 870, 926, 31, 956, 146, 731, 731, 731, 206, 969, 145, 145, 669, 956, 306, 969, 468, 246, 426, 947, 424, 818, 927, 383, 887, 894, 943, 426, 887, 887, 426, 145, 426, 426, 426, 875, 875, 269, 818, 426, 426, 877, 426, 426, 426, 426, 57, 58, 887, 894, 426, 875, 426, 426, 426, 426, 426, 393, 412, 426, 891, 426, 891, 426, 426, 818, 426, 426, 426, 426, 426, 426, 426, 426, 894, 894, 818, 894, 923, 946, 966, 58, 426, 888, 426, 966, 3, 8, 11, 28, 31, 36, 42, 66, 166, 170, 191, 192, 207, 232, 235, 248, 251, 323, 413, 414, 415, 417, 418, 419, 420, 421, 422, 918, 920, 922, 256, 894, 189, 430, 826, 426, 966, 946, 106, 167, 475, 430, 59, 103, 468, 31, 3, 103, 211, 466, 554, 890, 966, 966, 78, 117, 903, 86, 103, 462, 463, 465, 554, 103, 462, 206, 955, 894, 3, 22, 26, 27, 28, 29, 30, 31, 32, 35, 47, 53, 54, 60, 66, 68, 76, 83, 87, 88, 89, 91, 92, 93, 103, 105, 111, 115, 116, 122, 126, 129, 139, 141, 145, 147, 150, 155, 158, 160, 170, 177, 187, 189, 202, 208, 212, 213, 232, 237, 244, 246, 247, 251, 252, 265, 273, 286, 297, 312, 318, 327, 339, 342, 349, 352, 353, 358, 366, 367, 373, 374, 382, 388, 389, 391, 392, 419, 960, 971, 972, 973, 974, 975, 945, 79, 295, 652, 427, 430, 779, 427, 430, 824, 956, 31, 782, 820, 820, 833, 834, 894, 820, 142, 229, 844, 280, 321, 372, 22, 839, 894, 840, 842, 894, 896, 847, 848, 838, 837, 835, 836, 145, 850, 835, 847, 863, 955, 31, 969, 319, 419, 926, 259, 290, 319, 352, 352, 307, 960, 428, 352, 352, 307, 352, 352, 344, 459, 763, 145, 155, 170, 299, 681, 682, 60, 76, 130, 147, 273, 367, 525, 526, 76, 103, 232, 352, 76, 352, 103, 232, 307, 76, 307, 571, 21, 54, 67, 80, 118, 147, 152, 248, 307, 313, 316, 342, 348, 361, 386, 563, 957, 134, 290, 319, 479, 246, 554, 311, 203, 352, 352, 237, 554, 107, 190, 307, 317, 354, 460, 296, 319, 708, 716, 170, 180, 253, 320, 382, 427, 698, 701, 702, 703, 705, 870, 970, 352, 373, 955, 68, 130, 516, 525, 969, 68, 733, 246, 305, 356, 76, 733, 25, 293, 305, 356, 955, 175, 242, 649, 426, 352, 352, 426, 485, 344, 392, 393, 485, 76, 430, 4, 259, 374, 374, 231, 870, 259, 319, 721, 97, 352, 439, 470, 352, 352, 955, 554, 48, 553, 554, 554, 95, 218, 220, 48, 352, 437, 307, 437, 230, 552, 352, 352, 237, 966, 582, 861, 76, 352, 733, 307, 352, 352, 485, 485, 649, 649, 649, 649, 955, 37, 379, 37, 37, 352, 37, 352, 307, 430, 93, 373, 600, 967, 352, 439, 955, 352, 307, 259, 290, 280, 291, 315, 464, 751, 961, 969, 955, 624, 870, 246, 395, 697, 554, 649, 649, 720, 191, 246, 74, 112, 260, 346, 246, 649, 191, 392, 500, 437, 3, 626, 627, 620, 426, 872, 31, 30, 871, 98, 163, 219, 222, 310, 407, 426, 892, 893, 650, 875, 649, 621, 622, 971, 20, 758, 870, 134, 568, 957, 232, 426, 595, 438, 634, 374, 386, 438, 967, 83, 155, 457, 508, 548, 603, 664, 684, 754, 966, 590, 591, 957, 214, 649, 649, 649, 649, 242, 108, 183, 359, 372, 605, 606, 127, 279, 426, 600, 438, 550, 551, 232, 31, 242, 426, 528, 528, 145, 687, 961, 426, 699, 31, 197, 392, 393, 816, 308, 963, 482, 870, 958, 165, 957, 963, 482, 956, 957, 134, 482, 134, 374, 134, 374, 721, 482, 482, 956, 957, 649, 957, 957, 957, 649, 956, 600, 134, 134, 482, 648, 649, 427, 430, 955, 784, 786, 814, 814, 814, 814, 814, 814, 529, 427, 430, 427, 153, 314, 343, 956, 648, 96, 316, 673, 674, 956, 241, 956, 954, 954, 956, 648, 352, 392, 677, 16, 132, 303, 321, 804, 861, 236, 805, 427, 430, 791, 795, 800, 806, 817, 352, 667, 666, 667, 150, 156, 678, 969, 21, 68, 97, 118, 147, 152, 198, 301, 307, 313, 342, 344, 361, 386, 563, 658, 923, 945, 425, 923, 927, 928, 426, 388, 940, 941, 894, 923, 426, 965, 965, 923, 3, 98, 163, 219, 222, 310, 407, 929, 930, 966, 965, 923, 923, 965, 965, 887, 887, 894, 721, 894, 931, 417, 418, 895, 896, 916, 920, 933, 427, 923, 894, 923, 934, 350, 409, 965, 965, 894, 47, 150, 202, 353, 894, 923, 937, 923, 224, 896, 894, 901, 902, 903, 224, 894, 903, 427, 430, 319, 965, 965, 892, 870, 894, 971, 350, 35, 339, 948, 649, 894, 426, 818, 938, 115, 117, 139, 232, 237, 242, 358, 368, 894, 42, 166, 170, 207, 323, 426, 894, 352, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 22, 29, 327, 917, 303, 426, 916, 154, 211, 342, 345, 347, 370, 827, 955, 953, 150, 853, 22, 115, 382, 419, 427, 703, 894, 924, 925, 970, 955, 354, 426, 966, 430, 427, 425, 431, 164, 164, 482, 955, 776, 777, 955, 949, 427, 426, 430, 32, 111, 374, 693, 426, 841, 968, 247, 242, 851, 851, 430, 303, 304, 843, 848, 836, 374, 801, 103, 426, 796, 817, 969, 426, 807, 808, 809, 810, 811, 969, 427, 427, 352, 352, 307, 967, 957, 957, 960, 967, 957, 957, 967, 958, 957, 75, 764, 301, 373, 666, 307, 155, 666, 426, 957, 374, 688, 195, 195, 374, 426, 544, 165, 957, 237, 967, 957, 957, 894, 237, 957, 957, 957, 352, 572, 963, 426, 649, 649, 649, 96, 342, 674, 62, 140, 721, 957, 649, 957, 649, 309, 649, 649, 197, 159, 230, 259, 290, 378, 575, 576, 577, 861, 352, 733, 307, 237, 107, 190, 967, 957, 246, 957, 253, 970, 427, 430, 703, 705, 702, 705, 970, 650, 967, 956, 290, 479, 516, 870, 969, 957, 957, 22, 373, 957, 165, 957, 165, 969, 305, 356, 305, 356, 957, 22, 373, 957, 955, 18, 120, 319, 583, 584, 585, 586, 971, 967, 957, 487, 488, 971, 957, 245, 64, 245, 957, 480, 352, 959, 969, 959, 430, 427, 430, 352, 307, 958, 967, 3, 75, 125, 175, 264, 365, 373, 376, 440, 967, 957, 290, 319, 479, 551, 554, 649, 957, 554, 957, 554, 967, 957, 290, 319, 479, 957, 957, 957, 957, 967, 957, 18, 24, 120, 259, 290, 319, 259, 290, 319, 620, 290, 319, 290, 319, 290, 869, 969, 966, 969, 165, 969, 967, 957, 957, 957, 18, 491, 316, 967, 290, 319, 479, 957, 957, 352, 352, 72, 364, 280, 191, 31, 649, 191, 191, 374, 374, 191, 237, 655, 966, 649, 649, 649, 649, 649, 649, 191, 655, 245, 150, 352, 494, 426, 496, 497, 413, 427, 430, 894, 30, 871, 870, 424, 424, 352, 352, 352, 426, 352, 965, 875, 427, 430, 413, 605, 75, 124, 200, 201, 214, 259, 344, 346, 759, 518, 957, 150, 307, 385, 569, 576, 577, 134, 427, 516, 596, 597, 316, 19, 170, 301, 340, 440, 441, 145, 959, 955, 456, 251, 509, 147, 966, 620, 620, 620, 620, 242, 246, 251, 426, 620, 867, 868, 869, 316, 134, 133, 817, 649, 207, 510, 512, 514, 516, 522, 525, 969, 392, 393, 540, 392, 486, 966, 246, 427, 700, 701, 706, 31, 197, 298, 391, 707, 708, 709, 246, 468, 162, 162, 145, 624, 31, 134, 482, 697, 648, 649, 959, 649, 959, 720, 246, 482, 482, 246, 482, 316, 145, 468, 482, 894, 427, 530, 170, 170, 170, 395, 956, 430, 554, 555, 158, 670, 671, 967, 19, 678, 132, 321, 132, 321, 303, 372, 221, 870, 957, 150, 246, 670, 48, 482, 963, 342, 963, 241, 197, 649, 427, 425, 425, 430, 923, 894, 122, 941, 942, 31, 427, 894, 427, 427, 427, 427, 150, 427, 427, 427, 427, 427, 430, 427, 265, 932, 427, 895, 895, 11, 170, 191, 248, 413, 414, 415, 417, 418, 419, 420, 421, 422, 920, 895, 427, 427, 145, 150, 935, 936, 427, 409, 427, 427, 31, 937, 923, 937, 937, 150, 427, 427, 971, 263, 905, 31, 427, 430, 894, 971, 430, 894, 947, 894, 969, 427, 427, 409, 895, 895, 128, 923, 150, 115, 117, 139, 237, 242, 358, 368, 426, 128, 339, 948, 894, 938, 894, 352, 721, 894, 426, 818, 345, 347, 345, 347, 955, 828, 828, 828, 426, 818, 854, 855, 856, 861, 864, 897, 963, 969, 389, 865, 924, 924, 925, 427, 255, 909, 13, 427, 430, 832, 752, 965, 892, 463, 894, 782, 791, 834, 248, 918, 921, 410, 411, 694, 894, 843, 954, 805, 805, 840, 854, 389, 866, 380, 797, 798, 969, 297, 799, 811, 812, 430, 853, 413, 947, 967, 957, 957, 208, 956, 956, 246, 956, 249, 246, 894, 526, 959, 426, 426, 426, 544, 173, 529, 614, 134, 482, 352, 468, 624, 870, 395, 649, 649, 649, 720, 74, 112, 260, 346, 957, 558, 957, 159, 378, 352, 352, 558, 575, 582, 290, 319, 479, 957, 957, 957, 181, 237, 650, 701, 705, 705, 421, 352, 250, 580, 120, 294, 319, 481, 582, 734, 134, 482, 134, 482, 957, 957, 957, 957, 585, 586, 585, 427, 430, 587, 966, 427, 430, 413, 428, 967, 259, 290, 319, 18, 120, 259, 290, 319, 870, 231, 870, 967, 957, 208, 264, 237, 966, 264, 956, 371, 352, 307, 352, 733, 307, 352, 352, 216, 216, 216, 352, 352, 307, 352, 352, 307, 352, 307, 352, 307, 352, 482, 870, 20, 40, 319, 734, 134, 482, 352, 957, 352, 307, 967, 957, 655, 870, 191, 655, 655, 959, 959, 655, 191, 191, 191, 191, 191, 191, 655, 495, 503, 504, 971, 44, 85, 109, 124, 128, 146, 161, 237, 245, 278, 498, 248, 417, 418, 554, 623, 705, 921, 966, 975, 3, 627, 427, 424, 427, 965, 425, 965, 163, 219, 893, 219, 893, 893, 965, 222, 427, 622, 623, 246, 208, 413, 760, 760, 760, 760, 760, 760, 760, 60, 66, 76, 103, 105, 177, 232, 237, 273, 286, 367, 519, 520, 521, 437, 468, 957, 468, 580, 955, 427, 430, 957, 956, 158, 301, 956, 965, 361, 528, 292, 342, 96, 529, 955, 606, 628, 629, 966, 427, 430, 957, 955, 957, 392, 547, 426, 511, 955, 427, 430, 245, 485, 245, 246, 541, 485, 31, 352, 955, 427, 430, 103, 413, 710, 966, 468, 342, 704, 705, 392, 709, 711, 108, 183, 312, 372, 742, 159, 817, 482, 870, 957, 482, 482, 374, 482, 374, 482, 482, 649, 649, 957, 600, 482, 307, 307, 307, 956, 674, 430, 967, 392, 430, 672, 249, 132, 132, 956, 669, 482, 967, 624, 697, 554, 649, 191, 927, 427, 349, 894, 126, 870, 427, 894, 894, 894, 935, 870, 895, 115, 117, 232, 242, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 894, 894, 936, 935, 891, 891, 870, 427, 427, 427, 923, 427, 430, 48, 896, 427, 971, 902, 270, 337, 904, 427, 430, 385, 898, 31, 427, 888, 966, 894, 28, 28, 894, 427, 894, 150, 426, 926, 894, 895, 895, 128, 128, 894, 427, 128, 894, 828, 828, 828, 828, 955, 955, 955, 818, 855, 856, 31, 857, 969, 430, 84, 151, 179, 194, 205, 227, 300, 858, 857, 31, 857, 969, 426, 946, 894, 158, 845, 430, 831, 832, 831, 427, 909, 426, 910, 969, 894, 909, 966, 382, 925, 427, 427, 425, 427, 426, 694, 427, 247, 86, 894, 799, 427, 430, 947, 952, 427, 430, 808, 866, 949, 760, 153, 314, 343, 362, 683, 145, 683, 427, 426, 532, 533, 690, 897, 969, 529, 529, 614, 961, 427, 105, 177, 230, 232, 615, 957, 957, 31, 957, 374, 374, 649, 649, 649, 649, 650, 967, 957, 352, 733, 307, 352, 181, 421, 361, 957, 426, 518, 232, 485, 96, 232, 332, 335, 485, 361, 957, 969, 584, 488, 623, 971, 352, 352, 307, 152, 248, 335, 632, 633, 152, 248, 640, 641, 352, 352, 307, 427, 427, 427, 968, 966, 966, 966, 957, 957, 957, 957, 957, 957, 957, 145, 145, 292, 145, 165, 967, 957, 957, 967, 957, 957, 957, 957, 957, 957, 957, 66, 483, 966, 966, 361, 969, 957, 582, 957, 957, 427, 655, 191, 191, 655, 655, 655, 655, 655, 655, 374, 501, 502, 427, 430, 419, 426, 465, 505, 554, 768, 966, 768, 232, 278, 768, 768, 614, 965, 392, 393, 425, 425, 427, 892, 955, 760, 103, 965, 966, 103, 966, 103, 966, 103, 966, 103, 957, 103, 957, 103, 957, 426, 649, 957, 895, 106, 167, 105, 237, 195, 955, 711, 568, 595, 597, 580, 956, 956, 870, 486, 955, 395, 145, 607, 427, 430, 869, 580, 242, 426, 793, 96, 230, 513, 515, 517, 525, 969, 540, 523, 176, 539, 514, 71, 344, 542, 817, 966, 688, 706, 894, 894, 430, 426, 707, 620, 352, 558, 427, 482, 959, 959, 482, 482, 316, 956, 956, 956, 554, 155, 671, 678, 150, 191, 191, 191, 191, 237, 659, 966, 894, 427, 427, 936, 150, 115, 117, 242, 426, 427, 398, 900, 923, 285, 48, 390, 390, 427, 894, 230, 894, 430, 899, 872, 892, 895, 895, 894, 926, 427, 28, 28, 894, 894, 128, 894, 427, 955, 955, 955, 955, 427, 969, 426, 855, 194, 254, 859, 855, 859, 194, 858, 859, 194, 426, 969, 426, 924, 48, 160, 846, 427, 427, 909, 911, 969, 925, 909, 966, 721, 242, 817, 798, 413, 811, 799, 968, 352, 666, 150, 614, 894, 427, 430, 392, 66, 691, 691, 427, 427, 711, 106, 167, 175, 105, 376, 482, 870, 959, 959, 957, 957, 957, 957, 361, 581, 585, 237, 237, 968, 969, 870, 482, 482, 413, 967, 957, 957, 965, 965, 870, 430, 965, 965, 430, 967, 957, 957, 352, 956, 956, 649, 956, 134, 649, 870, 482, 482, 191, 655, 655, 437, 110, 504, 465, 506, 507, 966, 966, 237, 419, 529, 966, 966, 425, 152, 180, 152, 150, 613, 968, 894, 232, 520, 711, 528, 374, 543, 316, 374, 31, 426, 957, 121, 608, 388, 610, 966, 649, 510, 547, 96, 427, 430, 392, 541, 131, 171, 426, 540, 108, 120, 270, 957, 392, 755, 150, 426, 966, 703, 712, 713, 970, 711, 955, 178, 559, 482, 482, 482, 957, 249, 482, 670, 659, 659, 659, 659, 895, 150, 426, 926, 426, 427, 430, 427, 896, 285, 427, 379, 329, 427, 427, 427, 895, 895, 894, 857, 426, 956, 855, 246, 374, 860, 855, 194, 855, 868, 426, 868, 969, 427, 923, 894, 391, 906, 909, 909, 262, 912, 427, 892, 427, 814, 951, 670, 246, 670, 427, 711, 533, 248, 721, 649, 374, 649, 692, 692, 286, 711, 543, 427, 352, 427, 430, 483, 623, 426, 963, 721, 633, 426, 426, 641, 957, 392, 292, 392, 392, 145, 483, 655, 496, 966, 427, 430, 529, 674, 31, 726, 726, 955, 614, 427, 543, 217, 531, 173, 957, 959, 817, 580, 303, 331, 609, 426, 133, 511, 427, 515, 250, 542, 22, 70, 77, 104, 174, 335, 524, 524, 954, 541, 304, 304, 52, 60, 211, 649, 689, 690, 705, 427, 430, 865, 558, 230, 378, 560, 561, 482, 895, 926, 427, 901, 923, 48, 230, 408, 956, 427, 894, 426, 855, 860, 427, 868, 427, 907, 908, 969, 48, 831, 909, 672, 683, 482, 691, 543, 426, 649, 693, 693, 955, 543, 614, 957, 585, 374, 484, 926, 697, 145, 636, 720, 926, 926, 648, 649, 648, 649, 956, 482, 507, 726, 34, 169, 145, 230, 527, 151, 261, 324, 246, 535, 536, 537, 344, 580, 140, 635, 755, 894, 277, 540, 539, 518, 427, 542, 60, 249, 60, 427, 430, 707, 712, 116, 378, 558, 427, 427, 427, 285, 379, 427, 956, 427, 430, 31, 923, 279, 304, 913, 150, 692, 389, 534, 721, 694, 694, 528, 614, 894, 427, 252, 309, 283, 637, 636, 427, 427, 392, 121, 175, 108, 372, 246, 537, 246, 536, 957, 649, 31, 427, 963, 541, 540, 249, 249, 486, 690, 711, 23, 184, 743, 427, 908, 910, 42, 86, 363, 894, 914, 915, 914, 427, 670, 693, 426, 614, 427, 531, 963, 48, 637, 649, 303, 51, 230, 296, 319, 538, 538, 632, 426, 542, 541, 542, 233, 426, 738, 740, 745, 795, 800, 806, 817, 915, 303, 144, 268, 144, 268, 482, 694, 894, 535, 697, 649, 610, 17, 103, 237, 4, 611, 612, 965, 966, 971, 542, 865, 739, 740, 741, 818, 819, 28, 427, 614, 133, 427, 430, 427, 429, 915, 277, 612, 741, 963, 426, 611, 427 }; #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. However, YYFAIL appears to be in use. Nevertheless, it is formally deprecated in Bison 2.4.2's NEWS entry, where a plan to phase it out is discussed. */ #define YYFAIL goto yyerrlab #if defined YYFAIL /* This is here to suppress warnings from the GCC cpp's -Wunused-macros. Normally we don't worry about that warning, but some users do, and we want to make it easy for users to remove YYFAIL uses, which will produce warnings from Bison 2.5. */ #endif #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 /* 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 *yybottom, yytype_int16 *yytop) #else static void yy_stack_print (yybottom, yytop) yytype_int16 *yybottom; yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } 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++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); YYFPRINTF (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 or yypush_parse. | `-------------------------*/ #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 lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Location data for the lookahead symbol. */ YYLTYPE yylloc; /* Number of syntax errors so far. */ int yynerrs; int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The 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; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls; YYLTYPE *yylsp; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[3]; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yytoken = 0; yyss = yyssa; yyvs = yyvsa; yyls = yylsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; 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 = 1; #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_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, 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)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead 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; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ 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 1464 of yacc.c */ #line 666 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); } break; case 3: /* Line 1464 of yacc.c */ #line 673 "gram.y" { if ((yyvsp[(3) - (3)].node) != NULL) (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); else (yyval.list) = (yyvsp[(1) - (3)].list); } break; case 4: /* Line 1464 of yacc.c */ #line 680 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); else (yyval.list) = NIL; } break; case 115: /* Line 1464 of yacc.c */ #line 800 "gram.y" { (yyval.node) = NULL; } break; case 116: /* Line 1464 of yacc.c */ #line 811 "gram.y" { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_ROLE; n->role = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 117: /* Line 1464 of yacc.c */ #line 821 "gram.y" {} break; case 118: /* Line 1464 of yacc.c */ #line 822 "gram.y" {} break; case 119: /* Line 1464 of yacc.c */ #line 831 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 120: /* Line 1464 of yacc.c */ #line 832 "gram.y" { (yyval.list) = NIL; } break; case 121: /* Line 1464 of yacc.c */ #line 836 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 122: /* Line 1464 of yacc.c */ #line 837 "gram.y" { (yyval.list) = NIL; } break; case 123: /* Line 1464 of yacc.c */ #line 842 "gram.y" { (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 124: /* Line 1464 of yacc.c */ #line 847 "gram.y" { (yyval.defelt) = makeDefElem("password", NULL); } break; case 125: /* Line 1464 of yacc.c */ #line 851 "gram.y" { (yyval.defelt) = makeDefElem("encryptedPassword", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 126: /* Line 1464 of yacc.c */ #line 856 "gram.y" { (yyval.defelt) = makeDefElem("unencryptedPassword", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 127: /* Line 1464 of yacc.c */ #line 861 "gram.y" { (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(TRUE)); } break; case 128: /* Line 1464 of yacc.c */ #line 865 "gram.y" { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(3) - (3)].ival))); } break; case 129: /* Line 1464 of yacc.c */ #line 869 "gram.y" { (yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 130: /* Line 1464 of yacc.c */ #line 874 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list)); } break; case 131: /* Line 1464 of yacc.c */ #line 878 "gram.y" { /* * We handle identifiers that aren't parser keywords with * the following special-case codes, to avoid bloating the * size of the main parser. */ if (strcmp((yyvsp[(1) - (1)].str), "superuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nosuperuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "createuser") == 0) { /* For backwards compatibility, synonym for SUPERUSER */ (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE)); } else if (strcmp((yyvsp[(1) - (1)].str), "nocreateuser") == 0) { /* For backwards compatibility, synonym for SUPERUSER */ (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE)); } else if (strcmp((yyvsp[(1) - (1)].str), "createrole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nocreaterole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "replication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "noreplication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "createdb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nocreatedb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "login") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nologin") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "noinherit") == 0) { /* * Note that INHERIT is a keyword, so it's handled by main parser, but * NOINHERIT is handled here. */ (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(FALSE)); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized role option \"%s\"", (yyvsp[(1) - (1)].str)), parser_errposition((yylsp[(1) - (1)])))); } break; case 132: /* Line 1464 of yacc.c */ #line 931 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); } break; case 133: /* Line 1464 of yacc.c */ #line 934 "gram.y" { (yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[(2) - (2)].ival))); } break; case 134: /* Line 1464 of yacc.c */ #line 938 "gram.y" { (yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[(2) - (2)].list)); } break; case 135: /* Line 1464 of yacc.c */ #line 942 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list)); } break; case 136: /* Line 1464 of yacc.c */ #line 946 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list)); } break; case 137: /* Line 1464 of yacc.c */ #line 950 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list)); } break; case 138: /* Line 1464 of yacc.c */ #line 964 "gram.y" { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_USER; n->role = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 139: /* Line 1464 of yacc.c */ #line 982 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (5)].str); n->action = +1; /* add, if there are members */ n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 140: /* Line 1464 of yacc.c */ #line 992 "gram.y" { (yyval.str) = NULL; } break; case 141: /* Line 1464 of yacc.c */ #line 993 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 142: /* Line 1464 of yacc.c */ #line 998 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[(3) - (5)].str); n->database = (yyvsp[(4) - (5)].str); n->setstmt = (yyvsp[(5) - (5)].vsetstmt); (yyval.node) = (Node *)n; } break; case 143: /* Line 1464 of yacc.c */ #line 1016 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (5)].str); n->action = +1; /* add, if there are members */ n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 144: /* Line 1464 of yacc.c */ #line 1028 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[(3) - (4)].str); n->database = NULL; n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *)n; } break; case 145: /* Line 1464 of yacc.c */ #line 1049 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = FALSE; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; } break; case 146: /* Line 1464 of yacc.c */ #line 1056 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = TRUE; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 147: /* Line 1464 of yacc.c */ #line 1075 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = FALSE; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; } break; case 148: /* Line 1464 of yacc.c */ #line 1082 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[(5) - (5)].list); n->missing_ok = TRUE; (yyval.node) = (Node *)n; } break; case 149: /* Line 1464 of yacc.c */ #line 1099 "gram.y" { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_GROUP; n->role = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 150: /* Line 1464 of yacc.c */ #line 1117 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->options = list_make1(makeDefElem("rolemembers", (Node *)(yyvsp[(6) - (6)].list))); (yyval.node) = (Node *)n; } break; case 151: /* Line 1464 of yacc.c */ #line 1127 "gram.y" { (yyval.ival) = +1; } break; case 152: /* Line 1464 of yacc.c */ #line 1128 "gram.y" { (yyval.ival) = -1; } break; case 153: /* Line 1464 of yacc.c */ #line 1141 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = FALSE; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; } break; case 154: /* Line 1464 of yacc.c */ #line 1148 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = TRUE; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 155: /* Line 1464 of yacc.c */ #line 1165 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* One can omit the schema name or the authorization id. */ if ((yyvsp[(3) - (6)].str) != NULL) n->schemaname = (yyvsp[(3) - (6)].str); else n->schemaname = (yyvsp[(5) - (6)].str); n->authid = (yyvsp[(5) - (6)].str); n->schemaElts = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 156: /* Line 1464 of yacc.c */ #line 1177 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not both */ n->schemaname = (yyvsp[(3) - (4)].str); n->authid = NULL; n->schemaElts = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 157: /* Line 1464 of yacc.c */ #line 1188 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 158: /* Line 1464 of yacc.c */ #line 1189 "gram.y" { (yyval.str) = NULL; } break; case 159: /* Line 1464 of yacc.c */ #line 1193 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 160: /* Line 1464 of yacc.c */ #line 1194 "gram.y" { (yyval.list) = NIL; } break; case 167: /* Line 1464 of yacc.c */ #line 1222 "gram.y" { VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } break; case 168: /* Line 1464 of yacc.c */ #line 1228 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; } break; case 169: /* Line 1464 of yacc.c */ #line 1234 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } break; case 170: /* Line 1464 of yacc.c */ #line 1243 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION"; n->args = (yyvsp[(2) - (2)].list); (yyval.vsetstmt) = n; } break; case 171: /* Line 1464 of yacc.c */ #line 1251 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "SESSION CHARACTERISTICS"; n->args = (yyvsp[(5) - (5)].list); (yyval.vsetstmt) = n; } break; case 173: /* Line 1464 of yacc.c */ #line 1263 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[(1) - (3)].str); n->args = (yyvsp[(3) - (3)].list); (yyval.vsetstmt) = n; } break; case 174: /* Line 1464 of yacc.c */ #line 1271 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[(1) - (3)].str); n->args = (yyvsp[(3) - (3)].list); (yyval.vsetstmt) = n; } break; case 175: /* Line 1464 of yacc.c */ #line 1279 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; } break; case 176: /* Line 1464 of yacc.c */ #line 1286 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; } break; case 177: /* Line 1464 of yacc.c */ #line 1293 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; } break; case 178: /* Line 1464 of yacc.c */ #line 1301 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "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 179: /* Line 1464 of yacc.c */ #line 1312 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("current database cannot be changed"), parser_errposition((yylsp[(2) - (2)])))); (yyval.vsetstmt) = NULL; /*not reached*/ } break; case 180: /* Line 1464 of yacc.c */ #line 1320 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); (yyval.vsetstmt) = n; } break; case 181: /* Line 1464 of yacc.c */ #line 1328 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "client_encoding"; if ((yyvsp[(2) - (2)].str) != NULL) n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } break; case 182: /* Line 1464 of yacc.c */ #line 1339 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); (yyval.vsetstmt) = n; } break; case 183: /* Line 1464 of yacc.c */ #line 1347 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; } break; case 184: /* Line 1464 of yacc.c */ #line 1355 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; } break; case 185: /* Line 1464 of yacc.c */ #line 1362 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "xmloption"; n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; } break; case 186: /* Line 1464 of yacc.c */ #line 1371 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION SNAPSHOT"; n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; } break; case 187: /* Line 1464 of yacc.c */ #line 1380 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 188: /* Line 1464 of yacc.c */ #line 1382 "gram.y" { (yyval.str) = palloc(strlen((yyvsp[(1) - (3)].str)) + strlen((yyvsp[(3) - (3)].str)) + 2); sprintf((yyval.str), "%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); } break; case 189: /* Line 1464 of yacc.c */ #line 1388 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 190: /* Line 1464 of yacc.c */ #line 1389 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 191: /* Line 1464 of yacc.c */ #line 1393 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 192: /* Line 1464 of yacc.c */ #line 1395 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); } break; case 193: /* Line 1464 of yacc.c */ #line 1398 "gram.y" { (yyval.str) = "read uncommitted"; } break; case 194: /* Line 1464 of yacc.c */ #line 1399 "gram.y" { (yyval.str) = "read committed"; } break; case 195: /* Line 1464 of yacc.c */ #line 1400 "gram.y" { (yyval.str) = "repeatable read"; } break; case 196: /* Line 1464 of yacc.c */ #line 1401 "gram.y" { (yyval.str) = "serializable"; } break; case 197: /* Line 1464 of yacc.c */ #line 1405 "gram.y" { (yyval.str) = "true"; } break; case 198: /* Line 1464 of yacc.c */ #line 1406 "gram.y" { (yyval.str) = "false"; } break; case 199: /* Line 1464 of yacc.c */ #line 1407 "gram.y" { (yyval.str) = "on"; } break; case 200: /* Line 1464 of yacc.c */ #line 1413 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 201: /* Line 1464 of yacc.c */ #line 1426 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 202: /* Line 1464 of yacc.c */ #line 1430 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 203: /* Line 1464 of yacc.c */ #line 1434 "gram.y" { TypeName *t = (yyvsp[(1) - (3)].typnam); if ((yyvsp[(3) - (3)].list) != NIL) { A_Const *n = (A_Const *) linitial((yyvsp[(3) - (3)].list)); if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ereport(ERROR, (errcode(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 204: /* Line 1464 of yacc.c */ #line 1449 "gram.y" { TypeName *t = (yyvsp[(1) - (6)].typnam); if ((yyvsp[(6) - (6)].list) != NIL) { A_Const *n = (A_Const *) linitial((yyvsp[(6) - (6)].list)); if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), parser_errposition((yylsp[(6) - (6)])))); if (list_length((yyvsp[(6) - (6)].list)) != 1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("interval precision specified twice"), parser_errposition((yylsp[(1) - (6)])))); t->typmods = lappend((yyvsp[(6) - (6)].list), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)]))); } else t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)]))); (yyval.node) = makeStringConstCast((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]), t); } break; case 205: /* Line 1464 of yacc.c */ #line 1471 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); } break; case 206: /* Line 1464 of yacc.c */ #line 1472 "gram.y" { (yyval.node) = NULL; } break; case 207: /* Line 1464 of yacc.c */ #line 1473 "gram.y" { (yyval.node) = NULL; } break; case 208: /* Line 1464 of yacc.c */ #line 1477 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 209: /* Line 1464 of yacc.c */ #line 1478 "gram.y" { (yyval.str) = NULL; } break; case 210: /* Line 1464 of yacc.c */ #line 1479 "gram.y" { (yyval.str) = NULL; } break; case 211: /* Line 1464 of yacc.c */ #line 1483 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 212: /* Line 1464 of yacc.c */ #line 1484 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 213: /* Line 1464 of yacc.c */ #line 1489 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; } break; case 214: /* Line 1464 of yacc.c */ #line 1496 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.node) = (Node *) n; } break; case 215: /* Line 1464 of yacc.c */ #line 1503 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.node) = (Node *) n; } break; case 216: /* Line 1464 of yacc.c */ #line 1510 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.node) = (Node *) n; } break; case 217: /* Line 1464 of yacc.c */ #line 1517 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.node) = (Node *) n; } break; case 218: /* Line 1464 of yacc.c */ #line 1526 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); } break; case 219: /* Line 1464 of yacc.c */ #line 1527 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); } break; case 220: /* Line 1464 of yacc.c */ #line 1532 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); } break; case 221: /* Line 1464 of yacc.c */ #line 1533 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); } break; case 222: /* Line 1464 of yacc.c */ #line 1539 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; } break; case 223: /* Line 1464 of yacc.c */ #line 1545 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; } break; case 224: /* Line 1464 of yacc.c */ #line 1551 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; } break; case 225: /* Line 1464 of yacc.c */ #line 1557 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; } break; case 226: /* Line 1464 of yacc.c */ #line 1563 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; } break; case 227: /* Line 1464 of yacc.c */ #line 1573 "gram.y" { ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); n->constraints = (yyvsp[(3) - (4)].list); n->deferred = (yyvsp[(4) - (4)].boolean); (yyval.node) = (Node *) n; } break; case 228: /* Line 1464 of yacc.c */ #line 1582 "gram.y" { (yyval.list) = NIL; } break; case 229: /* Line 1464 of yacc.c */ #line 1583 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 230: /* Line 1464 of yacc.c */ #line 1587 "gram.y" { (yyval.boolean) = TRUE; } break; case 231: /* Line 1464 of yacc.c */ #line 1588 "gram.y" { (yyval.boolean) = FALSE; } break; case 232: /* Line 1464 of yacc.c */ #line 1597 "gram.y" { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *)n; } break; case 233: /* Line 1464 of yacc.c */ #line 1612 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; } break; case 234: /* Line 1464 of yacc.c */ #line 1618 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } break; case 235: /* Line 1464 of yacc.c */ #line 1624 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } break; case 236: /* Line 1464 of yacc.c */ #line 1630 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; } break; case 237: /* Line 1464 of yacc.c */ #line 1648 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 238: /* Line 1464 of yacc.c */ #line 1657 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 239: /* Line 1464 of yacc.c */ #line 1666 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 240: /* Line 1464 of yacc.c */ #line 1675 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_INDEX; n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 241: /* Line 1464 of yacc.c */ #line 1684 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 242: /* Line 1464 of yacc.c */ #line 1693 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 243: /* Line 1464 of yacc.c */ #line 1702 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_VIEW; n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 244: /* Line 1464 of yacc.c */ #line 1711 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_VIEW; n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 245: /* Line 1464 of yacc.c */ #line 1722 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 246: /* Line 1464 of yacc.c */ #line 1723 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 247: /* Line 1464 of yacc.c */ #line 1729 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(2) - (2)].node); (yyval.node) = (Node *)n; } break; case 248: /* Line 1464 of yacc.c */ #line 1737 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(3) - (3)].node); (yyval.node) = (Node *)n; } break; case 249: /* Line 1464 of yacc.c */ #line 1745 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ColumnDefault; n->name = (yyvsp[(3) - (4)].str); n->def = (yyvsp[(4) - (4)].node); (yyval.node) = (Node *)n; } break; case 250: /* Line 1464 of yacc.c */ #line 1754 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *)n; } break; case 251: /* Line 1464 of yacc.c */ #line 1762 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *)n; } break; case 252: /* Line 1464 of yacc.c */ #line 1770 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = (yyvsp[(3) - (6)].str); n->def = (Node *) makeInteger((yyvsp[(6) - (6)].ival)); (yyval.node) = (Node *)n; } break; case 253: /* Line 1464 of yacc.c */ #line 1779 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetOptions; n->name = (yyvsp[(3) - (5)].str); n->def = (Node *) (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 254: /* Line 1464 of yacc.c */ #line 1788 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetOptions; n->name = (yyvsp[(3) - (5)].str); n->def = (Node *) (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 255: /* Line 1464 of yacc.c */ #line 1797 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStorage; n->name = (yyvsp[(3) - (6)].str); n->def = (Node *) makeString((yyvsp[(6) - (6)].str)); (yyval.node) = (Node *)n; } break; case 256: /* Line 1464 of yacc.c */ #line 1806 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(5) - (6)].str); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = TRUE; (yyval.node) = (Node *)n; } break; case 257: /* Line 1464 of yacc.c */ #line 1816 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(3) - (4)].str); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = FALSE; (yyval.node) = (Node *)n; } break; case 258: /* Line 1464 of yacc.c */ #line 1829 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[(3) - (8)].str); n->def = (Node *) def; /* We only use these three fields of the ColumnDef node */ def->typeName = (yyvsp[(6) - (8)].typnam); def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node); def->raw_default = (yyvsp[(8) - (8)].node); (yyval.node) = (Node *)n; } break; case 259: /* Line 1464 of yacc.c */ #line 1843 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AlterColumnGenericOptions; n->name = (yyvsp[(3) - (4)].str); n->def = (Node *) (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 260: /* Line 1464 of yacc.c */ #line 1852 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[(2) - (2)].node); (yyval.node) = (Node *)n; } break; case 261: /* Line 1464 of yacc.c */ #line 1860 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 262: /* Line 1464 of yacc.c */ #line 1868 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[(5) - (6)].str); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = TRUE; (yyval.node) = (Node *)n; } break; case 263: /* Line 1464 of yacc.c */ #line 1878 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[(3) - (4)].str); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = FALSE; (yyval.node) = (Node *)n; } break; case 264: /* Line 1464 of yacc.c */ #line 1888 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddOids; (yyval.node) = (Node *)n; } break; case 265: /* Line 1464 of yacc.c */ #line 1895 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *)n; } break; case 266: /* Line 1464 of yacc.c */ #line 1902 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 267: /* Line 1464 of yacc.c */ #line 1910 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *)n; } break; case 268: /* Line 1464 of yacc.c */ #line 1918 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 269: /* Line 1464 of yacc.c */ #line 1926 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; } break; case 270: /* Line 1464 of yacc.c */ #line 1934 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; } break; case 271: /* Line 1464 of yacc.c */ #line 1942 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *)n; } break; case 272: /* Line 1464 of yacc.c */ #line 1949 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *)n; } break; case 273: /* Line 1464 of yacc.c */ #line 1956 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 274: /* Line 1464 of yacc.c */ #line 1964 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *)n; } break; case 275: /* Line 1464 of yacc.c */ #line 1971 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *)n; } break; case 276: /* Line 1464 of yacc.c */ #line 1978 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 277: /* Line 1464 of yacc.c */ #line 1986 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; } break; case 278: /* Line 1464 of yacc.c */ #line 1994 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; } break; case 279: /* Line 1464 of yacc.c */ #line 2002 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 280: /* Line 1464 of yacc.c */ #line 2010 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[(2) - (2)].range); (yyval.node) = (Node *)n; } break; case 281: /* Line 1464 of yacc.c */ #line 2018 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[(3) - (3)].range); (yyval.node) = (Node *)n; } break; case 282: /* Line 1464 of yacc.c */ #line 2026 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); TypeName *def = makeTypeNameFromNameList((yyvsp[(2) - (2)].list)); def->location = (yylsp[(2) - (2)]); n->subtype = AT_AddOf; n->def = (Node *) def; (yyval.node) = (Node *)n; } break; case 283: /* Line 1464 of yacc.c */ #line 2036 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *)n; } break; case 284: /* Line 1464 of yacc.c */ #line 2043 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 285: /* Line 1464 of yacc.c */ #line 2051 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 286: /* Line 1464 of yacc.c */ #line 2059 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *)(yyvsp[(2) - (2)].list); (yyval.node) = (Node *)n; } break; case 287: /* Line 1464 of yacc.c */ #line 2067 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *)(yyvsp[(2) - (2)].list); (yyval.node) = (Node *)n; } break; case 288: /* Line 1464 of yacc.c */ #line 2074 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *)(yyvsp[(1) - (1)].list); (yyval.node) = (Node *) n; } break; case 289: /* Line 1464 of yacc.c */ #line 2083 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); } break; case 290: /* Line 1464 of yacc.c */ #line 2084 "gram.y" { (yyval.node) = NULL; } break; case 291: /* Line 1464 of yacc.c */ #line 2088 "gram.y" { (yyval.dbehavior) = DROP_CASCADE; } break; case 292: /* Line 1464 of yacc.c */ #line 2089 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; } break; case 293: /* Line 1464 of yacc.c */ #line 2090 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; /* default */ } break; case 294: /* Line 1464 of yacc.c */ #line 2095 "gram.y" { CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[(2) - (2)].list); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; } break; case 295: /* Line 1464 of yacc.c */ #line 2102 "gram.y" { (yyval.node) = NULL; } break; case 296: /* Line 1464 of yacc.c */ #line 2106 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 297: /* Line 1464 of yacc.c */ #line 2107 "gram.y" { (yyval.node) = NULL; } break; case 298: /* Line 1464 of yacc.c */ #line 2111 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 299: /* Line 1464 of yacc.c */ #line 2114 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 300: /* Line 1464 of yacc.c */ #line 2115 "gram.y" { (yyval.list) = NIL; } break; case 301: /* Line 1464 of yacc.c */ #line 2119 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 302: /* Line 1464 of yacc.c */ #line 2120 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 303: /* Line 1464 of yacc.c */ #line 2126 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node)); } break; case 304: /* Line 1464 of yacc.c */ #line 2130 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL); } break; case 305: /* Line 1464 of yacc.c */ #line 2134 "gram.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (Node *) (yyvsp[(5) - (5)].node), DEFELEM_UNSPEC); } break; case 306: /* Line 1464 of yacc.c */ #line 2139 "gram.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC); } break; case 307: /* Line 1464 of yacc.c */ #line 2154 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); /* can't use qualified_name, sigh */ n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (4)].list), (yylsp[(3) - (4)]), yyscanner); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_TYPE; (yyval.node) = (Node *)n; } break; case 308: /* Line 1464 of yacc.c */ #line 2166 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 309: /* Line 1464 of yacc.c */ #line 2167 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 310: /* Line 1464 of yacc.c */ #line 2173 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(3) - (4)].node); n->behavior = (yyvsp[(4) - (4)].dbehavior); (yyval.node) = (Node *)n; } break; case 311: /* Line 1464 of yacc.c */ #line 2182 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(5) - (6)].str); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = TRUE; (yyval.node) = (Node *)n; } break; case 312: /* Line 1464 of yacc.c */ #line 2192 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(3) - (4)].str); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = FALSE; (yyval.node) = (Node *)n; } break; case 313: /* Line 1464 of yacc.c */ #line 2202 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[(3) - (8)].str); n->def = (Node *) def; n->behavior = (yyvsp[(8) - (8)].dbehavior); /* We only use these three fields of the ColumnDef node */ def->typeName = (yyvsp[(6) - (8)].typnam); def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node); def->raw_default = NULL; (yyval.node) = (Node *)n; } break; case 314: /* Line 1464 of yacc.c */ #line 2227 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; } break; case 315: /* Line 1464 of yacc.c */ #line 2233 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *)n; } break; case 316: /* Line 1464 of yacc.c */ #line 2261 "gram.y" { CopyStmt *n = makeNode(CopyStmt); n->relation = (yyvsp[(3) - (10)].range); n->query = NULL; n->attlist = (yyvsp[(4) - (10)].list); n->is_from = (yyvsp[(6) - (10)].boolean); n->filename = (yyvsp[(7) - (10)].str); n->options = NIL; /* Concatenate user-supplied flags */ if ((yyvsp[(2) - (10)].defelt)) n->options = lappend(n->options, (yyvsp[(2) - (10)].defelt)); if ((yyvsp[(5) - (10)].defelt)) n->options = lappend(n->options, (yyvsp[(5) - (10)].defelt)); if ((yyvsp[(8) - (10)].defelt)) n->options = lappend(n->options, (yyvsp[(8) - (10)].defelt)); if ((yyvsp[(10) - (10)].list)) n->options = list_concat(n->options, (yyvsp[(10) - (10)].list)); (yyval.node) = (Node *)n; } break; case 317: /* Line 1464 of yacc.c */ #line 2282 "gram.y" { CopyStmt *n = makeNode(CopyStmt); n->relation = NULL; n->query = (yyvsp[(2) - (6)].node); n->attlist = NIL; n->is_from = false; n->filename = (yyvsp[(4) - (6)].str); n->options = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 318: /* Line 1464 of yacc.c */ #line 2295 "gram.y" { (yyval.boolean) = TRUE; } break; case 319: /* Line 1464 of yacc.c */ #line 2296 "gram.y" { (yyval.boolean) = FALSE; } break; case 320: /* Line 1464 of yacc.c */ #line 2305 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 321: /* Line 1464 of yacc.c */ #line 2306 "gram.y" { (yyval.str) = NULL; } break; case 322: /* Line 1464 of yacc.c */ #line 2307 "gram.y" { (yyval.str) = NULL; } break; case 323: /* Line 1464 of yacc.c */ #line 2310 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 324: /* Line 1464 of yacc.c */ #line 2311 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 325: /* Line 1464 of yacc.c */ #line 2316 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 326: /* Line 1464 of yacc.c */ #line 2317 "gram.y" { (yyval.list) = NIL; } break; case 327: /* Line 1464 of yacc.c */ #line 2322 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary")); } break; case 328: /* Line 1464 of yacc.c */ #line 2326 "gram.y" { (yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE)); } break; case 329: /* Line 1464 of yacc.c */ #line 2330 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 330: /* Line 1464 of yacc.c */ #line 2334 "gram.y" { (yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 331: /* Line 1464 of yacc.c */ #line 2338 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *)makeString("csv")); } break; case 332: /* Line 1464 of yacc.c */ #line 2342 "gram.y" { (yyval.defelt) = makeDefElem("header", (Node *)makeInteger(TRUE)); } break; case 333: /* Line 1464 of yacc.c */ #line 2346 "gram.y" { (yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 334: /* Line 1464 of yacc.c */ #line 2350 "gram.y" { (yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 335: /* Line 1464 of yacc.c */ #line 2354 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[(3) - (3)].list)); } break; case 336: /* Line 1464 of yacc.c */ #line 2358 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star)); } break; case 337: /* Line 1464 of yacc.c */ #line 2362 "gram.y" { (yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[(4) - (4)].list)); } break; case 338: /* Line 1464 of yacc.c */ #line 2366 "gram.y" { (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 339: /* Line 1464 of yacc.c */ #line 2375 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary")); } break; case 340: /* Line 1464 of yacc.c */ #line 2378 "gram.y" { (yyval.defelt) = NULL; } break; case 341: /* Line 1464 of yacc.c */ #line 2383 "gram.y" { (yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE)); } break; case 342: /* Line 1464 of yacc.c */ #line 2386 "gram.y" { (yyval.defelt) = NULL; } break; case 343: /* Line 1464 of yacc.c */ #line 2391 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 344: /* Line 1464 of yacc.c */ #line 2394 "gram.y" { (yyval.defelt) = NULL; } break; case 345: /* Line 1464 of yacc.c */ #line 2398 "gram.y" {} break; case 346: /* Line 1464 of yacc.c */ #line 2399 "gram.y" {} break; case 347: /* Line 1464 of yacc.c */ #line 2405 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 348: /* Line 1464 of yacc.c */ #line 2409 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 349: /* Line 1464 of yacc.c */ #line 2416 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node)); } break; case 350: /* Line 1464 of yacc.c */ #line 2422 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); } break; case 351: /* Line 1464 of yacc.c */ #line 2423 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); } break; case 352: /* Line 1464 of yacc.c */ #line 2424 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); } break; case 353: /* Line 1464 of yacc.c */ #line 2425 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); } break; case 354: /* Line 1464 of yacc.c */ #line 2426 "gram.y" { (yyval.node) = NULL; } break; case 355: /* Line 1464 of yacc.c */ #line 2431 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 356: /* Line 1464 of yacc.c */ #line 2435 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 357: /* Line 1464 of yacc.c */ #line 2442 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); } break; case 358: /* Line 1464 of yacc.c */ #line 2455 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (11)].range)->relpersistence = (yyvsp[(2) - (11)].ival); n->relation = (yyvsp[(4) - (11)].range); n->tableElts = (yyvsp[(6) - (11)].list); n->inhRelations = (yyvsp[(8) - (11)].list); n->constraints = NIL; n->options = (yyvsp[(9) - (11)].list); n->oncommit = (yyvsp[(10) - (11)].oncommit); n->tablespacename = (yyvsp[(11) - (11)].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } break; case 359: /* Line 1464 of yacc.c */ #line 2471 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (14)].range)->relpersistence = (yyvsp[(2) - (14)].ival); n->relation = (yyvsp[(7) - (14)].range); n->tableElts = (yyvsp[(9) - (14)].list); n->inhRelations = (yyvsp[(11) - (14)].list); n->constraints = NIL; n->options = (yyvsp[(12) - (14)].list); n->oncommit = (yyvsp[(13) - (14)].oncommit); n->tablespacename = (yyvsp[(14) - (14)].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } break; case 360: /* Line 1464 of yacc.c */ #line 2486 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (10)].range)->relpersistence = (yyvsp[(2) - (10)].ival); n->relation = (yyvsp[(4) - (10)].range); n->tableElts = (yyvsp[(7) - (10)].list); n->ofTypename = makeTypeNameFromNameList((yyvsp[(6) - (10)].list)); n->ofTypename->location = (yylsp[(6) - (10)]); n->constraints = NIL; n->options = (yyvsp[(8) - (10)].list); n->oncommit = (yyvsp[(9) - (10)].oncommit); n->tablespacename = (yyvsp[(10) - (10)].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } break; case 361: /* Line 1464 of yacc.c */ #line 2502 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (13)].range)->relpersistence = (yyvsp[(2) - (13)].ival); n->relation = (yyvsp[(7) - (13)].range); n->tableElts = (yyvsp[(10) - (13)].list); n->ofTypename = makeTypeNameFromNameList((yyvsp[(9) - (13)].list)); n->ofTypename->location = (yylsp[(9) - (13)]); n->constraints = NIL; n->options = (yyvsp[(11) - (13)].list); n->oncommit = (yyvsp[(12) - (13)].oncommit); n->tablespacename = (yyvsp[(13) - (13)].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } break; case 362: /* Line 1464 of yacc.c */ #line 2529 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; } break; case 363: /* Line 1464 of yacc.c */ #line 2530 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; } break; case 364: /* Line 1464 of yacc.c */ #line 2531 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; } break; case 365: /* Line 1464 of yacc.c */ #line 2532 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; } break; case 366: /* Line 1464 of yacc.c */ #line 2534 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; } break; case 367: /* Line 1464 of yacc.c */ #line 2541 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; } break; case 368: /* Line 1464 of yacc.c */ #line 2547 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } break; case 369: /* Line 1464 of yacc.c */ #line 2548 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; } break; case 370: /* Line 1464 of yacc.c */ #line 2552 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 371: /* Line 1464 of yacc.c */ #line 2553 "gram.y" { (yyval.list) = NIL; } break; case 372: /* Line 1464 of yacc.c */ #line 2557 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 373: /* Line 1464 of yacc.c */ #line 2558 "gram.y" { (yyval.list) = NIL; } break; case 374: /* Line 1464 of yacc.c */ #line 2563 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 375: /* Line 1464 of yacc.c */ #line 2567 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 376: /* Line 1464 of yacc.c */ #line 2574 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 377: /* Line 1464 of yacc.c */ #line 2578 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 378: /* Line 1464 of yacc.c */ #line 2584 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 379: /* Line 1464 of yacc.c */ #line 2585 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 380: /* Line 1464 of yacc.c */ #line 2586 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 381: /* Line 1464 of yacc.c */ #line 2590 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 382: /* Line 1464 of yacc.c */ #line 2591 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 383: /* Line 1464 of yacc.c */ #line 2595 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (4)].str); n->typeName = (yyvsp[(2) - (4)].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; n->fdwoptions = (yyvsp[(3) - (4)].list); SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause, yyscanner); (yyval.node) = (Node *)n; } break; case 384: /* Line 1464 of yacc.c */ #line 2615 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (4)].str); n->typeName = NULL; 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[(4) - (4)].list), &n->constraints, &n->collClause, yyscanner); (yyval.node) = (Node *)n; } break; case 385: /* Line 1464 of yacc.c */ #line 2634 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 386: /* Line 1464 of yacc.c */ #line 2635 "gram.y" { (yyval.list) = NIL; } break; case 387: /* Line 1464 of yacc.c */ #line 2640 "gram.y" { Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node); Assert(IsA(n, Constraint)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; } break; case 388: /* Line 1464 of yacc.c */ #line 2647 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 389: /* Line 1464 of yacc.c */ #line 2648 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 390: /* Line 1464 of yacc.c */ #line 2650 "gram.y" { /* * Note: the CollateClause is momentarily included in * the list built by ColQualList, but we split it out * again in SplitColQualList. */ CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[(2) - (2)].list); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; } break; case 391: /* Line 1464 of yacc.c */ #line 2681 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 392: /* Line 1464 of yacc.c */ #line 2688 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 393: /* Line 1464 of yacc.c */ #line 2695 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (3)]); n->keys = NULL; n->options = (yyvsp[(2) - (3)].list); n->indexname = NULL; n->indexspace = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 394: /* Line 1464 of yacc.c */ #line 2706 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (4)]); n->keys = NULL; n->options = (yyvsp[(3) - (4)].list); n->indexname = NULL; n->indexspace = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; } break; case 395: /* Line 1464 of yacc.c */ #line 2717 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = 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; (yyval.node) = (Node *)n; } break; case 396: /* Line 1464 of yacc.c */ #line 2727 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; n->location = (yylsp[(1) - (2)]); n->raw_expr = (yyvsp[(2) - (2)].node); n->cooked_expr = NULL; (yyval.node) = (Node *)n; } break; case 397: /* Line 1464 of yacc.c */ #line 2736 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = 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) = (Node *)n; } break; case 398: /* Line 1464 of yacc.c */ #line 2769 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 399: /* Line 1464 of yacc.c */ #line 2776 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 400: /* Line 1464 of yacc.c */ #line 2783 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 401: /* Line 1464 of yacc.c */ #line 2790 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 402: /* Line 1464 of yacc.c */ #line 2801 "gram.y" { TableLikeClause *n = makeNode(TableLikeClause); n->relation = (yyvsp[(2) - (3)].range); n->options = (yyvsp[(3) - (3)].ival); (yyval.node) = (Node *)n; } break; case 403: /* Line 1464 of yacc.c */ #line 2810 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); } break; case 404: /* Line 1464 of yacc.c */ #line 2811 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); } break; case 405: /* Line 1464 of yacc.c */ #line 2812 "gram.y" { (yyval.ival) = 0; } break; case 406: /* Line 1464 of yacc.c */ #line 2816 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; } break; case 407: /* Line 1464 of yacc.c */ #line 2817 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; } break; case 408: /* Line 1464 of yacc.c */ #line 2818 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; } break; case 409: /* Line 1464 of yacc.c */ #line 2819 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; } break; case 410: /* Line 1464 of yacc.c */ #line 2820 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; } break; case 411: /* Line 1464 of yacc.c */ #line 2821 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_ALL; } break; case 412: /* Line 1464 of yacc.c */ #line 2831 "gram.y" { Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node); Assert(IsA(n, Constraint)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; } break; case 413: /* Line 1464 of yacc.c */ #line 2838 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 414: /* Line 1464 of yacc.c */ #line 2843 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = 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) = (Node *)n; } break; case 415: /* Line 1464 of yacc.c */ #line 2857 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (7)]); n->keys = (yyvsp[(3) - (7)].list); n->options = (yyvsp[(5) - (7)].list); n->indexname = NULL; n->indexspace = (yyvsp[(6) - (7)].str); processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } break; case 416: /* Line 1464 of yacc.c */ #line 2871 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = 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) = (Node *)n; } break; case 417: /* Line 1464 of yacc.c */ #line 2886 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (8)]); n->keys = (yyvsp[(4) - (8)].list); n->options = (yyvsp[(6) - (8)].list); n->indexname = NULL; n->indexspace = (yyvsp[(7) - (8)].str); processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } break; case 418: /* Line 1464 of yacc.c */ #line 2900 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = 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) = (Node *)n; } break; case 419: /* Line 1464 of yacc.c */ #line 2916 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_EXCLUSION; n->location = (yylsp[(1) - (9)]); n->access_method = (yyvsp[(2) - (9)].str); n->exclusions = (yyvsp[(4) - (9)].list); n->options = (yyvsp[(6) - (9)].list); n->indexname = NULL; n->indexspace = (yyvsp[(7) - (9)].str); n->where_clause = (yyvsp[(8) - (9)].node); processCASbits((yyvsp[(9) - (9)].ival), (yylsp[(9) - (9)]), "EXCLUDE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } break; case 420: /* Line 1464 of yacc.c */ #line 2933 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = 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) = (Node *)n; } break; case 421: /* Line 1464 of yacc.c */ #line 2952 "gram.y" { (yyval.boolean) = TRUE; } break; case 422: /* Line 1464 of yacc.c */ #line 2953 "gram.y" { (yyval.boolean) = FALSE; } break; case 423: /* Line 1464 of yacc.c */ #line 2957 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 424: /* Line 1464 of yacc.c */ #line 2958 "gram.y" { (yyval.list) = NIL; } break; case 425: /* Line 1464 of yacc.c */ #line 2962 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 426: /* Line 1464 of yacc.c */ #line 2963 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 427: /* Line 1464 of yacc.c */ #line 2967 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); } break; case 428: /* Line 1464 of yacc.c */ #line 2973 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_FULL; } break; case 429: /* Line 1464 of yacc.c */ #line 2977 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = FKCONSTR_MATCH_PARTIAL; } break; case 430: /* Line 1464 of yacc.c */ #line 2985 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_UNSPECIFIED; } break; case 431: /* Line 1464 of yacc.c */ #line 2989 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_UNSPECIFIED; } break; case 432: /* Line 1464 of yacc.c */ #line 2995 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); } break; case 433: /* Line 1464 of yacc.c */ #line 2997 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); } break; case 434: /* Line 1464 of yacc.c */ #line 3001 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list)); } break; case 435: /* Line 1464 of yacc.c */ #line 3006 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list)); } break; case 436: /* Line 1464 of yacc.c */ #line 3012 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); } break; case 437: /* Line 1464 of yacc.c */ #line 3013 "gram.y" { (yyval.node) = NULL; } break; case 438: /* Line 1464 of yacc.c */ #line 3024 "gram.y" { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } break; case 439: /* Line 1464 of yacc.c */ #line 3026 "gram.y" { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); } break; case 440: /* Line 1464 of yacc.c */ #line 3028 "gram.y" { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); } break; case 441: /* Line 1464 of yacc.c */ #line 3030 "gram.y" { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); } break; case 442: /* Line 1464 of yacc.c */ #line 3032 "gram.y" { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } break; case 443: /* Line 1464 of yacc.c */ #line 3035 "gram.y" { (yyval.ival) = (yyvsp[(3) - (3)].ival); } break; case 444: /* Line 1464 of yacc.c */ #line 3038 "gram.y" { (yyval.ival) = (yyvsp[(3) - (3)].ival); } break; case 445: /* Line 1464 of yacc.c */ #line 3042 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_NOACTION; } break; case 446: /* Line 1464 of yacc.c */ #line 3043 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; } break; case 447: /* Line 1464 of yacc.c */ #line 3044 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_CASCADE; } break; case 448: /* Line 1464 of yacc.c */ #line 3045 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_SETNULL; } break; case 449: /* Line 1464 of yacc.c */ #line 3046 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; } break; case 450: /* Line 1464 of yacc.c */ #line 3049 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 451: /* Line 1464 of yacc.c */ #line 3050 "gram.y" { (yyval.list) = NIL; } break; case 452: /* Line 1464 of yacc.c */ #line 3055 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 453: /* Line 1464 of yacc.c */ #line 3056 "gram.y" { (yyval.list) = list_make1(defWithOids(true)); } break; case 454: /* Line 1464 of yacc.c */ #line 3057 "gram.y" { (yyval.list) = list_make1(defWithOids(false)); } break; case 455: /* Line 1464 of yacc.c */ #line 3058 "gram.y" { (yyval.list) = NIL; } break; case 456: /* Line 1464 of yacc.c */ #line 3061 "gram.y" { (yyval.oncommit) = ONCOMMIT_DROP; } break; case 457: /* Line 1464 of yacc.c */ #line 3062 "gram.y" { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; } break; case 458: /* Line 1464 of yacc.c */ #line 3063 "gram.y" { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; } break; case 459: /* Line 1464 of yacc.c */ #line 3064 "gram.y" { (yyval.oncommit) = ONCOMMIT_NOOP; } break; case 460: /* Line 1464 of yacc.c */ #line 3067 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 461: /* Line 1464 of yacc.c */ #line 3068 "gram.y" { (yyval.str) = NULL; } break; case 462: /* Line 1464 of yacc.c */ #line 3071 "gram.y" { (yyval.str) = (yyvsp[(4) - (4)].str); } break; case 463: /* Line 1464 of yacc.c */ #line 3072 "gram.y" { (yyval.str) = NULL; } break; case 464: /* Line 1464 of yacc.c */ #line 3075 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 465: /* Line 1464 of yacc.c */ #line 3091 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(6) - (7)].node); ctas->into = (yyvsp[(4) - (7)].into); ctas->is_select_into = false; /* cram additional flags into the IntoClause */ (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival); (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean)); (yyval.node) = (Node *) ctas; } break; case 466: /* Line 1464 of yacc.c */ #line 3105 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(1) - (5)].range); (yyval.into)->colNames = (yyvsp[(2) - (5)].list); (yyval.into)->options = (yyvsp[(3) - (5)].list); (yyval.into)->onCommit = (yyvsp[(4) - (5)].oncommit); (yyval.into)->tableSpaceName = (yyvsp[(5) - (5)].str); (yyval.into)->skipData = false; /* might get changed later */ } break; case 467: /* Line 1464 of yacc.c */ #line 3117 "gram.y" { (yyval.boolean) = TRUE; } break; case 468: /* Line 1464 of yacc.c */ #line 3118 "gram.y" { (yyval.boolean) = FALSE; } break; case 469: /* Line 1464 of yacc.c */ #line 3119 "gram.y" { (yyval.boolean) = TRUE; } break; case 470: /* Line 1464 of yacc.c */ #line 3133 "gram.y" { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival); n->sequence = (yyvsp[(4) - (5)].range); n->options = (yyvsp[(5) - (5)].list); n->ownerId = InvalidOid; (yyval.node) = (Node *)n; } break; case 471: /* Line 1464 of yacc.c */ #line 3145 "gram.y" { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[(3) - (4)].range); n->options = (yyvsp[(4) - (4)].list); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 472: /* Line 1464 of yacc.c */ #line 3153 "gram.y" { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[(5) - (6)].range); n->options = (yyvsp[(6) - (6)].list); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 473: /* Line 1464 of yacc.c */ #line 3163 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 474: /* Line 1464 of yacc.c */ #line 3164 "gram.y" { (yyval.list) = NIL; } break; case 475: /* Line 1464 of yacc.c */ #line 3167 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 476: /* Line 1464 of yacc.c */ #line 3168 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 477: /* Line 1464 of yacc.c */ #line 3172 "gram.y" { (yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[(2) - (2)].value)); } break; case 478: /* Line 1464 of yacc.c */ #line 3176 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(TRUE)); } break; case 479: /* Line 1464 of yacc.c */ #line 3180 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(FALSE)); } break; case 480: /* Line 1464 of yacc.c */ #line 3184 "gram.y" { (yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[(3) - (3)].value)); } break; case 481: /* Line 1464 of yacc.c */ #line 3188 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[(2) - (2)].value)); } break; case 482: /* Line 1464 of yacc.c */ #line 3192 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[(2) - (2)].value)); } break; case 483: /* Line 1464 of yacc.c */ #line 3196 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", NULL); } break; case 484: /* Line 1464 of yacc.c */ #line 3200 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", NULL); } break; case 485: /* Line 1464 of yacc.c */ #line 3204 "gram.y" { (yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[(3) - (3)].list)); } break; case 486: /* Line 1464 of yacc.c */ #line 3208 "gram.y" { (yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[(3) - (3)].value)); } break; case 487: /* Line 1464 of yacc.c */ #line 3212 "gram.y" { (yyval.defelt) = makeDefElem("restart", NULL); } break; case 488: /* Line 1464 of yacc.c */ #line 3216 "gram.y" { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[(3) - (3)].value)); } break; case 489: /* Line 1464 of yacc.c */ #line 3221 "gram.y" {} break; case 490: /* Line 1464 of yacc.c */ #line 3222 "gram.y" {} break; case 491: /* Line 1464 of yacc.c */ #line 3226 "gram.y" { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); } break; case 492: /* Line 1464 of yacc.c */ #line 3228 "gram.y" { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); doNegateFloat((yyval.value)); } break; case 493: /* Line 1464 of yacc.c */ #line 3232 "gram.y" { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); } break; case 494: /* Line 1464 of yacc.c */ #line 3235 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); } break; case 495: /* Line 1464 of yacc.c */ #line 3236 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); } break; case 496: /* Line 1464 of yacc.c */ #line 3249 "gram.y" { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[(2) - (6)].boolean); n->plname = (yyvsp[(6) - (6)].str); /* parameters are all to be supplied by system */ n->plhandler = NIL; n->plinline = NIL; n->plvalidator = NIL; n->pltrusted = false; (yyval.node) = (Node *)n; } break; case 497: /* Line 1464 of yacc.c */ #line 3262 "gram.y" { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[(2) - (10)].boolean); n->plname = (yyvsp[(6) - (10)].str); n->plhandler = (yyvsp[(8) - (10)].list); n->plinline = (yyvsp[(9) - (10)].list); n->plvalidator = (yyvsp[(10) - (10)].list); n->pltrusted = (yyvsp[(3) - (10)].boolean); (yyval.node) = (Node *)n; } break; case 498: /* Line 1464 of yacc.c */ #line 3275 "gram.y" { (yyval.boolean) = TRUE; } break; case 499: /* Line 1464 of yacc.c */ #line 3276 "gram.y" { (yyval.boolean) = FALSE; } break; case 500: /* Line 1464 of yacc.c */ #line 3284 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 501: /* Line 1464 of yacc.c */ #line 3285 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); } break; case 502: /* Line 1464 of yacc.c */ #line 3289 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 503: /* Line 1464 of yacc.c */ #line 3290 "gram.y" { (yyval.list) = NIL; } break; case 504: /* Line 1464 of yacc.c */ #line 3294 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 505: /* Line 1464 of yacc.c */ #line 3295 "gram.y" { (yyval.list) = NIL; } break; case 506: /* Line 1464 of yacc.c */ #line 3299 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 507: /* Line 1464 of yacc.c */ #line 3300 "gram.y" { (yyval.list) = NIL; } break; case 508: /* Line 1464 of yacc.c */ #line 3305 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(list_make1(makeString((yyvsp[(4) - (5)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 509: /* Line 1464 of yacc.c */ #line 3316 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str)))); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 510: /* Line 1464 of yacc.c */ #line 3328 "gram.y" {} break; case 511: /* Line 1464 of yacc.c */ #line 3329 "gram.y" {} break; case 512: /* Line 1464 of yacc.c */ #line 3340 "gram.y" { CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (6)].str); n->owner = (yyvsp[(4) - (6)].str); n->location = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; } break; case 513: /* Line 1464 of yacc.c */ #line 3349 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 514: /* Line 1464 of yacc.c */ #line 3350 "gram.y" { (yyval.str) = NULL; } break; case 515: /* Line 1464 of yacc.c */ #line 3364 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (3)].str); n->missing_ok = false; (yyval.node) = (Node *) n; } break; case 516: /* Line 1464 of yacc.c */ #line 3371 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(5) - (5)].str); n->missing_ok = true; (yyval.node) = (Node *) n; } break; case 517: /* Line 1464 of yacc.c */ #line 3388 "gram.y" { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[(3) - (5)].str); n->if_not_exists = false; n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; } break; case 518: /* Line 1464 of yacc.c */ #line 3396 "gram.y" { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[(6) - (8)].str); n->if_not_exists = true; n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; } break; case 519: /* Line 1464 of yacc.c */ #line 3407 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 520: /* Line 1464 of yacc.c */ #line 3409 "gram.y" { (yyval.list) = NIL; } break; case 521: /* Line 1464 of yacc.c */ #line 3414 "gram.y" { (yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 522: /* Line 1464 of yacc.c */ #line 3418 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 523: /* Line 1464 of yacc.c */ #line 3422 "gram.y" { (yyval.defelt) = makeDefElem("old_version", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 524: /* Line 1464 of yacc.c */ #line 3434 "gram.y" { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; } break; case 525: /* Line 1464 of yacc.c */ #line 3444 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 526: /* Line 1464 of yacc.c */ #line 3446 "gram.y" { (yyval.list) = NIL; } break; case 527: /* Line 1464 of yacc.c */ #line 3451 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 528: /* Line 1464 of yacc.c */ #line 3464 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_AGGREGATE; n->objname = (yyvsp[(6) - (7)].list); n->objargs = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; } break; case 529: /* Line 1464 of yacc.c */ #line 3474 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (10)].str); n->action = (yyvsp[(4) - (10)].ival); n->objtype = OBJECT_CAST; n->objname = list_make1((yyvsp[(7) - (10)].typnam)); n->objargs = list_make1((yyvsp[(9) - (10)].typnam)); (yyval.node) = (Node *) n; } break; case 530: /* Line 1464 of yacc.c */ #line 3484 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_COLLATION; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 531: /* Line 1464 of yacc.c */ #line 3493 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_CONVERSION; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 532: /* Line 1464 of yacc.c */ #line 3502 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_DOMAIN; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 533: /* Line 1464 of yacc.c */ #line 3511 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_FUNCTION; n->objname = (yyvsp[(6) - (6)].funwithargs)->funcname; n->objargs = (yyvsp[(6) - (6)].funwithargs)->funcargs; (yyval.node) = (Node *)n; } break; case 534: /* Line 1464 of yacc.c */ #line 3521 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_LANGUAGE; n->objname = list_make1(makeString((yyvsp[(7) - (7)].str))); (yyval.node) = (Node *)n; } break; case 535: /* Line 1464 of yacc.c */ #line 3530 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_OPERATOR; n->objname = (yyvsp[(6) - (7)].list); n->objargs = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; } break; case 536: /* Line 1464 of yacc.c */ #line 3540 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_OPCLASS; n->objname = (yyvsp[(7) - (9)].list); n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str))); (yyval.node) = (Node *)n; } break; case 537: /* Line 1464 of yacc.c */ #line 3550 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_OPFAMILY; n->objname = (yyvsp[(7) - (9)].list); n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str))); (yyval.node) = (Node *)n; } break; case 538: /* Line 1464 of yacc.c */ #line 3560 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_SCHEMA; n->objname = list_make1(makeString((yyvsp[(6) - (6)].str))); (yyval.node) = (Node *)n; } break; case 539: /* Line 1464 of yacc.c */ #line 3569 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_TABLE; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 540: /* Line 1464 of yacc.c */ #line 3578 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSPARSER; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; } break; case 541: /* Line 1464 of yacc.c */ #line 3587 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSDICTIONARY; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; } break; case 542: /* Line 1464 of yacc.c */ #line 3596 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSTEMPLATE; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; } break; case 543: /* Line 1464 of yacc.c */ #line 3605 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSCONFIGURATION; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; } break; case 544: /* Line 1464 of yacc.c */ #line 3614 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_SEQUENCE; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 545: /* Line 1464 of yacc.c */ #line 3623 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_VIEW; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 546: /* Line 1464 of yacc.c */ #line 3632 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_FOREIGN_TABLE; n->objname = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; } break; case 547: /* Line 1464 of yacc.c */ #line 3641 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_FDW; n->objname = list_make1(makeString((yyvsp[(8) - (8)].str))); (yyval.node) = (Node *)n; } break; case 548: /* Line 1464 of yacc.c */ #line 3650 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_FOREIGN_SERVER; n->objname = list_make1(makeString((yyvsp[(6) - (6)].str))); (yyval.node) = (Node *)n; } break; case 549: /* Line 1464 of yacc.c */ #line 3659 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_TYPE; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 550: /* Line 1464 of yacc.c */ #line 3677 "gram.y" { CreateFdwStmt *n = makeNode(CreateFdwStmt); n->fdwname = (yyvsp[(5) - (7)].str); n->func_options = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; } break; case 551: /* Line 1464 of yacc.c */ #line 3687 "gram.y" { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[(2) - (2)].list)); } break; case 552: /* Line 1464 of yacc.c */ #line 3688 "gram.y" { (yyval.defelt) = makeDefElem("handler", NULL); } break; case 553: /* Line 1464 of yacc.c */ #line 3689 "gram.y" { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[(2) - (2)].list)); } break; case 554: /* Line 1464 of yacc.c */ #line 3690 "gram.y" { (yyval.defelt) = makeDefElem("validator", NULL); } break; case 555: /* Line 1464 of yacc.c */ #line 3694 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 556: /* Line 1464 of yacc.c */ #line 3695 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 557: /* Line 1464 of yacc.c */ #line 3699 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 558: /* Line 1464 of yacc.c */ #line 3700 "gram.y" { (yyval.list) = NIL; } break; case 559: /* Line 1464 of yacc.c */ #line 3711 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FDW; n->objects = list_make1(list_make1(makeString((yyvsp[(5) - (6)].str)))); n->arguments = NIL; n->missing_ok = false; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } break; case 560: /* Line 1464 of yacc.c */ #line 3722 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FDW; n->objects = list_make1(list_make1(makeString((yyvsp[(7) - (8)].str)))); n->arguments = NIL; n->missing_ok = true; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } break; case 561: /* Line 1464 of yacc.c */ #line 3742 "gram.y" { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[(5) - (7)].str); n->func_options = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; } break; case 562: /* Line 1464 of yacc.c */ #line 3750 "gram.y" { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[(5) - (6)].str); n->func_options = (yyvsp[(6) - (6)].list); n->options = NIL; (yyval.node) = (Node *) n; } break; case 563: /* Line 1464 of yacc.c */ #line 3761 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 564: /* Line 1464 of yacc.c */ #line 3762 "gram.y" { (yyval.list) = NIL; } break; case 565: /* Line 1464 of yacc.c */ #line 3767 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 566: /* Line 1464 of yacc.c */ #line 3771 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 567: /* Line 1464 of yacc.c */ #line 3778 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 568: /* Line 1464 of yacc.c */ #line 3783 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 569: /* Line 1464 of yacc.c */ #line 3787 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 570: /* Line 1464 of yacc.c */ #line 3794 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); } break; case 571: /* Line 1464 of yacc.c */ #line 3798 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_SET; } break; case 572: /* Line 1464 of yacc.c */ #line 3803 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; } break; case 573: /* Line 1464 of yacc.c */ #line 3808 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP); } break; case 574: /* Line 1464 of yacc.c */ #line 3815 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node)); } break; case 575: /* Line 1464 of yacc.c */ #line 3821 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 576: /* Line 1464 of yacc.c */ #line 3826 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); } break; case 577: /* Line 1464 of yacc.c */ #line 3838 "gram.y" { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[(3) - (10)].str); n->servertype = (yyvsp[(4) - (10)].str); n->version = (yyvsp[(5) - (10)].str); n->fdwname = (yyvsp[(9) - (10)].str); n->options = (yyvsp[(10) - (10)].list); (yyval.node) = (Node *) n; } break; case 578: /* Line 1464 of yacc.c */ #line 3850 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 579: /* Line 1464 of yacc.c */ #line 3851 "gram.y" { (yyval.str) = NULL; } break; case 580: /* Line 1464 of yacc.c */ #line 3856 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 581: /* Line 1464 of yacc.c */ #line 3857 "gram.y" { (yyval.str) = NULL; } break; case 582: /* Line 1464 of yacc.c */ #line 3861 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 583: /* Line 1464 of yacc.c */ #line 3862 "gram.y" { (yyval.str) = NULL; } break; case 584: /* Line 1464 of yacc.c */ #line 3873 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FOREIGN_SERVER; n->objects = list_make1(list_make1(makeString((yyvsp[(3) - (4)].str)))); n->arguments = NIL; n->missing_ok = false; n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } break; case 585: /* Line 1464 of yacc.c */ #line 3884 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FOREIGN_SERVER; n->objects = list_make1(list_make1(makeString((yyvsp[(5) - (6)].str)))); n->arguments = NIL; n->missing_ok = true; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } break; case 586: /* Line 1464 of yacc.c */ #line 3904 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (5)].str); n->version = (yyvsp[(4) - (5)].str); n->options = (yyvsp[(5) - (5)].list); n->has_version = true; (yyval.node) = (Node *) n; } break; case 587: /* Line 1464 of yacc.c */ #line 3913 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (4)].str); n->version = (yyvsp[(4) - (4)].str); n->has_version = true; (yyval.node) = (Node *) n; } break; case 588: /* Line 1464 of yacc.c */ #line 3921 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; } break; case 589: /* Line 1464 of yacc.c */ #line 3940 "gram.y" { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[(4) - (8)].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[(4) - (8)].range); n->base.tableElts = (yyvsp[(5) - (8)].list); n->base.inhRelations = NIL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; } break; case 590: /* Line 1464 of yacc.c */ #line 3955 "gram.y" { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[(7) - (11)].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[(7) - (11)].range); n->base.tableElts = (yyvsp[(8) - (11)].list); n->base.inhRelations = NIL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[(10) - (11)].str); n->options = (yyvsp[(11) - (11)].list); (yyval.node) = (Node *) n; } break; case 591: /* Line 1464 of yacc.c */ #line 3970 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 592: /* Line 1464 of yacc.c */ #line 3971 "gram.y" { (yyval.list) = NIL; } break; case 593: /* Line 1464 of yacc.c */ #line 3976 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 594: /* Line 1464 of yacc.c */ #line 3980 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 595: /* Line 1464 of yacc.c */ #line 3986 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 596: /* Line 1464 of yacc.c */ #line 3998 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(4) - (5)].range); n->cmds = (yyvsp[(5) - (5)].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 597: /* Line 1464 of yacc.c */ #line 4007 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(6) - (7)].range); n->cmds = (yyvsp[(7) - (7)].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 598: /* Line 1464 of yacc.c */ #line 4025 "gram.y" { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->username = (yyvsp[(5) - (8)].str); n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; } break; case 599: /* Line 1464 of yacc.c */ #line 4036 "gram.y" { (yyval.str) = "current_user"; } break; case 600: /* Line 1464 of yacc.c */ #line 4037 "gram.y" { (yyval.str) = "current_user"; } break; case 601: /* Line 1464 of yacc.c */ #line 4038 "gram.y" { (yyval.str) = (strcmp((yyvsp[(1) - (1)].str), "public") == 0) ? NULL : (yyvsp[(1) - (1)].str); } break; case 602: /* Line 1464 of yacc.c */ #line 4049 "gram.y" { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->username = (yyvsp[(5) - (7)].str); n->servername = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; } break; case 603: /* Line 1464 of yacc.c */ #line 4057 "gram.y" { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->username = (yyvsp[(7) - (9)].str); n->servername = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; } break; case 604: /* Line 1464 of yacc.c */ #line 4074 "gram.y" { AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); n->username = (yyvsp[(5) - (8)].str); n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; } break; case 605: /* Line 1464 of yacc.c */ #line 4095 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[(3) - (15)].str); n->relation = (yyvsp[(7) - (15)].range); n->funcname = (yyvsp[(12) - (15)].list); n->args = (yyvsp[(14) - (15)].list); n->row = (yyvsp[(8) - (15)].boolean); n->timing = (yyvsp[(4) - (15)].ival); n->events = intVal(linitial((yyvsp[(5) - (15)].list))); n->columns = (List *) lsecond((yyvsp[(5) - (15)].list)); n->whenClause = (yyvsp[(9) - (15)].node); n->isconstraint = FALSE; n->deferrable = FALSE; n->initdeferred = FALSE; n->constrrel = NULL; (yyval.node) = (Node *)n; } break; case 606: /* Line 1464 of yacc.c */ #line 4116 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[(4) - (20)].str); n->relation = (yyvsp[(8) - (20)].range); n->funcname = (yyvsp[(17) - (20)].list); n->args = (yyvsp[(19) - (20)].list); n->row = TRUE; n->timing = TRIGGER_TYPE_AFTER; n->events = intVal(linitial((yyvsp[(6) - (20)].list))); n->columns = (List *) lsecond((yyvsp[(6) - (20)].list)); n->whenClause = (yyvsp[(14) - (20)].node); n->isconstraint = TRUE; processCASbits((yyvsp[(10) - (20)].ival), (yylsp[(10) - (20)]), "TRIGGER", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); n->constrrel = (yyvsp[(9) - (20)].range); (yyval.node) = (Node *)n; } break; case 607: /* Line 1464 of yacc.c */ #line 4137 "gram.y" { (yyval.ival) = TRIGGER_TYPE_BEFORE; } break; case 608: /* Line 1464 of yacc.c */ #line 4138 "gram.y" { (yyval.ival) = TRIGGER_TYPE_AFTER; } break; case 609: /* Line 1464 of yacc.c */ #line 4139 "gram.y" { (yyval.ival) = TRIGGER_TYPE_INSTEAD; } break; case 610: /* Line 1464 of yacc.c */ #line 4144 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 611: /* Line 1464 of yacc.c */ #line 4146 "gram.y" { int events1 = intVal(linitial((yyvsp[(1) - (3)].list))); int events2 = intVal(linitial((yyvsp[(3) - (3)].list))); List *columns1 = (List *) lsecond((yyvsp[(1) - (3)].list)); List *columns2 = (List *) lsecond((yyvsp[(3) - (3)].list)); if (events1 & events2) parser_yyerror("duplicate trigger events specified"); /* * concat'ing the columns lists loses information about * which columns went with which event, but so long as * only UPDATE carries columns and we disallow multiple * UPDATE items, it doesn't matter. Command execution * should just ignore the columns for non-UPDATE events. */ (yyval.list) = list_make2(makeInteger(events1 | events2), list_concat(columns1, columns2)); } break; case 612: /* Line 1464 of yacc.c */ #line 4168 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); } break; case 613: /* Line 1464 of yacc.c */ #line 4170 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); } break; case 614: /* Line 1464 of yacc.c */ #line 4172 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); } break; case 615: /* Line 1464 of yacc.c */ #line 4174 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); } break; case 616: /* Line 1464 of yacc.c */ #line 4176 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); } break; case 617: /* Line 1464 of yacc.c */ #line 4181 "gram.y" { (yyval.boolean) = (yyvsp[(3) - (3)].boolean); } break; case 618: /* Line 1464 of yacc.c */ #line 4185 "gram.y" { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = FALSE; } break; case 619: /* Line 1464 of yacc.c */ #line 4195 "gram.y" {} break; case 620: /* Line 1464 of yacc.c */ #line 4196 "gram.y" {} break; case 621: /* Line 1464 of yacc.c */ #line 4200 "gram.y" { (yyval.boolean) = TRUE; } break; case 622: /* Line 1464 of yacc.c */ #line 4201 "gram.y" { (yyval.boolean) = FALSE; } break; case 623: /* Line 1464 of yacc.c */ #line 4205 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); } break; case 624: /* Line 1464 of yacc.c */ #line 4206 "gram.y" { (yyval.node) = NULL; } break; case 625: /* Line 1464 of yacc.c */ #line 4210 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); } break; case 626: /* Line 1464 of yacc.c */ #line 4211 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); } break; case 627: /* Line 1464 of yacc.c */ #line 4212 "gram.y" { (yyval.list) = NIL; } break; case 628: /* Line 1464 of yacc.c */ #line 4217 "gram.y" { char buf[64]; snprintf(buf, sizeof(buf), "%d", (yyvsp[(1) - (1)].ival)); (yyval.value) = makeString(pstrdup(buf)); } break; case 629: /* Line 1464 of yacc.c */ #line 4222 "gram.y" { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); } break; case 630: /* Line 1464 of yacc.c */ #line 4223 "gram.y" { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); } break; case 631: /* Line 1464 of yacc.c */ #line 4224 "gram.y" { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); } break; case 632: /* Line 1464 of yacc.c */ #line 4228 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); } break; case 633: /* Line 1464 of yacc.c */ #line 4229 "gram.y" { (yyval.range) = NULL; } break; case 634: /* Line 1464 of yacc.c */ #line 4234 "gram.y" { (yyval.ival) = 0; } break; case 635: /* Line 1464 of yacc.c */ #line 4236 "gram.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(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(ERRCODE_SYNTAX_ERROR), errmsg("conflicting constraint properties"), parser_errposition((yylsp[(2) - (2)])))); (yyval.ival) = newspec; } break; case 636: /* Line 1464 of yacc.c */ #line 4262 "gram.y" { (yyval.ival) = CAS_NOT_DEFERRABLE; } break; case 637: /* Line 1464 of yacc.c */ #line 4263 "gram.y" { (yyval.ival) = CAS_DEFERRABLE; } break; case 638: /* Line 1464 of yacc.c */ #line 4264 "gram.y" { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } break; case 639: /* Line 1464 of yacc.c */ #line 4265 "gram.y" { (yyval.ival) = CAS_INITIALLY_DEFERRED; } break; case 640: /* Line 1464 of yacc.c */ #line 4266 "gram.y" { (yyval.ival) = CAS_NOT_VALID; } break; case 641: /* Line 1464 of yacc.c */ #line 4267 "gram.y" { (yyval.ival) = CAS_NO_INHERIT; } break; case 642: /* Line 1464 of yacc.c */ #line 4273 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRIGGER; n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 643: /* Line 1464 of yacc.c */ #line 4284 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRIGGER; n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 644: /* Line 1464 of yacc.c */ #line 4308 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[(3) - (8)].str); n->args = list_make1((yyvsp[(6) - (8)].node)); n->isconstraint = TRUE; processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "ASSERTION", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = (Node *)n; } break; case 645: /* Line 1464 of yacc.c */ #line 4327 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = NIL; n->arguments = NIL; n->behavior = (yyvsp[(4) - (4)].dbehavior); n->removeType = OBJECT_TRIGGER; /* XXX */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("DROP ASSERTION is not yet implemented"))); (yyval.node) = (Node *) n; } break; case 646: /* Line 1464 of yacc.c */ #line 4350 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = false; n->defnames = (yyvsp[(3) - (5)].list); n->args = (yyvsp[(4) - (5)].list); n->definition = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 647: /* Line 1464 of yacc.c */ #line 4360 "gram.y" { /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = true; n->defnames = (yyvsp[(3) - (4)].list); n->args = NIL; n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 648: /* Line 1464 of yacc.c */ #line 4371 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_OPERATOR; n->oldstyle = false; n->defnames = (yyvsp[(3) - (4)].list); n->args = NIL; n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 649: /* Line 1464 of yacc.c */ #line 4381 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[(3) - (4)].list); n->args = NIL; n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 650: /* Line 1464 of yacc.c */ #line 4391 "gram.y" { /* Shell type (identified by lack of definition) */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[(3) - (3)].list); n->args = NIL; n->definition = NIL; (yyval.node) = (Node *)n; } break; case 651: /* Line 1464 of yacc.c */ #line 4402 "gram.y" { CompositeTypeStmt *n = makeNode(CompositeTypeStmt); /* can't use qualified_name, sigh */ n->typevar = makeRangeVarFromAnyName((yyvsp[(3) - (7)].list), (yylsp[(3) - (7)]), yyscanner); n->coldeflist = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *)n; } break; case 652: /* Line 1464 of yacc.c */ #line 4411 "gram.y" { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->vals = (yyvsp[(7) - (8)].list); (yyval.node) = (Node *)n; } break; case 653: /* Line 1464 of yacc.c */ #line 4418 "gram.y" { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[(3) - (6)].list); n->params = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 654: /* Line 1464 of yacc.c */ #line 4425 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSPARSER; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 655: /* Line 1464 of yacc.c */ #line 4434 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSDICTIONARY; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 656: /* Line 1464 of yacc.c */ #line 4443 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSTEMPLATE; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 657: /* Line 1464 of yacc.c */ #line 4452 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSCONFIGURATION; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 658: /* Line 1464 of yacc.c */ #line 4461 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[(3) - (4)].list); n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 659: /* Line 1464 of yacc.c */ #line 4470 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[(3) - (5)].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(5) - (5)].list))); (yyval.node) = (Node *)n; } break; case 660: /* Line 1464 of yacc.c */ #line 4480 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 661: /* Line 1464 of yacc.c */ #line 4483 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 662: /* Line 1464 of yacc.c */ #line 4484 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 663: /* Line 1464 of yacc.c */ #line 4488 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node)); } break; case 664: /* Line 1464 of yacc.c */ #line 4492 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL); } break; case 665: /* Line 1464 of yacc.c */ #line 4498 "gram.y" { (yyval.node) = (Node *)(yyvsp[(1) - (1)].typnam); } break; case 666: /* Line 1464 of yacc.c */ #line 4499 "gram.y" { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); } break; case 667: /* Line 1464 of yacc.c */ #line 4500 "gram.y" { (yyval.node) = (Node *)(yyvsp[(1) - (1)].list); } break; case 668: /* Line 1464 of yacc.c */ #line 4501 "gram.y" { (yyval.node) = (Node *)(yyvsp[(1) - (1)].value); } break; case 669: /* Line 1464 of yacc.c */ #line 4502 "gram.y" { (yyval.node) = (Node *)makeString((yyvsp[(1) - (1)].str)); } break; case 670: /* Line 1464 of yacc.c */ #line 4505 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 671: /* Line 1464 of yacc.c */ #line 4506 "gram.y" { (yyval.list) = NIL; } break; case 672: /* Line 1464 of yacc.c */ #line 4509 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 673: /* Line 1464 of yacc.c */ #line 4512 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 674: /* Line 1464 of yacc.c */ #line 4513 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 675: /* Line 1464 of yacc.c */ #line 4522 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *)(yyvsp[(3) - (3)].node)); } break; case 676: /* Line 1464 of yacc.c */ #line 4528 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 677: /* Line 1464 of yacc.c */ #line 4529 "gram.y" { (yyval.list) = NIL; } break; case 678: /* Line 1464 of yacc.c */ #line 4533 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 679: /* Line 1464 of yacc.c */ #line 4535 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); } break; case 680: /* Line 1464 of yacc.c */ #line 4546 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (6)].list); n->newVal = (yyvsp[(6) - (6)].str); n->newValNeighbor = NULL; n->newValIsAfter = true; (yyval.node) = (Node *) n; } break; case 681: /* Line 1464 of yacc.c */ #line 4555 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->newVal = (yyvsp[(6) - (8)].str); n->newValNeighbor = (yyvsp[(8) - (8)].str); n->newValIsAfter = false; (yyval.node) = (Node *) n; } break; case 682: /* Line 1464 of yacc.c */ #line 4564 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->newVal = (yyvsp[(6) - (8)].str); n->newValNeighbor = (yyvsp[(8) - (8)].str); n->newValIsAfter = true; (yyval.node) = (Node *) n; } break; case 683: /* Line 1464 of yacc.c */ #line 4589 "gram.y" { CreateOpClassStmt *n = makeNode(CreateOpClassStmt); n->opclassname = (yyvsp[(4) - (13)].list); n->isDefault = (yyvsp[(5) - (13)].boolean); n->datatype = (yyvsp[(8) - (13)].typnam); n->amname = (yyvsp[(10) - (13)].str); n->opfamilyname = (yyvsp[(11) - (13)].list); n->items = (yyvsp[(13) - (13)].list); (yyval.node) = (Node *) n; } break; case 684: /* Line 1464 of yacc.c */ #line 4602 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 685: /* Line 1464 of yacc.c */ #line 4603 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 686: /* Line 1464 of yacc.c */ #line 4608 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[(3) - (5)].list); n->args = NIL; n->number = (yyvsp[(2) - (5)].ival); n->order_family = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; } break; case 687: /* Line 1464 of yacc.c */ #line 4619 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[(3) - (6)].list); n->args = (yyvsp[(4) - (6)].list); n->number = (yyvsp[(2) - (6)].ival); n->order_family = (yyvsp[(5) - (6)].list); (yyval.node) = (Node *) n; } break; case 688: /* Line 1464 of yacc.c */ #line 4629 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[(3) - (4)].list); n->args = extractArgTypes((yyvsp[(4) - (4)].list)); n->number = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *) n; } break; case 689: /* Line 1464 of yacc.c */ #line 4638 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[(6) - (7)].list); n->args = extractArgTypes((yyvsp[(7) - (7)].list)); n->number = (yyvsp[(2) - (7)].ival); n->class_args = (yyvsp[(4) - (7)].list); (yyval.node) = (Node *) n; } break; case 690: /* Line 1464 of yacc.c */ #line 4648 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[(2) - (2)].typnam); (yyval.node) = (Node *) n; } break; case 691: /* Line 1464 of yacc.c */ #line 4656 "gram.y" { (yyval.boolean) = TRUE; } break; case 692: /* Line 1464 of yacc.c */ #line 4657 "gram.y" { (yyval.boolean) = FALSE; } break; case 693: /* Line 1464 of yacc.c */ #line 4660 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 694: /* Line 1464 of yacc.c */ #line 4661 "gram.y" { (yyval.list) = NIL; } break; case 695: /* Line 1464 of yacc.c */ #line 4664 "gram.y" { (yyval.list) = NIL; } break; case 696: /* Line 1464 of yacc.c */ #line 4665 "gram.y" { (yyval.list) = (yyvsp[(4) - (4)].list); } break; case 697: /* Line 1464 of yacc.c */ #line 4666 "gram.y" { (yyval.list) = NIL; } break; case 698: /* Line 1464 of yacc.c */ #line 4670 "gram.y" { /* * RECHECK no longer does anything in opclass definitions, * but we still accept it to ease porting of old database * dumps. */ ereport(NOTICE, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RECHECK is no longer required"), errhint("Update your data type."), parser_errposition((yylsp[(1) - (1)])))); (yyval.boolean) = TRUE; } break; case 699: /* Line 1464 of yacc.c */ #line 4683 "gram.y" { (yyval.boolean) = FALSE; } break; case 700: /* Line 1464 of yacc.c */ #line 4689 "gram.y" { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (6)].list); n->amname = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; } break; case 701: /* Line 1464 of yacc.c */ #line 4699 "gram.y" { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (8)].list); n->amname = (yyvsp[(6) - (8)].str); n->isDrop = false; n->items = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; } break; case 702: /* Line 1464 of yacc.c */ #line 4708 "gram.y" { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (8)].list); n->amname = (yyvsp[(6) - (8)].str); n->isDrop = true; n->items = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; } break; case 703: /* Line 1464 of yacc.c */ #line 4719 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 704: /* Line 1464 of yacc.c */ #line 4720 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 705: /* Line 1464 of yacc.c */ #line 4725 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->number = (yyvsp[(2) - (5)].ival); n->args = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; } break; case 706: /* Line 1464 of yacc.c */ #line 4733 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->number = (yyvsp[(2) - (5)].ival); n->args = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; } break; case 707: /* Line 1464 of yacc.c */ #line 4745 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1((yyvsp[(4) - (7)].list)); n->arguments = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str)))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 708: /* Line 1464 of yacc.c */ #line 4756 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1((yyvsp[(6) - (9)].list)); n->arguments = list_make1(list_make1(makeString((yyvsp[(8) - (9)].str)))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 709: /* Line 1464 of yacc.c */ #line 4770 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1((yyvsp[(4) - (7)].list)); n->arguments = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str)))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 710: /* Line 1464 of yacc.c */ #line 4781 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1((yyvsp[(6) - (9)].list)); n->arguments = list_make1(list_make1(makeString((yyvsp[(8) - (9)].str)))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 711: /* Line 1464 of yacc.c */ #line 4804 "gram.y" { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[(4) - (5)].list); n->behavior = (yyvsp[(5) - (5)].dbehavior); (yyval.node) = (Node *)n; } break; case 712: /* Line 1464 of yacc.c */ #line 4814 "gram.y" { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[(4) - (6)].list); n->newrole = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 713: /* Line 1464 of yacc.c */ #line 4832 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (6)].objtype); n->missing_ok = TRUE; n->objects = (yyvsp[(5) - (6)].list); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } break; case 714: /* Line 1464 of yacc.c */ #line 4843 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (4)].objtype); n->missing_ok = FALSE; n->objects = (yyvsp[(3) - (4)].list); n->arguments = NIL; n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } break; case 715: /* Line 1464 of yacc.c */ #line 4854 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = FALSE; n->objects = (yyvsp[(4) - (5)].list); n->arguments = NIL; n->behavior = (yyvsp[(5) - (5)].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; } break; case 716: /* Line 1464 of yacc.c */ #line 4865 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = TRUE; n->objects = (yyvsp[(6) - (7)].list); n->arguments = NIL; n->behavior = (yyvsp[(7) - (7)].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; } break; case 717: /* Line 1464 of yacc.c */ #line 4878 "gram.y" { (yyval.objtype) = OBJECT_TABLE; } break; case 718: /* Line 1464 of yacc.c */ #line 4879 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; } break; case 719: /* Line 1464 of yacc.c */ #line 4880 "gram.y" { (yyval.objtype) = OBJECT_VIEW; } break; case 720: /* Line 1464 of yacc.c */ #line 4881 "gram.y" { (yyval.objtype) = OBJECT_INDEX; } break; case 721: /* Line 1464 of yacc.c */ #line 4882 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } break; case 722: /* Line 1464 of yacc.c */ #line 4883 "gram.y" { (yyval.objtype) = OBJECT_TYPE; } break; case 723: /* Line 1464 of yacc.c */ #line 4884 "gram.y" { (yyval.objtype) = OBJECT_DOMAIN; } break; case 724: /* Line 1464 of yacc.c */ #line 4885 "gram.y" { (yyval.objtype) = OBJECT_COLLATION; } break; case 725: /* Line 1464 of yacc.c */ #line 4886 "gram.y" { (yyval.objtype) = OBJECT_CONVERSION; } break; case 726: /* Line 1464 of yacc.c */ #line 4887 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; } break; case 727: /* Line 1464 of yacc.c */ #line 4888 "gram.y" { (yyval.objtype) = OBJECT_EXTENSION; } break; case 728: /* Line 1464 of yacc.c */ #line 4889 "gram.y" { (yyval.objtype) = OBJECT_TSPARSER; } break; case 729: /* Line 1464 of yacc.c */ #line 4890 "gram.y" { (yyval.objtype) = OBJECT_TSDICTIONARY; } break; case 730: /* Line 1464 of yacc.c */ #line 4891 "gram.y" { (yyval.objtype) = OBJECT_TSTEMPLATE; } break; case 731: /* Line 1464 of yacc.c */ #line 4892 "gram.y" { (yyval.objtype) = OBJECT_TSCONFIGURATION; } break; case 732: /* Line 1464 of yacc.c */ #line 4896 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); } break; case 733: /* Line 1464 of yacc.c */ #line 4897 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); } break; case 734: /* Line 1464 of yacc.c */ #line 4900 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 735: /* Line 1464 of yacc.c */ #line 4901 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); } break; case 736: /* Line 1464 of yacc.c */ #line 4905 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); } break; case 737: /* Line 1464 of yacc.c */ #line 4907 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); } break; case 738: /* Line 1464 of yacc.c */ #line 4920 "gram.y" { TruncateStmt *n = makeNode(TruncateStmt); n->relations = (yyvsp[(3) - (5)].list); n->restart_seqs = (yyvsp[(4) - (5)].boolean); n->behavior = (yyvsp[(5) - (5)].dbehavior); (yyval.node) = (Node *)n; } break; case 739: /* Line 1464 of yacc.c */ #line 4930 "gram.y" { (yyval.boolean) = false; } break; case 740: /* Line 1464 of yacc.c */ #line 4931 "gram.y" { (yyval.boolean) = true; } break; case 741: /* Line 1464 of yacc.c */ #line 4932 "gram.y" { (yyval.boolean) = false; } break; case 742: /* Line 1464 of yacc.c */ #line 4959 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[(3) - (6)].objtype); n->objname = (yyvsp[(4) - (6)].list); n->objargs = NIL; n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; } break; case 743: /* Line 1464 of yacc.c */ #line 4968 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; n->objname = (yyvsp[(4) - (7)].list); n->objargs = (yyvsp[(5) - (7)].list); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; } break; case 744: /* Line 1464 of yacc.c */ #line 4977 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; n->objname = (yyvsp[(4) - (7)].list); n->objargs = extractArgTypes((yyvsp[(5) - (7)].list)); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; } break; case 745: /* Line 1464 of yacc.c */ #line 4986 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; n->objname = (yyvsp[(4) - (7)].list); n->objargs = (yyvsp[(5) - (7)].list); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; } break; case 746: /* Line 1464 of yacc.c */ #line 4995 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CONSTRAINT; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 747: /* Line 1464 of yacc.c */ #line 5004 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 748: /* Line 1464 of yacc.c */ #line 5013 "gram.y" { /* Obsolete syntax supported for awhile for compatibility */ CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->objname = list_make1(makeString((yyvsp[(4) - (6)].str))); n->objargs = NIL; n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; } break; case 749: /* Line 1464 of yacc.c */ #line 5023 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRIGGER; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 750: /* Line 1464 of yacc.c */ #line 5032 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; n->objname = (yyvsp[(5) - (9)].list); n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str))); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; } break; case 751: /* Line 1464 of yacc.c */ #line 5041 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; n->objname = (yyvsp[(5) - (9)].list); n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str))); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; } break; case 752: /* Line 1464 of yacc.c */ #line 5050 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->objname = list_make1((yyvsp[(5) - (7)].value)); n->objargs = NIL; n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; } break; case 753: /* Line 1464 of yacc.c */ #line 5059 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; n->objname = list_make1((yyvsp[(5) - (10)].typnam)); n->objargs = list_make1((yyvsp[(7) - (10)].typnam)); n->comment = (yyvsp[(10) - (10)].str); (yyval.node) = (Node *) n; } break; case 754: /* Line 1464 of yacc.c */ #line 5068 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LANGUAGE; n->objname = (yyvsp[(5) - (7)].list); n->objargs = NIL; n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; } break; case 755: /* Line 1464 of yacc.c */ #line 5077 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TSPARSER; n->objname = (yyvsp[(6) - (8)].list); n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 756: /* Line 1464 of yacc.c */ #line 5085 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TSDICTIONARY; n->objname = (yyvsp[(6) - (8)].list); n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 757: /* Line 1464 of yacc.c */ #line 5093 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TSTEMPLATE; n->objname = (yyvsp[(6) - (8)].list); n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 758: /* Line 1464 of yacc.c */ #line 5101 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TSCONFIGURATION; n->objname = (yyvsp[(6) - (8)].list); n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 759: /* Line 1464 of yacc.c */ #line 5111 "gram.y" { (yyval.objtype) = OBJECT_COLUMN; } break; case 760: /* Line 1464 of yacc.c */ #line 5112 "gram.y" { (yyval.objtype) = OBJECT_DATABASE; } break; case 761: /* Line 1464 of yacc.c */ #line 5113 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; } break; case 762: /* Line 1464 of yacc.c */ #line 5114 "gram.y" { (yyval.objtype) = OBJECT_INDEX; } break; case 763: /* Line 1464 of yacc.c */ #line 5115 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; } break; case 764: /* Line 1464 of yacc.c */ #line 5116 "gram.y" { (yyval.objtype) = OBJECT_TABLE; } break; case 765: /* Line 1464 of yacc.c */ #line 5117 "gram.y" { (yyval.objtype) = OBJECT_DOMAIN; } break; case 766: /* Line 1464 of yacc.c */ #line 5118 "gram.y" { (yyval.objtype) = OBJECT_TYPE; } break; case 767: /* Line 1464 of yacc.c */ #line 5119 "gram.y" { (yyval.objtype) = OBJECT_VIEW; } break; case 768: /* Line 1464 of yacc.c */ #line 5120 "gram.y" { (yyval.objtype) = OBJECT_COLLATION; } break; case 769: /* Line 1464 of yacc.c */ #line 5121 "gram.y" { (yyval.objtype) = OBJECT_CONVERSION; } break; case 770: /* Line 1464 of yacc.c */ #line 5122 "gram.y" { (yyval.objtype) = OBJECT_TABLESPACE; } break; case 771: /* Line 1464 of yacc.c */ #line 5123 "gram.y" { (yyval.objtype) = OBJECT_EXTENSION; } break; case 772: /* Line 1464 of yacc.c */ #line 5124 "gram.y" { (yyval.objtype) = OBJECT_ROLE; } break; case 773: /* Line 1464 of yacc.c */ #line 5125 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } break; case 774: /* Line 1464 of yacc.c */ #line 5126 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } break; case 775: /* Line 1464 of yacc.c */ #line 5127 "gram.y" { (yyval.objtype) = OBJECT_FDW; } break; case 776: /* Line 1464 of yacc.c */ #line 5131 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 777: /* Line 1464 of yacc.c */ #line 5132 "gram.y" { (yyval.str) = NULL; } break; case 778: /* Line 1464 of yacc.c */ #line 5148 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = (yyvsp[(5) - (8)].objtype); n->objname = (yyvsp[(6) - (8)].list); n->objargs = NIL; n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; } break; case 779: /* Line 1464 of yacc.c */ #line 5159 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_AGGREGATE; n->objname = (yyvsp[(6) - (9)].list); n->objargs = (yyvsp[(7) - (9)].list); n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; } break; case 780: /* Line 1464 of yacc.c */ #line 5170 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_FUNCTION; n->objname = (yyvsp[(6) - (9)].list); n->objargs = extractArgTypes((yyvsp[(7) - (9)].list)); n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; } break; case 781: /* Line 1464 of yacc.c */ #line 5181 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_LARGEOBJECT; n->objname = list_make1((yyvsp[(7) - (9)].value)); n->objargs = NIL; n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; } break; case 782: /* Line 1464 of yacc.c */ #line 5192 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_LANGUAGE; n->objname = (yyvsp[(7) - (9)].list); n->objargs = NIL; n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; } break; case 783: /* Line 1464 of yacc.c */ #line 5203 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 784: /* Line 1464 of yacc.c */ #line 5204 "gram.y" { (yyval.str) = NULL; } break; case 785: /* Line 1464 of yacc.c */ #line 5208 "gram.y" { (yyval.objtype) = OBJECT_COLUMN; } break; case 786: /* Line 1464 of yacc.c */ #line 5209 "gram.y" { (yyval.objtype) = OBJECT_DATABASE; } break; case 787: /* Line 1464 of yacc.c */ #line 5210 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } break; case 788: /* Line 1464 of yacc.c */ #line 5211 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; } break; case 789: /* Line 1464 of yacc.c */ #line 5212 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; } break; case 790: /* Line 1464 of yacc.c */ #line 5213 "gram.y" { (yyval.objtype) = OBJECT_TABLE; } break; case 791: /* Line 1464 of yacc.c */ #line 5214 "gram.y" { (yyval.objtype) = OBJECT_TYPE; } break; case 792: /* Line 1464 of yacc.c */ #line 5215 "gram.y" { (yyval.objtype) = OBJECT_ROLE; } break; case 793: /* Line 1464 of yacc.c */ #line 5216 "gram.y" { (yyval.objtype) = OBJECT_TABLESPACE; } break; case 794: /* Line 1464 of yacc.c */ #line 5217 "gram.y" { (yyval.objtype) = OBJECT_TYPE; } break; case 795: /* Line 1464 of yacc.c */ #line 5218 "gram.y" { (yyval.objtype) = OBJECT_VIEW; } break; case 796: /* Line 1464 of yacc.c */ #line 5221 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 797: /* Line 1464 of yacc.c */ #line 5222 "gram.y" { (yyval.str) = NULL; } break; case 798: /* Line 1464 of yacc.c */ #line 5233 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = FALSE; (yyval.node) = (Node *)n; } break; case 799: /* Line 1464 of yacc.c */ #line 5239 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = TRUE; (yyval.node) = (Node *)n; } break; case 800: /* Line 1464 of yacc.c */ #line 5247 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(1) - (1)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 801: /* Line 1464 of yacc.c */ #line 5255 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(2) - (2)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 802: /* Line 1464 of yacc.c */ #line 5263 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 803: /* Line 1464 of yacc.c */ #line 5271 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 804: /* Line 1464 of yacc.c */ #line 5279 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_ABSOLUTE; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 805: /* Line 1464 of yacc.c */ #line 5287 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_ABSOLUTE; n->howMany = -1; (yyval.node) = (Node *)n; } break; case 806: /* Line 1464 of yacc.c */ #line 5295 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_ABSOLUTE; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *)n; } break; case 807: /* Line 1464 of yacc.c */ #line 5303 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_RELATIVE; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *)n; } break; case 808: /* Line 1464 of yacc.c */ #line 5311 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[(1) - (3)].ival); (yyval.node) = (Node *)n; } break; case 809: /* Line 1464 of yacc.c */ #line 5319 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } break; case 810: /* Line 1464 of yacc.c */ #line 5327 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 811: /* Line 1464 of yacc.c */ #line 5335 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *)n; } break; case 812: /* Line 1464 of yacc.c */ #line 5343 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } break; case 813: /* Line 1464 of yacc.c */ #line 5351 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } break; case 814: /* Line 1464 of yacc.c */ #line 5359 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_BACKWARD; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *)n; } break; case 815: /* Line 1464 of yacc.c */ #line 5367 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_BACKWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } break; case 816: /* Line 1464 of yacc.c */ #line 5376 "gram.y" {} break; case 817: /* Line 1464 of yacc.c */ #line 5377 "gram.y" {} break; case 818: /* Line 1464 of yacc.c */ #line 5380 "gram.y" {} break; case 819: /* Line 1464 of yacc.c */ #line 5381 "gram.y" {} break; case 820: /* Line 1464 of yacc.c */ #line 5393 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype; n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype; n->objects = ((yyvsp[(4) - (7)].privtarget))->objs; n->grantees = (yyvsp[(6) - (7)].list); n->grant_option = (yyvsp[(7) - (7)].boolean); (yyval.node) = (Node*)n; } break; case 821: /* Line 1464 of yacc.c */ #line 5409 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype; n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype; n->objects = ((yyvsp[(4) - (7)].privtarget))->objs; n->grantees = (yyvsp[(6) - (7)].list); n->behavior = (yyvsp[(7) - (7)].dbehavior); (yyval.node) = (Node *)n; } break; case 822: /* Line 1464 of yacc.c */ #line 5423 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[(5) - (10)].list); n->targtype = ((yyvsp[(7) - (10)].privtarget))->targtype; n->objtype = ((yyvsp[(7) - (10)].privtarget))->objtype; n->objects = ((yyvsp[(7) - (10)].privtarget))->objs; n->grantees = (yyvsp[(9) - (10)].list); n->behavior = (yyvsp[(10) - (10)].dbehavior); (yyval.node) = (Node *)n; } break; case 823: /* Line 1464 of yacc.c */ #line 5448 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 824: /* Line 1464 of yacc.c */ #line 5450 "gram.y" { (yyval.list) = NIL; } break; case 825: /* Line 1464 of yacc.c */ #line 5452 "gram.y" { (yyval.list) = NIL; } break; case 826: /* Line 1464 of yacc.c */ #line 5454 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(3) - (4)].list); (yyval.list) = list_make1(n); } break; case 827: /* Line 1464 of yacc.c */ #line 5461 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(4) - (5)].list); (yyval.list) = list_make1(n); } break; case 828: /* Line 1464 of yacc.c */ #line 5469 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); } break; case 829: /* Line 1464 of yacc.c */ #line 5470 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); } break; case 830: /* Line 1464 of yacc.c */ #line 5474 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; } break; case 831: /* Line 1464 of yacc.c */ #line 5481 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; } break; case 832: /* Line 1464 of yacc.c */ #line 5488 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; } break; case 833: /* Line 1464 of yacc.c */ #line 5495 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[(1) - (2)].str); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; } break; case 834: /* Line 1464 of yacc.c */ #line 5509 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_RELATION; n->objs = (yyvsp[(1) - (1)].list); (yyval.privtarget) = n; } break; case 835: /* Line 1464 of yacc.c */ #line 5517 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_RELATION; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 836: /* Line 1464 of yacc.c */ #line 5525 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_SEQUENCE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 837: /* Line 1464 of yacc.c */ #line 5533 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_FDW; n->objs = (yyvsp[(4) - (4)].list); (yyval.privtarget) = n; } break; case 838: /* Line 1464 of yacc.c */ #line 5541 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_FOREIGN_SERVER; n->objs = (yyvsp[(3) - (3)].list); (yyval.privtarget) = n; } break; case 839: /* Line 1464 of yacc.c */ #line 5549 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_FUNCTION; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 840: /* Line 1464 of yacc.c */ #line 5557 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_DATABASE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 841: /* Line 1464 of yacc.c */ #line 5565 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_DOMAIN; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 842: /* Line 1464 of yacc.c */ #line 5573 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_LANGUAGE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 843: /* Line 1464 of yacc.c */ #line 5581 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_LARGEOBJECT; n->objs = (yyvsp[(3) - (3)].list); (yyval.privtarget) = n; } break; case 844: /* Line 1464 of yacc.c */ #line 5589 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_NAMESPACE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 845: /* Line 1464 of yacc.c */ #line 5597 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_TABLESPACE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 846: /* Line 1464 of yacc.c */ #line 5605 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_TYPE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; } break; case 847: /* Line 1464 of yacc.c */ #line 5613 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = ACL_OBJECT_RELATION; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; } break; case 848: /* Line 1464 of yacc.c */ #line 5621 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = ACL_OBJECT_SEQUENCE; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; } break; case 849: /* Line 1464 of yacc.c */ #line 5629 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = ACL_OBJECT_FUNCTION; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; } break; case 850: /* Line 1464 of yacc.c */ #line 5640 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 851: /* Line 1464 of yacc.c */ #line 5641 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 852: /* Line 1464 of yacc.c */ #line 5645 "gram.y" { PrivGrantee *n = makeNode(PrivGrantee); /* This hack lets us avoid reserving PUBLIC as a keyword*/ if (strcmp((yyvsp[(1) - (1)].str), "public") == 0) n->rolname = NULL; else n->rolname = (yyvsp[(1) - (1)].str); (yyval.node) = (Node *)n; } break; case 853: /* Line 1464 of yacc.c */ #line 5655 "gram.y" { PrivGrantee *n = makeNode(PrivGrantee); /* Treat GROUP PUBLIC as a synonym for PUBLIC */ if (strcmp((yyvsp[(2) - (2)].str), "public") == 0) n->rolname = NULL; else n->rolname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; } break; case 854: /* Line 1464 of yacc.c */ #line 5668 "gram.y" { (yyval.boolean) = TRUE; } break; case 855: /* Line 1464 of yacc.c */ #line 5669 "gram.y" { (yyval.boolean) = FALSE; } break; case 856: /* Line 1464 of yacc.c */ #line 5673 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].funwithargs)); } break; case 857: /* Line 1464 of yacc.c */ #line 5675 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].funwithargs)); } break; case 858: /* Line 1464 of yacc.c */ #line 5680 "gram.y" { FuncWithArgs *n = makeNode(FuncWithArgs); n->funcname = (yyvsp[(1) - (2)].list); n->funcargs = extractArgTypes((yyvsp[(2) - (2)].list)); (yyval.funwithargs) = n; } break; case 859: /* Line 1464 of yacc.c */ #line 5696 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[(2) - (6)].list); n->grantee_roles = (yyvsp[(4) - (6)].list); n->admin_opt = (yyvsp[(5) - (6)].boolean); n->grantor = (yyvsp[(6) - (6)].str); (yyval.node) = (Node*)n; } break; case 860: /* Line 1464 of yacc.c */ #line 5709 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = false; n->granted_roles = (yyvsp[(2) - (6)].list); n->grantee_roles = (yyvsp[(4) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); (yyval.node) = (Node*)n; } break; case 861: /* Line 1464 of yacc.c */ #line 5719 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = true; n->granted_roles = (yyvsp[(5) - (9)].list); n->grantee_roles = (yyvsp[(7) - (9)].list); n->behavior = (yyvsp[(9) - (9)].dbehavior); (yyval.node) = (Node*)n; } break; case 862: /* Line 1464 of yacc.c */ #line 5730 "gram.y" { (yyval.boolean) = TRUE; } break; case 863: /* Line 1464 of yacc.c */ #line 5731 "gram.y" { (yyval.boolean) = FALSE; } break; case 864: /* Line 1464 of yacc.c */ #line 5734 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 865: /* Line 1464 of yacc.c */ #line 5735 "gram.y" { (yyval.str) = NULL; } break; case 866: /* Line 1464 of yacc.c */ #line 5746 "gram.y" { AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); n->options = (yyvsp[(4) - (5)].list); n->action = (GrantStmt *) (yyvsp[(5) - (5)].node); (yyval.node) = (Node*)n; } break; case 867: /* Line 1464 of yacc.c */ #line 5755 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 868: /* Line 1464 of yacc.c */ #line 5756 "gram.y" { (yyval.list) = NIL; } break; case 869: /* Line 1464 of yacc.c */ #line 5761 "gram.y" { (yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[(3) - (3)].list)); } break; case 870: /* Line 1464 of yacc.c */ #line 5765 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list)); } break; case 871: /* Line 1464 of yacc.c */ #line 5769 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list)); } break; case 872: /* Line 1464 of yacc.c */ #line 5781 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[(4) - (7)].ival); n->objects = NIL; n->grantees = (yyvsp[(6) - (7)].list); n->grant_option = (yyvsp[(7) - (7)].boolean); (yyval.node) = (Node*)n; } break; case 873: /* Line 1464 of yacc.c */ #line 5794 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[(4) - (7)].ival); n->objects = NIL; n->grantees = (yyvsp[(6) - (7)].list); n->behavior = (yyvsp[(7) - (7)].dbehavior); (yyval.node) = (Node *)n; } break; case 874: /* Line 1464 of yacc.c */ #line 5808 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[(5) - (10)].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[(7) - (10)].ival); n->objects = NIL; n->grantees = (yyvsp[(9) - (10)].list); n->behavior = (yyvsp[(10) - (10)].dbehavior); (yyval.node) = (Node *)n; } break; case 875: /* Line 1464 of yacc.c */ #line 5823 "gram.y" { (yyval.ival) = ACL_OBJECT_RELATION; } break; case 876: /* Line 1464 of yacc.c */ #line 5824 "gram.y" { (yyval.ival) = ACL_OBJECT_FUNCTION; } break; case 877: /* Line 1464 of yacc.c */ #line 5825 "gram.y" { (yyval.ival) = ACL_OBJECT_SEQUENCE; } break; case 878: /* Line 1464 of yacc.c */ #line 5826 "gram.y" { (yyval.ival) = ACL_OBJECT_TYPE; } break; case 879: /* Line 1464 of yacc.c */ #line 5841 "gram.y" { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[(2) - (14)].boolean); n->concurrent = (yyvsp[(4) - (14)].boolean); n->idxname = (yyvsp[(5) - (14)].str); n->relation = (yyvsp[(7) - (14)].range); n->accessMethod = (yyvsp[(8) - (14)].str); n->indexParams = (yyvsp[(10) - (14)].list); n->options = (yyvsp[(12) - (14)].list); n->tableSpace = (yyvsp[(13) - (14)].str); n->whereClause = (yyvsp[(14) - (14)].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; (yyval.node) = (Node *)n; } break; case 880: /* Line 1464 of yacc.c */ #line 5865 "gram.y" { (yyval.boolean) = TRUE; } break; case 881: /* Line 1464 of yacc.c */ #line 5866 "gram.y" { (yyval.boolean) = FALSE; } break; case 882: /* Line 1464 of yacc.c */ #line 5870 "gram.y" { (yyval.boolean) = TRUE; } break; case 883: /* Line 1464 of yacc.c */ #line 5871 "gram.y" { (yyval.boolean) = FALSE; } break; case 884: /* Line 1464 of yacc.c */ #line 5875 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 885: /* Line 1464 of yacc.c */ #line 5876 "gram.y" { (yyval.str) = NULL; } break; case 886: /* Line 1464 of yacc.c */ #line 5880 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 887: /* Line 1464 of yacc.c */ #line 5881 "gram.y" { (yyval.str) = DEFAULT_INDEX_TYPE; } break; case 888: /* Line 1464 of yacc.c */ #line 5884 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); } break; case 889: /* Line 1464 of yacc.c */ #line 5885 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); } break; case 890: /* Line 1464 of yacc.c */ #line 5894 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (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)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival); } break; case 891: /* Line 1464 of yacc.c */ #line 5905 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (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)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival); } break; case 892: /* Line 1464 of yacc.c */ #line 5916 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (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)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].ival); } break; case 893: /* Line 1464 of yacc.c */ #line 5928 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 894: /* Line 1464 of yacc.c */ #line 5929 "gram.y" { (yyval.list) = NIL; } break; case 895: /* Line 1464 of yacc.c */ #line 5932 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 896: /* Line 1464 of yacc.c */ #line 5933 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 897: /* Line 1464 of yacc.c */ #line 5934 "gram.y" { (yyval.list) = NIL; } break; case 898: /* Line 1464 of yacc.c */ #line 5937 "gram.y" { (yyval.ival) = SORTBY_ASC; } break; case 899: /* Line 1464 of yacc.c */ #line 5938 "gram.y" { (yyval.ival) = SORTBY_DESC; } break; case 900: /* Line 1464 of yacc.c */ #line 5939 "gram.y" { (yyval.ival) = SORTBY_DEFAULT; } break; case 901: /* Line 1464 of yacc.c */ #line 5942 "gram.y" { (yyval.ival) = SORTBY_NULLS_FIRST; } break; case 902: /* Line 1464 of yacc.c */ #line 5943 "gram.y" { (yyval.ival) = SORTBY_NULLS_LAST; } break; case 903: /* Line 1464 of yacc.c */ #line 5944 "gram.y" { (yyval.ival) = SORTBY_NULLS_DEFAULT; } break; case 904: /* Line 1464 of yacc.c */ #line 5962 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->replace = (yyvsp[(2) - (9)].boolean); n->funcname = (yyvsp[(4) - (9)].list); n->parameters = (yyvsp[(5) - (9)].list); n->returnType = (yyvsp[(7) - (9)].typnam); n->options = (yyvsp[(8) - (9)].list); n->withClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *)n; } break; case 905: /* Line 1464 of yacc.c */ #line 5974 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->replace = (yyvsp[(2) - (12)].boolean); n->funcname = (yyvsp[(4) - (12)].list); n->parameters = mergeTableFuncParameters((yyvsp[(5) - (12)].list), (yyvsp[(9) - (12)].list)); n->returnType = TableFuncTypeName((yyvsp[(9) - (12)].list)); n->returnType->location = (yylsp[(7) - (12)]); n->options = (yyvsp[(11) - (12)].list); n->withClause = (yyvsp[(12) - (12)].list); (yyval.node) = (Node *)n; } break; case 906: /* Line 1464 of yacc.c */ #line 5987 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->replace = (yyvsp[(2) - (7)].boolean); n->funcname = (yyvsp[(4) - (7)].list); n->parameters = (yyvsp[(5) - (7)].list); n->returnType = NULL; n->options = (yyvsp[(6) - (7)].list); n->withClause = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; } break; case 907: /* Line 1464 of yacc.c */ #line 6000 "gram.y" { (yyval.boolean) = TRUE; } break; case 908: /* Line 1464 of yacc.c */ #line 6001 "gram.y" { (yyval.boolean) = FALSE; } break; case 909: /* Line 1464 of yacc.c */ #line 6004 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 910: /* Line 1464 of yacc.c */ #line 6005 "gram.y" { (yyval.list) = NIL; } break; case 911: /* Line 1464 of yacc.c */ #line 6009 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); } break; case 912: /* Line 1464 of yacc.c */ #line 6010 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); } break; case 913: /* Line 1464 of yacc.c */ #line 6018 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 914: /* Line 1464 of yacc.c */ #line 6019 "gram.y" { (yyval.list) = NIL; } break; case 915: /* Line 1464 of yacc.c */ #line 6023 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); } break; case 916: /* Line 1464 of yacc.c */ #line 6025 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); } break; case 917: /* Line 1464 of yacc.c */ #line 6040 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(2) - (3)].str); n->argType = (yyvsp[(3) - (3)].typnam); n->mode = (yyvsp[(1) - (3)].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } break; case 918: /* Line 1464 of yacc.c */ #line 6049 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (3)].str); n->argType = (yyvsp[(3) - (3)].typnam); n->mode = (yyvsp[(2) - (3)].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } break; case 919: /* Line 1464 of yacc.c */ #line 6058 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (2)].str); n->argType = (yyvsp[(2) - (2)].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; } break; case 920: /* Line 1464 of yacc.c */ #line 6067 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[(2) - (2)].typnam); n->mode = (yyvsp[(1) - (2)].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } break; case 921: /* Line 1464 of yacc.c */ #line 6076 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[(1) - (1)].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; } break; case 922: /* Line 1464 of yacc.c */ #line 6087 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_IN; } break; case 923: /* Line 1464 of yacc.c */ #line 6088 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_OUT; } break; case 924: /* Line 1464 of yacc.c */ #line 6089 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } break; case 925: /* Line 1464 of yacc.c */ #line 6090 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } break; case 926: /* Line 1464 of yacc.c */ #line 6091 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; } break; case 928: /* Line 1464 of yacc.c */ #line 6102 "gram.y" { /* We can catch over-specified results here if we want to, * but for now better to silently swallow typmod, etc. * - thomas 2000-03-22 */ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 929: /* Line 1464 of yacc.c */ #line 6116 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 930: /* Line 1464 of yacc.c */ #line 6118 "gram.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 931: /* Line 1464 of yacc.c */ #line 6124 "gram.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 932: /* Line 1464 of yacc.c */ #line 6134 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); } break; case 933: /* Line 1464 of yacc.c */ #line 6138 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); } break; case 934: /* Line 1464 of yacc.c */ #line 6143 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); } break; case 935: /* Line 1464 of yacc.c */ #line 6152 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 936: /* Line 1464 of yacc.c */ #line 6153 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 937: /* Line 1464 of yacc.c */ #line 6161 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(FALSE)); } break; case 938: /* Line 1464 of yacc.c */ #line 6165 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE)); } break; case 939: /* Line 1464 of yacc.c */ #line 6169 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE)); } break; case 940: /* Line 1464 of yacc.c */ #line 6173 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable")); } break; case 941: /* Line 1464 of yacc.c */ #line 6177 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable")); } break; case 942: /* Line 1464 of yacc.c */ #line 6181 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile")); } break; case 943: /* Line 1464 of yacc.c */ #line 6185 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE)); } break; case 944: /* Line 1464 of yacc.c */ #line 6189 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE)); } break; case 945: /* Line 1464 of yacc.c */ #line 6193 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE)); } break; case 946: /* Line 1464 of yacc.c */ #line 6197 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE)); } break; case 947: /* Line 1464 of yacc.c */ #line 6201 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(TRUE)); } break; case 948: /* Line 1464 of yacc.c */ #line 6205 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(FALSE)); } break; case 949: /* Line 1464 of yacc.c */ #line 6209 "gram.y" { (yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[(2) - (2)].value)); } break; case 950: /* Line 1464 of yacc.c */ #line 6213 "gram.y" { (yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[(2) - (2)].value)); } break; case 951: /* Line 1464 of yacc.c */ #line 6217 "gram.y" { /* we abuse the normal content of a DefElem here */ (yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[(1) - (1)].vsetstmt)); } break; case 952: /* Line 1464 of yacc.c */ #line 6225 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[(2) - (2)].list)); } break; case 953: /* Line 1464 of yacc.c */ #line 6229 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 954: /* Line 1464 of yacc.c */ #line 6233 "gram.y" { (yyval.defelt) = makeDefElem("window", (Node *)makeInteger(TRUE)); } break; case 955: /* Line 1464 of yacc.c */ #line 6237 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); } break; case 956: /* Line 1464 of yacc.c */ #line 6242 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 957: /* Line 1464 of yacc.c */ #line 6244 "gram.y" { (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); } break; case 958: /* Line 1464 of yacc.c */ #line 6250 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 959: /* Line 1464 of yacc.c */ #line 6251 "gram.y" { (yyval.list) = NIL; } break; case 960: /* Line 1464 of yacc.c */ #line 6255 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (2)].str); n->argType = (yyvsp[(2) - (2)].typnam); n->mode = FUNC_PARAM_TABLE; n->defexpr = NULL; (yyval.fun_param) = n; } break; case 961: /* Line 1464 of yacc.c */ #line 6267 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); } break; case 962: /* Line 1464 of yacc.c */ #line 6271 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); } break; case 963: /* Line 1464 of yacc.c */ #line 6286 "gram.y" { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->func = (yyvsp[(3) - (5)].funwithargs); n->actions = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; } break; case 964: /* Line 1464 of yacc.c */ #line 6296 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 965: /* Line 1464 of yacc.c */ #line 6297 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 968: /* Line 1464 of yacc.c */ #line 6319 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = list_make1((yyvsp[(3) - (5)].list)); n->arguments = list_make1(extractArgTypes((yyvsp[(4) - (5)].list))); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 969: /* Line 1464 of yacc.c */ #line 6330 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = list_make1((yyvsp[(5) - (7)].list)); n->arguments = list_make1(extractArgTypes((yyvsp[(6) - (7)].list))); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 970: /* Line 1464 of yacc.c */ #line 6344 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = list_make1((yyvsp[(3) - (5)].list)); n->arguments = list_make1((yyvsp[(4) - (5)].list)); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 971: /* Line 1464 of yacc.c */ #line 6355 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = list_make1((yyvsp[(5) - (7)].list)); n->arguments = list_make1((yyvsp[(6) - (7)].list)); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 972: /* Line 1464 of yacc.c */ #line 6369 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = list_make1((yyvsp[(3) - (5)].list)); n->arguments = list_make1((yyvsp[(4) - (5)].list)); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 973: /* Line 1464 of yacc.c */ #line 6380 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = list_make1((yyvsp[(5) - (7)].list)); n->arguments = list_make1((yyvsp[(6) - (7)].list)); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } break; case 974: /* Line 1464 of yacc.c */ #line 6394 "gram.y" { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing argument"), errhint("Use NONE to denote the missing argument of a unary operator."), parser_errposition((yylsp[(3) - (3)])))); } break; case 975: /* Line 1464 of yacc.c */ #line 6402 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); } break; case 976: /* Line 1464 of yacc.c */ #line 6404 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); } break; case 977: /* Line 1464 of yacc.c */ #line 6406 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); } break; case 978: /* Line 1464 of yacc.c */ #line 6411 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 979: /* Line 1464 of yacc.c */ #line 6413 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); } break; case 980: /* Line 1464 of yacc.c */ #line 6426 "gram.y" { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[(2) - (2)].list); (yyval.node) = (Node *)n; } break; case 981: /* Line 1464 of yacc.c */ #line 6434 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 982: /* Line 1464 of yacc.c */ #line 6435 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 983: /* Line 1464 of yacc.c */ #line 6440 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[(1) - (1)].str))); } break; case 984: /* Line 1464 of yacc.c */ #line 6444 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str))); } break; case 985: /* Line 1464 of yacc.c */ #line 6457 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (11)].typnam); n->targettype = (yyvsp[(6) - (11)].typnam); n->func = (yyvsp[(10) - (11)].funwithargs); n->context = (CoercionContext) (yyvsp[(11) - (11)].ival); n->inout = false; (yyval.node) = (Node *)n; } break; case 986: /* Line 1464 of yacc.c */ #line 6468 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (10)].typnam); n->targettype = (yyvsp[(6) - (10)].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[(10) - (10)].ival); n->inout = false; (yyval.node) = (Node *)n; } break; case 987: /* Line 1464 of yacc.c */ #line 6479 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (10)].typnam); n->targettype = (yyvsp[(6) - (10)].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[(10) - (10)].ival); n->inout = true; (yyval.node) = (Node *)n; } break; case 988: /* Line 1464 of yacc.c */ #line 6490 "gram.y" { (yyval.ival) = COERCION_IMPLICIT; } break; case 989: /* Line 1464 of yacc.c */ #line 6491 "gram.y" { (yyval.ival) = COERCION_ASSIGNMENT; } break; case 990: /* Line 1464 of yacc.c */ #line 6492 "gram.y" { (yyval.ival) = COERCION_EXPLICIT; } break; case 991: /* Line 1464 of yacc.c */ #line 6497 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; n->objects = list_make1(list_make1((yyvsp[(5) - (9)].typnam))); n->arguments = list_make1(list_make1((yyvsp[(7) - (9)].typnam))); n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = (yyvsp[(3) - (9)].boolean); n->concurrent = false; (yyval.node) = (Node *)n; } break; case 992: /* Line 1464 of yacc.c */ #line 6509 "gram.y" { (yyval.boolean) = TRUE; } break; case 993: /* Line 1464 of yacc.c */ #line 6510 "gram.y" { (yyval.boolean) = FALSE; } break; case 994: /* Line 1464 of yacc.c */ #line 6525 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(2) - (4)].objtype); n->relation = (yyvsp[(3) - (4)].range); n->name = NULL; (yyval.node) = (Node *)n; } break; case 995: /* Line 1464 of yacc.c */ #line 6533 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = OBJECT_DATABASE; n->name = (yyvsp[(3) - (4)].str); n->relation = NULL; n->do_system = true; n->do_user = false; (yyval.node) = (Node *)n; } break; case 996: /* Line 1464 of yacc.c */ #line 6543 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = OBJECT_DATABASE; n->name = (yyvsp[(3) - (4)].str); n->relation = NULL; n->do_system = true; n->do_user = true; (yyval.node) = (Node *)n; } break; case 997: /* Line 1464 of yacc.c */ #line 6555 "gram.y" { (yyval.objtype) = OBJECT_INDEX; } break; case 998: /* Line 1464 of yacc.c */ #line 6556 "gram.y" { (yyval.objtype) = OBJECT_TABLE; } break; case 999: /* Line 1464 of yacc.c */ #line 6559 "gram.y" { (yyval.boolean) = TRUE; } break; case 1000: /* Line 1464 of yacc.c */ #line 6560 "gram.y" { (yyval.boolean) = FALSE; } break; case 1001: /* Line 1464 of yacc.c */ #line 6571 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1002: /* Line 1464 of yacc.c */ #line 6581 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1003: /* Line 1464 of yacc.c */ #line 6590 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1004: /* Line 1464 of yacc.c */ #line 6599 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DATABASE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1005: /* Line 1464 of yacc.c */ #line 6608 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1006: /* Line 1464 of yacc.c */ #line 6617 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONSTRAINT; n->relationType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (8)].list); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *)n; } break; case 1007: /* Line 1464 of yacc.c */ #line 6627 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; n->subname = (yyvsp[(5) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1008: /* Line 1464 of yacc.c */ #line 6636 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; n->object = (yyvsp[(3) - (6)].funwithargs)->funcname; n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1009: /* Line 1464 of yacc.c */ #line 6646 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1010: /* Line 1464 of yacc.c */ #line 6655 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; n->subname = (yyvsp[(4) - (7)].str); n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1011: /* Line 1464 of yacc.c */ #line 6664 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; n->object = (yyvsp[(4) - (9)].list); n->subname = (yyvsp[(6) - (9)].str); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1012: /* Line 1464 of yacc.c */ #line 6674 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; n->object = (yyvsp[(4) - (9)].list); n->subname = (yyvsp[(6) - (9)].str); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1013: /* Line 1464 of yacc.c */ #line 6684 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SCHEMA; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1014: /* Line 1464 of yacc.c */ #line 6693 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1015: /* Line 1464 of yacc.c */ #line 6702 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1016: /* Line 1464 of yacc.c */ #line 6712 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1017: /* Line 1464 of yacc.c */ #line 6722 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1018: /* Line 1464 of yacc.c */ #line 6732 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1019: /* Line 1464 of yacc.c */ #line 6742 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1020: /* Line 1464 of yacc.c */ #line 6752 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1021: /* Line 1464 of yacc.c */ #line 6762 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1022: /* Line 1464 of yacc.c */ #line 6772 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1023: /* Line 1464 of yacc.c */ #line 6782 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(4) - (7)].range); n->subname = NULL; n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1024: /* Line 1464 of yacc.c */ #line 6792 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(6) - (9)].range); n->subname = NULL; n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1025: /* Line 1464 of yacc.c */ #line 6802 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (8)].range); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1026: /* Line 1464 of yacc.c */ #line 6813 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[(5) - (10)].range); n->subname = (yyvsp[(8) - (10)].str); n->newname = (yyvsp[(10) - (10)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1027: /* Line 1464 of yacc.c */ #line 6824 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONSTRAINT; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (8)].range); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *)n; } break; case 1028: /* Line 1464 of yacc.c */ #line 6834 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(4) - (9)].range); n->subname = (yyvsp[(7) - (9)].str); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1029: /* Line 1464 of yacc.c */ #line 6845 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(6) - (11)].range); n->subname = (yyvsp[(9) - (11)].str); n->newname = (yyvsp[(11) - (11)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1030: /* Line 1464 of yacc.c */ #line 6856 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TRIGGER; n->relation = (yyvsp[(5) - (8)].range); n->subname = (yyvsp[(3) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1031: /* Line 1464 of yacc.c */ #line 6866 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1032: /* Line 1464 of yacc.c */ #line 6875 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1033: /* Line 1464 of yacc.c */ #line 6884 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLESPACE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1034: /* Line 1464 of yacc.c */ #line 6893 "gram.y" { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); n->isReset = FALSE; (yyval.node) = (Node *)n; } break; case 1035: /* Line 1464 of yacc.c */ #line 6902 "gram.y" { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); n->isReset = TRUE; (yyval.node) = (Node *)n; } break; case 1036: /* Line 1464 of yacc.c */ #line 6911 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1037: /* Line 1464 of yacc.c */ #line 6920 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1038: /* Line 1464 of yacc.c */ #line 6929 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1039: /* Line 1464 of yacc.c */ #line 6938 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1040: /* Line 1464 of yacc.c */ #line 6947 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1041: /* Line 1464 of yacc.c */ #line 6956 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ATTRIBUTE; n->relationType = OBJECT_TYPE; n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (9)].list), (yylsp[(3) - (9)]), yyscanner); n->subname = (yyvsp[(6) - (9)].str); n->newname = (yyvsp[(8) - (9)].str); n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1042: /* Line 1464 of yacc.c */ #line 6969 "gram.y" { (yyval.ival) = COLUMN; } break; case 1043: /* Line 1464 of yacc.c */ #line 6970 "gram.y" { (yyval.ival) = 0; } break; case 1044: /* Line 1464 of yacc.c */ #line 6973 "gram.y" { (yyval.ival) = 1; } break; case 1045: /* Line 1464 of yacc.c */ #line 6974 "gram.y" { (yyval.ival) = 0; } break; case 1046: /* Line 1464 of yacc.c */ #line 6985 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1047: /* Line 1464 of yacc.c */ #line 6995 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1048: /* Line 1464 of yacc.c */ #line 7004 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1049: /* Line 1464 of yacc.c */ #line 7013 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1050: /* Line 1464 of yacc.c */ #line 7022 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1051: /* Line 1464 of yacc.c */ #line 7031 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; n->object = (yyvsp[(3) - (6)].funwithargs)->funcname; n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs; n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1052: /* Line 1464 of yacc.c */ #line 7041 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1053: /* Line 1464 of yacc.c */ #line 7051 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; n->object = (yyvsp[(4) - (9)].list); n->addname = (yyvsp[(6) - (9)].str); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1054: /* Line 1464 of yacc.c */ #line 7061 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; n->object = (yyvsp[(4) - (9)].list); n->addname = (yyvsp[(6) - (9)].str); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1055: /* Line 1464 of yacc.c */ #line 7071 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (6)].range); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1056: /* Line 1464 of yacc.c */ #line 7080 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[(5) - (8)].range); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1057: /* Line 1464 of yacc.c */ #line 7089 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1058: /* Line 1464 of yacc.c */ #line 7098 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1059: /* Line 1464 of yacc.c */ #line 7107 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1060: /* Line 1464 of yacc.c */ #line 7116 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1061: /* Line 1464 of yacc.c */ #line 7125 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[(3) - (6)].range); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1062: /* Line 1464 of yacc.c */ #line 7134 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[(5) - (8)].range); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1063: /* Line 1464 of yacc.c */ #line 7143 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[(3) - (6)].range); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1064: /* Line 1464 of yacc.c */ #line 7152 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[(5) - (8)].range); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1065: /* Line 1464 of yacc.c */ #line 7161 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(4) - (7)].range); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1066: /* Line 1464 of yacc.c */ #line 7170 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(6) - (9)].range); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1067: /* Line 1464 of yacc.c */ #line 7179 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1068: /* Line 1464 of yacc.c */ #line 7196 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newowner = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *)n; } break; case 1069: /* Line 1464 of yacc.c */ #line 7205 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1070: /* Line 1464 of yacc.c */ #line 7213 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1071: /* Line 1464 of yacc.c */ #line 7221 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1072: /* Line 1464 of yacc.c */ #line 7229 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1073: /* Line 1464 of yacc.c */ #line 7237 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; n->object = (yyvsp[(3) - (6)].funwithargs)->funcname; n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs; n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1074: /* Line 1464 of yacc.c */ #line 7246 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; n->object = list_make1(makeString((yyvsp[(4) - (7)].str))); n->newowner = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *)n; } break; case 1075: /* Line 1464 of yacc.c */ #line 7254 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = list_make1((yyvsp[(4) - (7)].value)); n->newowner = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *)n; } break; case 1076: /* Line 1464 of yacc.c */ #line 7262 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newowner = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *)n; } break; case 1077: /* Line 1464 of yacc.c */ #line 7271 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; n->object = (yyvsp[(4) - (9)].list); n->addname = (yyvsp[(6) - (9)].str); n->newowner = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *)n; } break; case 1078: /* Line 1464 of yacc.c */ #line 7280 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; n->object = (yyvsp[(4) - (9)].list); n->addname = (yyvsp[(6) - (9)].str); n->newowner = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *)n; } break; case 1079: /* Line 1464 of yacc.c */ #line 7289 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1080: /* Line 1464 of yacc.c */ #line 7297 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1081: /* Line 1464 of yacc.c */ #line 7305 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1082: /* Line 1464 of yacc.c */ #line 7313 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (yyvsp[(5) - (8)].list); n->newowner = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *)n; } break; case 1083: /* Line 1464 of yacc.c */ #line 7321 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (yyvsp[(5) - (8)].list); n->newowner = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *)n; } break; case 1084: /* Line 1464 of yacc.c */ #line 7329 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; n->object = list_make1(makeString((yyvsp[(5) - (8)].str))); n->newowner = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *)n; } break; case 1085: /* Line 1464 of yacc.c */ #line 7337 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1086: /* Line 1464 of yacc.c */ #line 7356 "gram.y" { RuleStmt *n = makeNode(RuleStmt); n->replace = (yyvsp[(2) - (13)].boolean); n->relation = (yyvsp[(9) - (13)].range); n->rulename = (yyvsp[(4) - (13)].str); n->whereClause = (yyvsp[(10) - (13)].node); n->event = (yyvsp[(7) - (13)].ival); n->instead = (yyvsp[(12) - (13)].boolean); n->actions = (yyvsp[(13) - (13)].list); (yyval.node) = (Node *)n; } break; case 1087: /* Line 1464 of yacc.c */ #line 7370 "gram.y" { (yyval.list) = NIL; } break; case 1088: /* Line 1464 of yacc.c */ #line 7371 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1089: /* Line 1464 of yacc.c */ #line 7372 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 1090: /* Line 1464 of yacc.c */ #line 7378 "gram.y" { if ((yyvsp[(3) - (3)].node) != NULL) (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); else (yyval.list) = (yyvsp[(1) - (3)].list); } break; case 1091: /* Line 1464 of yacc.c */ #line 7384 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); else (yyval.list) = NIL; } break; case 1097: /* Line 1464 of yacc.c */ #line 7400 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1098: /* Line 1464 of yacc.c */ #line 7401 "gram.y" { (yyval.node) = NULL; } break; case 1099: /* Line 1464 of yacc.c */ #line 7404 "gram.y" { (yyval.ival) = CMD_SELECT; } break; case 1100: /* Line 1464 of yacc.c */ #line 7405 "gram.y" { (yyval.ival) = CMD_UPDATE; } break; case 1101: /* Line 1464 of yacc.c */ #line 7406 "gram.y" { (yyval.ival) = CMD_DELETE; } break; case 1102: /* Line 1464 of yacc.c */ #line 7407 "gram.y" { (yyval.ival) = CMD_INSERT; } break; case 1103: /* Line 1464 of yacc.c */ #line 7411 "gram.y" { (yyval.boolean) = TRUE; } break; case 1104: /* Line 1464 of yacc.c */ #line 7412 "gram.y" { (yyval.boolean) = FALSE; } break; case 1105: /* Line 1464 of yacc.c */ #line 7413 "gram.y" { (yyval.boolean) = FALSE; } break; case 1106: /* Line 1464 of yacc.c */ #line 7419 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_RULE; n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 1107: /* Line 1464 of yacc.c */ #line 7430 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_RULE; n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } break; case 1108: /* Line 1464 of yacc.c */ #line 7452 "gram.y" { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[(2) - (3)].str); n->payload = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 1109: /* Line 1464 of yacc.c */ #line 7461 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 1110: /* Line 1464 of yacc.c */ #line 7462 "gram.y" { (yyval.str) = NULL; } break; case 1111: /* Line 1464 of yacc.c */ #line 7466 "gram.y" { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; } break; case 1112: /* Line 1464 of yacc.c */ #line 7475 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; } break; case 1113: /* Line 1464 of yacc.c */ #line 7481 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *)n; } break; case 1114: /* Line 1464 of yacc.c */ #line 7500 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; (yyval.node) = (Node *)n; } break; case 1115: /* Line 1464 of yacc.c */ #line 7507 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; } break; case 1116: /* Line 1464 of yacc.c */ #line 7514 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; } break; case 1117: /* Line 1464 of yacc.c */ #line 7521 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; (yyval.node) = (Node *)n; } break; case 1118: /* Line 1464 of yacc.c */ #line 7528 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; (yyval.node) = (Node *)n; } break; case 1119: /* Line 1464 of yacc.c */ #line 7535 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; (yyval.node) = (Node *)n; } break; case 1120: /* Line 1464 of yacc.c */ #line 7542 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(2) - (2)].str)))); (yyval.node) = (Node *)n; } break; case 1121: /* Line 1464 of yacc.c */ #line 7550 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(3) - (3)].str)))); (yyval.node) = (Node *)n; } break; case 1122: /* Line 1464 of yacc.c */ #line 7558 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(2) - (2)].str)))); (yyval.node) = (Node *)n; } break; case 1123: /* Line 1464 of yacc.c */ #line 7566 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(5) - (5)].str)))); (yyval.node) = (Node *)n; } break; case 1124: /* Line 1464 of yacc.c */ #line 7574 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(4) - (4)].str)))); (yyval.node) = (Node *)n; } break; case 1125: /* Line 1464 of yacc.c */ #line 7582 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 1126: /* Line 1464 of yacc.c */ #line 7589 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 1127: /* Line 1464 of yacc.c */ #line 7596 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; } break; case 1128: /* Line 1464 of yacc.c */ #line 7604 "gram.y" {} break; case 1129: /* Line 1464 of yacc.c */ #line 7605 "gram.y" {} break; case 1130: /* Line 1464 of yacc.c */ #line 7606 "gram.y" {} break; case 1131: /* Line 1464 of yacc.c */ #line 7611 "gram.y" { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); } break; case 1132: /* Line 1464 of yacc.c */ #line 7614 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(TRUE, (yylsp[(1) - (2)]))); } break; case 1133: /* Line 1464 of yacc.c */ #line 7617 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(FALSE, (yylsp[(1) - (2)]))); } break; case 1134: /* Line 1464 of yacc.c */ #line 7620 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(TRUE, (yylsp[(1) - (1)]))); } break; case 1135: /* Line 1464 of yacc.c */ #line 7623 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(FALSE, (yylsp[(1) - (2)]))); } break; case 1136: /* Line 1464 of yacc.c */ #line 7630 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 1137: /* Line 1464 of yacc.c */ #line 7632 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 1138: /* Line 1464 of yacc.c */ #line 7634 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 1140: /* Line 1464 of yacc.c */ #line 7640 "gram.y" { (yyval.list) = NIL; } break; case 1141: /* Line 1464 of yacc.c */ #line 7654 "gram.y" { ViewStmt *n = makeNode(ViewStmt); 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->replace = false; n->options = (yyvsp[(6) - (9)].list); (yyval.node) = (Node *) n; } break; case 1142: /* Line 1464 of yacc.c */ #line 7666 "gram.y" { ViewStmt *n = makeNode(ViewStmt); 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->replace = true; n->options = (yyvsp[(8) - (11)].list); (yyval.node) = (Node *) n; } break; case 1143: /* Line 1464 of yacc.c */ #line 7680 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION is not implemented"))); } break; case 1144: /* Line 1464 of yacc.c */ #line 7686 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION is not implemented"))); } break; case 1145: /* Line 1464 of yacc.c */ #line 7692 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION is not implemented"))); } break; case 1146: /* Line 1464 of yacc.c */ #line 7697 "gram.y" { (yyval.list) = NIL; } break; case 1147: /* Line 1464 of yacc.c */ #line 7708 "gram.y" { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; } break; case 1148: /* Line 1464 of yacc.c */ #line 7724 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 1149: /* Line 1464 of yacc.c */ #line 7733 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 1150: /* Line 1464 of yacc.c */ #line 7734 "gram.y" { (yyval.list) = NIL; } break; case 1151: /* Line 1464 of yacc.c */ #line 7739 "gram.y" { (yyval.defelt) = makeDefElem("tablespace", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1152: /* Line 1464 of yacc.c */ #line 7743 "gram.y" { (yyval.defelt) = makeDefElem("tablespace", NULL); } break; case 1153: /* Line 1464 of yacc.c */ #line 7747 "gram.y" { (yyval.defelt) = makeDefElem("location", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1154: /* Line 1464 of yacc.c */ #line 7751 "gram.y" { (yyval.defelt) = makeDefElem("location", NULL); } break; case 1155: /* Line 1464 of yacc.c */ #line 7755 "gram.y" { (yyval.defelt) = makeDefElem("template", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1156: /* Line 1464 of yacc.c */ #line 7759 "gram.y" { (yyval.defelt) = makeDefElem("template", NULL); } break; case 1157: /* Line 1464 of yacc.c */ #line 7763 "gram.y" { (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1158: /* Line 1464 of yacc.c */ #line 7767 "gram.y" { (yyval.defelt) = makeDefElem("encoding", (Node *)makeInteger((yyvsp[(3) - (3)].ival))); } break; case 1159: /* Line 1464 of yacc.c */ #line 7771 "gram.y" { (yyval.defelt) = makeDefElem("encoding", NULL); } break; case 1160: /* Line 1464 of yacc.c */ #line 7775 "gram.y" { (yyval.defelt) = makeDefElem("lc_collate", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1161: /* Line 1464 of yacc.c */ #line 7779 "gram.y" { (yyval.defelt) = makeDefElem("lc_collate", NULL); } break; case 1162: /* Line 1464 of yacc.c */ #line 7783 "gram.y" { (yyval.defelt) = makeDefElem("lc_ctype", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1163: /* Line 1464 of yacc.c */ #line 7787 "gram.y" { (yyval.defelt) = makeDefElem("lc_ctype", NULL); } break; case 1164: /* Line 1464 of yacc.c */ #line 7791 "gram.y" { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(4) - (4)].ival))); } break; case 1165: /* Line 1464 of yacc.c */ #line 7795 "gram.y" { (yyval.defelt) = makeDefElem("owner", (Node *)makeString((yyvsp[(3) - (3)].str))); } break; case 1166: /* Line 1464 of yacc.c */ #line 7799 "gram.y" { (yyval.defelt) = makeDefElem("owner", NULL); } break; case 1167: /* Line 1464 of yacc.c */ #line 7808 "gram.y" {} break; case 1168: /* Line 1464 of yacc.c */ #line 7809 "gram.y" {} break; case 1169: /* Line 1464 of yacc.c */ #line 7821 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; } break; case 1170: /* Line 1464 of yacc.c */ #line 7828 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (6)].str); n->options = list_make1(makeDefElem("tablespace", (Node *)makeString((yyvsp[(6) - (6)].str)))); (yyval.node) = (Node *)n; } break; case 1171: /* Line 1464 of yacc.c */ #line 7839 "gram.y" { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[(3) - (4)].str); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *)n; } break; case 1172: /* Line 1464 of yacc.c */ #line 7849 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); } break; case 1173: /* Line 1464 of yacc.c */ #line 7850 "gram.y" { (yyval.list) = NIL; } break; case 1174: /* Line 1464 of yacc.c */ #line 7855 "gram.y" { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(4) - (4)].ival))); } break; case 1175: /* Line 1464 of yacc.c */ #line 7869 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(3) - (3)].str); n->missing_ok = FALSE; (yyval.node) = (Node *)n; } break; case 1176: /* Line 1464 of yacc.c */ #line 7876 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(5) - (5)].str); n->missing_ok = TRUE; (yyval.node) = (Node *)n; } break; case 1177: /* Line 1464 of yacc.c */ #line 7893 "gram.y" { CreateDomainStmt *n = makeNode(CreateDomainStmt); n->domainname = (yyvsp[(3) - (6)].list); n->typeName = (yyvsp[(5) - (6)].typnam); SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause, yyscanner); (yyval.node) = (Node *)n; } break; case 1178: /* Line 1464 of yacc.c */ #line 7906 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'T'; n->typeName = (yyvsp[(3) - (4)].list); n->def = (yyvsp[(4) - (4)].node); (yyval.node) = (Node *)n; } break; case 1179: /* Line 1464 of yacc.c */ #line 7915 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *)n; } break; case 1180: /* Line 1464 of yacc.c */ #line 7923 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *)n; } break; case 1181: /* Line 1464 of yacc.c */ #line 7931 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'C'; n->typeName = (yyvsp[(3) - (5)].list); n->def = (yyvsp[(5) - (5)].node); (yyval.node) = (Node *)n; } break; case 1182: /* Line 1464 of yacc.c */ #line 7940 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[(3) - (7)].list); n->name = (yyvsp[(6) - (7)].str); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } break; case 1183: /* Line 1464 of yacc.c */ #line 7951 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[(3) - (9)].list); n->name = (yyvsp[(8) - (9)].str); n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } break; case 1184: /* Line 1464 of yacc.c */ #line 7962 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'V'; n->typeName = (yyvsp[(3) - (6)].list); n->name = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *)n; } break; case 1185: /* Line 1464 of yacc.c */ #line 7971 "gram.y" {} break; case 1186: /* Line 1464 of yacc.c */ #line 7972 "gram.y" {} break; case 1187: /* Line 1464 of yacc.c */ #line 7984 "gram.y" { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[(5) - (6)].list); n->options = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; } break; case 1188: /* Line 1464 of yacc.c */ #line 7994 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = (yyvsp[(9) - (11)].list); n->dicts = (yyvsp[(11) - (11)].list); n->override = false; n->replace = false; (yyval.node) = (Node*)n; } break; case 1189: /* Line 1464 of yacc.c */ #line 8004 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = (yyvsp[(9) - (11)].list); n->dicts = (yyvsp[(11) - (11)].list); n->override = true; n->replace = false; (yyval.node) = (Node*)n; } break; case 1190: /* Line 1464 of yacc.c */ #line 8014 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = NIL; n->dicts = list_make2((yyvsp[(9) - (11)].list),(yyvsp[(11) - (11)].list)); n->override = false; n->replace = true; (yyval.node) = (Node*)n; } break; case 1191: /* Line 1464 of yacc.c */ #line 8024 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->cfgname = (yyvsp[(5) - (13)].list); n->tokentype = (yyvsp[(9) - (13)].list); n->dicts = list_make2((yyvsp[(11) - (13)].list),(yyvsp[(13) - (13)].list)); n->override = false; n->replace = true; (yyval.node) = (Node*)n; } break; case 1192: /* Line 1464 of yacc.c */ #line 8034 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->cfgname = (yyvsp[(5) - (9)].list); n->tokentype = (yyvsp[(9) - (9)].list); n->missing_ok = false; (yyval.node) = (Node*)n; } break; case 1193: /* Line 1464 of yacc.c */ #line 8042 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = (yyvsp[(11) - (11)].list); n->missing_ok = true; (yyval.node) = (Node*)n; } break; case 1194: /* Line 1464 of yacc.c */ #line 8064 "gram.y" { CreateConversionStmt *n = makeNode(CreateConversionStmt); n->conversion_name = (yyvsp[(4) - (10)].list); n->for_encoding_name = (yyvsp[(6) - (10)].str); n->to_encoding_name = (yyvsp[(8) - (10)].str); n->func_name = (yyvsp[(10) - (10)].list); n->def = (yyvsp[(2) - (10)].boolean); (yyval.node) = (Node *)n; } break; case 1195: /* Line 1464 of yacc.c */ #line 8086 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(3) - (4)].range); n->indexname = (yyvsp[(4) - (4)].str); n->verbose = (yyvsp[(2) - (4)].boolean); (yyval.node) = (Node*)n; } break; case 1196: /* Line 1464 of yacc.c */ #line 8094 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; n->verbose = (yyvsp[(2) - (2)].boolean); (yyval.node) = (Node*)n; } break; case 1197: /* Line 1464 of yacc.c */ #line 8103 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(5) - (5)].range); n->indexname = (yyvsp[(3) - (5)].str); n->verbose = (yyvsp[(2) - (5)].boolean); (yyval.node) = (Node*)n; } break; case 1198: /* Line 1464 of yacc.c */ #line 8113 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 1199: /* Line 1464 of yacc.c */ #line 8114 "gram.y" { (yyval.str) = NULL; } break; case 1200: /* Line 1464 of yacc.c */ #line 8127 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM; if ((yyvsp[(2) - (4)].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[(4) - (4)].boolean)) n->options |= VACOPT_VERBOSE; n->freeze_min_age = (yyvsp[(3) - (4)].boolean) ? 0 : -1; n->freeze_table_age = (yyvsp[(3) - (4)].boolean) ? 0 : -1; n->relation = NULL; n->va_cols = NIL; (yyval.node) = (Node *)n; } break; case 1201: /* Line 1464 of yacc.c */ #line 8141 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM; if ((yyvsp[(2) - (5)].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[(4) - (5)].boolean)) n->options |= VACOPT_VERBOSE; n->freeze_min_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1; n->freeze_table_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1; n->relation = (yyvsp[(5) - (5)].range); n->va_cols = NIL; (yyval.node) = (Node *)n; } break; case 1202: /* Line 1464 of yacc.c */ #line 8155 "gram.y" { VacuumStmt *n = (VacuumStmt *) (yyvsp[(5) - (5)].node); n->options |= VACOPT_VACUUM; if ((yyvsp[(2) - (5)].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[(4) - (5)].boolean)) n->options |= VACOPT_VERBOSE; n->freeze_min_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1; n->freeze_table_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1; (yyval.node) = (Node *)n; } break; case 1203: /* Line 1464 of yacc.c */ #line 8167 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM | (yyvsp[(3) - (4)].ival); if (n->options & VACOPT_FREEZE) n->freeze_min_age = n->freeze_table_age = 0; else n->freeze_min_age = n->freeze_table_age = -1; n->relation = NULL; n->va_cols = NIL; (yyval.node) = (Node *) n; } break; case 1204: /* Line 1464 of yacc.c */ #line 8179 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM | (yyvsp[(3) - (6)].ival); if (n->options & VACOPT_FREEZE) n->freeze_min_age = n->freeze_table_age = 0; else n->freeze_min_age = n->freeze_table_age = -1; n->relation = (yyvsp[(5) - (6)].range); n->va_cols = (yyvsp[(6) - (6)].list); if (n->va_cols != NIL) /* implies analyze */ n->options |= VACOPT_ANALYZE; (yyval.node) = (Node *) n; } break; case 1205: /* Line 1464 of yacc.c */ #line 8195 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); } break; case 1206: /* Line 1464 of yacc.c */ #line 8196 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); } break; case 1207: /* Line 1464 of yacc.c */ #line 8200 "gram.y" { (yyval.ival) = VACOPT_ANALYZE; } break; case 1208: /* Line 1464 of yacc.c */ #line 8201 "gram.y" { (yyval.ival) = VACOPT_VERBOSE; } break; case 1209: /* Line 1464 of yacc.c */ #line 8202 "gram.y" { (yyval.ival) = VACOPT_FREEZE; } break; case 1210: /* Line 1464 of yacc.c */ #line 8203 "gram.y" { (yyval.ival) = VACOPT_FULL; } break; case 1211: /* Line 1464 of yacc.c */ #line 8208 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_ANALYZE; if ((yyvsp[(2) - (2)].boolean)) n->options |= VACOPT_VERBOSE; n->freeze_min_age = -1; n->freeze_table_age = -1; n->relation = NULL; n->va_cols = NIL; (yyval.node) = (Node *)n; } break; case 1212: /* Line 1464 of yacc.c */ #line 8220 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_ANALYZE; if ((yyvsp[(2) - (4)].boolean)) n->options |= VACOPT_VERBOSE; n->freeze_min_age = -1; n->freeze_table_age = -1; n->relation = (yyvsp[(3) - (4)].range); n->va_cols = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; } break; case 1213: /* Line 1464 of yacc.c */ #line 8234 "gram.y" {} break; case 1214: /* Line 1464 of yacc.c */ #line 8235 "gram.y" {} break; case 1215: /* Line 1464 of yacc.c */ #line 8239 "gram.y" { (yyval.boolean) = TRUE; } break; case 1216: /* Line 1464 of yacc.c */ #line 8240 "gram.y" { (yyval.boolean) = FALSE; } break; case 1217: /* Line 1464 of yacc.c */ #line 8243 "gram.y" { (yyval.boolean) = TRUE; } break; case 1218: /* Line 1464 of yacc.c */ #line 8244 "gram.y" { (yyval.boolean) = FALSE; } break; case 1219: /* Line 1464 of yacc.c */ #line 8247 "gram.y" { (yyval.boolean) = TRUE; } break; case 1220: /* Line 1464 of yacc.c */ #line 8248 "gram.y" { (yyval.boolean) = FALSE; } break; case 1221: /* Line 1464 of yacc.c */ #line 8252 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 1222: /* Line 1464 of yacc.c */ #line 8253 "gram.y" { (yyval.list) = NIL; } break; case 1223: /* Line 1464 of yacc.c */ #line 8267 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(2) - (2)].node); n->options = NIL; (yyval.node) = (Node *) n; } break; case 1224: /* Line 1464 of yacc.c */ #line 8274 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(4) - (4)].node); n->options = list_make1(makeDefElem("analyze", NULL)); if ((yyvsp[(3) - (4)].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL)); (yyval.node) = (Node *) n; } break; case 1225: /* Line 1464 of yacc.c */ #line 8284 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(3) - (3)].node); n->options = list_make1(makeDefElem("verbose", NULL)); (yyval.node) = (Node *) n; } break; case 1226: /* Line 1464 of yacc.c */ #line 8291 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(5) - (5)].node); n->options = (yyvsp[(3) - (5)].list); (yyval.node) = (Node *) n; } break; case 1234: /* Line 1464 of yacc.c */ #line 8311 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); } break; case 1235: /* Line 1464 of yacc.c */ #line 8315 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); } break; case 1236: /* Line 1464 of yacc.c */ #line 8322 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node)); } break; case 1237: /* Line 1464 of yacc.c */ #line 8328 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1238: /* Line 1464 of yacc.c */ #line 8329 "gram.y" { (yyval.str) = "analyze"; } break; case 1239: /* Line 1464 of yacc.c */ #line 8330 "gram.y" { (yyval.str) = "verbose"; } break; case 1240: /* Line 1464 of yacc.c */ #line 8334 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); } break; case 1241: /* Line 1464 of yacc.c */ #line 8335 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); } break; case 1242: /* Line 1464 of yacc.c */ #line 8336 "gram.y" { (yyval.node) = NULL; } break; case 1243: /* Line 1464 of yacc.c */ #line 8347 "gram.y" { PrepareStmt *n = makeNode(PrepareStmt); n->name = (yyvsp[(2) - (5)].str); n->argtypes = (yyvsp[(3) - (5)].list); n->query = (yyvsp[(5) - (5)].node); (yyval.node) = (Node *) n; } break; case 1244: /* Line 1464 of yacc.c */ #line 8356 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 1245: /* Line 1464 of yacc.c */ #line 8357 "gram.y" { (yyval.list) = NIL; } break; case 1250: /* Line 1464 of yacc.c */ #line 8375 "gram.y" { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(2) - (3)].str); n->params = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; } break; case 1251: /* Line 1464 of yacc.c */ #line 8383 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(7) - (9)].str); n->params = (yyvsp[(8) - (9)].list); ctas->query = (Node *) n; ctas->into = (yyvsp[(4) - (9)].into); ctas->is_select_into = false; /* cram additional flags into the IntoClause */ (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival); (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); (yyval.node) = (Node *) ctas; } break; case 1252: /* Line 1464 of yacc.c */ #line 8398 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 1253: /* Line 1464 of yacc.c */ #line 8399 "gram.y" { (yyval.list) = NIL; } break; case 1254: /* Line 1464 of yacc.c */ #line 8410 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; } break; case 1255: /* Line 1464 of yacc.c */ #line 8416 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; } break; case 1256: /* Line 1464 of yacc.c */ #line 8422 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } break; case 1257: /* Line 1464 of yacc.c */ #line 8428 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } break; case 1258: /* Line 1464 of yacc.c */ #line 8444 "gram.y" { (yyvsp[(5) - (6)].istmt)->relation = (yyvsp[(4) - (6)].range); (yyvsp[(5) - (6)].istmt)->returningList = (yyvsp[(6) - (6)].list); (yyvsp[(5) - (6)].istmt)->withClause = (yyvsp[(1) - (6)].with); (yyval.node) = (Node *) (yyvsp[(5) - (6)].istmt); } break; case 1259: /* Line 1464 of yacc.c */ #line 8454 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); } break; case 1260: /* Line 1464 of yacc.c */ #line 8460 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); } break; case 1261: /* Line 1464 of yacc.c */ #line 8466 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; } break; case 1262: /* Line 1464 of yacc.c */ #line 8475 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); } break; case 1263: /* Line 1464 of yacc.c */ #line 8477 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); } break; case 1264: /* Line 1464 of yacc.c */ #line 8482 "gram.y" { (yyval.target) = makeNode(ResTarget); (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 1265: /* Line 1464 of yacc.c */ #line 8492 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 1266: /* Line 1464 of yacc.c */ #line 8493 "gram.y" { (yyval.list) = NIL; } break; case 1267: /* Line 1464 of yacc.c */ #line 8506 "gram.y" { DeleteStmt *n = makeNode(DeleteStmt); 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) = (Node *)n; } break; case 1268: /* Line 1464 of yacc.c */ #line 8518 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 1269: /* Line 1464 of yacc.c */ #line 8519 "gram.y" { (yyval.list) = NIL; } break; case 1270: /* Line 1464 of yacc.c */ #line 8531 "gram.y" { LockStmt *n = makeNode(LockStmt); n->relations = (yyvsp[(3) - (5)].list); n->mode = (yyvsp[(4) - (5)].ival); n->nowait = (yyvsp[(5) - (5)].boolean); (yyval.node) = (Node *)n; } break; case 1271: /* Line 1464 of yacc.c */ #line 8541 "gram.y" { (yyval.ival) = (yyvsp[(2) - (3)].ival); } break; case 1272: /* Line 1464 of yacc.c */ #line 8542 "gram.y" { (yyval.ival) = AccessExclusiveLock; } break; case 1273: /* Line 1464 of yacc.c */ #line 8545 "gram.y" { (yyval.ival) = AccessShareLock; } break; case 1274: /* Line 1464 of yacc.c */ #line 8546 "gram.y" { (yyval.ival) = RowShareLock; } break; case 1275: /* Line 1464 of yacc.c */ #line 8547 "gram.y" { (yyval.ival) = RowExclusiveLock; } break; case 1276: /* Line 1464 of yacc.c */ #line 8548 "gram.y" { (yyval.ival) = ShareUpdateExclusiveLock; } break; case 1277: /* Line 1464 of yacc.c */ #line 8549 "gram.y" { (yyval.ival) = ShareLock; } break; case 1278: /* Line 1464 of yacc.c */ #line 8550 "gram.y" { (yyval.ival) = ShareRowExclusiveLock; } break; case 1279: /* Line 1464 of yacc.c */ #line 8551 "gram.y" { (yyval.ival) = ExclusiveLock; } break; case 1280: /* Line 1464 of yacc.c */ #line 8552 "gram.y" { (yyval.ival) = AccessExclusiveLock; } break; case 1281: /* Line 1464 of yacc.c */ #line 8555 "gram.y" { (yyval.boolean) = TRUE; } break; case 1282: /* Line 1464 of yacc.c */ #line 8556 "gram.y" { (yyval.boolean) = FALSE; } break; case 1283: /* Line 1464 of yacc.c */ #line 8572 "gram.y" { UpdateStmt *n = makeNode(UpdateStmt); 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) = (Node *)n; } break; case 1284: /* Line 1464 of yacc.c */ #line 8585 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1285: /* Line 1464 of yacc.c */ #line 8586 "gram.y" { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); } break; case 1286: /* Line 1464 of yacc.c */ #line 8590 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); } break; case 1287: /* Line 1464 of yacc.c */ #line 8591 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1288: /* Line 1464 of yacc.c */ #line 8596 "gram.y" { (yyval.target) = (yyvsp[(1) - (3)].target); (yyval.target)->val = (Node *) (yyvsp[(3) - (3)].node); } break; case 1289: /* Line 1464 of yacc.c */ #line 8604 "gram.y" { ListCell *col_cell; ListCell *val_cell; /* * Break the ctext_row apart, merge individual expressions * into the destination ResTargets. XXX this approach * cannot work for general row expressions as sources. */ if (list_length((yyvsp[(2) - (5)].list)) != list_length((yyvsp[(5) - (5)].list))) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("number of columns does not match number of values"), parser_errposition((yylsp[(1) - (5)])))); forboth(col_cell, (yyvsp[(2) - (5)].list), val_cell, (yyvsp[(5) - (5)].list)) { ResTarget *res_col = (ResTarget *) lfirst(col_cell); Node *res_val = (Node *) lfirst(val_cell); res_col->val = res_val; } (yyval.list) = (yyvsp[(2) - (5)].list); } break; case 1290: /* Line 1464 of yacc.c */ #line 8632 "gram.y" { (yyval.target) = makeNode(ResTarget); (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 1291: /* Line 1464 of yacc.c */ #line 8642 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); } break; case 1292: /* Line 1464 of yacc.c */ #line 8643 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); } break; case 1293: /* Line 1464 of yacc.c */ #line 8654 "gram.y" { DeclareCursorStmt *n = makeNode(DeclareCursorStmt); n->portalname = (yyvsp[(2) - (7)].str); /* currently we always set FAST_PLAN option */ n->options = (yyvsp[(3) - (7)].ival) | (yyvsp[(5) - (7)].ival) | CURSOR_OPT_FAST_PLAN; n->query = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *)n; } break; case 1294: /* Line 1464 of yacc.c */ #line 8664 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1295: /* Line 1464 of yacc.c */ #line 8667 "gram.y" { (yyval.ival) = 0; } break; case 1296: /* Line 1464 of yacc.c */ #line 8668 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; } break; case 1297: /* Line 1464 of yacc.c */ #line 8669 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; } break; case 1298: /* Line 1464 of yacc.c */ #line 8670 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; } break; case 1299: /* Line 1464 of yacc.c */ #line 8671 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; } break; case 1300: /* Line 1464 of yacc.c */ #line 8674 "gram.y" { (yyval.ival) = 0; } break; case 1301: /* Line 1464 of yacc.c */ #line 8675 "gram.y" { (yyval.ival) = CURSOR_OPT_HOLD; } break; case 1302: /* Line 1464 of yacc.c */ #line 8676 "gram.y" { (yyval.ival) = 0; } break; case 1305: /* Line 1464 of yacc.c */ #line 8729 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); } break; case 1306: /* Line 1464 of yacc.c */ #line 8730 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); } break; case 1307: /* Line 1464 of yacc.c */ #line 8744 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1308: /* Line 1464 of yacc.c */ #line 8746 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, NULL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (2)].node); } break; case 1309: /* Line 1464 of yacc.c */ #line 8753 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), list_nth((yyvsp[(4) - (4)].list), 0), list_nth((yyvsp[(4) - (4)].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (4)].node); } break; case 1310: /* Line 1464 of yacc.c */ #line 8761 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), list_nth((yyvsp[(3) - (4)].list), 0), list_nth((yyvsp[(3) - (4)].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (4)].node); } break; case 1311: /* Line 1464 of yacc.c */ #line 8769 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, NULL, NULL, (yyvsp[(1) - (2)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1312: /* Line 1464 of yacc.c */ #line 8777 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, NULL, NULL, (yyvsp[(1) - (3)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (3)].node); } break; case 1313: /* Line 1464 of yacc.c */ #line 8785 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), list_nth((yyvsp[(5) - (5)].list), 0), list_nth((yyvsp[(5) - (5)].list), 1), (yyvsp[(1) - (5)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (5)].node); } break; case 1314: /* Line 1464 of yacc.c */ #line 8793 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), list_nth((yyvsp[(4) - (5)].list), 0), list_nth((yyvsp[(4) - (5)].list), 1), (yyvsp[(1) - (5)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (5)].node); } break; case 1315: /* Line 1464 of yacc.c */ #line 8803 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1316: /* Line 1464 of yacc.c */ #line 8804 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1317: /* Line 1464 of yacc.c */ #line 8834 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->distinctClause = (yyvsp[(2) - (9)].list); n->targetList = (yyvsp[(3) - (9)].list); n->intoClause = (yyvsp[(4) - (9)].into); n->fromClause = (yyvsp[(5) - (9)].list); n->whereClause = (yyvsp[(6) - (9)].node); n->groupClause = (yyvsp[(7) - (9)].list); n->havingClause = (yyvsp[(8) - (9)].node); n->windowClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *)n; } break; case 1318: /* Line 1464 of yacc.c */ #line 8846 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1319: /* Line 1464 of yacc.c */ #line 8848 "gram.y" { /* same as SELECT * FROM relation_expr */ ColumnRef *cr = makeNode(ColumnRef); ResTarget *rt = makeNode(ResTarget); SelectStmt *n = makeNode(SelectStmt); cr->fields = list_make1(makeNode(A_Star)); cr->location = -1; rt->name = NULL; rt->indirection = NIL; rt->val = (Node *)cr; rt->location = -1; n->targetList = list_make1(rt); n->fromClause = list_make1((yyvsp[(2) - (2)].range)); (yyval.node) = (Node *)n; } break; case 1320: /* Line 1464 of yacc.c */ #line 8867 "gram.y" { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); } break; case 1321: /* Line 1464 of yacc.c */ #line 8871 "gram.y" { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); } break; case 1322: /* Line 1464 of yacc.c */ #line 8875 "gram.y" { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); } break; case 1323: /* Line 1464 of yacc.c */ #line 8890 "gram.y" { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[(2) - (2)].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[(1) - (2)]); } break; case 1324: /* Line 1464 of yacc.c */ #line 8897 "gram.y" { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[(3) - (3)].list); (yyval.with)->recursive = true; (yyval.with)->location = (yylsp[(1) - (3)]); } break; case 1325: /* Line 1464 of yacc.c */ #line 8906 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1326: /* Line 1464 of yacc.c */ #line 8907 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1327: /* Line 1464 of yacc.c */ #line 8911 "gram.y" { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = (yyvsp[(1) - (6)].str); n->aliascolnames = (yyvsp[(2) - (6)].list); n->ctequery = (yyvsp[(5) - (6)].node); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; } break; case 1328: /* Line 1464 of yacc.c */ #line 8922 "gram.y" { (yyval.with) = (yyvsp[(1) - (1)].with); } break; case 1329: /* Line 1464 of yacc.c */ #line 8923 "gram.y" { (yyval.with) = NULL; } break; case 1330: /* Line 1464 of yacc.c */ #line 8928 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(2) - (2)].range); (yyval.into)->colNames = NIL; (yyval.into)->options = NIL; (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = NULL; (yyval.into)->skipData = false; } break; case 1331: /* Line 1464 of yacc.c */ #line 8938 "gram.y" { (yyval.into) = NULL; } break; case 1332: /* Line 1464 of yacc.c */ #line 8947 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } break; case 1333: /* Line 1464 of yacc.c */ #line 8952 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } break; case 1334: /* Line 1464 of yacc.c */ #line 8957 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } break; case 1335: /* Line 1464 of yacc.c */ #line 8962 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } break; case 1336: /* Line 1464 of yacc.c */ #line 8967 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (4)])))); (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } break; case 1337: /* Line 1464 of yacc.c */ #line 8975 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (4)])))); (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } break; case 1338: /* Line 1464 of yacc.c */ #line 8983 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; } break; case 1339: /* Line 1464 of yacc.c */ #line 8988 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } break; case 1340: /* Line 1464 of yacc.c */ #line 8993 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } break; case 1341: /* Line 1464 of yacc.c */ #line 8999 "gram.y" {} break; case 1342: /* Line 1464 of yacc.c */ #line 9000 "gram.y" {} break; case 1343: /* Line 1464 of yacc.c */ #line 9003 "gram.y" { (yyval.boolean) = TRUE; } break; case 1344: /* Line 1464 of yacc.c */ #line 9004 "gram.y" { (yyval.boolean) = FALSE; } break; case 1345: /* Line 1464 of yacc.c */ #line 9005 "gram.y" { (yyval.boolean) = FALSE; } break; case 1346: /* Line 1464 of yacc.c */ #line 9012 "gram.y" { (yyval.list) = list_make1(NIL); } break; case 1347: /* Line 1464 of yacc.c */ #line 9013 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); } break; case 1348: /* Line 1464 of yacc.c */ #line 9014 "gram.y" { (yyval.list) = NIL; } break; case 1349: /* Line 1464 of yacc.c */ #line 9015 "gram.y" { (yyval.list) = NIL; } break; case 1350: /* Line 1464 of yacc.c */ #line 9019 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list);} break; case 1351: /* Line 1464 of yacc.c */ #line 9020 "gram.y" { (yyval.list) = NIL; } break; case 1352: /* Line 1464 of yacc.c */ #line 9024 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); } break; case 1353: /* Line 1464 of yacc.c */ #line 9028 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); } break; case 1354: /* Line 1464 of yacc.c */ #line 9029 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); } break; case 1355: /* Line 1464 of yacc.c */ #line 9033 "gram.y" { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[(1) - (4)].node); (yyval.sortby)->sortby_dir = SORTBY_USING; (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].ival); (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list); (yyval.sortby)->location = (yylsp[(3) - (4)]); } break; case 1356: /* Line 1464 of yacc.c */ #line 9042 "gram.y" { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[(1) - (3)].node); (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].ival); (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].ival); (yyval.sortby)->useOp = NIL; (yyval.sortby)->location = -1; /* no operator */ } break; case 1357: /* Line 1464 of yacc.c */ #line 9054 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); } break; case 1358: /* Line 1464 of yacc.c */ #line 9055 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); } break; case 1359: /* Line 1464 of yacc.c */ #line 9056 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); } break; case 1360: /* Line 1464 of yacc.c */ #line 9057 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); } break; case 1361: /* Line 1464 of yacc.c */ #line 9061 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1362: /* Line 1464 of yacc.c */ #line 9062 "gram.y" { (yyval.list) = list_make2(NULL,NULL); } break; case 1363: /* Line 1464 of yacc.c */ #line 9067 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1364: /* Line 1464 of yacc.c */ #line 9069 "gram.y" { /* Disabled because it was too confusing, bjm 2002-02-18 */ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("LIMIT #,# syntax is not supported"), errhint("Use separate LIMIT and OFFSET clauses."), parser_errposition((yylsp[(1) - (4)])))); } break; case 1365: /* Line 1464 of yacc.c */ #line 9079 "gram.y" { (yyval.node) = (yyvsp[(3) - (5)].node); } break; case 1366: /* Line 1464 of yacc.c */ #line 9084 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1367: /* Line 1464 of yacc.c */ #line 9087 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); } break; case 1368: /* Line 1464 of yacc.c */ #line 9091 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1369: /* Line 1464 of yacc.c */ #line 9093 "gram.y" { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); } break; case 1370: /* Line 1464 of yacc.c */ #line 9100 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1371: /* Line 1464 of yacc.c */ #line 9110 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); } break; case 1372: /* Line 1464 of yacc.c */ #line 9111 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); } break; case 1373: /* Line 1464 of yacc.c */ #line 9112 "gram.y" { (yyval.node) = makeIntConst(1, -1); } break; case 1374: /* Line 1464 of yacc.c */ #line 9120 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1375: /* Line 1464 of yacc.c */ #line 9124 "gram.y" { (yyval.ival) = 0; } break; case 1376: /* Line 1464 of yacc.c */ #line 9125 "gram.y" { (yyval.ival) = 0; } break; case 1377: /* Line 1464 of yacc.c */ #line 9128 "gram.y" { (yyval.ival) = 0; } break; case 1378: /* Line 1464 of yacc.c */ #line 9129 "gram.y" { (yyval.ival) = 0; } break; case 1379: /* Line 1464 of yacc.c */ #line 9134 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); } break; case 1380: /* Line 1464 of yacc.c */ #line 9135 "gram.y" { (yyval.list) = NIL; } break; case 1381: /* Line 1464 of yacc.c */ #line 9139 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1382: /* Line 1464 of yacc.c */ #line 9140 "gram.y" { (yyval.node) = NULL; } break; case 1383: /* Line 1464 of yacc.c */ #line 9144 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1384: /* Line 1464 of yacc.c */ #line 9145 "gram.y" { (yyval.list) = NIL; } break; case 1385: /* Line 1464 of yacc.c */ #line 9149 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1386: /* Line 1464 of yacc.c */ #line 9150 "gram.y" { (yyval.list) = NIL; } break; case 1387: /* Line 1464 of yacc.c */ #line 9154 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1388: /* Line 1464 of yacc.c */ #line 9155 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 1389: /* Line 1464 of yacc.c */ #line 9160 "gram.y" { LockingClause *n = makeNode(LockingClause); n->lockedRels = (yyvsp[(3) - (4)].list); n->forUpdate = TRUE; n->noWait = (yyvsp[(4) - (4)].boolean); (yyval.node) = (Node *) n; } break; case 1390: /* Line 1464 of yacc.c */ #line 9168 "gram.y" { LockingClause *n = makeNode(LockingClause); n->lockedRels = (yyvsp[(3) - (4)].list); n->forUpdate = FALSE; n->noWait = (yyvsp[(4) - (4)].boolean); (yyval.node) = (Node *) n; } break; case 1391: /* Line 1464 of yacc.c */ #line 9178 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 1392: /* Line 1464 of yacc.c */ #line 9179 "gram.y" { (yyval.list) = NIL; } break; case 1393: /* Line 1464 of yacc.c */ #line 9185 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[(2) - (2)].list)); (yyval.node) = (Node *) n; } break; case 1394: /* Line 1464 of yacc.c */ #line 9191 "gram.y" { SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (3)].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[(3) - (3)].list)); (yyval.node) = (Node *) n; } break; case 1395: /* Line 1464 of yacc.c */ #line 9208 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 1396: /* Line 1464 of yacc.c */ #line 9209 "gram.y" { (yyval.list) = NIL; } break; case 1397: /* Line 1464 of yacc.c */ #line 9213 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1398: /* Line 1464 of yacc.c */ #line 9214 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1399: /* Line 1464 of yacc.c */ #line 9225 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].range); } break; case 1400: /* Line 1464 of yacc.c */ #line 9229 "gram.y" { (yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) (yyvsp[(1) - (2)].range); } break; case 1401: /* Line 1464 of yacc.c */ #line 9234 "gram.y" { RangeFunction *n = makeNode(RangeFunction); n->funccallnode = (yyvsp[(1) - (1)].node); n->coldeflist = NIL; (yyval.node) = (Node *) n; } break; case 1402: /* Line 1464 of yacc.c */ #line 9241 "gram.y" { RangeFunction *n = makeNode(RangeFunction); n->funccallnode = (yyvsp[(1) - (2)].node); n->alias = (yyvsp[(2) - (2)].alias); n->coldeflist = NIL; (yyval.node) = (Node *) n; } break; case 1403: /* Line 1464 of yacc.c */ #line 9249 "gram.y" { RangeFunction *n = makeNode(RangeFunction); n->funccallnode = (yyvsp[(1) - (5)].node); n->coldeflist = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; } break; case 1404: /* Line 1464 of yacc.c */ #line 9256 "gram.y" { RangeFunction *n = makeNode(RangeFunction); Alias *a = makeNode(Alias); n->funccallnode = (yyvsp[(1) - (6)].node); a->aliasname = (yyvsp[(3) - (6)].str); n->alias = a; n->coldeflist = (yyvsp[(5) - (6)].list); (yyval.node) = (Node *) n; } break; case 1405: /* Line 1464 of yacc.c */ #line 9266 "gram.y" { RangeFunction *n = makeNode(RangeFunction); Alias *a = makeNode(Alias); n->funccallnode = (yyvsp[(1) - (5)].node); a->aliasname = (yyvsp[(2) - (5)].str); n->alias = a; n->coldeflist = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; } break; case 1406: /* Line 1464 of yacc.c */ #line 9276 "gram.y" { /* * The SQL spec does not permit a subselect * () without an alias clause, * so we don't either. This avoids the problem * of needing to invent a unique refname for it. * That could be surmounted if there's sufficient * popular demand, but for now let's just implement * the spec and see if anyone complains. * However, it does seem like a good idea to emit * an error message that's better than "syntax error". */ if (IsA((yyvsp[(1) - (1)].node), SelectStmt) && ((SelectStmt *) (yyvsp[(1) - (1)].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[(1) - (1)])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[(1) - (1)])))); (yyval.node) = NULL; } break; case 1407: /* Line 1464 of yacc.c */ #line 9304 "gram.y" { RangeSubselect *n = makeNode(RangeSubselect); n->subquery = (yyvsp[(1) - (2)].node); n->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) n; } break; case 1408: /* Line 1464 of yacc.c */ #line 9311 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr); } break; case 1409: /* Line 1464 of yacc.c */ #line 9315 "gram.y" { (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); (yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr); } break; case 1410: /* Line 1464 of yacc.c */ #line 9341 "gram.y" { (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); } break; case 1411: /* Line 1464 of yacc.c */ #line 9345 "gram.y" { /* CROSS JOIN is same as unqualified inner join */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = FALSE; n->larg = (yyvsp[(1) - (4)].node); n->rarg = (yyvsp[(4) - (4)].node); n->usingClause = NIL; n->quals = NULL; (yyval.jexpr) = n; } break; case 1412: /* Line 1464 of yacc.c */ #line 9357 "gram.y" { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[(2) - (5)].jtype); n->isNatural = FALSE; n->larg = (yyvsp[(1) - (5)].node); n->rarg = (yyvsp[(4) - (5)].node); if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), List)) n->usingClause = (List *) (yyvsp[(5) - (5)].node); /* USING clause */ else n->quals = (yyvsp[(5) - (5)].node); /* ON clause */ (yyval.jexpr) = n; } break; case 1413: /* Line 1464 of yacc.c */ #line 9370 "gram.y" { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = FALSE; n->larg = (yyvsp[(1) - (4)].node); n->rarg = (yyvsp[(3) - (4)].node); if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), List)) n->usingClause = (List *) (yyvsp[(4) - (4)].node); /* USING clause */ else n->quals = (yyvsp[(4) - (4)].node); /* ON clause */ (yyval.jexpr) = n; } break; case 1414: /* Line 1464 of yacc.c */ #line 9384 "gram.y" { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[(3) - (5)].jtype); n->isNatural = TRUE; 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 */ (yyval.jexpr) = n; } break; case 1415: /* Line 1464 of yacc.c */ #line 9395 "gram.y" { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = TRUE; 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 */ (yyval.jexpr) = n; } break; case 1416: /* Line 1464 of yacc.c */ #line 9410 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); } break; case 1417: /* Line 1464 of yacc.c */ #line 9416 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); } break; case 1418: /* Line 1464 of yacc.c */ #line 9421 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); } break; case 1419: /* Line 1464 of yacc.c */ #line 9427 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); } break; case 1420: /* Line 1464 of yacc.c */ #line 9433 "gram.y" { (yyval.jtype) = JOIN_FULL; } break; case 1421: /* Line 1464 of yacc.c */ #line 9434 "gram.y" { (yyval.jtype) = JOIN_LEFT; } break; case 1422: /* Line 1464 of yacc.c */ #line 9435 "gram.y" { (yyval.jtype) = JOIN_RIGHT; } break; case 1423: /* Line 1464 of yacc.c */ #line 9436 "gram.y" { (yyval.jtype) = JOIN_INNER; } break; case 1424: /* Line 1464 of yacc.c */ #line 9440 "gram.y" { (yyval.node) = NULL; } break; case 1425: /* Line 1464 of yacc.c */ #line 9441 "gram.y" { (yyval.node) = NULL; } break; case 1426: /* Line 1464 of yacc.c */ #line 9453 "gram.y" { (yyval.node) = (Node *) (yyvsp[(3) - (4)].list); } break; case 1427: /* Line 1464 of yacc.c */ #line 9454 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1428: /* Line 1464 of yacc.c */ #line 9460 "gram.y" { /* default inheritance */ (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->inhOpt = INH_DEFAULT; (yyval.range)->alias = NULL; } break; case 1429: /* Line 1464 of yacc.c */ #line 9467 "gram.y" { /* inheritance query */ (yyval.range) = (yyvsp[(1) - (2)].range); (yyval.range)->inhOpt = INH_YES; (yyval.range)->alias = NULL; } break; case 1430: /* Line 1464 of yacc.c */ #line 9474 "gram.y" { /* no inheritance */ (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->inhOpt = INH_NO; (yyval.range)->alias = NULL; } break; case 1431: /* Line 1464 of yacc.c */ #line 9481 "gram.y" { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[(3) - (4)].range); (yyval.range)->inhOpt = INH_NO; (yyval.range)->alias = NULL; } break; case 1432: /* Line 1464 of yacc.c */ #line 9491 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); } break; case 1433: /* Line 1464 of yacc.c */ #line 9492 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); } break; case 1434: /* Line 1464 of yacc.c */ #line 9506 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); } break; case 1435: /* Line 1464 of yacc.c */ #line 9510 "gram.y" { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[(2) - (2)].str); (yyvsp[(1) - (2)].range)->alias = alias; (yyval.range) = (yyvsp[(1) - (2)].range); } break; case 1436: /* Line 1464 of yacc.c */ #line 9517 "gram.y" { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[(3) - (3)].str); (yyvsp[(1) - (3)].range)->alias = alias; (yyval.range) = (yyvsp[(1) - (3)].range); } break; case 1437: /* Line 1464 of yacc.c */ #line 9526 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1438: /* Line 1464 of yacc.c */ #line 9531 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1439: /* Line 1464 of yacc.c */ #line 9532 "gram.y" { (yyval.node) = NULL; } break; case 1440: /* Line 1464 of yacc.c */ #line 9537 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1441: /* Line 1464 of yacc.c */ #line 9539 "gram.y" { CurrentOfExpr *n = makeNode(CurrentOfExpr); /* cvarno is filled in by parse analysis */ n->cursor_name = (yyvsp[(4) - (4)].str); n->cursor_param = 0; (yyval.node) = (Node *) n; } break; case 1442: /* Line 1464 of yacc.c */ #line 9546 "gram.y" { (yyval.node) = NULL; } break; case 1443: /* Line 1464 of yacc.c */ #line 9551 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1444: /* Line 1464 of yacc.c */ #line 9552 "gram.y" { (yyval.list) = NIL; } break; case 1445: /* Line 1464 of yacc.c */ #line 9557 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1446: /* Line 1464 of yacc.c */ #line 9561 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1447: /* Line 1464 of yacc.c */ #line 9567 "gram.y" { ColumnDef *n = makeNode(ColumnDef); 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 = (CollateClause *) (yyvsp[(3) - (3)].node); n->collOid = InvalidOid; n->constraints = NIL; (yyval.node) = (Node *)n; } break; case 1448: /* Line 1464 of yacc.c */ #line 9596 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); } break; case 1449: /* Line 1464 of yacc.c */ #line 9601 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); (yyval.typnam)->setof = TRUE; } break; case 1450: /* Line 1464 of yacc.c */ #line 9608 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (5)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); } break; case 1451: /* Line 1464 of yacc.c */ #line 9613 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (6)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); (yyval.typnam)->setof = TRUE; } break; case 1452: /* Line 1464 of yacc.c */ #line 9619 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); } break; case 1453: /* Line 1464 of yacc.c */ #line 9624 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = TRUE; } break; case 1454: /* Line 1464 of yacc.c */ #line 9633 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); } break; case 1455: /* Line 1464 of yacc.c */ #line 9635 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); } break; case 1456: /* Line 1464 of yacc.c */ #line 9637 "gram.y" { (yyval.list) = NIL; } break; case 1457: /* Line 1464 of yacc.c */ #line 9641 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1458: /* Line 1464 of yacc.c */ #line 9642 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1459: /* Line 1464 of yacc.c */ #line 9643 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1460: /* Line 1464 of yacc.c */ #line 9644 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1461: /* Line 1464 of yacc.c */ #line 9645 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1462: /* Line 1464 of yacc.c */ #line 9647 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); } break; case 1463: /* Line 1464 of yacc.c */ #line 9652 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (5)].typnam); if ((yyvsp[(5) - (5)].list) != NIL) { if (list_length((yyvsp[(5) - (5)].list)) != 1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("interval precision specified twice"), parser_errposition((yylsp[(1) - (5)])))); (yyval.typnam)->typmods = lappend((yyvsp[(5) - (5)].list), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); } else (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); } break; case 1464: /* Line 1464 of yacc.c */ #line 9681 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1465: /* Line 1464 of yacc.c */ #line 9682 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1466: /* Line 1464 of yacc.c */ #line 9683 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1467: /* Line 1464 of yacc.c */ #line 9684 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1468: /* Line 1464 of yacc.c */ #line 9696 "gram.y" { (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1469: /* Line 1464 of yacc.c */ #line 9702 "gram.y" { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list))); (yyval.typnam)->typmods = (yyvsp[(3) - (3)].list); (yyval.typnam)->location = (yylsp[(1) - (3)]); } break; case 1470: /* Line 1464 of yacc.c */ #line 9709 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 1471: /* Line 1464 of yacc.c */ #line 9710 "gram.y" { (yyval.list) = NIL; } break; case 1472: /* Line 1464 of yacc.c */ #line 9717 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1473: /* Line 1464 of yacc.c */ #line 9722 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1474: /* Line 1464 of yacc.c */ #line 9727 "gram.y" { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1475: /* Line 1464 of yacc.c */ #line 9732 "gram.y" { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1476: /* Line 1464 of yacc.c */ #line 9737 "gram.y" { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1477: /* Line 1464 of yacc.c */ #line 9742 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (2)].typnam); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1478: /* Line 1464 of yacc.c */ #line 9747 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1479: /* Line 1464 of yacc.c */ #line 9752 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1480: /* Line 1464 of yacc.c */ #line 9758 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1481: /* Line 1464 of yacc.c */ #line 9764 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1482: /* Line 1464 of yacc.c */ #line 9770 "gram.y" { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1483: /* Line 1464 of yacc.c */ #line 9777 "gram.y" { /* * Check FLOAT() precision limits assuming IEEE floating * types - thomas 1997-09-18 */ if ((yyvsp[(2) - (3)].ival) < 1) ereport(ERROR, (errcode(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(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be less than 54 bits"), parser_errposition((yylsp[(2) - (3)])))); } break; case 1484: /* Line 1464 of yacc.c */ #line 9798 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); } break; case 1485: /* Line 1464 of yacc.c */ #line 9808 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1486: /* Line 1464 of yacc.c */ #line 9812 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1487: /* Line 1464 of yacc.c */ #line 9820 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1488: /* Line 1464 of yacc.c */ #line 9824 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); (yyval.typnam)->typmods = NIL; } break; case 1489: /* Line 1464 of yacc.c */ #line 9832 "gram.y" { 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 1490: /* Line 1464 of yacc.c */ #line 9844 "gram.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 1491: /* Line 1464 of yacc.c */ #line 9865 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1492: /* Line 1464 of yacc.c */ #line 9869 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1493: /* Line 1464 of yacc.c */ #line 9875 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); } break; case 1494: /* Line 1464 of yacc.c */ #line 9879 "gram.y" { /* Length was not specified so allow to be unrestricted. * This handles problems with fixed-length (char) 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 1495: /* Line 1464 of yacc.c */ #line 9892 "gram.y" { if (((yyvsp[(5) - (5)].str) != NULL) && (strcmp((yyvsp[(5) - (5)].str), "sql_text") != 0)) { char *type; type = palloc(strlen((yyvsp[(1) - (5)].str)) + 1 + strlen((yyvsp[(5) - (5)].str)) + 1); strcpy(type, (yyvsp[(1) - (5)].str)); strcat(type, "_"); strcat(type, (yyvsp[(5) - (5)].str)); (yyvsp[(1) - (5)].str) = type; } (yyval.typnam) = SystemTypeName((yyvsp[(1) - (5)].str)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); (yyval.typnam)->location = (yylsp[(1) - (5)]); } break; case 1496: /* Line 1464 of yacc.c */ #line 9911 "gram.y" { if (((yyvsp[(2) - (2)].str) != NULL) && (strcmp((yyvsp[(2) - (2)].str), "sql_text") != 0)) { char *type; type = palloc(strlen((yyvsp[(1) - (2)].str)) + 1 + strlen((yyvsp[(2) - (2)].str)) + 1); strcpy(type, (yyvsp[(1) - (2)].str)); strcat(type, "_"); strcat(type, (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].str) = type; } (yyval.typnam) = SystemTypeName((yyvsp[(1) - (2)].str)); /* char defaults to char(1), varchar to no limit */ if (strcmp((yyvsp[(1) - (2)].str), "char") == 0) (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1497: /* Line 1464 of yacc.c */ #line 9934 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "char"; } break; case 1498: /* Line 1464 of yacc.c */ #line 9936 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "char"; } break; case 1499: /* Line 1464 of yacc.c */ #line 9938 "gram.y" { (yyval.str) = "varchar"; } break; case 1500: /* Line 1464 of yacc.c */ #line 9940 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "char"; } break; case 1501: /* Line 1464 of yacc.c */ #line 9942 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "char"; } break; case 1502: /* Line 1464 of yacc.c */ #line 9944 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "char"; } break; case 1503: /* Line 1464 of yacc.c */ #line 9948 "gram.y" { (yyval.boolean) = TRUE; } break; case 1504: /* Line 1464 of yacc.c */ #line 9949 "gram.y" { (yyval.boolean) = FALSE; } break; case 1505: /* Line 1464 of yacc.c */ #line 9953 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 1506: /* Line 1464 of yacc.c */ #line 9954 "gram.y" { (yyval.str) = NULL; } break; case 1507: /* Line 1464 of yacc.c */ #line 9962 "gram.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 1508: /* Line 1464 of yacc.c */ #line 9971 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1509: /* Line 1464 of yacc.c */ #line 9979 "gram.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 1510: /* Line 1464 of yacc.c */ #line 9988 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[(1) - (2)]); } break; case 1511: /* Line 1464 of yacc.c */ #line 9999 "gram.y" { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[(1) - (1)]); } break; case 1512: /* Line 1464 of yacc.c */ #line 10006 "gram.y" { (yyval.boolean) = TRUE; } break; case 1513: /* Line 1464 of yacc.c */ #line 10007 "gram.y" { (yyval.boolean) = FALSE; } break; case 1514: /* Line 1464 of yacc.c */ #line 10008 "gram.y" { (yyval.boolean) = FALSE; } break; case 1515: /* Line 1464 of yacc.c */ #line 10013 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); } break; case 1516: /* Line 1464 of yacc.c */ #line 10015 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); } break; case 1517: /* Line 1464 of yacc.c */ #line 10017 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); } break; case 1518: /* Line 1464 of yacc.c */ #line 10019 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); } break; case 1519: /* Line 1464 of yacc.c */ #line 10021 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); } break; case 1520: /* Line 1464 of yacc.c */ #line 10023 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1521: /* Line 1464 of yacc.c */ #line 10025 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); } break; case 1522: /* Line 1464 of yacc.c */ #line 10030 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); } break; case 1523: /* Line 1464 of yacc.c */ #line 10035 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); } break; case 1524: /* Line 1464 of yacc.c */ #line 10041 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); } break; case 1525: /* Line 1464 of yacc.c */ #line 10049 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); } break; case 1526: /* Line 1464 of yacc.c */ #line 10054 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); } break; case 1527: /* Line 1464 of yacc.c */ #line 10061 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); } break; case 1528: /* Line 1464 of yacc.c */ #line 10067 "gram.y" { (yyval.list) = NIL; } break; case 1529: /* Line 1464 of yacc.c */ #line 10072 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); } break; case 1530: /* Line 1464 of yacc.c */ #line 10076 "gram.y" { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])), makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); } break; case 1531: /* Line 1464 of yacc.c */ #line 10105 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1532: /* Line 1464 of yacc.c */ #line 10107 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); } break; case 1533: /* Line 1464 of yacc.c */ #line 10109 "gram.y" { CollateClause *n = makeNode(CollateClause); n->arg = (yyvsp[(1) - (3)].node); n->collname = (yyvsp[(3) - (3)].list); n->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) n; } break; case 1534: /* Line 1464 of yacc.c */ #line 10117 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("timezone"); n->args = list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (5)]); (yyval.node) = (Node *) n; } break; case 1535: /* Line 1464 of yacc.c */ #line 10139 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1536: /* Line 1464 of yacc.c */ #line 10141 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1537: /* Line 1464 of yacc.c */ #line 10143 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1538: /* Line 1464 of yacc.c */ #line 10145 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1539: /* Line 1464 of yacc.c */ #line 10147 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1540: /* Line 1464 of yacc.c */ #line 10149 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1541: /* Line 1464 of yacc.c */ #line 10151 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1542: /* Line 1464 of yacc.c */ #line 10153 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1543: /* Line 1464 of yacc.c */ #line 10155 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1544: /* Line 1464 of yacc.c */ #line 10157 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1545: /* Line 1464 of yacc.c */ #line 10159 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1546: /* Line 1464 of yacc.c */ #line 10162 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1547: /* Line 1464 of yacc.c */ #line 10164 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1548: /* Line 1464 of yacc.c */ #line 10166 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); } break; case 1549: /* Line 1464 of yacc.c */ #line 10169 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1550: /* Line 1464 of yacc.c */ #line 10171 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1551: /* Line 1464 of yacc.c */ #line 10173 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1552: /* Line 1464 of yacc.c */ #line 10176 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1553: /* Line 1464 of yacc.c */ #line 10178 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("like_escape"); n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (5)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); } break; case 1554: /* Line 1464 of yacc.c */ #line 10191 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); } break; case 1555: /* Line 1464 of yacc.c */ #line 10193 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("like_escape"); n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (6)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); } break; case 1556: /* Line 1464 of yacc.c */ #line 10206 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1557: /* Line 1464 of yacc.c */ #line 10208 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("like_escape"); n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (5)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); } break; case 1558: /* Line 1464 of yacc.c */ #line 10221 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); } break; case 1559: /* Line 1464 of yacc.c */ #line 10223 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("like_escape"); n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (6)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); } break; case 1560: /* Line 1464 of yacc.c */ #line 10237 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("similar_escape"); n->args = list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (4)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", (yyvsp[(1) - (4)].node), (Node *) n, (yylsp[(2) - (4)])); } break; case 1561: /* Line 1464 of yacc.c */ #line 10250 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("similar_escape"); n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (6)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); } break; case 1562: /* Line 1464 of yacc.c */ #line 10263 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("similar_escape"); n->args = list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (5)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); } break; case 1563: /* Line 1464 of yacc.c */ #line 10276 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("similar_escape"); n->args = list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(2) - (7)]); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", (yyvsp[(1) - (7)].node), (Node *) n, (yylsp[(2) - (7)])); } break; case 1564: /* Line 1464 of yacc.c */ #line 10299 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (3)].node); n->nulltesttype = IS_NULL; (yyval.node) = (Node *)n; } break; case 1565: /* Line 1464 of yacc.c */ #line 10306 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (2)].node); n->nulltesttype = IS_NULL; (yyval.node) = (Node *)n; } break; case 1566: /* Line 1464 of yacc.c */ #line 10313 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (4)].node); n->nulltesttype = IS_NOT_NULL; (yyval.node) = (Node *)n; } break; case 1567: /* Line 1464 of yacc.c */ #line 10320 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (2)].node); n->nulltesttype = IS_NOT_NULL; (yyval.node) = (Node *)n; } break; case 1568: /* Line 1464 of yacc.c */ #line 10327 "gram.y" { (yyval.node) = (Node *)makeOverlaps((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list), (yylsp[(2) - (3)]), yyscanner); } break; case 1569: /* Line 1464 of yacc.c */ #line 10331 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (3)].node); b->booltesttype = IS_TRUE; (yyval.node) = (Node *)b; } break; case 1570: /* Line 1464 of yacc.c */ #line 10338 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (4)].node); b->booltesttype = IS_NOT_TRUE; (yyval.node) = (Node *)b; } break; case 1571: /* Line 1464 of yacc.c */ #line 10345 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (3)].node); b->booltesttype = IS_FALSE; (yyval.node) = (Node *)b; } break; case 1572: /* Line 1464 of yacc.c */ #line 10352 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (4)].node); b->booltesttype = IS_NOT_FALSE; (yyval.node) = (Node *)b; } break; case 1573: /* Line 1464 of yacc.c */ #line 10359 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (3)].node); b->booltesttype = IS_UNKNOWN; (yyval.node) = (Node *)b; } break; case 1574: /* Line 1464 of yacc.c */ #line 10366 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (4)].node); b->booltesttype = IS_NOT_UNKNOWN; (yyval.node) = (Node *)b; } break; case 1575: /* Line 1464 of yacc.c */ #line 10373 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); } break; case 1576: /* Line 1464 of yacc.c */ #line 10377 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])); } break; case 1577: /* Line 1464 of yacc.c */ #line 10385 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); } break; case 1578: /* Line 1464 of yacc.c */ #line 10389 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); } break; case 1579: /* Line 1464 of yacc.c */ #line 10399 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL, (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])), (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])); } break; case 1580: /* Line 1464 of yacc.c */ #line 10406 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL, (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])), (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])), (yylsp[(2) - (7)])); } break; case 1581: /* Line 1464 of yacc.c */ #line 10413 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL, (Node *) makeA_Expr(AEXPR_AND, NIL, (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])), (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])), (Node *) makeA_Expr(AEXPR_AND, NIL, (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])); } break; case 1582: /* Line 1464 of yacc.c */ #line 10426 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL, (Node *) makeA_Expr(AEXPR_OR, NIL, (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])), (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])), (yylsp[(2) - (7)])), (Node *) makeA_Expr(AEXPR_OR, NIL, (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])), (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])), (yylsp[(2) - (7)])), (yylsp[(2) - (7)])); } break; case 1583: /* Line 1464 of yacc.c */ #line 10439 "gram.y" { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[(3) - (3)].node), SubLink)) { /* generate foo = ANY (subquery) */ SubLink *n = (SubLink *) (yyvsp[(3) - (3)].node); n->subLinkType = ANY_SUBLINK; n->testexpr = (yyvsp[(1) - (3)].node); n->operName = list_make1(makeString("=")); n->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *)n; } else { /* generate scalar IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } } break; case 1584: /* Line 1464 of yacc.c */ #line 10458 "gram.y" { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[(4) - (4)].node), SubLink)) { /* generate NOT (foo = ANY (subquery)) */ /* Make an = ANY node */ SubLink *n = (SubLink *) (yyvsp[(4) - (4)].node); n->subLinkType = ANY_SUBLINK; n->testexpr = (yyvsp[(1) - (4)].node); n->operName = list_make1(makeString("=")); n->location = (yylsp[(3) - (4)]); /* Stick a NOT on top */ (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n, (yylsp[(2) - (4)])); } else { /* generate scalar NOT IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); } } break; case 1585: /* Line 1464 of yacc.c */ #line 10479 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = (yyvsp[(3) - (4)].ival); 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) = (Node *)n; } break; case 1586: /* Line 1464 of yacc.c */ #line 10489 "gram.y" { if ((yyvsp[(3) - (6)].ival) == ANY_SUBLINK) (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); else (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); } break; case 1587: /* Line 1464 of yacc.c */ #line 10496 "gram.y" { /* Not sure how to get rid of the parentheses * but there are lots of shift/reduce errors without them. * * Should be able to implement this by plopping the entire * select into a node, then transforming the target expressions * from whatever they are into count(*), and testing the * entire result equal to one. * But, will probably implement a separate node in the executor. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNIQUE predicate is not yet implemented"), parser_errposition((yylsp[(1) - (2)])))); } break; case 1588: /* Line 1464 of yacc.c */ #line 10512 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); } break; case 1589: /* Line 1464 of yacc.c */ #line 10517 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); } break; case 1590: /* Line 1464 of yacc.c */ #line 10535 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1591: /* Line 1464 of yacc.c */ #line 10537 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); } break; case 1592: /* Line 1464 of yacc.c */ #line 10539 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1593: /* Line 1464 of yacc.c */ #line 10541 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1594: /* Line 1464 of yacc.c */ #line 10543 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1595: /* Line 1464 of yacc.c */ #line 10545 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1596: /* Line 1464 of yacc.c */ #line 10547 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1597: /* Line 1464 of yacc.c */ #line 10549 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1598: /* Line 1464 of yacc.c */ #line 10551 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1599: /* Line 1464 of yacc.c */ #line 10553 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1600: /* Line 1464 of yacc.c */ #line 10555 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1601: /* Line 1464 of yacc.c */ #line 10557 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1602: /* Line 1464 of yacc.c */ #line 10559 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1603: /* Line 1464 of yacc.c */ #line 10561 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } break; case 1604: /* Line 1464 of yacc.c */ #line 10563 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); } break; case 1605: /* Line 1464 of yacc.c */ #line 10565 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); } break; case 1606: /* Line 1464 of yacc.c */ #line 10567 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); } break; case 1607: /* Line 1464 of yacc.c */ #line 10571 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])); } break; case 1608: /* Line 1464 of yacc.c */ #line 10576 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); } break; case 1609: /* Line 1464 of yacc.c */ #line 10580 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); } break; case 1610: /* Line 1464 of yacc.c */ #line 10584 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); } break; case 1611: /* Line 1464 of yacc.c */ #line 10589 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); } break; case 1612: /* Line 1464 of yacc.c */ #line 10605 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1613: /* Line 1464 of yacc.c */ #line 10606 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1614: /* Line 1464 of yacc.c */ #line 10608 "gram.y" { ParamRef *p = makeNode(ParamRef); p->number = (yyvsp[(1) - (2)].ival); p->location = (yylsp[(1) - (2)]); if ((yyvsp[(2) - (2)].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (Node *) p; n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.node) = (Node *) n; } else (yyval.node) = (Node *) p; } break; case 1615: /* Line 1464 of yacc.c */ #line 10623 "gram.y" { if ((yyvsp[(4) - (4)].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (yyvsp[(2) - (4)].node); n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner); (yyval.node) = (Node *)n; } else (yyval.node) = (yyvsp[(2) - (4)].node); } break; case 1616: /* Line 1464 of yacc.c */ #line 10635 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1617: /* Line 1464 of yacc.c */ #line 10637 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1618: /* Line 1464 of yacc.c */ #line 10639 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = EXPR_SUBLINK; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(1) - (1)].node); n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1619: /* Line 1464 of yacc.c */ #line 10649 "gram.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. */ SubLink *n = makeNode(SubLink); A_Indirection *a = makeNode(A_Indirection); n->subLinkType = EXPR_SUBLINK; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(1) - (2)].node); n->location = (yylsp[(1) - (2)]); a->arg = (Node *)n; a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.node) = (Node *)a; } break; case 1620: /* Line 1464 of yacc.c */ #line 10672 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = EXISTS_SUBLINK; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(2) - (2)].node); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 1621: /* Line 1464 of yacc.c */ #line 10682 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = ARRAY_SUBLINK; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(2) - (2)].node); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 1622: /* Line 1464 of yacc.c */ #line 10692 "gram.y" { A_ArrayExpr *n = (A_ArrayExpr *) (yyvsp[(2) - (2)].node); Assert(IsA(n, A_ArrayExpr)); /* point outermost A_ArrayExpr to the ARRAY keyword */ n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; } break; case 1623: /* Line 1464 of yacc.c */ #line 10700 "gram.y" { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[(1) - (1)].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)r; } break; case 1624: /* Line 1464 of yacc.c */ #line 10719 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (4)].list); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = (yyvsp[(4) - (4)].windef); n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; } break; case 1625: /* Line 1464 of yacc.c */ #line 10732 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (5)].list); n->args = (yyvsp[(3) - (5)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = (yyvsp[(5) - (5)].windef); n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1626: /* Line 1464 of yacc.c */ #line 10745 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (6)].list); n->args = list_make1((yyvsp[(4) - (6)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = TRUE; n->over = (yyvsp[(6) - (6)].windef); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *)n; } break; case 1627: /* Line 1464 of yacc.c */ #line 10758 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (8)].list); n->args = lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = TRUE; n->over = (yyvsp[(8) - (8)].windef); n->location = (yylsp[(1) - (8)]); (yyval.node) = (Node *)n; } break; case 1628: /* Line 1464 of yacc.c */ #line 10771 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (6)].list); n->args = (yyvsp[(3) - (6)].list); n->agg_order = (yyvsp[(4) - (6)].list); n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = (yyvsp[(6) - (6)].windef); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *)n; } break; case 1629: /* Line 1464 of yacc.c */ #line 10784 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (7)].list); n->args = (yyvsp[(4) - (7)].list); n->agg_order = (yyvsp[(5) - (7)].list); n->agg_star = FALSE; n->agg_distinct = FALSE; /* Ideally we'd mark the FuncCall node to indicate * "must be an aggregate", but there's no provision * for that in FuncCall at the moment. */ n->func_variadic = FALSE; n->over = (yyvsp[(7) - (7)].windef); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *)n; } break; case 1630: /* Line 1464 of yacc.c */ #line 10801 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (7)].list); n->args = (yyvsp[(4) - (7)].list); n->agg_order = (yyvsp[(5) - (7)].list); n->agg_star = FALSE; n->agg_distinct = TRUE; n->func_variadic = FALSE; n->over = (yyvsp[(7) - (7)].windef); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *)n; } break; case 1631: /* Line 1464 of yacc.c */ #line 10814 "gram.y" { /* * We consider AGGREGATE(*) to invoke a parameterless * aggregate. This does the right thing for COUNT(*), * and there are no other aggregates in SQL92 that accept * '*' as parameter. * * The FuncCall node is also marked agg_star = true, * so that later processing can detect what the argument * really was. */ FuncCall *n = makeNode(FuncCall); n->funcname = (yyvsp[(1) - (5)].list); n->args = NIL; n->agg_order = NIL; n->agg_star = TRUE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = (yyvsp[(5) - (5)].windef); n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1632: /* Line 1464 of yacc.c */ #line 10837 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("pg_collation_for"); n->args = list_make1((yyvsp[(4) - (5)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1633: /* Line 1464 of yacc.c */ #line 10850 "gram.y" { /* * Translate as "'now'::text::date". * * We cannot use "'now'::date" because coerce_type() will * immediately reduce that to a constant representing * today's date. We need to delay the conversion until * runtime, else the wrong things will happen when * CURRENT_DATE is used in a column default value or rule. * * This could be simplified if we had a way to generate * an expression tree representing runtime application * of type-input conversion functions. (As of PG 7.3 * that is actually possible, but not clear that we want * to rely on it.) */ Node *n; n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text")); (yyval.node) = makeTypeCast(n, SystemTypeName("date"), -1); } break; case 1634: /* Line 1464 of yacc.c */ #line 10871 "gram.y" { /* * Translate as "'now'::text::timetz". * See comments for CURRENT_DATE. */ Node *n; n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text")); (yyval.node) = makeTypeCast(n, SystemTypeName("timetz"), -1); } break; case 1635: /* Line 1464 of yacc.c */ #line 10881 "gram.y" { /* * Translate as "'now'::text::timetz(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text")); d = SystemTypeName("timetz"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast(n, d, -1); } break; case 1636: /* Line 1464 of yacc.c */ #line 10894 "gram.y" { /* * Translate as "now()", since we have a function that * does exactly what is needed. */ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("now"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1637: /* Line 1464 of yacc.c */ #line 10911 "gram.y" { /* * Translate as "'now'::text::timestamptz(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text")); d = SystemTypeName("timestamptz"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast(n, d, -1); } break; case 1638: /* Line 1464 of yacc.c */ #line 10924 "gram.y" { /* * Translate as "'now'::text::time". * See comments for CURRENT_DATE. */ Node *n; n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text")); (yyval.node) = makeTypeCast((Node *)n, SystemTypeName("time"), -1); } break; case 1639: /* Line 1464 of yacc.c */ #line 10934 "gram.y" { /* * Translate as "'now'::text::time(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text")); d = SystemTypeName("time"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast((Node *)n, d, -1); } break; case 1640: /* Line 1464 of yacc.c */ #line 10947 "gram.y" { /* * Translate as "'now'::text::timestamp". * See comments for CURRENT_DATE. */ Node *n; n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text")); (yyval.node) = makeTypeCast(n, SystemTypeName("timestamp"), -1); } break; case 1641: /* Line 1464 of yacc.c */ #line 10957 "gram.y" { /* * Translate as "'now'::text::timestamp(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text")); d = SystemTypeName("timestamp"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast(n, d, -1); } break; case 1642: /* Line 1464 of yacc.c */ #line 10970 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("current_user"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1643: /* Line 1464 of yacc.c */ #line 10983 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("current_user"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1644: /* Line 1464 of yacc.c */ #line 10996 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("session_user"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1645: /* Line 1464 of yacc.c */ #line 11009 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("current_user"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1646: /* Line 1464 of yacc.c */ #line 11022 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("current_database"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1647: /* Line 1464 of yacc.c */ #line 11035 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("current_schema"); n->args = NIL; n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; } break; case 1648: /* Line 1464 of yacc.c */ #line 11048 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); } break; case 1649: /* Line 1464 of yacc.c */ #line 11050 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("date_part"); n->args = (yyvsp[(3) - (4)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; } break; case 1650: /* Line 1464 of yacc.c */ #line 11063 "gram.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) */ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("overlay"); n->args = (yyvsp[(3) - (4)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; } break; case 1651: /* Line 1464 of yacc.c */ #line 11081 "gram.y" { /* position(A in B) is converted to position(B, A) */ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("position"); n->args = (yyvsp[(3) - (4)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; } break; case 1652: /* Line 1464 of yacc.c */ #line 11095 "gram.y" { /* substring(A from B for C) is converted to * substring(A, B, C) - thomas 2000-11-28 */ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("substring"); n->args = (yyvsp[(3) - (4)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; } break; case 1653: /* Line 1464 of yacc.c */ #line 11111 "gram.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. */ FuncCall *n = makeNode(FuncCall); /* Convert SystemTypeName() to SystemFuncName() even though * at the moment they result in the same thing. */ n->funcname = SystemFuncName(((Value *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str); n->args = list_make1((yyvsp[(3) - (6)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *)n; } break; case 1654: /* Line 1464 of yacc.c */ #line 11133 "gram.y" { /* various trim expressions are defined in SQL92 * - thomas 1997-07-19 */ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("btrim"); n->args = (yyvsp[(4) - (5)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1655: /* Line 1464 of yacc.c */ #line 11149 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("ltrim"); n->args = (yyvsp[(4) - (5)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1656: /* Line 1464 of yacc.c */ #line 11162 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("rtrim"); n->args = (yyvsp[(4) - (5)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1657: /* Line 1464 of yacc.c */ #line 11175 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("btrim"); n->args = (yyvsp[(3) - (4)].list); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; } break; case 1658: /* Line 1464 of yacc.c */ #line 11188 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); } break; case 1659: /* Line 1464 of yacc.c */ #line 11192 "gram.y" { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[(3) - (4)].list); c->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)c; } break; case 1660: /* Line 1464 of yacc.c */ #line 11199 "gram.y" { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[(3) - (4)].list); v->op = IS_GREATEST; v->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)v; } break; case 1661: /* Line 1464 of yacc.c */ #line 11207 "gram.y" { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[(3) - (4)].list); v->op = IS_LEAST; v->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)v; } break; case 1662: /* Line 1464 of yacc.c */ #line 11215 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); } break; case 1663: /* Line 1464 of yacc.c */ #line 11219 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)])); } break; case 1664: /* Line 1464 of yacc.c */ #line 11223 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)])); } break; case 1665: /* Line 1464 of yacc.c */ #line 11227 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)])); } break; case 1666: /* Line 1464 of yacc.c */ #line 11231 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)])); } break; case 1667: /* Line 1464 of yacc.c */ #line 11235 "gram.y" { /* xmlexists(A PASSING [BY REF] B [BY REF]) is * converted to xmlexists(A, B)*/ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("xmlexists"); n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node)); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)n; } break; case 1668: /* Line 1464 of yacc.c */ #line 11250 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)])); } break; case 1669: /* Line 1464 of yacc.c */ #line 11254 "gram.y" { XmlExpr *x = (XmlExpr *) makeXmlExpr(IS_XMLPARSE, NULL, NIL, list_make2((yyvsp[(4) - (6)].node), makeBoolAConst((yyvsp[(5) - (6)].boolean), -1)), (yylsp[(1) - (6)])); x->xmloption = (yyvsp[(3) - (6)].ival); (yyval.node) = (Node *)x; } break; case 1670: /* Line 1464 of yacc.c */ #line 11263 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)])); } break; case 1671: /* Line 1464 of yacc.c */ #line 11267 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); } break; case 1672: /* Line 1464 of yacc.c */ #line 11271 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, list_make3((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); } break; case 1673: /* Line 1464 of yacc.c */ #line 11276 "gram.y" { XmlSerialize *n = makeNode(XmlSerialize); n->xmloption = (yyvsp[(3) - (7)].ival); n->expr = (yyvsp[(4) - (7)].node); n->typeName = (yyvsp[(6) - (7)].typnam); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *)n; } break; case 1674: /* Line 1464 of yacc.c */ #line 11290 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1675: /* Line 1464 of yacc.c */ #line 11292 "gram.y" { (yyval.node) = makeNullAConst(-1); } break; case 1676: /* Line 1464 of yacc.c */ #line 11296 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); } break; case 1677: /* Line 1464 of yacc.c */ #line 11298 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); } break; case 1678: /* Line 1464 of yacc.c */ #line 11300 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); } break; case 1679: /* Line 1464 of yacc.c */ #line 11302 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); } break; case 1680: /* Line 1464 of yacc.c */ #line 11305 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 1681: /* Line 1464 of yacc.c */ #line 11308 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); } break; case 1682: /* Line 1464 of yacc.c */ #line 11309 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); } break; case 1683: /* Line 1464 of yacc.c */ #line 11313 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(3) - (3)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node); (yyval.target)->location = (yylsp[(1) - (3)]); } break; case 1684: /* Line 1464 of yacc.c */ #line 11321 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node); (yyval.target)->location = (yylsp[(1) - (1)]); } break; case 1685: /* Line 1464 of yacc.c */ #line 11330 "gram.y" { (yyval.ival) = XMLOPTION_DOCUMENT; } break; case 1686: /* Line 1464 of yacc.c */ #line 11331 "gram.y" { (yyval.ival) = XMLOPTION_CONTENT; } break; case 1687: /* Line 1464 of yacc.c */ #line 11334 "gram.y" { (yyval.boolean) = TRUE; } break; case 1688: /* Line 1464 of yacc.c */ #line 11335 "gram.y" { (yyval.boolean) = FALSE; } break; case 1689: /* Line 1464 of yacc.c */ #line 11336 "gram.y" { (yyval.boolean) = FALSE; } break; case 1690: /* Line 1464 of yacc.c */ #line 11342 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1691: /* Line 1464 of yacc.c */ #line 11346 "gram.y" { (yyval.node) = (yyvsp[(2) - (4)].node); } break; case 1692: /* Line 1464 of yacc.c */ #line 11350 "gram.y" { (yyval.node) = (yyvsp[(4) - (4)].node); } break; case 1693: /* Line 1464 of yacc.c */ #line 11354 "gram.y" { (yyval.node) = (yyvsp[(4) - (6)].node); } break; case 1694: /* Line 1464 of yacc.c */ #line 11364 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 1695: /* Line 1464 of yacc.c */ #line 11365 "gram.y" { (yyval.list) = NIL; } break; case 1696: /* Line 1464 of yacc.c */ #line 11369 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); } break; case 1697: /* Line 1464 of yacc.c */ #line 11371 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); } break; case 1698: /* Line 1464 of yacc.c */ #line 11376 "gram.y" { WindowDef *n = (yyvsp[(3) - (3)].windef); n->name = (yyvsp[(1) - (3)].str); (yyval.windef) = n; } break; case 1699: /* Line 1464 of yacc.c */ #line 11384 "gram.y" { (yyval.windef) = (yyvsp[(2) - (2)].windef); } break; case 1700: /* Line 1464 of yacc.c */ #line 11386 "gram.y" { WindowDef *n = makeNode(WindowDef); 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 1701: /* Line 1464 of yacc.c */ #line 11399 "gram.y" { (yyval.windef) = NULL; } break; case 1702: /* Line 1464 of yacc.c */ #line 11404 "gram.y" { WindowDef *n = makeNode(WindowDef); 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 1703: /* Line 1464 of yacc.c */ #line 11429 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1704: /* Line 1464 of yacc.c */ #line 11430 "gram.y" { (yyval.str) = NULL; } break; case 1705: /* Line 1464 of yacc.c */ #line 11433 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); } break; case 1706: /* Line 1464 of yacc.c */ #line 11434 "gram.y" { (yyval.list) = NIL; } break; case 1707: /* Line 1464 of yacc.c */ #line 11446 "gram.y" { WindowDef *n = (yyvsp[(2) - (2)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; if (n->frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING | FRAMEOPTION_END_VALUE_PRECEDING)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RANGE PRECEDING is only supported with UNBOUNDED"), parser_errposition((yylsp[(1) - (2)])))); if (n->frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING | FRAMEOPTION_END_VALUE_FOLLOWING)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"), parser_errposition((yylsp[(1) - (2)])))); (yyval.windef) = n; } break; case 1708: /* Line 1464 of yacc.c */ #line 11464 "gram.y" { WindowDef *n = (yyvsp[(2) - (2)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; (yyval.windef) = n; } break; case 1709: /* Line 1464 of yacc.c */ #line 11470 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } break; case 1710: /* Line 1464 of yacc.c */ #line 11480 "gram.y" { WindowDef *n = (yyvsp[(1) - (1)].windef); /* reject invalid cases */ if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[(1) - (1)])))); if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) ereport(ERROR, (errcode(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 1711: /* Line 1464 of yacc.c */ #line 11497 "gram.y" { WindowDef *n1 = (yyvsp[(2) - (4)].windef); WindowDef *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(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[(2) - (4)])))); if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame end cannot be UNBOUNDED PRECEDING"), parser_errposition((yylsp[(4) - (4)])))); if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from current row cannot have preceding rows"), parser_errposition((yylsp[(4) - (4)])))); if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) && (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING | FRAMEOPTION_END_CURRENT_ROW))) ereport(ERROR, (errcode(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 1712: /* Line 1464 of yacc.c */ #line 11542 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } break; case 1713: /* Line 1464 of yacc.c */ #line 11550 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } break; case 1714: /* Line 1464 of yacc.c */ #line 11558 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } break; case 1715: /* Line 1464 of yacc.c */ #line 11566 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING; n->startOffset = (yyvsp[(1) - (2)].node); n->endOffset = NULL; (yyval.windef) = n; } break; case 1716: /* Line 1464 of yacc.c */ #line 11574 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING; n->startOffset = (yyvsp[(1) - (2)].node); n->endOffset = NULL; (yyval.windef) = n; } break; case 1717: /* Line 1464 of yacc.c */ #line 11594 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 1718: /* Line 1464 of yacc.c */ #line 11595 "gram.y" { (yyval.list) = NIL; } break; case 1719: /* Line 1464 of yacc.c */ #line 11596 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); } break; case 1720: /* Line 1464 of yacc.c */ #line 11599 "gram.y" { (yyval.ival) = ANY_SUBLINK; } break; case 1721: /* Line 1464 of yacc.c */ #line 11600 "gram.y" { (yyval.ival) = ANY_SUBLINK; } break; case 1722: /* Line 1464 of yacc.c */ #line 11601 "gram.y" { (yyval.ival) = ALL_SUBLINK; } break; case 1723: /* Line 1464 of yacc.c */ #line 11604 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1724: /* Line 1464 of yacc.c */ #line 11605 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1725: /* Line 1464 of yacc.c */ #line 11608 "gram.y" { (yyval.str) = "+"; } break; case 1726: /* Line 1464 of yacc.c */ #line 11609 "gram.y" { (yyval.str) = "-"; } break; case 1727: /* Line 1464 of yacc.c */ #line 11610 "gram.y" { (yyval.str) = "*"; } break; case 1728: /* Line 1464 of yacc.c */ #line 11611 "gram.y" { (yyval.str) = "/"; } break; case 1729: /* Line 1464 of yacc.c */ #line 11612 "gram.y" { (yyval.str) = "%"; } break; case 1730: /* Line 1464 of yacc.c */ #line 11613 "gram.y" { (yyval.str) = "^"; } break; case 1731: /* Line 1464 of yacc.c */ #line 11614 "gram.y" { (yyval.str) = "<"; } break; case 1732: /* Line 1464 of yacc.c */ #line 11615 "gram.y" { (yyval.str) = ">"; } break; case 1733: /* Line 1464 of yacc.c */ #line 11616 "gram.y" { (yyval.str) = "="; } break; case 1734: /* Line 1464 of yacc.c */ #line 11620 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 1735: /* Line 1464 of yacc.c */ #line 11622 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 1736: /* Line 1464 of yacc.c */ #line 11627 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 1737: /* Line 1464 of yacc.c */ #line 11629 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 1738: /* Line 1464 of yacc.c */ #line 11634 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 1739: /* Line 1464 of yacc.c */ #line 11636 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); } break; case 1740: /* Line 1464 of yacc.c */ #line 11638 "gram.y" { (yyval.list) = list_make1(makeString("~~")); } break; case 1741: /* Line 1464 of yacc.c */ #line 11640 "gram.y" { (yyval.list) = list_make1(makeString("!~~")); } break; case 1742: /* Line 1464 of yacc.c */ #line 11642 "gram.y" { (yyval.list) = list_make1(makeString("~~*")); } break; case 1743: /* Line 1464 of yacc.c */ #line 11644 "gram.y" { (yyval.list) = list_make1(makeString("!~~*")); } break; case 1744: /* Line 1464 of yacc.c */ #line 11656 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1745: /* Line 1464 of yacc.c */ #line 11660 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1746: /* Line 1464 of yacc.c */ #line 11667 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1747: /* Line 1464 of yacc.c */ #line 11671 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1748: /* Line 1464 of yacc.c */ #line 11677 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1749: /* Line 1464 of yacc.c */ #line 11681 "gram.y" { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[(1) - (3)].str); na->arg = (Expr *) (yyvsp[(3) - (3)].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) na; } break; case 1750: /* Line 1464 of yacc.c */ #line 11691 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); } break; case 1751: /* Line 1464 of yacc.c */ #line 11692 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); } break; case 1752: /* Line 1464 of yacc.c */ #line 11696 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); } break; case 1753: /* Line 1464 of yacc.c */ #line 11700 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); } break; case 1754: /* Line 1464 of yacc.c */ #line 11704 "gram.y" { (yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)])); } break; case 1755: /* Line 1464 of yacc.c */ #line 11709 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1756: /* Line 1464 of yacc.c */ #line 11710 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1757: /* Line 1464 of yacc.c */ #line 11716 "gram.y" { (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); } break; case 1758: /* Line 1464 of yacc.c */ #line 11719 "gram.y" { (yyval.list) = NIL; } break; case 1759: /* Line 1464 of yacc.c */ #line 11726 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1760: /* Line 1464 of yacc.c */ #line 11727 "gram.y" { (yyval.str) = "year"; } break; case 1761: /* Line 1464 of yacc.c */ #line 11728 "gram.y" { (yyval.str) = "month"; } break; case 1762: /* Line 1464 of yacc.c */ #line 11729 "gram.y" { (yyval.str) = "day"; } break; case 1763: /* Line 1464 of yacc.c */ #line 11730 "gram.y" { (yyval.str) = "hour"; } break; case 1764: /* Line 1464 of yacc.c */ #line 11731 "gram.y" { (yyval.str) = "minute"; } break; case 1765: /* Line 1464 of yacc.c */ #line 11732 "gram.y" { (yyval.str) = "second"; } break; case 1766: /* Line 1464 of yacc.c */ #line 11733 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1767: /* Line 1464 of yacc.c */ #line 11744 "gram.y" { (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); } break; case 1768: /* Line 1464 of yacc.c */ #line 11748 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 1769: /* Line 1464 of yacc.c */ #line 11755 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1770: /* Line 1464 of yacc.c */ #line 11761 "gram.y" { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); } break; case 1771: /* Line 1464 of yacc.c */ #line 11762 "gram.y" { (yyval.list) = NIL; } break; case 1772: /* Line 1464 of yacc.c */ #line 11779 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 1773: /* Line 1464 of yacc.c */ #line 11783 "gram.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 1774: /* Line 1464 of yacc.c */ #line 11788 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); } break; case 1775: /* Line 1464 of yacc.c */ #line 11792 "gram.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"), -1)); } break; case 1776: /* Line 1464 of yacc.c */ #line 11807 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1777: /* Line 1464 of yacc.c */ #line 11811 "gram.y" { (yyval.list) = NIL; } break; case 1778: /* Line 1464 of yacc.c */ #line 11815 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1779: /* Line 1464 of yacc.c */ #line 11818 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1780: /* Line 1464 of yacc.c */ #line 11821 "gram.y" { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); } break; case 1781: /* Line 1464 of yacc.c */ #line 11822 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 1782: /* Line 1464 of yacc.c */ #line 11823 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); } break; case 1783: /* Line 1464 of yacc.c */ #line 11827 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[(1) - (1)].node); /* other fields will be filled later */ (yyval.node) = (Node *)n; } break; case 1784: /* Line 1464 of yacc.c */ #line 11833 "gram.y" { (yyval.node) = (Node *)(yyvsp[(2) - (3)].list); } break; case 1785: /* Line 1464 of yacc.c */ #line 11844 "gram.y" { CaseExpr *c = makeNode(CaseExpr); c->casetype = InvalidOid; /* not analyzed yet */ c->arg = (Expr *) (yyvsp[(2) - (5)].node); c->args = (yyvsp[(3) - (5)].list); c->defresult = (Expr *) (yyvsp[(4) - (5)].node); c->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *)c; } break; case 1786: /* Line 1464 of yacc.c */ #line 11857 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1787: /* Line 1464 of yacc.c */ #line 11858 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 1788: /* Line 1464 of yacc.c */ #line 11863 "gram.y" { CaseWhen *w = makeNode(CaseWhen); w->expr = (Expr *) (yyvsp[(2) - (4)].node); w->result = (Expr *) (yyvsp[(4) - (4)].node); w->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)w; } break; case 1789: /* Line 1464 of yacc.c */ #line 11873 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); } break; case 1790: /* Line 1464 of yacc.c */ #line 11874 "gram.y" { (yyval.node) = NULL; } break; case 1791: /* Line 1464 of yacc.c */ #line 11877 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); } break; case 1792: /* Line 1464 of yacc.c */ #line 11878 "gram.y" { (yyval.node) = NULL; } break; case 1793: /* Line 1464 of yacc.c */ #line 11882 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); } break; case 1794: /* Line 1464 of yacc.c */ #line 11886 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); } break; case 1795: /* Line 1464 of yacc.c */ #line 11893 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str)); } break; case 1796: /* Line 1464 of yacc.c */ #line 11897 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); } break; case 1797: /* Line 1464 of yacc.c */ #line 11901 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = NULL; ai->uidx = (yyvsp[(2) - (3)].node); (yyval.node) = (Node *) ai; } break; case 1798: /* Line 1464 of yacc.c */ #line 11908 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = (yyvsp[(2) - (5)].node); ai->uidx = (yyvsp[(4) - (5)].node); (yyval.node) = (Node *) ai; } break; case 1799: /* Line 1464 of yacc.c */ #line 11917 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1800: /* Line 1464 of yacc.c */ #line 11918 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 1801: /* Line 1464 of yacc.c */ #line 11922 "gram.y" { (yyval.list) = NIL; } break; case 1802: /* Line 1464 of yacc.c */ #line 11923 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 1805: /* Line 1464 of yacc.c */ #line 11938 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); } break; case 1806: /* Line 1464 of yacc.c */ #line 11940 "gram.y" { SetToDefault *n = makeNode(SetToDefault); n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; } break; case 1807: /* Line 1464 of yacc.c */ #line 11948 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); } break; case 1808: /* Line 1464 of yacc.c */ #line 11949 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; case 1809: /* Line 1464 of yacc.c */ #line 11957 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; case 1810: /* Line 1464 of yacc.c */ #line 11968 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); } break; case 1811: /* Line 1464 of yacc.c */ #line 11969 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); } break; case 1812: /* Line 1464 of yacc.c */ #line 11973 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(3) - (3)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[(1) - (3)].node); (yyval.target)->location = (yylsp[(1) - (3)]); } break; case 1813: /* Line 1464 of yacc.c */ #line 11989 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(2) - (2)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[(1) - (2)].node); (yyval.target)->location = (yylsp[(1) - (2)]); } break; case 1814: /* Line 1464 of yacc.c */ #line 11997 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[(1) - (1)].node); (yyval.target)->location = (yylsp[(1) - (1)]); } break; case 1815: /* Line 1464 of yacc.c */ #line 12005 "gram.y" { ColumnRef *n = makeNode(ColumnRef); n->fields = list_make1(makeNode(A_Star)); n->location = (yylsp[(1) - (1)]); (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)n; (yyval.target)->location = (yylsp[(1) - (1)]); } break; case 1816: /* Line 1464 of yacc.c */ #line 12026 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); } break; case 1817: /* Line 1464 of yacc.c */ #line 12027 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); } break; case 1818: /* Line 1464 of yacc.c */ #line 12039 "gram.y" { (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 1819: /* Line 1464 of yacc.c */ #line 12043 "gram.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; default: ereport(ERROR, (errcode(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 1820: /* Line 1464 of yacc.c */ #line 12070 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 1821: /* Line 1464 of yacc.c */ #line 12072 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); } break; case 1822: /* Line 1464 of yacc.c */ #line 12076 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1823: /* Line 1464 of yacc.c */ #line 12079 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1824: /* Line 1464 of yacc.c */ #line 12082 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1825: /* Line 1464 of yacc.c */ #line 12084 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1826: /* Line 1464 of yacc.c */ #line 12086 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1827: /* Line 1464 of yacc.c */ #line 12088 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1828: /* Line 1464 of yacc.c */ #line 12099 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); } break; case 1829: /* Line 1464 of yacc.c */ #line 12101 "gram.y" { (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), yyscanner); } break; case 1830: /* Line 1464 of yacc.c */ #line 12112 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); } break; case 1831: /* Line 1464 of yacc.c */ #line 12116 "gram.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 1832: /* Line 1464 of yacc.c */ #line 12120 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 1833: /* Line 1464 of yacc.c */ #line 12124 "gram.y" { (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 1834: /* Line 1464 of yacc.c */ #line 12128 "gram.y" { /* This is a bit constant per SQL99: * Without Feature F511, "BIT data type", * a shall not be a * or a . */ (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); } break; case 1835: /* Line 1464 of yacc.c */ #line 12137 "gram.y" { /* generic type 'literal' syntax */ TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); t->location = (yylsp[(1) - (2)]); (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t); } break; case 1836: /* Line 1464 of yacc.c */ #line 12144 "gram.y" { /* generic syntax with a type modifier */ TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (5)].list)); ListCell *lc; /* * We must use func_arg_list in the production to avoid * reduce/reduce conflicts, but we don't actually wish * to allow NamedArgExpr in this context. */ foreach(lc, (yyvsp[(3) - (5)].list)) { NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); if (IsA(arg, NamedArgExpr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have parameter name"), parser_errposition(arg->location))); } t->typmods = (yyvsp[(3) - (5)].list); t->location = (yylsp[(1) - (5)]); (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); } break; case 1837: /* Line 1464 of yacc.c */ #line 12169 "gram.y" { (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); } break; case 1838: /* Line 1464 of yacc.c */ #line 12173 "gram.y" { TypeName *t = (yyvsp[(1) - (3)].typnam); t->typmods = (yyvsp[(3) - (3)].list); (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); } break; case 1839: /* Line 1464 of yacc.c */ #line 12179 "gram.y" { TypeName *t = (yyvsp[(1) - (6)].typnam); if ((yyvsp[(6) - (6)].list) != NIL) { if (list_length((yyvsp[(6) - (6)].list)) != 1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("interval precision specified twice"), parser_errposition((yylsp[(1) - (6)])))); t->typmods = lappend((yyvsp[(6) - (6)].list), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)]))); } else t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)]))); (yyval.node) = makeStringConstCast((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]), t); } break; case 1840: /* Line 1464 of yacc.c */ #line 12196 "gram.y" { (yyval.node) = makeBoolAConst(TRUE, (yylsp[(1) - (1)])); } break; case 1841: /* Line 1464 of yacc.c */ #line 12200 "gram.y" { (yyval.node) = makeBoolAConst(FALSE, (yylsp[(1) - (1)])); } break; case 1842: /* Line 1464 of yacc.c */ #line 12204 "gram.y" { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); } break; case 1843: /* Line 1464 of yacc.c */ #line 12209 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); } break; case 1844: /* Line 1464 of yacc.c */ #line 12210 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1845: /* Line 1464 of yacc.c */ #line 12211 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1846: /* Line 1464 of yacc.c */ #line 12213 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); } break; case 1847: /* Line 1464 of yacc.c */ #line 12214 "gram.y" { (yyval.ival) = + (yyvsp[(2) - (2)].ival); } break; case 1848: /* Line 1464 of yacc.c */ #line 12215 "gram.y" { (yyval.ival) = - (yyvsp[(2) - (2)].ival); } break; case 1849: /* Line 1464 of yacc.c */ #line 12231 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1850: /* Line 1464 of yacc.c */ #line 12232 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1851: /* Line 1464 of yacc.c */ #line 12233 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1852: /* Line 1464 of yacc.c */ #line 12238 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1853: /* Line 1464 of yacc.c */ #line 12239 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1854: /* Line 1464 of yacc.c */ #line 12240 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1855: /* Line 1464 of yacc.c */ #line 12246 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 1856: /* Line 1464 of yacc.c */ #line 12247 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1857: /* Line 1464 of yacc.c */ #line 12248 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1858: /* Line 1464 of yacc.c */ #line 12249 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; case 1859: /* Line 1464 of yacc.c */ #line 12250 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); } break; /* Line 1464 of yacc.c */ #line 38175 "gram.c" 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[1] = yylloc; if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead 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 lookahead 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[1] = 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[1] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } *++yyvsp = yylval; yyerror_range[2] = yylloc; /* Using YYLLOC is tempting, but would change the location of the lookahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, yyerror_range, 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; #if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, yyscanner, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (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 1684 of yacc.c */ #line 12703 "gram.y" /* * 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 Node * makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner) { /* * Generate a ColumnRef node, with an A_Indirection 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 ColumnRef node. */ ColumnRef *c = makeNode(ColumnRef); int nfields = 0; ListCell *l; c->location = location; foreach(l, indirection) { if (IsA(lfirst(l), A_Indices)) { A_Indirection *i = makeNode(A_Indirection); if (nfields == 0) { /* easy case - all indirection goes to A_Indirection */ 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 = (Node *) c; return (Node *) i; } else if (IsA(lfirst(l), A_Star)) { /* We only allow '*' at the end of a ColumnRef */ 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 (Node *) c; } static Node * makeTypeCast(Node *arg, TypeName *typename, int location) { TypeCast *n = makeNode(TypeCast); n->arg = arg; n->typeName = typename; n->location = location; return (Node *) n; } static Node * makeStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeStringConstCast(char *str, int location, TypeName *typename) { Node *s = makeStringConst(str, location); return makeTypeCast(s, typename, -1); } static Node * makeIntConst(int val, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; n->val.val.ival = val; n->location = location; return (Node *)n; } static Node * makeFloatConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Float; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeBitStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_BitString; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeNullAConst(int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Null; n->location = location; return (Node *)n; } static Node * makeAConst(Value *v, int location) { Node *n; switch (v->type) { case T_Float: n = makeFloatConst(v->val.str, location); break; case T_Integer: n = makeIntConst(v->val.ival, location); break; case T_String: default: n = makeStringConst(v->val.str, location); break; } return n; } /* makeBoolAConst() * Create an A_Const string node and put it inside a boolean cast. */ static Node * makeBoolAConst(bool state, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = (state ? "t" : "f"); n->location = location; return makeTypeCast((Node *)n, SystemTypeName("bool"), -1); } /* makeOverlaps() * Create and populate a FuncCall node to support the OVERLAPS operator. */ static FuncCall * makeOverlaps(List *largs, List *rargs, int location, core_yyscan_t yyscanner) { FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("overlaps"); if (list_length(largs) == 1) largs = lappend(largs, largs); else if (list_length(largs) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on left side of OVERLAPS expression"), parser_errposition(location))); if (list_length(rargs) == 1) rargs = lappend(rargs, rargs); else if (list_length(rargs) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on right side of OVERLAPS expression"), parser_errposition(location))); n->args = list_concat(largs, rargs); n->agg_order = NIL; n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; n->over = NULL; n->location = location; return n; } /* 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(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) 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 List * check_func_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) 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 List * check_indirection(List *indirection, core_yyscan_t yyscanner) { ListCell *l; foreach(l, indirection) { if (IsA(lfirst(l), A_Star)) { if (lnext(l) != NULL) parser_yyerror("improper use of \"*\""); } } return indirection; } /* extractArgTypes() * Given a list of FunctionParameter nodes, extract a list of just the * argument types (TypeNames) for input parameters only. This is what * is needed to look up an existing function, which is what is wanted by * the productions that use this call. */ static List * extractArgTypes(List *parameters) { List *result = NIL; ListCell *i; foreach(i, parameters) { FunctionParameter *p = (FunctionParameter *) lfirst(i); if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE) result = lappend(result, p->argType); } return result; } /* insertSelectOptions() * Insert ORDER BY, etc into an already-constructed SelectStmt. * * This routine is just to avoid duplicating code in SelectStmt productions. */ static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, Node *limitOffset, Node *limitCount, WithClause *withClause, core_yyscan_t yyscanner) { Assert(IsA(stmt, SelectStmt)); /* * Tests here are to reject constructs like * (SELECT foo ORDER BY bar) ORDER BY baz */ if (sortClause) { if (stmt->sortClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple ORDER BY clauses not allowed"), parser_errposition(exprLocation((Node *) 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(ERRCODE_SYNTAX_ERROR), errmsg("multiple OFFSET clauses not allowed"), parser_errposition(exprLocation(limitOffset)))); stmt->limitOffset = limitOffset; } if (limitCount) { if (stmt->limitCount) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple LIMIT clauses not allowed"), parser_errposition(exprLocation(limitCount)))); stmt->limitCount = limitCount; } if (withClause) { if (stmt->withClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple WITH clauses not allowed"), parser_errposition(exprLocation((Node *) withClause)))); stmt->withClause = withClause; } } static Node * makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg) { SelectStmt *n = makeNode(SelectStmt); n->op = op; n->all = all; n->larg = (SelectStmt *) larg; n->rarg = (SelectStmt *) rarg; return (Node *) n; } /* SystemFuncName() * Build a properly-qualified reference to a built-in function. */ List * SystemFuncName(char *name) { return list_make2(makeString("pg_catalog"), 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. */ TypeName * SystemTypeName(char *name) { return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"), 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 Node * doNegate(Node *n, int location) { if (IsA(n, A_Const)) { A_Const *con = (A_Const *)n; /* report the constant's location as that of the '-' sign */ con->location = location; if (con->val.type == T_Integer) { con->val.val.ival = -con->val.val.ival; return n; } if (con->val.type == T_Float) { doNegateFloat(&con->val); return n; } } return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location); } static void doNegateFloat(Value *v) { char *oldval = v->val.str; Assert(IsA(v, Float)); if (*oldval == '+') oldval++; if (*oldval == '-') v->val.str = oldval+1; /* just strip the '-' */ else { char *newval = (char *) palloc(strlen(oldval) + 2); *newval = '-'; strcpy(newval+1, oldval); v->val.str = newval; } } static Node * makeAArrayExpr(List *elements, int location) { A_ArrayExpr *n = makeNode(A_ArrayExpr); n->elements = elements; n->location = location; return (Node *) n; } static Node * makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location) { XmlExpr *x = makeNode(XmlExpr); x->op = op; x->name = name; /* * named_args is a list of ResTarget; it'll be split apart into separate * expression and name lists in transformXmlExpr(). */ x->named_args = named_args; x->arg_names = NIL; x->args = args; /* xmloption, if relevant, must be filled in by caller */ /* type and typmod will be filled in during parse analysis */ x->type = InvalidOid; /* marks the node as not analyzed */ x->location = location; return (Node *) x; } /* * Merge the input and output parameters of a table function. */ static List * mergeTableFuncParameters(List *func_args, List *columns) { ListCell *lc; /* Explicit OUT and INOUT parameters shouldn't be used in this syntax */ foreach(lc, func_args) { FunctionParameter *p = (FunctionParameter *) lfirst(lc); if (p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"))); } return list_concat(func_args, columns); } /* * Determine return type of a TABLE function. A single result column * returns setof that column's type; otherwise return setof record. */ static TypeName * TableFuncTypeName(List *columns) { TypeName *result; if (list_length(columns) == 1) { FunctionParameter *p = (FunctionParameter *) linitial(columns); result = (TypeName *) copyObject(p->argType); } else result = SystemTypeName("record"); result->setof = true; return result; } /* * Convert a list of (dotted) names to a RangeVar (like * makeRangeVarFromNameList, but with position support). The * "AnyName" refers to the any_name production in the grammar. */ static RangeVar * makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner) { RangeVar *r = makeNode(RangeVar); switch (list_length(names)) { case 1: r->catalogname = NULL; r->schemaname = NULL; r->relname = strVal(linitial(names)); break; case 2: r->catalogname = NULL; r->schemaname = strVal(linitial(names)); r->relname = strVal(lsecond(names)); break; case 3: r->catalogname = strVal(linitial(names));; r->schemaname = strVal(lsecond(names)); r->relname = strVal(lthird(names)); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(names)), parser_errposition(position))); break; } r->relpersistence = RELPERSISTENCE_PERMANENT; r->location = position; return r; } /* Separate Constraint nodes from COLLATE clauses in a ColQualList */ static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner) { ListCell *cell; ListCell *prev; ListCell *next; *collClause = NULL; prev = NULL; for (cell = list_head(qualList); cell; cell = next) { Node *n = (Node *) lfirst(cell); next = lnext(cell); if (IsA(n, Constraint)) { /* keep it in list */ prev = cell; continue; } if (IsA(n, CollateClause)) { CollateClause *c = (CollateClause *) n; if (*collClause) ereport(ERROR, (errcode(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(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(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(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(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NO INHERIT", constrType), parser_errposition(location))); } } /* 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 */ } /* * Create a DefElem setting "oids" to the specified value. */ static DefElem * defWithOids(bool value) { DefElem *f = makeNode(DefElem); f->defname = "oids"; f->arg = (Node *) makeInteger(value); return f; } /* * Must undefine this stuff before including scan.c, since it has different * definitions for these macros. */ #undef yyerror #undef yylval #undef yylloc #include "scan.c"