diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
commit | 6eb9c5a5657d1fe77b55cc261450f3538d35a94d (patch) | |
tree | 657d8194422a5daccecfd42d654b8a245ef7b4c8 /src/backend/parser/gram.c | |
parent | Initial commit. (diff) | |
download | postgresql-13-6eb9c5a5657d1fe77b55cc261450f3538d35a94d.tar.xz postgresql-13-6eb9c5a5657d1fe77b55cc261450f3538d35a94d.zip |
Adding upstream version 13.4.upstream/13.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/backend/parser/gram.c')
-rw-r--r-- | src/backend/parser/gram.c | 47140 |
1 files changed, 47140 insertions, 0 deletions
diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c new file mode 100644 index 0000000..a67d469 --- /dev/null +++ b/src/backend/parser/gram.c @@ -0,0 +1,47140 @@ +/* A Bison parser, made by GNU Bison 3.3.2. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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 <http://www.gnu.org/licenses/>. */ + +/* 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. */ + +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.3.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + +/* Substitute the variable and function names. */ +#define yyparse base_yyparse +#define yylex base_yylex +#define yyerror base_yyerror +#define yydebug base_yydebug +#define yynerrs base_yynerrs + + +/* First part of user prologue. */ +#line 1 "gram.y" /* yacc.c:337 */ + + +/*#define YYDEBUG 1*/ +/*------------------------------------------------------------------------- + * + * gram.y + * POSTGRESQL BISON rules/actions + * + * Portions Copyright (c) 1996-2020, 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. + * + * In general, nothing in this file should initiate database accesses + * nor depend on changeable state (such as SET variables). If you do + * database accesses, your code will fail when we have aborted the + * current transaction and are just parsing commands to find the next + * ROLLBACK or COMMIT. If you make use of SET variables, then you + * will do the wrong thing in multi-query strings like this: + * SET constraint_exclusion TO off; SELECT * FROM foo; + * because the entire string is parsed by gram.y before the SET gets + * executed. Anything that depends on the database or changeable state + * should be handled during parse analysis so that it happens at the + * right time not the wrong time. + * + * WARNINGS + * If you use a list, make sure the datum is a node so that the printing + * routines work. + * + * Sometimes we assign constants to makeStrings. Make sure we don't free + * those. + * + *------------------------------------------------------------------------- + */ +#include "postgres.h" + +#include <ctype.h> +#include <limits.h> + +#include "access/tableam.h" +#include "catalog/index.h" +#include "catalog/namespace.h" +#include "catalog/pg_am.h" +#include "catalog/pg_trigger.h" +#include "commands/defrem.h" +#include "commands/trigger.h" +#include "nodes/makefuncs.h" +#include "nodes/nodeFuncs.h" +#include "parser/gramparse.h" +#include "parser/parser.h" +#include "parser/parse_expr.h" +#include "storage/lmgr.h" +#include "utils/date.h" +#include "utils/datetime.h" +#include "utils/numeric.h" +#include "utils/xml.h" + + +/* + * Location tracking support --- simpler than bison's default, since we only + * want to track the start position not the end position of each nonterminal. + */ +#define YYLLOC_DEFAULT(Current, Rhs, N) \ + do { \ + if ((N) > 0) \ + (Current) = (Rhs)[1]; \ + else \ + (Current) = (-1); \ + } while (0) + +/* + * The above macro assigns -1 (unknown) as the parse location of any + * nonterminal that was reduced from an empty rule, or whose leftmost + * component was reduced from an empty rule. This is problematic + * for nonterminals defined like + * OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ; + * because we'll set -1 as the location during the first reduction and then + * copy it during each subsequent reduction, leaving us with -1 for the + * location even when the list is not empty. To fix that, do this in the + * action for the nonempty rule(s): + * if (@$ < 0) @$ = @2; + * (Although we have many nonterminals that follow this pattern, we only + * bother with fixing @$ like this when the nonterminal's parse location + * is actually referenced in some rule.) + * + * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs + * locations until it's found one that's not -1. Then we'd get a correct + * location for any nonterminal that isn't entirely empty. But this way + * would add overhead to every rule reduction, and so far there's not been + * a compelling reason to pay that overhead. + */ + +/* + * Bison doesn't allocate anything that needs to live across parser calls, + * so we can easily have it use palloc instead of malloc. This prevents + * memory leaks if we error out during parsing. Note this only works with + * bison >= 2.0. However, in bison 1.875 the default is to use alloca() + * if possible, so there's not really much problem anyhow, at least if + * you're building with gcc. + */ +#define YYMALLOC palloc +#define YYFREE pfree + +/* Private struct for the result of privilege_target production */ +typedef struct PrivTarget +{ + GrantTargetType targtype; + ObjectType objtype; + List *objs; +} PrivTarget; + +/* Private struct for the result of import_qualification production */ +typedef struct ImportQual +{ + ImportForeignSchemaType type; + List *table_names; +} ImportQual; + +/* Private struct for the result of opt_select_limit production */ +typedef struct SelectLimit +{ + Node *limitOffset; + Node *limitCount; + LimitOption limitOption; +} SelectLimit; + +/* 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 RawStmt *makeRawStmt(Node *stmt, int stmt_location); +static void updateRawStmtEnd(RawStmt *rs, int end_location); +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 RoleSpec *makeRoleSpec(RoleSpecType type, int location); +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 List *extractAggrArgTypes(List *aggrargs); +static List *makeOrderedSetArgs(List *directargs, List *orderedargs, + core_yyscan_t yyscanner); +static void insertSelectOptions(SelectStmt *stmt, + List *sortClause, List *lockingClause, + SelectLimit *limitClause, + 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 *makeAndExpr(Node *lexpr, Node *rexpr, int location); +static Node *makeOrExpr(Node *lexpr, Node *rexpr, int location); +static Node *makeNotExpr(Node *expr, int location); +static Node *makeAArrayExpr(List *elements, int location); +static Node *makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, + 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); +static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); + + +#line 277 "gram.c" /* yacc.c:337 */ +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "gram.h". */ +#ifndef YY_BASE_YY_GRAM_H_INCLUDED +# define YY_BASE_YY_GRAM_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int base_yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + IDENT = 258, + UIDENT = 259, + FCONST = 260, + SCONST = 261, + USCONST = 262, + BCONST = 263, + XCONST = 264, + Op = 265, + ICONST = 266, + PARAM = 267, + TYPECAST = 268, + DOT_DOT = 269, + COLON_EQUALS = 270, + EQUALS_GREATER = 271, + LESS_EQUALS = 272, + GREATER_EQUALS = 273, + NOT_EQUALS = 274, + ABORT_P = 275, + ABSOLUTE_P = 276, + ACCESS = 277, + ACTION = 278, + ADD_P = 279, + ADMIN = 280, + AFTER = 281, + AGGREGATE = 282, + ALL = 283, + ALSO = 284, + ALTER = 285, + ALWAYS = 286, + ANALYSE = 287, + ANALYZE = 288, + AND = 289, + ANY = 290, + ARRAY = 291, + AS = 292, + ASC = 293, + ASSERTION = 294, + ASSIGNMENT = 295, + ASYMMETRIC = 296, + AT = 297, + ATTACH = 298, + ATTRIBUTE = 299, + AUTHORIZATION = 300, + BACKWARD = 301, + BEFORE = 302, + BEGIN_P = 303, + BETWEEN = 304, + BIGINT = 305, + BINARY = 306, + BIT = 307, + BOOLEAN_P = 308, + BOTH = 309, + BY = 310, + CACHE = 311, + CALL = 312, + CALLED = 313, + CASCADE = 314, + CASCADED = 315, + CASE = 316, + CAST = 317, + CATALOG_P = 318, + CHAIN = 319, + CHAR_P = 320, + CHARACTER = 321, + CHARACTERISTICS = 322, + CHECK = 323, + CHECKPOINT = 324, + CLASS = 325, + CLOSE = 326, + CLUSTER = 327, + COALESCE = 328, + COLLATE = 329, + COLLATION = 330, + COLUMN = 331, + COLUMNS = 332, + COMMENT = 333, + COMMENTS = 334, + COMMIT = 335, + COMMITTED = 336, + CONCURRENTLY = 337, + CONFIGURATION = 338, + CONFLICT = 339, + CONNECTION = 340, + CONSTRAINT = 341, + CONSTRAINTS = 342, + CONTENT_P = 343, + CONTINUE_P = 344, + CONVERSION_P = 345, + COPY = 346, + COST = 347, + CREATE = 348, + CROSS = 349, + CSV = 350, + CUBE = 351, + CURRENT_P = 352, + CURRENT_CATALOG = 353, + CURRENT_DATE = 354, + CURRENT_ROLE = 355, + CURRENT_SCHEMA = 356, + CURRENT_TIME = 357, + CURRENT_TIMESTAMP = 358, + CURRENT_USER = 359, + CURSOR = 360, + CYCLE = 361, + DATA_P = 362, + DATABASE = 363, + DAY_P = 364, + DEALLOCATE = 365, + DEC = 366, + DECIMAL_P = 367, + DECLARE = 368, + DEFAULT = 369, + DEFAULTS = 370, + DEFERRABLE = 371, + DEFERRED = 372, + DEFINER = 373, + DELETE_P = 374, + DELIMITER = 375, + DELIMITERS = 376, + DEPENDS = 377, + DESC = 378, + DETACH = 379, + DICTIONARY = 380, + DISABLE_P = 381, + DISCARD = 382, + DISTINCT = 383, + DO = 384, + DOCUMENT_P = 385, + DOMAIN_P = 386, + DOUBLE_P = 387, + DROP = 388, + EACH = 389, + ELSE = 390, + ENABLE_P = 391, + ENCODING = 392, + ENCRYPTED = 393, + END_P = 394, + ENUM_P = 395, + ESCAPE = 396, + EVENT = 397, + EXCEPT = 398, + EXCLUDE = 399, + EXCLUDING = 400, + EXCLUSIVE = 401, + EXECUTE = 402, + EXISTS = 403, + EXPLAIN = 404, + EXPRESSION = 405, + EXTENSION = 406, + EXTERNAL = 407, + EXTRACT = 408, + FALSE_P = 409, + FAMILY = 410, + FETCH = 411, + FILTER = 412, + FIRST_P = 413, + FLOAT_P = 414, + FOLLOWING = 415, + FOR = 416, + FORCE = 417, + FOREIGN = 418, + FORWARD = 419, + FREEZE = 420, + FROM = 421, + FULL = 422, + FUNCTION = 423, + FUNCTIONS = 424, + GENERATED = 425, + GLOBAL = 426, + GRANT = 427, + GRANTED = 428, + GREATEST = 429, + GROUP_P = 430, + GROUPING = 431, + GROUPS = 432, + HANDLER = 433, + HAVING = 434, + HEADER_P = 435, + HOLD = 436, + HOUR_P = 437, + IDENTITY_P = 438, + IF_P = 439, + ILIKE = 440, + IMMEDIATE = 441, + IMMUTABLE = 442, + IMPLICIT_P = 443, + IMPORT_P = 444, + IN_P = 445, + INCLUDE = 446, + INCLUDING = 447, + INCREMENT = 448, + INDEX = 449, + INDEXES = 450, + INHERIT = 451, + INHERITS = 452, + INITIALLY = 453, + INLINE_P = 454, + INNER_P = 455, + INOUT = 456, + INPUT_P = 457, + INSENSITIVE = 458, + INSERT = 459, + INSTEAD = 460, + INT_P = 461, + INTEGER = 462, + INTERSECT = 463, + INTERVAL = 464, + INTO = 465, + INVOKER = 466, + IS = 467, + ISNULL = 468, + ISOLATION = 469, + JOIN = 470, + KEY = 471, + LABEL = 472, + LANGUAGE = 473, + LARGE_P = 474, + LAST_P = 475, + LATERAL_P = 476, + LEADING = 477, + LEAKPROOF = 478, + LEAST = 479, + LEFT = 480, + LEVEL = 481, + LIKE = 482, + LIMIT = 483, + LISTEN = 484, + LOAD = 485, + LOCAL = 486, + LOCALTIME = 487, + LOCALTIMESTAMP = 488, + LOCATION = 489, + LOCK_P = 490, + LOCKED = 491, + LOGGED = 492, + MAPPING = 493, + MATCH = 494, + MATERIALIZED = 495, + MAXVALUE = 496, + METHOD = 497, + MINUTE_P = 498, + MINVALUE = 499, + MODE = 500, + MONTH_P = 501, + MOVE = 502, + NAME_P = 503, + NAMES = 504, + NATIONAL = 505, + NATURAL = 506, + NCHAR = 507, + NEW = 508, + NEXT = 509, + NFC = 510, + NFD = 511, + NFKC = 512, + NFKD = 513, + NO = 514, + NONE = 515, + NORMALIZE = 516, + NORMALIZED = 517, + NOT = 518, + NOTHING = 519, + NOTIFY = 520, + NOTNULL = 521, + NOWAIT = 522, + NULL_P = 523, + NULLIF = 524, + NULLS_P = 525, + NUMERIC = 526, + OBJECT_P = 527, + OF = 528, + OFF = 529, + OFFSET = 530, + OIDS = 531, + OLD = 532, + ON = 533, + ONLY = 534, + OPERATOR = 535, + OPTION = 536, + OPTIONS = 537, + OR = 538, + ORDER = 539, + ORDINALITY = 540, + OTHERS = 541, + OUT_P = 542, + OUTER_P = 543, + OVER = 544, + OVERLAPS = 545, + OVERLAY = 546, + OVERRIDING = 547, + OWNED = 548, + OWNER = 549, + PARALLEL = 550, + PARSER = 551, + PARTIAL = 552, + PARTITION = 553, + PASSING = 554, + PASSWORD = 555, + PLACING = 556, + PLANS = 557, + POLICY = 558, + POSITION = 559, + PRECEDING = 560, + PRECISION = 561, + PRESERVE = 562, + PREPARE = 563, + PREPARED = 564, + PRIMARY = 565, + PRIOR = 566, + PRIVILEGES = 567, + PROCEDURAL = 568, + PROCEDURE = 569, + PROCEDURES = 570, + PROGRAM = 571, + PUBLICATION = 572, + QUOTE = 573, + RANGE = 574, + READ = 575, + REAL = 576, + REASSIGN = 577, + RECHECK = 578, + RECURSIVE = 579, + REF = 580, + REFERENCES = 581, + REFERENCING = 582, + REFRESH = 583, + REINDEX = 584, + RELATIVE_P = 585, + RELEASE = 586, + RENAME = 587, + REPEATABLE = 588, + REPLACE = 589, + REPLICA = 590, + RESET = 591, + RESTART = 592, + RESTRICT = 593, + RETURNING = 594, + RETURNS = 595, + REVOKE = 596, + RIGHT = 597, + ROLE = 598, + ROLLBACK = 599, + ROLLUP = 600, + ROUTINE = 601, + ROUTINES = 602, + ROW = 603, + ROWS = 604, + RULE = 605, + SAVEPOINT = 606, + SCHEMA = 607, + SCHEMAS = 608, + SCROLL = 609, + SEARCH = 610, + SECOND_P = 611, + SECURITY = 612, + SELECT = 613, + SEQUENCE = 614, + SEQUENCES = 615, + SERIALIZABLE = 616, + SERVER = 617, + SESSION = 618, + SESSION_USER = 619, + SET = 620, + SETS = 621, + SETOF = 622, + SHARE = 623, + SHOW = 624, + SIMILAR = 625, + SIMPLE = 626, + SKIP = 627, + SMALLINT = 628, + SNAPSHOT = 629, + SOME = 630, + SQL_P = 631, + STABLE = 632, + STANDALONE_P = 633, + START = 634, + STATEMENT = 635, + STATISTICS = 636, + STDIN = 637, + STDOUT = 638, + STORAGE = 639, + STORED = 640, + STRICT_P = 641, + STRIP_P = 642, + SUBSCRIPTION = 643, + SUBSTRING = 644, + SUPPORT = 645, + SYMMETRIC = 646, + SYSID = 647, + SYSTEM_P = 648, + TABLE = 649, + TABLES = 650, + TABLESAMPLE = 651, + TABLESPACE = 652, + TEMP = 653, + TEMPLATE = 654, + TEMPORARY = 655, + TEXT_P = 656, + THEN = 657, + TIES = 658, + TIME = 659, + TIMESTAMP = 660, + TO = 661, + TRAILING = 662, + TRANSACTION = 663, + TRANSFORM = 664, + TREAT = 665, + TRIGGER = 666, + TRIM = 667, + TRUE_P = 668, + TRUNCATE = 669, + TRUSTED = 670, + TYPE_P = 671, + TYPES_P = 672, + UESCAPE = 673, + UNBOUNDED = 674, + UNCOMMITTED = 675, + UNENCRYPTED = 676, + UNION = 677, + UNIQUE = 678, + UNKNOWN = 679, + UNLISTEN = 680, + UNLOGGED = 681, + UNTIL = 682, + UPDATE = 683, + USER = 684, + USING = 685, + VACUUM = 686, + VALID = 687, + VALIDATE = 688, + VALIDATOR = 689, + VALUE_P = 690, + VALUES = 691, + VARCHAR = 692, + VARIADIC = 693, + VARYING = 694, + VERBOSE = 695, + VERSION_P = 696, + VIEW = 697, + VIEWS = 698, + VOLATILE = 699, + WHEN = 700, + WHERE = 701, + WHITESPACE_P = 702, + WINDOW = 703, + WITH = 704, + WITHIN = 705, + WITHOUT = 706, + WORK = 707, + WRAPPER = 708, + WRITE = 709, + XML_P = 710, + XMLATTRIBUTES = 711, + XMLCONCAT = 712, + XMLELEMENT = 713, + XMLEXISTS = 714, + XMLFOREST = 715, + XMLNAMESPACES = 716, + XMLPARSE = 717, + XMLPI = 718, + XMLROOT = 719, + XMLSERIALIZE = 720, + XMLTABLE = 721, + YEAR_P = 722, + YES_P = 723, + ZONE = 724, + NOT_LA = 725, + NULLS_LA = 726, + WITH_LA = 727, + POSTFIXOP = 728, + UMINUS = 729 + }; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + +union YYSTYPE +{ +#line 211 "gram.y" /* yacc.c:352 */ + + 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; + ObjectWithArgs *objwithargs; + DefElem *defelt; + SortBy *sortby; + WindowDef *windef; + JoinExpr *jexpr; + IndexElem *ielem; + Alias *alias; + RangeVar *range; + IntoClause *into; + WithClause *with; + InferClause *infer; + OnConflictClause *onconflict; + A_Indices *aind; + ResTarget *target; + struct PrivTarget *privtarget; + AccessPriv *accesspriv; + struct ImportQual *importqual; + InsertStmt *istmt; + VariableSetStmt *vsetstmt; + PartitionElem *partelem; + PartitionSpec *partspec; + PartitionBoundSpec *partboundspec; + RoleSpec *rolespec; + struct SelectLimit *selectlimit; + +#line 840 "gram.c" /* yacc.c:352 */ +}; + +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + +/* Location type. */ +#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +}; +# define YYLTYPE_IS_DECLARED 1 +# define YYLTYPE_IS_TRIVIAL 1 +#endif + + + +int base_yyparse (core_yyscan_t yyscanner); + +#endif /* !YY_BASE_YY_GRAM_H_INCLUDED */ + + + +#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; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short 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 +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (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 EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +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) + +# define YYCOPY_NEEDED 1 + +/* 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 (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 837 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 104224 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 492 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 673 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 2760 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 5558 + +#define YYUNDEFTOK 2 +#define YYMAXUTOK 729 + +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by 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, 481, 2, 2, + 486, 487, 479, 477, 490, 478, 488, 480, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 491, 489, + 473, 475, 474, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 484, 2, 485, 482, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 476, 483 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 804, 804, 820, 832, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, + 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, + 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, + 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, + 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, + 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, + 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, + 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, + 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, + 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, + 968, 977, 992, 1003, 1004, 1005, 1014, 1015, 1019, 1020, + 1024, 1029, 1033, 1043, 1051, 1055, 1059, 1064, 1068, 1116, + 1118, 1122, 1126, 1130, 1134, 1148, 1166, 1174, 1185, 1186, + 1190, 1198, 1206, 1214, 1235, 1242, 1249, 1256, 1263, 1270, + 1287, 1305, 1316, 1317, 1328, 1338, 1348, 1363, 1381, 1382, + 1386, 1393, 1401, 1402, 1403, 1404, 1405, 1406, 1420, 1426, + 1432, 1441, 1449, 1457, 1461, 1469, 1477, 1484, 1494, 1495, + 1503, 1514, 1522, 1530, 1541, 1549, 1557, 1564, 1573, 1583, + 1584, 1588, 1589, 1592, 1594, 1598, 1599, 1600, 1601, 1605, + 1606, 1607, 1613, 1625, 1629, 1633, 1648, 1655, 1656, 1657, + 1661, 1662, 1663, 1667, 1668, 1672, 1676, 1677, 1684, 1691, + 1701, 1708, 1718, 1719, 1724, 1725, 1730, 1736, 1742, 1748, + 1754, 1764, 1774, 1775, 1779, 1780, 1788, 1803, 1809, 1815, + 1821, 1827, 1846, 1855, 1864, 1873, 1882, 1893, 1904, 1913, + 1922, 1931, 1942, 1953, 1962, 1971, 1980, 1989, 1998, 2007, + 2018, 2032, 2033, 2038, 2051, 2067, 2083, 2092, 2101, 2110, + 2119, 2128, 2136, 2144, 2152, 2161, 2170, 2186, 2195, 2204, + 2213, 2230, 2239, 2248, 2257, 2267, 2280, 2295, 2304, 2312, + 2327, 2335, 2345, 2355, 2362, 2370, 2378, 2385, 2392, 2400, + 2408, 2416, 2423, 2430, 2438, 2445, 2452, 2460, 2468, 2476, + 2484, 2492, 2500, 2510, 2517, 2525, 2533, 2541, 2549, 2557, + 2564, 2571, 2578, 2584, 2594, 2595, 2599, 2600, 2601, 2605, + 2613, 2617, 2618, 2622, 2629, 2636, 2643, 2653, 2656, 2657, + 2661, 2662, 2667, 2671, 2675, 2680, 2687, 2689, 2694, 2698, + 2702, 2713, 2721, 2774, 2787, 2801, 2813, 2820, 2824, 2838, + 2851, 2852, 2857, 2866, 2876, 2886, 2912, 2918, 2951, 2986, + 3008, 3009, 3013, 3014, 3023, 3024, 3025, 3028, 3029, 3034, + 3035, 3039, 3043, 3047, 3051, 3055, 3059, 3063, 3067, 3071, + 3075, 3079, 3083, 3087, 3096, 3100, 3104, 3108, 3112, 3113, + 3118, 3122, 3129, 3136, 3137, 3138, 3139, 3140, 3144, 3148, + 3156, 3167, 3186, 3205, 3225, 3245, 3265, 3298, 3299, 3300, + 3301, 3302, 3309, 3316, 3317, 3321, 3322, 3326, 3327, 3331, + 3335, 3342, 3346, 3353, 3354, 3355, 3359, 3360, 3363, 3384, + 3402, 3423, 3424, 3428, 3435, 3436, 3437, 3468, 3475, 3482, + 3493, 3504, 3516, 3525, 3534, 3557, 3575, 3576, 3595, 3602, + 3609, 3616, 3627, 3638, 3639, 3640, 3644, 3645, 3646, 3647, + 3648, 3649, 3650, 3651, 3652, 3661, 3668, 3672, 3685, 3701, + 3716, 3732, 3747, 3766, 3787, 3788, 3792, 3793, 3797, 3798, + 3801, 3807, 3808, 3811, 3815, 3823, 3828, 3834, 3835, 3839, + 3844, 3851, 3852, 3862, 3864, 3866, 3868, 3871, 3874, 3877, + 3881, 3882, 3883, 3884, 3885, 3888, 3889, 3893, 3894, 3897, + 3909, 3910, 3913, 3924, 3935, 3949, 3950, 3955, 3956, 3957, + 3960, 3961, 3962, 3963, 3966, 3967, 3970, 3971, 3974, 3992, + 4004, 4028, 4036, 4057, 4070, 4086, 4102, 4103, 4104, 4116, + 4129, 4145, 4159, 4160, 4172, 4192, 4202, 4215, 4223, 4234, + 4235, 4238, 4239, 4242, 4243, 4246, 4250, 4254, 4258, 4262, + 4266, 4270, 4274, 4278, 4282, 4286, 4291, 4295, 4299, 4305, + 4306, 4310, 4311, 4312, 4317, 4320, 4321, 4333, 4348, 4363, + 4364, 4372, 4373, 4377, 4378, 4382, 4383, 4387, 4388, 4392, + 4402, 4415, 4416, 4426, 4437, 4438, 4451, 4458, 4475, 4483, + 4494, 4497, 4501, 4505, 4509, 4516, 4528, 4538, 4541, 4545, + 4558, 4567, 4576, 4585, 4594, 4603, 4612, 4621, 4630, 4639, + 4648, 4657, 4666, 4675, 4684, 4693, 4702, 4711, 4720, 4729, + 4738, 4747, 4756, 4765, 4774, 4783, 4792, 4801, 4819, 4830, + 4831, 4832, 4833, 4837, 4838, 4842, 4843, 4853, 4861, 4873, + 4874, 4878, 4882, 4890, 4894, 4898, 4905, 4909, 4914, 4919, + 4926, 4933, 4938, 4948, 4960, 4975, 4976, 4981, 4982, 4986, + 4987, 4997, 5006, 5014, 5031, 5051, 5071, 5092, 5123, 5132, + 5153, 5168, 5169, 5173, 5181, 5196, 5205, 5217, 5218, 5230, + 5238, 5255, 5279, 5296, 5310, 5311, 5315, 5316, 5320, 5321, + 5325, 5326, 5330, 5344, 5348, 5349, 5353, 5354, 5355, 5356, + 5357, 5367, 5378, 5379, 5390, 5411, 5437, 5438, 5439, 5443, + 5445, 5467, 5469, 5471, 5473, 5475, 5480, 5481, 5485, 5486, + 5490, 5501, 5502, 5506, 5515, 5519, 5523, 5528, 5538, 5539, + 5543, 5544, 5548, 5549, 5553, 5554, 5558, 5559, 5560, 5564, + 5568, 5569, 5570, 5574, 5575, 5580, 5581, 5608, 5609, 5610, + 5611, 5612, 5613, 5626, 5636, 5650, 5652, 5657, 5662, 5664, + 5669, 5679, 5680, 5681, 5682, 5693, 5712, 5723, 5735, 5745, + 5755, 5766, 5775, 5782, 5789, 5798, 5807, 5816, 5825, 5834, + 5844, 5853, 5865, 5868, 5869, 5872, 5876, 5883, 5884, 5885, + 5886, 5887, 5888, 5891, 5894, 5895, 5903, 5910, 5911, 5914, + 5916, 5927, 5938, 5949, 5960, 5973, 5974, 5990, 6005, 6006, + 6010, 6022, 6032, 6040, 6049, 6058, 6059, 6062, 6063, 6066, + 6067, 6068, 6071, 6085, 6090, 6100, 6109, 6121, 6122, 6126, + 6134, 6146, 6156, 6169, 6179, 6201, 6211, 6229, 6239, 6249, + 6259, 6269, 6279, 6289, 6299, 6309, 6319, 6329, 6339, 6353, + 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, + 6364, 6365, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6381, + 6382, 6383, 6387, 6388, 6391, 6392, 6395, 6397, 6402, 6403, + 6414, 6425, 6426, 6427, 6461, 6469, 6477, 6485, 6493, 6501, + 6509, 6517, 6525, 6538, 6546, 6554, 6562, 6570, 6578, 6586, + 6594, 6602, 6610, 6622, 6623, 6624, 6625, 6626, 6627, 6628, + 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6640, 6641, 6642, + 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6655, + 6656, 6670, 6680, 6690, 6700, 6710, 6720, 6730, 6740, 6750, + 6762, 6763, 6768, 6769, 6770, 6771, 6772, 6773, 6778, 6779, + 6780, 6781, 6782, 6783, 6784, 6785, 6788, 6789, 6799, 6805, + 6813, 6821, 6829, 6837, 6845, 6853, 6861, 6869, 6877, 6885, + 6893, 6901, 6909, 6917, 6925, 6933, 6943, 6944, 6947, 6948, + 6958, 6974, 6988, 7014, 7016, 7018, 7020, 7027, 7036, 7037, + 7040, 7047, 7054, 7061, 7075, 7083, 7091, 7099, 7107, 7115, + 7123, 7131, 7139, 7147, 7155, 7163, 7171, 7179, 7187, 7195, + 7203, 7211, 7219, 7227, 7239, 7240, 7244, 7245, 7250, 7251, + 7261, 7274, 7284, 7296, 7297, 7300, 7301, 7311, 7321, 7322, + 7326, 7330, 7334, 7345, 7358, 7372, 7389, 7390, 7391, 7392, + 7393, 7394, 7406, 7436, 7469, 7470, 7474, 7475, 7479, 7480, + 7484, 7485, 7488, 7489, 7494, 7506, 7525, 7530, 7535, 7542, + 7543, 7546, 7547, 7550, 7551, 7554, 7555, 7558, 7559, 7560, + 7563, 7564, 7565, 7581, 7593, 7606, 7618, 7633, 7634, 7637, + 7638, 7642, 7643, 7647, 7648, 7653, 7665, 7672, 7679, 7694, + 7695, 7699, 7700, 7715, 7724, 7733, 7742, 7751, 7763, 7764, + 7765, 7766, 7767, 7773, 7777, 7792, 7793, 7799, 7809, 7813, + 7818, 7826, 7867, 7871, 7875, 7879, 7887, 7888, 7892, 7902, + 7903, 7909, 7910, 7917, 7921, 7925, 7929, 7933, 7937, 7941, + 7945, 7949, 7953, 7957, 7961, 7965, 7969, 7973, 7977, 7982, + 7989, 7993, 7997, 8001, 8005, 8011, 8012, 8019, 8020, 8024, + 8025, 8028, 8040, 8044, 8059, 8067, 8075, 8087, 8088, 8093, + 8094, 8111, 8121, 8131, 8141, 8151, 8161, 8174, 8184, 8197, + 8207, 8220, 8228, 8230, 8232, 8237, 8239, 8244, 8245, 8250, + 8268, 8277, 8278, 8282, 8286, 8298, 8309, 8320, 8333, 8334, + 8335, 8339, 8351, 8352, 8362, 8374, 8378, 8382, 8386, 8393, + 8413, 8423, 8433, 8443, 8455, 8456, 8459, 8460, 8461, 8464, + 8465, 8468, 8478, 8487, 8504, 8513, 8522, 8531, 8540, 8549, + 8558, 8567, 8576, 8585, 8594, 8603, 8612, 8622, 8632, 8641, + 8650, 8659, 8668, 8677, 8686, 8696, 8706, 8716, 8726, 8736, + 8746, 8756, 8766, 8776, 8786, 8796, 8806, 8817, 8828, 8839, + 8850, 8861, 8872, 8882, 8892, 8903, 8914, 8924, 8934, 8942, + 8951, 8960, 8969, 8978, 8987, 8996, 9005, 9014, 9023, 9037, + 9038, 9041, 9042, 9052, 9061, 9070, 9079, 9089, 9098, 9109, + 9110, 9120, 9129, 9138, 9147, 9156, 9165, 9174, 9183, 9192, + 9201, 9210, 9219, 9228, 9237, 9246, 9255, 9264, 9273, 9282, + 9291, 9300, 9309, 9318, 9327, 9336, 9345, 9354, 9372, 9381, + 9382, 9385, 9387, 9393, 9394, 9395, 9396, 9397, 9409, 9424, + 9432, 9440, 9448, 9456, 9464, 9472, 9480, 9488, 9496, 9504, + 9512, 9520, 9528, 9536, 9544, 9552, 9560, 9568, 9576, 9584, + 9592, 9600, 9608, 9626, 9645, 9646, 9650, 9654, 9674, 9681, + 9689, 9697, 9714, 9727, 9731, 9738, 9747, 9756, 9765, 9774, + 9784, 9794, 9812, 9820, 9836, 9853, 9854, 9855, 9860, 9866, + 9875, 9876, 9877, 9878, 9879, 9883, 9884, 9887, 9888, 9889, + 9890, 9894, 9895, 9896, 9908, 9918, 9919, 9922, 9931, 9937, + 9956, 9964, 9971, 9978, 9986, 9994, 10002, 10009, 10016, 10023, + 10030, 10037, 10044, 10051, 10060, 10061, 10062, 10066, 10069, 10072, + 10075, 10078, 10085, 10087, 10089, 10094, 10096, 10100, 10101, 10102, + 10114, 10127, 10140, 10158, 10179, 10180, 10181, 10182, 10192, 10208, + 10218, 10219, 10223, 10224, 10228, 10232, 10236, 10254, 10255, 10256, + 10257, 10258, 10259, 10260, 10267, 10268, 10279, 10286, 10293, 10304, + 10321, 10329, 10337, 10345, 10356, 10360, 10371, 10383, 10400, 10406, + 10422, 10435, 10444, 10452, 10460, 10469, 10480, 10491, 10501, 10502, + 10513, 10523, 10534, 10545, 10556, 10567, 10576, 10588, 10589, 10603, + 10626, 10636, 10647, 10660, 10661, 10673, 10693, 10703, 10714, 10725, + 10729, 10736, 10737, 10741, 10748, 10749, 10753, 10754, 10755, 10759, + 10760, 10764, 10765, 10768, 10769, 10772, 10773, 10777, 10778, 10782, + 10789, 10791, 10796, 10797, 10810, 10817, 10827, 10834, 10844, 10845, + 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10856, 10860, 10867, + 10874, 10875, 10879, 10880, 10881, 10891, 10901, 10902, 10906, 10907, + 10908, 10909, 10919, 10926, 10943, 10962, 10963, 10973, 10979, 10985, + 10991, 11007, 11025, 11029, 11037, 11043, 11050, 11056, 11063, 11072, + 11073, 11077, 11079, 11084, 11095, 11105, 11115, 11121, 11130, 11139, + 11145, 11146, 11157, 11171, 11172, 11183, 11194, 11195, 11198, 11199, + 11200, 11201, 11202, 11203, 11204, 11205, 11208, 11209, 11213, 11214, + 11215, 11226, 11244, 11245, 11249, 11254, 11278, 11289, 11290, 11300, + 11311, 11314, 11315, 11316, 11317, 11318, 11321, 11322, 11323, 11371, + 11372, 11376, 11377, 11392, 11393, 11400, 11408, 11416, 11424, 11432, + 11440, 11451, 11452, 11479, 11493, 11508, 11509, 11528, 11532, 11536, + 11553, 11560, 11567, 11577, 11578, 11581, 11594, 11595, 11596, 11600, + 11601, 11605, 11617, 11625, 11630, 11635, 11640, 11645, 11653, 11661, + 11666, 11671, 11678, 11679, 11683, 11684, 11685, 11692, 11693, 11697, + 11698, 11702, 11703, 11707, 11711, 11712, 11715, 11724, 11737, 11742, + 11747, 11751, 11762, 11763, 11767, 11775, 11791, 11799, 11807, 11815, + 11826, 11829, 11834, 11835, 11843, 11863, 11864, 11866, 11871, 11872, + 11876, 11877, 11880, 11881, 11906, 11907, 11911, 11912, 11916, 11917, + 11918, 11919, 11920, 11924, 11937, 11944, 11951, 11958, 11959, 11963, + 11964, 11968, 11969, 11973, 11974, 11978, 11989, 11990, 11991, 11992, + 11996, 11997, 12007, 12013, 12031, 12032, 12036, 12037, 12043, 12048, + 12056, 12063, 12071, 12077, 12084, 12119, 12144, 12148, 12174, 12178, + 12190, 12203, 12217, 12228, 12243, 12249, 12254, 12260, 12267, 12268, + 12276, 12280, 12284, 12290, 12297, 12302, 12303, 12304, 12305, 12309, + 12310, 12322, 12323, 12328, 12335, 12342, 12349, 12360, 12361, 12374, + 12378, 12385, 12398, 12411, 12412, 12427, 12437, 12449, 12454, 12455, + 12458, 12459, 12462, 12463, 12468, 12469, 12474, 12475, 12483, 12488, + 12489, 12493, 12497, 12503, 12527, 12537, 12550, 12551, 12555, 12569, + 12626, 12640, 12642, 12647, 12649, 12651, 12653, 12658, 12660, 12665, + 12673, 12693, 12698, 12705, 12710, 12716, 12721, 12730, 12732, 12735, + 12739, 12740, 12741, 12742, 12743, 12744, 12749, 12769, 12770, 12771, + 12772, 12783, 12789, 12797, 12798, 12804, 12809, 12814, 12819, 12824, + 12829, 12834, 12839, 12845, 12851, 12857, 12864, 12886, 12895, 12899, + 12907, 12911, 12919, 12931, 12952, 12956, 12962, 12966, 12979, 12987, + 12997, 12999, 13001, 13003, 13005, 13007, 13012, 13013, 13020, 13029, + 13037, 13046, 13057, 13065, 13066, 13067, 13071, 13073, 13075, 13077, + 13079, 13081, 13083, 13088, 13093, 13099, 13107, 13112, 13119, 13126, + 13130, 13134, 13170, 13171, 13173, 13181, 13196, 13198, 13200, 13202, + 13204, 13206, 13208, 13210, 13212, 13214, 13216, 13218, 13220, 13222, + 13225, 13227, 13229, 13232, 13234, 13236, 13238, 13241, 13246, 13254, + 13259, 13267, 13272, 13280, 13285, 13294, 13302, 13310, 13318, 13336, + 13344, 13352, 13360, 13368, 13384, 13392, 13400, 13408, 13416, 13424, + 13432, 13436, 13440, 13444, 13448, 13456, 13464, 13472, 13480, 13500, + 13522, 13533, 13540, 13556, 13561, 13567, 13571, 13575, 13579, 13583, + 13608, 13610, 13612, 13614, 13616, 13618, 13620, 13622, 13624, 13626, + 13628, 13630, 13632, 13634, 13636, 13638, 13640, 13642, 13644, 13646, + 13650, 13654, 13658, 13662, 13667, 13683, 13684, 13685, 13700, 13734, + 13736, 13738, 13749, 13773, 13784, 13795, 13802, 13812, 13822, 13831, + 13835, 13841, 13848, 13855, 13865, 13872, 13900, 13935, 13946, 13947, + 13954, 13960, 13964, 13968, 13972, 13976, 13980, 13984, 13988, 13992, + 13996, 14000, 14004, 14008, 14012, 14016, 14020, 14022, 14026, 14030, + 14034, 14043, 14048, 14055, 14070, 14077, 14081, 14085, 14089, 14093, + 14100, 14108, 14116, 14120, 14124, 14128, 14132, 14136, 14142, 14146, + 14155, 14159, 14163, 14168, 14182, 14184, 14188, 14190, 14192, 14195, + 14198, 14201, 14202, 14205, 14213, 14223, 14224, 14227, 14228, 14229, + 14234, 14238, 14242, 14246, 14253, 14254, 14262, 14263, 14267, 14268, + 14276, 14277, 14281, 14282, 14287, 14295, 14297, 14311, 14314, 14341, + 14342, 14345, 14346, 14354, 14361, 14368, 14376, 14385, 14402, 14447, + 14455, 14463, 14471, 14479, 14490, 14491, 14492, 14493, 14494, 14508, + 14509, 14510, 14513, 14514, 14517, 14520, 14521, 14522, 14525, 14526, + 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, + 14539, 14540, 14543, 14545, 14550, 14552, 14557, 14559, 14561, 14563, + 14565, 14567, 14579, 14583, 14590, 14594, 14600, 14604, 14613, 14624, + 14625, 14628, 14632, 14636, 14642, 14643, 14648, 14652, 14659, 14660, + 14661, 14662, 14663, 14664, 14665, 14666, 14670, 14671, 14672, 14673, + 14683, 14687, 14694, 14701, 14702, 14718, 14722, 14727, 14731, 14746, + 14751, 14755, 14758, 14761, 14762, 14763, 14766, 14773, 14783, 14797, + 14798, 14802, 14813, 14814, 14817, 14818, 14821, 14825, 14832, 14836, + 14840, 14848, 14859, 14860, 14864, 14865, 14869, 14870, 14873, 14874, + 14884, 14885, 14889, 14890, 14893, 14909, 14917, 14925, 14947, 14948, + 14959, 14963, 14990, 14992, 14997, 15000, 15003, 15005, 15007, 15009, + 15019, 15021, 15032, 15036, 15040, 15044, 15048, 15057, 15064, 15096, + 15100, 15106, 15113, 15117, 15121, 15127, 15128, 15130, 15131, 15132, + 15136, 15169, 15196, 15200, 15206, 15208, 15225, 15226, 15227, 15232, + 15233, 15234, 15239, 15240, 15241, 15242, 15248, 15249, 15250, 15251, + 15252, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, + 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, + 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, + 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, + 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, + 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, + 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, + 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, + 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, + 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, + 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, + 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, + 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, + 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, + 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, + 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, + 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, + 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, + 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, + 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, + 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, + 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, + 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, + 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, + 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, + 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, + 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, + 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, + 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, + 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, + 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, + 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, + 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, + 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, + 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, + 15634, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, + 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, + 15667, 15668, 15669, 15670, 15680, 15681, 15682, 15683, 15684, 15685, + 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, + 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, + 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, + 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, + 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, + 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, + 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, + 15756 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* 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", "UIDENT", "FCONST", "SCONST", + "USCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", + "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", + "GREATER_EQUALS", "NOT_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", "ATTACH", "ATTRIBUTE", + "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", + "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", "CALLED", + "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", + "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", + "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", + "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", + "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", + "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", + "CROSS", "CSV", "CUBE", "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", "DEPENDS", "DESC", "DETACH", "DICTIONARY", "DISABLE_P", + "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", + "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", + "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", + "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPRESSION", "EXTENSION", + "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", + "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", + "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GENERATED", "GLOBAL", "GRANT", + "GRANTED", "GREATEST", "GROUP_P", "GROUPING", "GROUPS", "HANDLER", + "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", + "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE", + "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", "LATERAL_P", "LEADING", "LEAKPROOF", + "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", + "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOCKED", "LOGGED", + "MAPPING", "MATCH", "MATERIALIZED", "MAXVALUE", "METHOD", "MINUTE_P", + "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NEW", "NEXT", "NFC", "NFD", "NFKC", "NFKD", "NO", + "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", + "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", + "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", + "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED", "OWNER", + "PARALLEL", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", + "PLACING", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", + "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", + "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM", "PUBLICATION", + "QUOTE", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", + "REF", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P", + "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", + "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES", "ROW", "ROWS", "RULE", + "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P", + "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", + "SESSION", "SESSION_USER", "SET", "SETS", "SETOF", "SHARE", "SHOW", + "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", + "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", + "STDOUT", "STORAGE", "STORED", "STRICT_P", "STRIP_P", "SUBSCRIPTION", + "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", + "TABLES", "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", + "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP", "TO", "TRAILING", + "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", + "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UESCAPE", "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", "VIEWS", "VOLATILE", "WHEN", + "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", + "WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", + "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", + "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", + "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", + "'.'", "';'", "','", "':'", "$accept", "stmtblock", "stmtmulti", "stmt", + "CallStmt", "CreateRoleStmt", "opt_with", "OptRoleList", + "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", + "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", + "DropRoleStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", + "CreateSchemaStmt", "OptSchemaName", "OptSchemaEltList", "schema_stmt", + "VariableSetStmt", "set_rest", "generic_set", "set_rest_more", + "var_name", "var_list", "var_value", "iso_level", + "opt_boolean_or_string", "zone_value", "opt_encoding", + "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest", + "generic_reset", "SetResetClause", "FunctionSetResetClause", + "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list", + "constraints_set_mode", "CheckPointStmt", "DiscardStmt", + "AlterTableStmt", "alter_table_cmds", "partition_cmd", + "index_partition_cmd", "alter_table_cmd", "alter_column_default", + "opt_drop_behavior", "opt_collate_clause", "alter_using", + "replica_identity", "reloptions", "opt_reloptions", "reloption_list", + "reloption_elem", "alter_identity_column_option_list", + "alter_identity_column_option", "PartitionBoundSpec", + "hash_partbound_elem", "hash_partbound", "AlterCompositeTypeStmt", + "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt", + "copy_from", "opt_program", "copy_file_name", "copy_options", + "copy_opt_list", "copy_opt_item", "opt_binary", "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", "generated_when", "ConstraintAttr", + "TableLikeClause", "TableLikeOptionList", "TableLikeOption", + "TableConstraint", "ConstraintElem", "opt_no_inherit", "opt_column_list", + "columnList", "columnElem", "opt_c_include", "key_match", + "ExclusionConstraintList", "ExclusionConstraintElem", + "ExclusionWhereClause", "key_actions", "key_update", "key_delete", + "key_action", "OptInherit", "OptPartitionSpec", "PartitionSpec", + "part_params", "part_elem", "table_access_method_clause", "OptWith", + "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex", + "CreateStatsStmt", "AlterStatsStmt", "CreateAsStmt", "create_as_target", + "opt_with_data", "CreateMatViewStmt", "create_mv_target", "OptNoLog", + "RefreshMatViewStmt", "CreateSeqStmt", "AlterSeqStmt", "OptSeqOptList", + "OptParenthesizedSeqOptList", "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", "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", "AlterForeignServerStmt", + "CreateForeignTableStmt", "AlterForeignTableStmt", + "ImportForeignSchemaStmt", "import_qualification_type", + "import_qualification", "CreateUserMappingStmt", "auth_ident", + "DropUserMappingStmt", "AlterUserMappingStmt", "CreatePolicyStmt", + "AlterPolicyStmt", "RowSecurityOptionalExpr", + "RowSecurityOptionalWithCheck", "RowSecurityDefaultToRole", + "RowSecurityOptionalToRole", "RowSecurityDefaultPermissive", + "RowSecurityDefaultForCmd", "row_security_cmd", "CreateAmStmt", + "am_type", "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", + "TriggerOneEvent", "TriggerReferencing", "TriggerTransitions", + "TriggerTransition", "TransitionOldOrNew", "TransitionRowOrTable", + "TransitionRelName", "TriggerForSpec", "TriggerForOptEach", + "TriggerForType", "TriggerWhen", "FUNCTION_or_PROCEDURE", + "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", + "ConstraintAttributeSpec", "ConstraintAttributeElem", + "CreateEventTrigStmt", "event_trigger_when_list", + "event_trigger_when_item", "event_trigger_value_list", + "AlterEventTrigStmt", "enable_trigger", "CreateAssertionStmt", + "DefineStmt", "definition", "def_list", "def_elem", "def_arg", + "old_aggr_definition", "old_aggr_list", "old_aggr_elem", + "opt_enum_val_list", "enum_val_list", "AlterEnumStmt", + "opt_if_not_exists", "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", "drop_type_name", "drop_type_name_on_any_name", + "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt", + "opt_restart_seqs", "CommentStmt", "comment_type_any_name", + "comment_type_name", "comment_text", "SecLabelStmt", "opt_provider", + "security_label_type_any_name", "security_label_type_name", + "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", + "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_options", + "index_elem", "opt_include", "index_including_params", "opt_collate", + "opt_class", "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt", + "opt_or_replace", "func_args", "func_args_list", + "function_with_argtypes_list", "function_with_argtypes", + "func_args_with_defaults", "func_args_with_defaults_list", "func_arg", + "arg_class", "param_name", "func_return", "func_type", + "func_arg_with_default", "aggr_arg", "aggr_args", "aggr_args_list", + "aggregate_with_argtypes", "aggregate_with_argtypes_list", + "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item", + "func_as", "transform_type_list", "opt_definition", "table_func_column", + "table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list", + "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", + "oper_argtypes", "any_operator", "operator_with_argtypes_list", + "operator_with_argtypes", "DoStmt", "dostmt_opt_list", "dostmt_opt_item", + "CreateCastStmt", "cast_context", "DropCastStmt", "opt_if_exists", + "CreateTransformStmt", "transform_element_list", "DropTransformStmt", + "ReindexStmt", "reindex_target_type", "reindex_target_multitable", + "reindex_option_list", "reindex_option_elem", "AlterTblSpcStmt", + "RenameStmt", "opt_column", "opt_set_data", "AlterObjectDependsStmt", + "opt_no", "AlterObjectSchemaStmt", "AlterOperatorStmt", + "operator_def_list", "operator_def_elem", "operator_def_arg", + "AlterTypeStmt", "AlterOwnerStmt", "CreatePublicationStmt", + "opt_publication_for_tables", "publication_for_tables", + "AlterPublicationStmt", "CreateSubscriptionStmt", + "publication_name_list", "publication_name_item", + "AlterSubscriptionStmt", "DropSubscriptionStmt", "RuleStmt", + "RuleActionList", "RuleActionMulti", "RuleActionStmt", + "RuleActionStmtOrEmpty", "event", "opt_instead", "NotifyStmt", + "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt", + "opt_transaction", "transaction_mode_item", "transaction_mode_list", + "transaction_mode_list_or_empty", "opt_transaction_chain", "ViewStmt", + "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", + "createdb_opt_items", "createdb_opt_item", "createdb_opt_name", + "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt", + "drop_option_list", "drop_option", "AlterCollationStmt", + "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", + "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with", + "CreateConversionStmt", "ClusterStmt", "cluster_index_specification", + "VacuumStmt", "AnalyzeStmt", "vac_analyze_option_list", + "analyze_keyword", "vac_analyze_option_elem", "vac_analyze_option_name", + "vac_analyze_option_arg", "opt_analyze", "opt_verbose", "opt_full", + "opt_freeze", "opt_name_list", "vacuum_relation", "vacuum_relation_list", + "opt_vacuum_relation_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_target", "insert_rest", + "override_kind", "insert_column_list", "insert_column_item", + "opt_on_conflict", "opt_conf_expr", "returning_clause", "DeleteStmt", + "using_clause", "LockStmt", "opt_lock", "lock_type", "opt_nowait", + "opt_nowait_or_skip", "UpdateStmt", "set_clause_list", "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_materialized", "opt_with_clause", + "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", + "distinct_clause", "opt_all_clause", "opt_sort_clause", "sort_clause", + "sortby_list", "sortby", "select_limit", "opt_select_limit", + "limit_clause", "offset_clause", "select_limit_value", + "select_offset_value", "select_fetch_first_value", "I_or_F_const", + "row_or_rows", "first_or_next", "group_clause", "group_by_list", + "group_by_item", "empty_grouping_set", "rollup_clause", "cube_clause", + "grouping_sets_clause", "having_clause", "for_locking_clause", + "opt_for_locking_clause", "for_locking_items", "for_locking_item", + "for_locking_strength", "locked_rels_list", "values_clause", + "from_clause", "from_list", "table_ref", "joined_table", "alias_clause", + "opt_alias_clause", "func_alias_clause", "join_type", "join_outer", + "join_qual", "relation_expr", "relation_expr_list", + "relation_expr_opt_alias", "tablesample_clause", "opt_repeatable_clause", + "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", + "opt_ordinality", "where_clause", "where_or_current_clause", + "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement", + "xmltable", "xmltable_column_list", "xmltable_column_el", + "xmltable_column_option_list", "xmltable_column_option_el", + "xml_namespace_list", "xml_namespace_el", "Typename", "opt_array_bounds", + "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers", + "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength", + "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength", + "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime", + "ConstInterval", "opt_timezone", "opt_interval", "interval_second", + "a_expr", "b_expr", "c_expr", "func_application", "func_expr", + "func_expr_windowless", "func_expr_common_subexpr", "xml_root_version", + "opt_xml_root_standalone", "xml_attributes", "xml_attribute_list", + "xml_attribute_el", "document_or_content", "xml_whitespace_option", + "xmlexists_argument", "xml_passing_mech", "within_group_clause", + "filter_clause", "window_clause", "window_definition_list", + "window_definition", "over_clause", "window_specification", + "opt_existing_window_name", "opt_partition_clause", "opt_frame_clause", + "frame_extent", "frame_bound", "opt_window_exclusion_clause", "row", + "explicit_row", "implicit_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", "unicode_normal_form", "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", + "opt_slice_bound", "indirection", "opt_indirection", "opt_asymmetric", + "opt_target_list", "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", "SignedIconst", "RoleId", "RoleSpec", "role_list", + "ColId", "type_function_name", "NonReservedWord", "ColLabel", + "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", + "reserved_keyword", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 60, 62, 61, 728, 43, 45, 42, + 47, 37, 94, 729, 91, 93, 40, 41, 46, 59, + 44, 58 +}; +# endif + +#define YYPACT_NINF -4993 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-4993))) + +#define YYTABLE_NINF -2667 + +#define yytable_value_is_error(Yytable_value) \ + (!!((Yytable_value) == (-2667))) + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const int yypact[] = +{ + 10132, 32, 18235, -4993, -4993, 32, 62332, -4993, 70271, 483, + 742, 82, 185, 16685, 70738, 78210, 752, 906, 15953, 32, + 78210, 1045, 53458, 67469, 1057, 78210, 1131, 930, 53458, 78210, + 78677, 1043, 1115, 965, 79144, 71205, 66068, 721, 78210, 1165, + 919, 79611, 71672, 1049, 72139, 930, 49732, 362, 980, 80078, + 78210, 1457, 1482, 1070, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + 3, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, 1982, -4993, 1496, 2118, 1257, 991, 1080, -4993, -4993, + 1640, 62332, 78210, 78210, 78210, 1440, 78210, 1349, 78210, 505, + 62332, 58129, 72606, 1576, 1413, 45960, 80545, -4993, 62332, 78210, + 56261, 62332, 78210, 78210, 81012, 78210, 81479, 78210, 1864, 68870, + 78210, 1618, 78210, 78210, 56728, 81946, 1765, 1234, 286, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, 1536, 1613, -4993, 290, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, 78210, 17439, 1131, 1640, + -4993, 1457, 78210, 1833, 78210, 1659, 82413, 1754, 78210, -4993, + 78210, 1784, 82880, 806, 1990, 58129, 2122, 46433, 1939, 78210, + 78210, 58129, 83347, 83814, 84281, 78210, 78210, -4993, -4993, 1904, + 78210, 78210, -4993, 2064, 58596, 1577, 2092, 2197, 2154, 794, + -4993, 73073, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + 61398, 906, -4993, -4993, 2132, 62799, 2205, -4993, -4993, 84748, + 101490, 1989, -4993, 824, 63266, 59063, 2330, 2014, 46906, 2384, + -4993, 63733, -4993, 59530, 64200, -4993, -4993, -4993, -4993, -4993, + 85215, -4993, 85682, 2105, 2205, -4993,101943, 59997, -4993, 2258, + 86149, 86616, 87083, 1640, 1986, 1651, 2507, 41735, -4993, -4993, + -4993, 483, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + 326, 291, 220, 207, 255, -4993, -4993, 221, 227, 233, + 326, 2471, 2471, -4993, 78210, -4993, -4993, 291, 62, 2005, + 2005, 2005, 2223, 908, -4993, 2005, 2156, -4993, -4993, -4993, + -4993, 72139, -4993, 2023, 1131, 2067, 2502, 2141, -4993, -4993, + -4993, -4993, -4993, 2139, 2516, 2516, 78210, -4993, -4993, 2546, + 2177, 2428, 2167, -4993, -4993, -4993, 2419, 2425, 2404, 161, + 1131, 259, -4993, 2528, -4993, 2433, 28449, 28449, 1131, 73540, + 87550, 226, 61398, 1131, 74007, 2227, 1520, 2459, -4993, -4993, + -4993, 739, -4993, 2726, 2315, 2592, 2167, 1234, 43136, -4993, + 2338, 1613, 72139, -4993, -4993, -4993, 60464, 2657, 30365, 78210, + 2337, -4993, 2347, 2337, 2354, 2369, 1257, -4993, 10132, 60464, + 78210, 1142, 1142, 2854, 1142, 1656, 1706, -4993, 2186, -4993, + 2748, 2708, 72139, 2437, 308, -4993, 1850, 2438, 1796, 2431, + 1978, 1035, -4993, -4993, 912, 78210, 453, 2481, 74474, 5152, + 2465, 1613, 2467, -4993, -4993, -4993, 2625, 384, -4993, -4993, + -4993, -4993, 2769, 2819, 6309, 263, 74941, -4993, -4993, -4993, + -4993, 78210, 78210, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, 2485, 1469, -4993, -4993, 2487, 2832, 2704, 6322, + 1007, 2791, 2675, 1175, 9600, 2731, 1662, 2863, 6659, 1401, + 2873, 1991, 1772, 75408, 78210, 2837, 2886, 6754, 1875, 851, + 2766, 1268, 2791, 2890, 2725, 1175, 2913, 7508, 78210, -4993, + 2844, 2952, 101, -4993, 272, -4993, 23225, 30365, 49265, -4993, + 1613, 2646, 2805, 822, 2845, 62332, 2611, -4993, -4993, 78210, + -4993, -4993,102396, 2687, -4993, 837, 62332, -4993, 2838, 2662, + 47379, 78210, 62332, -4993, -4993, 62332, 78210, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, 2774, 2951, 78210,102396, -4993, 2917, + 78210, 78210, -4993, -4993, 2665, -4993, -4993, -4993, -4993, 2005, + 78210, 3076,102396, 2897, 373, 78210, 10, 3116, 78210, 2901, + 10, 2715, 88017, -4993, -4993, 10, -4993, -4993, -4993, 78210, + 78210, 2683, 1977, 2892, 3030, 10, 2934, 3153, 3157, 2940, + 2788, 2943, 2347, 3125, 2919, 1065, 1461, 197, 1878, 10, + 2773, 88484, 88951, 78210, 2775, 78210, 2516, 62332, 62332, 62332, + 78210, 3055, -4993, 2905, -4993, -4993, 1079, -4993, -4993, -4993, + -4993, -4993, 3073, -4993, 169, 3074, 2741, 3089, 1388, -4993, + -4993, 2800, -4993, 2800, 2800, 2754, 2754, 2935, 2756, 3095, + -4993, -4993, -4993, 405, 2800, 2754, -4993,103302, -4993, 1713, + 1795, -4993, 190, -4993, 3212, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, 2764, -4993, 813, 2111, -4993, -4993, 2799, + -4993, 3106, 194, -4993, 3107, -4993, 2767, 89418, -4993, 89885, + 90352, 3108, 292, -4993, 58129, 3112, 194, 3113, 2767, 3114, + 194, 3115, 848, 3120, -4993, 1111, 3118, 3128, 190, 3129, + 1997, 2767, 61865, 3132, 309, -4993, 3134, 319, -4993, 3135, + 3007, -4993, 30365, -4993, 2895, -4993, 980, -4993, 1738, -4993, + 52522, -4993, 2507, 291, -4993, 78210, 291, 78210, 291, 78210, + 291, 78210, 291, 78210, 78210, 78210, 291, -4993, -4993, -4993, + 78210, 2806, 78210, 78210, -4993, -4993, -4993, 67936, 58129, 68403, + -4993, 78210, -4993, 413, 1131, -4993, -4993,102396, 3249, 58129, + 2516, -4993, 1891, -4993, -4993, 78210, 78210, -4993, -4993, -4993, + 3065, 78210, 3143, 3144, 67936, 58129, -4993, 90819, -4993, 61398, + 3028, 2821, -4993, -4993, -4993, -4993, -4993, 2079, 3302, 216, + 3303, 30365, 2825, 216, 216, 2826, 3152, -4993, -4993, -4993, + 310, 2828, 2840, -4993, 232, 232, -4993, 2855, 2860, -4993, + 240, 2861, 2864, 3312, 3322, 245, 2866, 2867, 2868, 405, + 216, 2869, 30365, -4993, 2870, 232, 2871, 2872, 2876, 3325, + 2877, -4993, 3334, 2880, 306, 338, 2885, 2887, -4993, 2855, + -4993, 248, 2888, 2893, 2900, 2902, 2904, 2907, 2908, 2909, + 30365, 30365, 30365, -4993, 27007, 1613, 1131, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, 256, 5626, -4993, 2899, -4993, + -4993, 3069, -4993, -4993, 30365, -4993, -4993, 690, -4993, 270, + -4993, -4993, -4993, 1613, 3151, 2882, -4993, -4993, 1517, 2906, + -4993, 1937, -4993, -4993, -4993, -4993, -4993, -4993, 60931, 3330, + -4993, 419, 1131, 272, 2033, 3292, 51586, 52054, -4993, -4993, + 3171, -4993, 78210, -4993, -4993, 1613, 201, 1933, -4993, -4993, + 52522, -4993, -4993, 483, 15345, 1948, 2337, 78210, 78210, 3362, + -4993, -4993, -4993, 1958, -4993, 2914, -4993, 2347, -4993, -4993, + 1257, 1257, 30365, 1257, 1415, 1127, 28928, 30844, 3250, 3137, + 1645, 1660, 3252, -4993, 3141, 1656, 1706, 72139, 78210, 91286, + 3051, 30365, -4993, 3355, 3014, 3016, 3071, 50666, -4993, 3019, + 2985, 3021, 3080, 54393, 2945, 3029, 3031, 3082, -4993, 3208, + -4993, -4993, 3032, 3034, 91753, -4993, -4993, 1168, -4993, -4993, + -4993, 1168, -4993, 2966, 1589, 450, 1402, 3036, 261, 802, + 3357, -4993, 1366, -4993, -4993, 3092, -4993, 4803, 78210, 3297, + 8314, 3168, 263, 3090, -4993, -4993, -4993, 3225, 3043, 78210, + 3045, 3188, 263, 297, 92220, -4993, -4993, 78210, -4993, -4993, + -4993, -4993, 3717, 3335, 26101, -4993, 2006, 3052, 3033, 3062, + 78210, 65134, 387, 3162, 3183, 81, 1770, 214, 3117, 78210, + 1922, 3191, 78210, 2983, 3066, 3067, 3288, 2988, 1488, 3389, + 2986, -4993, -4993, -4993, 3356, -4993, 1743, 2284, 3185, -4993, + 3287, 3332, 8783, 3053, 3054,100131, -4993, 3075, 38, 47852, + 78210, 78210, 3079, 3081, 92687, 3717, 3364, 3097, 3102, 3083, + 3100, 1192, 3390, 1883, 3103, -4993, -4993, -4993, 1883, 3105, + 3126, 93154, 3717, 3386, 78210, 3127, 3130, 78210,103302, 263, + -4993, 3457, 263, 263, 2129, 3458, 3131, 328, 3266, 1866, + 10, 2986, 1387, -4993, 3136, 3139, 322, -4993, 3237, 78210, + 3140, 3145, 1903, 1131, -4993, -4993, 3147, 3203, 3150, 941, + -4993, -4993, 1638, 3146, 72139, 3233, 3240, 1922, 238, 1979, + 2986, -4993, 3155, 3156, 2988, 2988, 78210, 78210, 78210, 78210, + 78210, 213, 3496, 3497, 3158, 223, 569, 3057, -4993, 1883, + 57195, 3160, -4993, 1883, 78210, 379, 2103, 2986, 1842, 136, + -4993, -4993, -4993, 1234, -4993, 30365, 30365, 30365, 3063, -4993, + 1724, 15345, 87, -4993, 288, 9333, 3085, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, 78210, -4993, 78210, -4993, 3345,102396, 3289, + 3358, -4993, 3138, -4993, 3367, 263, -4993, 78210, 78210, 3375, + 3310, 3377, 3381, 3317, 1446,102396, 3318, 3385, -4993, 3392, + 3401, 3192, 182, 3199, 3133, 3581, 3472, 78210, 54393, -4993, + 3597, 1168, -4993,102396, 3346, 3477, -4993, 78210, 3363, 54, + -4993, 3513, 3198, -4993, -4993, 79, 78210, 249, 3180, -4993, + -4993, 3482, 58129, 348, 3483, 1131, 3193, 3484, 3359, 1131, + 58129, 3399, 78210, 78210, 78210, 78210, -4993, -4993, 3368, 1017, + 646, -4993, 57195, 3373, -4993, 78210, 3379, 1387, 3383, 3607, + 86, 2005, 93621, 3487, 94088, 3164, 3165, 3165, 3615,102396, + 3436, -4993, 2173, -4993, 3301, -4993, 62332, -4993, -4993, 62332, + -4993, -4993,102396, 78210, 3170, -4993, 3172, -4993, -4993, 30365, + -4993, -4993, -4993, 2471, -4993,102396, 2800, 2800, -4993, -4993, + 3624, 3259, 3262, 2471, -4993, 2471, -4993,102396, -4993, 3186, + 3187, 2471, 3261, 3263, 3267, -4993, 3189, 3268, 2471, -4993, + -4993, 2292, -4993, -4993, 62332, 62332, -4993, 58129, 58129, 3532, + 309, 3535, 3254, 3537, 3256, 47852, 47852, -4993, 323, 62332, + -4993, 58129, 62332, -4993, 78210, -4993, 78210, -4993, -4993, -4993, + -4993,102396,102396, -4993, 58129, 57195, 3539, 3540, 848, 78210, + 78210, -4993, 78210, 78210, -4993, 78210, 78210, 1962, 94555, 2507, + 60464, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, 78210, + -4993, 78210, -4993, 78210, -4993, 78210, -4993, 78210, -4993, -4993, + -4993, 78210, -4993, 78210, 2019, -4993, -4993, 2028, 165, 78210, + 78210, 234, 62332, 78210, 3417, 62332, 62332, 78210, 78210, 78210, + 78210, 78210, 3284, 2906, 1470, -4993, 271, 481, 72139, 3424, + -4993, -4993, 2037, 1457, 962, 78210, 1438, 2139, -4993, -4993, + -4993, -4993, 68403, 67469, 3526, 124, 78210, -4993, -4993, 6138, + 30365, 1613, 27965, -4993, -4993, 15345, 3248, 30365, 30365, 3210, + 2471, 2471, -4993, 1195, 30365, 30365, 30365, 2471, 2471, 30365, + 3565, 30365, 47852, 30365, 35634, 24195, 30365, 30365, 27486, -4993, + 30365, 3446, 37065, 30365, 2033, 3449, 30365, 2033, 3565, 3689, + 3689, 1949, 5659, 3213, 1613, -4993, 2471, 939, -4993, 295, + 102396, 30365, 30365, 30365, 30365, 54393, 3300, 262, 78210, 30365, + 3221, 2875, -4993, 30365, -4993, 3222, 30365, 3304, 1167, 30365, + 30365, 30365, 30365, 30365, 30365, 30365, 30365, 30365, -4993, 38466, + 370, 3534, 3554, 803, 545, 75875, 28449, 3546, 23225, -4993, + 279, 3546, -4993, -4993, -4993, 78210, 3330, -4993, -4993, 3305, + -4993, -4993, -4993, -4993, -4993, 289, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, 3224, -4993, -4993, -4993, -4993, 3224, -4993, + 3228, 3533, 3536, 848, 78210, 60464, -4993, -4993, -4993, 2604, + -4993, 30365, -4993, 2041, 2046, 78210, 78210, -4993, 3509, -4993, + 3230, -4993, 12583, 3509, -4993, -4993, 36110, 3350, 3505, 3443, + -4993, -4993, -4993, 3234, 15345, 31323, 31323, -4993, 2312, 15345, + 2320, -4993, -4993, -4993, -4993, -4993, -4993, 1220, -4993, 78210, + 137, 3250, 1660, 3293, 768, 3688, 78210, -4993, 43603, 2043, + -4993, 58129, 78210, 78210, 3439, -4993, 3673, -4993,103302, -4993, + 3242, -4993,102849, 98758, -4993, -4993, 833, -4993, 825, 58129, + -4993, 78210, 78210, -4993, 54393, 58129, 78210, 78210, -4993, 58129, + 78210, 78210, -4993, -4993, -4993, -4993, -4993, 52990, 650, 67469, + 3378, 66535, -4993, -4993, 3245, 78210, 3306, 3516, 3518, -3, + -4993, -4993, 95022, -4993, 3467, 58129, 78210, 78210, 30365, 3469, + 78210, 78210, -4993, 280, 3333, 3336, -4993, 78210, 3338, 3499, + 62332, 3265, 78210, 78210,102396, 3327, 843, 62332, 3311, 48325, + 62332, 62332, 78210, 78210, 78210, 78210, 3393, 3586,102396, 78210, + 3541, 1498, 72139, 420, 2135, 2986, 3486, -4993, 1245, -4993, + 58129, -4993, 78210, 3474, -4993, -4993, -4993, 76342, 3712, 3384, + -4993, -4993, -4993, 95489, -4993, -4993, 3485, -4993, 2047, -4993, + 58129, 58129, 78210, 9254, 95956, 489, 3501, -4993, -4993,102396, + -4993, 78210, 76809, 78210, 78210, 3542, 78210, 69337, 96423, 96890, + 1590, 1674, 3543, 78210, 69804, 3544, -4993, 3412, 78210, -4993, + -4993, 54860, 58129, 78210, 974, 54393, -4993, -4993, 78210, -4993, + 830, -4993, 78210, 4540, 3488, -4993, -4993, 3361, 3365, 78210, + 425, 2306, 2986, 3650, 78210, 78210, 3283, 2055, 58129, 78210, + 54393, -4993, 3503, 1019, 58129, 78210, 76342, -4993, 3504, 72139, + 72139, 58129, 78210, 72139, -4993, 78210, 87550, -4993, 58129, 1418, + -4993, 58129, 78210, 76342, -4993, 3506, 3442, 58129, 78210, 7926, + -4993, -4993, -4993, 263, -4993, -4993, -4993, -4993, -4993, 78210, + 78210, 263, 78210, 78210, 263, 1331, -4993, 58129, 78210, -4993, + -4993, -4993, 3414, 58129, 78210, 78210, 326, -4993, 58129, 3180, + 78210, 54393, -4993, 78210, 6937, 78210, 78210, 78210, 78210, 78210, + 78210, 58129, 78210, -4993, -4993, 1544, 1103, 120, 1251, 1358, + 78210, 3596, 78210, 97357, 58129, 78210, 78210, 1131, 78210, 54393, + 383, -4993, -4993, 3423, -4993, 58129, 1418, -4993, 9388, 78210, + 78210, 78210, 3380, 3382, 189, 3470, -4993, -4993, -4993, 626, + 626, 3507, -4993, 30365, 30365, 29407, 3307, -4993, -4993, 30365, + -4993, -4993, -4993, 961, 3752, 97824, 961, -4993, 961, 3585, + 3369, 3370, 961, 78210, 961, 961, 78210, -4993, -4993, -4993, + -4993, 3575, 78210, 961, 961, 961, 3491, -4993, -4993, 3491, + 191, 30365,102396, 78210, -4993, 2060, -4993, 3328, 1017, -4993, + -4993, 54393, 78210, 391, 1124, 3654, 3531, 65601, 1209, 3647, + 78210, 3371, 78210, 3773, 3416, 72139, 2683, -4993, 1209, 78210, + -4993, 2310, 67469, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + 78210, -4993, -4993, 3651, 78210, 30365, 3500, -4993, 1131, 2683, + 2683, 2683, 2683, -4993, -4993, -4993, -4993, 3545, 1871, -4993, + 3339, 2683, 78210, 3454, 3674, 1209, 3340, 3676, -4993, 1387, + 3679, 1333, 78210, 3548, 65601, 3398, 3387, 3566, 3793, 2005, + 1131, 3569, 3555, -4993, 51126, -4993, 2683, 26554, 3838, 4916, + 3556, 3617, 61398, 3656, 3657, 3680, -4993, 169, -4993, 3803, + 1388, 3681, 30365, 2068, 3360, 190, -4993, -4993, 3366, 3187, + 3388, 3391, 3376, 3395, -4993, 2471, 204, 3400, 981, 797, + 3490, 2471, 3598, 3402, -4993, 194, -4993, 2767, -4993, 78210, + -4993, 78210, 78210, 78210, 78210, 292, -4993, -4993, 194, 2767, + 194, 848, -4993, 3631, 190, 2767, 3489, 3693, 61398, -4993, + 309, -4993, 319, -4993, 3578, 848, -4993, 3595, 2005, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, 2077, -4993, 78210, + -4993, 3672, 3675, 3677, 3682, 3683, 3374, 3403, 3413, 78210, + 3407, 3374, 263, 3407, 3407, 3374, 2906, 2906, 3374, 3403, + 57662, 3845, 3698, -4993, 3468, 3394, 3719, 203, -4993, 208, + 1212, 3633, -4993, -4993, -4993, -4993,102396, -4993, 58129, 3450, + 2516, 2516, -4993, 176, 3613, 3410, 57662, 3847, 848, -4993, + 62332, -4993, -4993,102396, 3492, 3511, 62332, 3634, 3466, 62332, + -4993, -4993, 62332, -4993, -4993, -4993, -4993, -4993,102396, -4993, + 3691, 78210, 78210, 2088, -4993, -4993, 1694, -4993, 1830, 30365, + 433, -4993, 14087, 2098, 30365, 3425, 3426, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, 3427, 3744, -4993, 2124, 2125, 2143, + 3429, 3432, 5250, 2928, 3434, 14224, 3435, 3437, 35634, 35634, + 27007, 589, -4993, 35634, 3438, 3621, 2148, 12915, 3441, 3440, + 14461, 29886, 30365, 29886, 29886, 14732, 3441, 3451, 2169, 54393, + 3627, 14770, 2193, -4993, 30365, 54393, 4260, 30365, -4993, 30365, + 3452, -4993, -4993, 5785, 5785, 5785, 3565, -4993, 3459, -4993, + 35634, 35634, -4993, 2405, 27007, -4993, -4993, 3763, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, 2314, -4993, 3447, -4993, -4993, + 3685, 3022, 47852, 6328, 30365, 269, 30365, 3221, 30365, 3538, + 5785, 5785, 5785, 500, 500, 246, 246, 246, 1839, 545, + -4993, -4993, -4993, 3455, 3456, 3462, 3648, 3463, 30365, -4993, + 2231, 2353, 78210, 2881, 3006, 3640, -4993, -4993, -4993, 39400, + 3510, 87, 3510, -4993, 1234, 2471, 939, 52522, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, 78210, 15345, -4993, -4993, 3705, + 3464, -4993, -4993, 30365, -4993, -4993, 935, 3481, 653, 98, + 2411, 2411, 2312, 104, -4993, -4993, 3525, -4993, 30365, 2376, + -4993, 2418, -4993, -4993, -4993, -4993, 2906, -4993, 3721, -4993, + -4993, -4993, 39400, 3512, 3523, 1327, 42669, 3684, -4993, 78210, + -4993, 78210, 196, -4993, 3493, -4993, -4993, -4993, -4993, -4993, + -4993, 98758, 2111, -4993,102849, -4993,102849, -4993, 2111, 3905, + -4993, 98758, 1925, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, 58129, 58129, 3686, 78210, + 3690, 3697, 30365, 909, 78210, 3475, 3480, 1267, 3769, 78210, + -4993, 3819, 848, -4993, -4993, 3572, -4993, 15345, -4993, -4993, + -4993, -4993, -4993, 58129, 78210, -4993, 61398, -4993, 78210, -4993, + 102396, -4993, -4993, -4993, 78210, 3528, 78210, -4993, 78210, 78210, + 78210, -4993, -4993, -4993, -4993, -4993, -4993, -4993, 1501,102396, + -4993, -4993, 78210, 78210, 157, 3576, 3577, 78210, -4993, 1370, + 3237, 9495, 78210, 78210, 78210, 3782, -4993, -4993, -4993, -4993, + 3723, -4993, 3834, -4993, 98758, -4993, 2767, 149, 3583, 2986, + 3724, -4993, 3846, 3711, -4993, 3636, 1140, -4993, -4993, 3639, + -4993, -4993, -4993, -4993, 3850, 848, 3854, 848, 78210, 78210, + 78210, 78210, 3646, -4993, -4993, -4993, -4993, 3649, 3778, -4993, + 54393, 54393, 54393, 2194, -4993, -4993, 1131, -4993, -4993, -4993, + -4993, -4993, -4993, 3811, -4993, 2211, -4993, -14, -4993, -4993, + -4993, -4993, -4993, 3857, 58129, 78210, 10121, 78210, 78210, 78210, + 3732, 2030, -4993, 1022,102396, -4993,100584, -4993, -4993, 2225, + -4993, 3547, 78210, 3609, 58129, 3587, -4993, -4993, -4993, 3867, + 3529, 3529, -4993, -4993, 3529, -4993, -4993, -4993, 3792, 3726, + -4993, 979, 3727, 58129, 3594, -4993, -4993, -4993, -4993, 3872, + 3618, -4993, -4993, 3622, 2357, 2986, 1387, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, 3660, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, 1499, -4993, -4993, 1596, 382, 2633, + 2986, -4993, 332, -4993, 3623, -4993, 3625, -4993, -4993, -4993, + 3812, 3814, 3820, 3642, 3643, 3678, 3653, 3661, 3708, -4993, + 3662, 3718, 3665, 3725, 3667, 3953, 848,102396, 3813, 1131, + 3713, 3931, 848, -4993, 3692, -4993, 3694, -4993, 2244, 4036, + -4993, 78210, -4993, 439, 2688, 2986, -4993, 3696, -4993, 58129, + 78210, -4993, -4993, -4993, 30365, 3600, 3604, 3605, 15345, 15345, + 30365, -4993, -4993, 15345, 3599, -4993, -4993, -4993,102396, 78210, + 3869, -4993, -4993, 961, 78210, 78210, -4993, 3871, -4993, -4993, + 3873, 78210, 3883, -4993, -4993, -4993, -4993, 482, 482, -4993, + -4993, 3921, 5848, 3619, 386, -4993, 54393, 45007, 2066, 2082, + 152, 10, -4993, 61398, 78210, 61398, -4993, 1124, 3711, 78210, + 78210, 78210, 3628, 3620, -4993, -4993, -4993, -4993, 58129, 776, + 58129, 2471, -4993, -4993, 3701, -4993, 78210, 2005, 4105, 3948, + -4993, 3529, -4993, 4069, 3157, 348, 3784, 1717, 2788, 4012, + 2347, 268, 54393, 3387, -4993, -4993, -4993, -4993, 78210, 78210, + 1017, 1131, -4993, 3645, 3630, -4993, 78210, 3960, 78210, 78210, + 78210, 78210, 3450, 3637, 78210, 3655,102396, 78210, 2309, 2988, + 4097, 3987, 1457, 3398, 3735, 3995, 72139, 3687, 2254, -4993, + -4993, -4993, 2255, 159, -4993, 1131, 61398, 99678, 3986, -4993, + 4916, -4993, -4993, 4916, 212, 78210, 3972, -4993, -4993, 1457, + -4993,102396, 3669, -4993, 2259, -4993, 2260, -4993, -4993, -4993, + 2471, -4993, -4993, 1879, 1879, 3666, -4993, 3699, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, 3670, -4993, -4993, -4993, 309, + 3728, 848, 3729, 848, -4993, -4993, -4993, -4993, 78210, -4993, + 78210, 57195, 848, -4993, -4993, 78210, -4993, 4015, -4993, -4993, + 3815, 3817, 3818, 3821, 3823, 78210, 3374, -4993, 3695, 58129, + 1639, -4993, -4993, 3884, -4993, -4993, 72139, 3809, -4993, -4993, + -4993, -4993, 4030, 4031, -4993, -4993, -4993, 969, -4993, 78210, + 78210, 58129, 67936, 343, 58129, -4993, 3970, 3971, -4993, -4993, + 3974, 263, -4993, 3976, 3977, 3979, -4993, 3980, 3981, -4993, + -4993, -4993, 3714, 14853, 30365, -4993, 4057,102396, -4993, 7033, + -4993, -4993, -4993, 30365, -4993, -4993, -4993, -4993, -4993, -4993, + 2346, 30365, -4993, 30365, 4038, -4993, 24680, 4184, 4184, 3715, + 102396, 35634, 35634, 35634, 35634, 1551, 2871, 35634, 35634, 35634, + 35634, 35634, 35634, 35634, 35634, 35634, 36589, 604, -4993, 3916, + 30365, 30365, 4046, 4038, -4993,102396, 3722, 3441, 3731, 3733, + 30365, -4993, -4993, 2265, 37532, 3734, 54393, -4993, 30365, 13326, + 2272, 3770, 15491, 1613, 7527, 1131, 30365, 2170, 2600, 30365, + 2289, 30365, 4044, -4993, -4993, -4993, -4993, 3730, -4993, -4993, + 3963,102396, -4993, 30365, 3739, 4023, 35634, 35634, 4479, -4993, + 5300, 30365, 27007, -4993, 3507, 3776, 44070, -4993, 25165, 3737, + 930, 930, 930, 930, -4993, 78210, 78210, 78210, 39867, 4064, + 3745, 38933, 77276, 3742, 251, -4993, 77276, 77743, 77276, -4993, + 3761, -4993, 1613, 30365, 4059, 3748, 4059, 272, 3753, -4993, + -4993, -4993, -4993, 1457, -4993, 3755, -4993, 3481, 274, -4993, + -4993, -4993, 656, -4993, 3836, -4993, -4993, -4993, 3742, 31802, + 3903, -4993, -4993, -4993, 3808, 2303, -4993, -4993, 4160, 3903, + -4993, -4993, 2317, 43603, 3512, 30365, 1613, 2329, 1985, -4993, + -4993, 98758, -4993, 3829, 2767, 2767, 2093, 3374, 4085, 2093, + 7897, -4993, -4993, 40334, 78210, 78210, -4993, 78210, 2334, 1679, + 78210, -4993, 78210, -4993, -4993, -4993, -4993, 4212, -4993, 78210, + -4993, -4993, 3822, 3824, 78210, 78210, 78210, 78210, 4035, -4993, + -4993, 2431, -4993, -4993, 58129, 78210, -4993, -4993, -4993, 447, + 2749, 2986, -4993, 3849, -4993, -4993, 4058, 78210, -4993, 4204, + 3865, 78210, 4115, 78210, 3779, -4993, 1679, 3885, 4094, 1653, + 2988, 328, 3502, -4993, 1810, -4993, -4993, 3851, -4993, 78210, + -4993, 78210, -4993, -4993, -4993, -4993, -4993, -4993, -4993, 3911, + -4993, -4993, -4993, -4993, 54860, -4993, -4993, 78210, -4993, 54393, + 45007, 54393, 78210, -4993, 1614, 468, 2750, 2986, -4993, 3863, + -4993, 4121, 3868, 3870, 3923, 738, 966, 3875, 3877, 3932, + 3806, 3827, 3828, -4993, 54393, 45487, 3964, 78210, 2767, 3830, + 3848, 78210, 326, 1131, -4993, -4993, 1131, 2767, 1131, 78210, + 78210, 78210, 78210, 326, 54393, -4993, 4240, 3901, 78210, 78210, + 78210, 78210, -4993, 3864, -4993, 78210, 78210, 4138, 723, 2137, + 58129, 78210, 78210, 58129, 78210, 78210, 78210, 78210, 78210, 78210, + 78210, 4027, -4993, 4227, 4158, 2076, 4201, 3902, 78210, -4993, + 78210, 1131, -4993, 3237, 78210, 78210, 78210, 78210, -4993, -4993, + -4993, -4993, -4993, 3507, -4993, 3832, 4108, 961, -4993, 4110, + 4111, 961, 961, 4112, 961, -4993, -4993, 10, -4993, 457, + 78210, -4993, 2340, 78210, -4993, -4993, -4993, 3755, 1743, 2284, + -4993, -4993, -4993, -4993, -4993, -4993, 78210, 3831, 78210, 78210, + 35634, -4993, 2220, 1668, 278, -4993, 4109, 78210, 3180, -4993, + -4993, -4993, 1255, 78210, -4993, -4993, -4993, -4993, -4993, 632, + 3637, -4993, 4130, 65601, 2767, 58129, 58129, 2767, -4993,102396, + 3842, 3387, -4993, 224, 3924, 58129, 348, 1072, 98291, 3193, + 3876, 4053, 39400, 1499, -4993, 3843, 4005, -4993, 3852, 3853, + -4993, -4993, 78210, 3711, 57195, 2341, 1387, 4299, 97, 1986, + -4993, 67002, 4039, 3637, 4130, -4993, 2988, 4062, 4063, -4993, + 1457, 78210, 3450, 3387, 1131, 78210, 3306, 45007, -4993, 4337, + -4993, 98758, 30365, 30365, -4993, 3855, -4993, 3856, 4916, -4993, + 3928, 3858, -4993, -4993, -4993, -4993, -4993, 3941, 3866, 78210, + -4993, 3878, 3681, -4993, 3681, -4993, 3874, -4993, -4993, -4993, + -4993, -4993, -4993, 78210, -4993, 78210, -4993, 848, -4993, 3988, + -4993, 848, 78210, 78210, 78210, 78210, 78210, 78210, 3374, 263, + -4993, 4179, 57662, -4993, -4993, 2342, 78210, -4993, -4993, -4993, + 4246, -4993, -4993, 124, 4188, -4993, -4993, 984, 984, 984, + 4143, 984, 984, 984, 984, 984, -4993, 30365, 15345, -4993, + 3881, -4993, 15345, 3882, 8484, 15345, 4046, -4993, 2360, 30365, + -4993, 4294, 4294, 4294, 2751, 4190, -4993, 1419, 3886, 4294, + 4294, 4294, 491, 491, 211, 211, 211, 4184, 604, 15345, + 15345, -4993, -4993, 3888, -4993, -4993, -4993, 3441, -4993, 32281, + 1363, 4303, 37065, -4993, -4993, -4993, 3913, 3915, 3892, -4993, + 30365, 32760, 3880,103302, 4073, -4993, 1356, 30365, 30365, 3810, + -4993, 6852, 30365,102396, -4993, 2361, 3810, 398, 30365, 2792, + 2842, 30365, 30365, 6243, 8712, 3893, 30365, 99211, -4993, -4993, + -4993, 2367, 30365, 78210, 78210, 78210, 78210, -4993, -4993, -4993, + 77276, 77743, 77276, 3887, 37999, 25633, 251, 3894, 78210, -4993, + -4993, 3897, 39400, 4149, 4083, -4993, 39400, 4083, 1916, 4083, + 4169, 3989, 44537, -4993, -4993, 3900, -4993, 4102, -4993, 2006, + 15345, 4334, 4213, 1131, 4213, 1131, 3904, 47852, -4993, -4993, + -4993, -4993, 3991, -4993, 4123, 15345, 28449, -4993, 1457, 2815, + 78210, 1613, 75, -4993, 3922, 78210, -4993, 3903, 15345, -4993, + 3983, 2377, -4993, -4993, -4993, -4993, -4993, -4993, -4993, 3994, + 67469, 4235, -4993, 30365, 2381, -4993, 3954, 4328, 239, 2382, + 2387, 1679, -4993, 4214, -4993, 1782, 4208, 205, -4993, 848, + -4993,102396, -4993, 78210, 78210, -4993, -4993, -4993, -4993, 78210, + 2945, -4993, -4993, 78210, 78210, 78210, 78210, -4993, -4993, 58129, + 78210, -4993, 78210, -4993, 54393, 2082, 326, 2220, 4222, 4223, + 4140, -4993, 263, -4993, 2220, 4141, 326, 78210, -4993, -4993, + 2757, -4993,102396, 848, 848, -4993, -4993, -4993, -4993, -4993, + 3935, -4993, 4357, 4016, 78210, 78210, 78210, 78210, 78210, 58129, + 78210, 78210, 2471, 2471,102396, 3925, -4993, 2471, 2471, 3926, + -4993, 58129, 78210, 78210, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, 4008, -4993, 30365, 4351, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, 58129, 78210, 4014, -4993, 4017, -4993, 793, -4993, -4993, + 78210, 78210, 78210, 78210, 4273, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, 4271, 78210, -4993, -4993, + 1131, 1131,102396, 848, 848, -4993, -4993, -4993, 4018, -4993, + -4993, 3938, 4216, 961, -4993, 961, 961, -4993, -4993, 961, + -4993, 3943, -4993, 10, 4309, -4993, 1679, 1691, 4263, -4993, + 4266, 30365, -4993, 1607, 2751, -4993, 4319, 4398, -4993, -4993, + -4993, -4993, 3180, 2005, 4006, -4993, -4993, 62332, 1326, -4993, + 4249, 391, 4167, 65601, 332, 303, 3957, 4082, -4993, 2767, + 2767, 4021, 78210, 4409, -4993, -4993, -4993, -4993, -4993, -4993, + 58129, 3587, -4993, 4185, 103, 4284, 78210, 30365, 3742, -4993, + 2016, 4291, -4993, 1131, -4993, -4993, 4093, 3387, -4993, 1377, + 78210, 4186, 65601, 3450, 2408, -4993, -4993, -4993, 4009, 4402, + 3398, -4993, 332, 4039, -4993, -4993, 4380, 4065, 4019, 4426, + -4993, 4065, 4298, 4187, 3985, -4993, 3687, -4993, -4993, 15345, + 15345, 1131,103755, 4916,102396, 4305, 78210, 192, 4268, 848, + 2409, -4993, -4993, 848, 848, -4993, 78210, -4993, 3374, 3374, + 3374, 3374, 3374, -4993, 4193, -4993, -4993, 4259, -4993, 848, + 57662, -4993, -4993, -4993, -4993, -4993, 984, -4993, -4993, -4993, + -4993, -4993, 15345, -4993, -4993, -4993, -4993, -4993, 9522, 35634, + 4310, -4993, 3992,102396, -4993, 3996, 2413, 2415, -4993, -4993, + 1363, -4993, 4303, -4993, -4993, -4993, 9696, 4042, 15345, 4116, + 3993, 4011, 3810, 3810, 6852, 2420, -4993, 3810, 30365, 30365, + 3810, 3810, 30365, -4993, -4993, 9857, 4197, -4993, -4993, 10201, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, 55327, 3997, 3627, + 77276, 4010, 78210, 251, 39400, -4993, -4993, 2274, -4993, 39400, + 4292, -4993, 39400, 62332, -4993, 78210, 4013, 78210, -4993, 33239, + 30365, 4060, -4993, 4060, -4993, -4993, 4022, -4993, 78210, 2882, + -4993, 1327, -4993, -4993, 4420, 40334, 4381, 30365, -4993, -4993, + -4993, -4993, 57662, 4233, 57662, 1679, 10677, 4214, 40334, 48798, + 78210, -4993, 78210, -4993, 4189, 4214, 4026, 3180, -4993, -4993, + -4993, -4993, -4993, -4993, 4029, -4993, -4993, -4993, -4993, 4107, + -4993, -4993, 1014, 3424, -4993, 2421, -4993, -4993, 4477, 4369, + 4370, -4993, -4993, -4993, -4993, -4993, -4993, 4227, -4993, -4993, + 45007, 58129, 78210, -4993, 4113, -4993, -4993, -4993, -4993, -4993, + -4993, 42202, 47852, -4993, 738, 4034, 4037, 966, -4993, -4993, + -4993, 78210, 11055, 4041, 1147, 3424, 78210, 78210, 4043, 4045, + 4048, 1619, 1353, 1886, 3374, 4361, 78210, -4993, -4993, -4993, + 4227, -4993, -4993, 78210, -4993, 961, -4993, -4993, -4993, -4993, + 54393, -4993, 2853, 3943, 1131, 62332, 4487, 4487, 78210, -4993, + 11195, 4257, -4993, -4993, 412, 4006, 4293, 4336, -4993, 4049, + 78210, 1255, 4050, 78210, 4051, 4175, 1412, 1412, 78210, 78210, + 78210, 2441, 1457, 2767, 3848, 348, 4393, 65601, 4435, 3711, + 345, -4993, -4993, 2016, -4993, 116, 4410, 4103, -4993, 78210, + 4510, 78210, 3450, 3637, 78210, 4067, -4993, -4993, 67002, 4267, + 2082, 78210, 2309, 4039, 3398, 942, 78210, -4993, 1550, -4993, + 1457, -4993, 78210, 72139, 40334, -4993,102849, -4993, 2442, -4993, + -4993, 4134, 3510, 4176, 4180, 4068, 78210, 122, -4993, -4993, + -4993, -4993, -4993, -4993, 78210, -4993, 343, -4993, -4993, 2903, + 35634,102396, 2462, 30365, -4993, 30365, -4993, -4993, -4993, -4993, + 59, -4993, -4993, -4993, 3810, 3810, 3810, -4993, 4496, 3507, + -4993, -4993, 2468, 4520, 34676, 4481, -4993, 78210, 2474, -4993, + 30365, 4074, -4993, -4993, 39400, 2274, 4075, 2478, 78210, 2482, + 102396, 4079, 867, 4081, 23710, 4078, -4993, -4993, -4993, -4993, + -4993, 15345, 15345, 78210, -4993, -4993, -4993, -4993, 4124, 78210, + 2501, -4993, 968, 15345, 1639, 2093, 343, 4328, 3180, -4993, + 4086, -4993, -4993, 2988, 1481, 78210, 3180, 78210, 4006, -4993, + 78210, 4172, -4993, -4993, 54393, 4388, -4993, -4993, 4145, -4993, + 1288, 3424, 78210,102396, -4993, 114, 4412, -4993,102396,102396, + -4993, -4993, -4993, 30365, 4181, -4993, -4993, -4993, 30365, 30365, + 64667, -4993, -4993, 78210, 78210, 78210, 78210, 78210, -4993, 848, + -4993, -4993, 2505, -4993, 41268, -4993, -4993, 3116, 1131, 3116, + 1763, -4993, -4993, 3116, 3116, -4993, 3510, -4993, 4487, 1102, + -4993, -4993, -4993, 2138, 4317, 4091, 30365, -4993, 999, 4301, + 4183, 4095, -4993, 62332, 4579, 3637, 4130, 78210, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, 2509, + 3711, 4434, 3387, 4019, -4993, 78210, 4137, -4993, 39400, -4993, + -4993, -4993, 3116, -4993, 1766, 4106, 4444, 3711, 1457, 1986, + -4993, 4039, 3637, 4130, -4993, -4993, 4114, 4063, 3398, 2309, + 4245, -4993, 4253, -4993, 4527, 4324, 4530, 3450, -4993, 3306, + 2510, -4993, 4916,103755,102396, 4478, 4157, 4159, -4993, -4993, + 4177, 78210, -4993, -4993, 3711, -4993, 2903, 2530, -4993, 2532, + 2536, 4174, -4993, 30365, 1071, 3761, 55327, 4127, -4993, 35634, + 2538, -4993, 2213, 78210, 2549, -4993, 15345, 78210, -4993, -4993, + 30365, -4993, 2551, -4993, 30365, 4129, 30365, -4993, 33239, 4120, + -4993, 4580, 1457, -4993, 3510, 40334, -4993, 4251, -4993, 4452, + -4993, -4993, 4006, 47852, 1481, 3481, 2005, 4006, 2558, -4993, + -4993, 78210, -4993, 4091, 30365, -4993, 4225, -4993, -4993, 2562, + 1560, 4300, 4300, 2568, 2575, 11332, 78210, 2579, 2601, -4993, + 2603, 2471, 3403, 1886, 3403, -4993, 3374, -4993, -4993, 54393, + -4993, 55794, -4993, -4993, -4993, 1131, -4993, 1131, 4356, 78210, + 50199, 1131, 1131, -4993, -4993, -4993, -4993, 4491, 4430, -4993, + 1387, -4993, 11550, -4993, -4993, -4993, 465, -4993, 4349, 4350, + 78210, -4993, 4151, -4993, 2605, 332, 4269, 3711, -4993, -4993, + 78210, 4592, 4598, -4993, 862, 78210, 3742, 78210, -4993, -4993, + -4993, 30365, 1255, -4993, 4019, 3450, 3398, 332, 4039, 2082, + 40801, 4065, 2309, 4063, -4993, -4993, 4358, -4993, 4359, -4993, + 4152, 4450, 4916, -4993, -4993, 346, 4474, 4475, -4993, -4993, + -4993, -4993, -4993, -4993, -4993, 3441, 33718, 33718, 33718, 4161, + -4993, -4993, 78210, 2751, 4155, 34676, 54393, 2616, -4993,101037, + -4993, 2618, 2630, -4993, 2637, 33239, 2638, -4993, 78210, 4163, + -4993, -4993, -4993, 43603, 57662, 4200, 4165, 3481, -4993, 4293, + -4993, -4993, 1679, 3424, -4993, 15345, 78210, 62332, 4595, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, 3424, 4241, -4993, -4993, + 64667, -4993, 78210, -4993, -4993, 2655, -4993, -4993, -4993, 78210, + 3843, -4993, 3843, -4993, -4993, 4306, -4993, 1185, 4270, 1090, + 1090, 4534, -4993, 4229, -4993, -4993, 4171, -4993, 4654, 4312, + 78210, -4993, -4993, 738, 1457, 65601, 3711, -4993, -4993, 11687, + 62332, -4993, -4993, 2309, 4039, 3398, 30365, 2664, -4993, 4328, + 239, -4993, 4063, 4065, -4993, -4993, 40334, 4182, 3387, -4993, + -4993, 2049, 62332, 62332, 35155, 4313, 236, 13605, 4518, -4993, + 4518, 4518, -4993, 2671, 37065, -4993, -4993, -4993, 78210, 4378, + 1013, -4993, 4332, -4993, 2690, -4993, -4993, -4993, 1, 343, + 4191, -4993, -4993, -4993, 4301, 1679, -4993, 3424, -4993, 78210, + -4993, 4194, -4993, -4993, -4993, 55794, 3843, 4103, -4993, -4993, + -4993, 4644, -4993, 275, -4993, -4993, -4993, -4993, 78210, 3711, + 3925, 4019, -4993, -4993, 4195, 4063, 3398, 2309, 11913, -4993, + 40801, 78210, 78210, 4065, -4993, 2692, 40334, 4065, -4993, 2981, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, 4198, 4199, 4638, + -4993, -4993, -4993, -4993, -4993, 1404, -4993, -4993, -4993, -4993, + 3627, -4993, -4993, 35634, 35634, 4407, -4993, 1013, -4993, 4206, + -4993, -4993, -4993, -4993, 30365, 1679, -4993, -4993, -4993, 30365, + -4993, 4532, -4993, -4993, -4993, 3711, -4993, -4993, 53926, 4065, + 2309, 4063, 4328, -4993, -4993, -4993, -4993, -4993, 4450, -4993, + 2697, 3510, 2350, -4993, -4993, 2401, 2369, 4277, 4524, 34197, + 4346, -4993, 4411, -4993, 4607, 2751, 2751, -4993, -4993, 30365, + 12307, 1679, 2699, 1255, -4993, -4993, 2703, -4993, -4993, -4993, + -4993, -4993, 4063, 4065, 78210, 3387, -4993, 40334, -4993, -4993, + 2981, 4323, 4325, -4993, -4993, -4993, 78210, 12439, -4993, -4993, + 62332, -4993, 53926, 4065, -4993, -4993, 4065, -4993, -4993, 4254, + 4255, 2705, -4993, 4219, -4993, -4993, 3510, 4539, 4543, -4993, + 53926, -4993, 62332, 62332, 2709, -4993, -4993, -4993 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 1680, 1446, 622, 1532, 1531, 1446, 0, 256, 0, 1542, + 0, 1446, 415, 1118, 0, 0, 0, 0, 622, 1446, + 0, 1680, 0, 0, 0, 0, 0, 1693, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1446, 0, 0, + 1700, 0, 0, 0, 0, 1693, 0, 1544, 0, 0, + 0, 0, 0, 2, 4, 39, 74, 75, 32, 31, + 93, 57, 18, 65, 127, 126, 128, 44, 40, 82, + 27, 29, 41, 45, 67, 69, 34, 47, 58, 105, + 66, 25, 64, 88, 70, 91, 52, 12, 13, 53, + 14, 54, 15, 55, 16, 101, 76, 94, 37, 63, + 24, 46, 72, 73, 5, 48, 80, 11, 59, 60, + 62, 85, 86, 87, 110, 89, 122, 43, 119, 98, + 99, 116, 100, 117, 9, 102, 56, 17, 113, 112, + 114, 83, 49, 84, 71, 92, 111, 28, 115, 19, + 20, 22, 23, 21, 61, 30, 68, 33, 90, 118, + 108, 104, 123, 121, 129, 106, 77, 7, 8, 95, + 6, 26, 51, 10, 36, 35, 50, 42, 125, 38, + 1542, 97, 109, 96, 78, 103, 81, 107, 124, 79, + 120, 1650, 1649, 1702, 1653, 1679, 0, 1665, 1445, 1444, + 1459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1456, 2296, 2311, + 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, + 2322, 2323, 2324, 2325, 2326, 2661, 2327, 2328, 2329, 2610, + 2611, 2662, 2612, 2613, 2330, 2331, 2332, 2333, 2334, 2335, + 2336, 2337, 2614, 2615, 2338, 2339, 2340, 2341, 2342, 2616, + 2663, 2343, 2344, 2345, 2346, 2347, 2664, 2348, 2349, 2350, + 2351, 2352, 2353, 2354, 2355, 2356, 2665, 2357, 2358, 2359, + 2666, 2360, 2361, 2362, 2363, 2364, 2365, 2617, 2618, 2366, + 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, + 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, + 2387, 2388, 2389, 2390, 2391, 2392, 2619, 2393, 2394, 2395, + 2396, 2620, 2397, 2398, 2399, 2621, 2400, 2401, 2402, 2667, + 2668, 2403, 2404, 2405, 2406, 2407, 2622, 2623, 2408, 2409, + 2410, 2411, 2412, 2413, 2414, 2669, 2415, 2416, 2417, 2418, + 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2670, 2624, + 2427, 2428, 2429, 2430, 2625, 2626, 2627, 2431, 2671, 2672, + 2432, 2673, 2433, 2434, 2435, 2436, 2437, 2438, 2628, 2674, + 2439, 2675, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, + 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, + 2458, 2629, 2676, 2630, 2459, 2460, 2461, 2462, 2463, 2464, + 2465, 2631, 2632, 2466, 2467, 2468, 2677, 2469, 2633, 2470, + 2634, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, + 2480, 2635, 2678, 2481, 2679, 2636, 2482, 2483, 2484, 2485, + 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2637, 2493, 2638, + 2496, 2494, 2495, 2497, 2498, 2499, 2500, 2501, 2502, 2503, + 2504, 2505, 2506, 2639, 2507, 2508, 2509, 2510, 2511, 2512, + 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, + 2523, 2524, 2680, 2525, 2526, 2527, 2528, 2529, 2640, 2530, + 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, + 2541, 2542, 2543, 2544, 2545, 2641, 2546, 2547, 2681, 2548, + 2549, 2642, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, + 2558, 2559, 2560, 2561, 2562, 2563, 2643, 2564, 2565, 2566, + 2567, 2682, 2568, 2569, 2570, 2571, 2572, 2573, 2644, 2645, + 2574, 2575, 2646, 2576, 2647, 2577, 2578, 2579, 2580, 2581, + 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, + 2592, 2593, 2594, 2648, 2649, 2595, 2683, 2596, 2597, 2598, + 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2650, 2651, + 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2607, + 2608, 2609, 131, 0, 0, 2270, 2297, 2298, 2301, 2296, + 387, 386, 1640, 2264, 2297, 1541, 1521, 622, 0, 1459, + 414, 1680, 0, 0, 0, 0, 0, 0, 0, 855, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 0, 0, 0, 0, 438, 437, 0, + 0, 0, 1084, 443, 0, 0, 0, 0, 0, 610, + 1589, 2494, 1587, 1641, 257, 260, 261, 258, 259, 2286, + 0, 1220, 1221, 1223, 0, 0, 1233, 895, 896, 0, + 0, 0, 904, 0, 0, 0, 893, 0, 0, 0, + 909, 0, 906, 0, 0, 910, 907, 890, 908, 897, + 0, 889, 0, 0, 1233, 911, 0, 0, 891, 0, + 0, 0, 0, 1459, 1586, 444, 1680, 0, 1563, 1564, + 1565, 1542, 1554, 1566, 1559, 1561, 1560, 1562, 1558, 2285, + 2312, 1019, 1019, 1019, 1019, 1016, 1017, 1019, 1019, 1019, + 2514, 0, 0, 998, 0, 1000, 2287, 1019, 1024, 507, + 507, 507, 0, 1023, 1028, 507, 0, 1427, 1468, 2269, + 1692, 0, 999, 1426, 2574, 1577, 0, 0, 1248, 1244, + 1246, 1247, 1245, 0, 1087, 1087, 2532, 1438, 241, 2543, + 2644, 2574, 240, 235, 236, 209, 2316, 0, 0, 1023, + 0, 1459, 1436, 981, 1699, 1697, 0, 2251, 2336, 2351, + 2442, 232, 2525, 2533, 2543, 2644, 2574, 2606, 188, 198, + 193, 0, 250, 2543, 2644, 2574, 246, 1456, 0, 1666, + 1803, 2260, 0, 1429, 1428, 1543, 0, 1546, 0, 2509, + 1670, 1673, 1548, 1671, 1662, 0, 0, 1, 1680, 0, + 1553, 1696, 1696, 0, 1696, 0, 1654, 1662, 1657, 1661, + 0, 0, 0, 0, 0, 1430, 0, 0, 0, 914, + 0, 1471, 2265, 1069, 0, 0, 0, 0, 0, 1320, + 0, 1127, 1126, 2302, 2292, 2293, 0, 2290, 2291, 2303, + 2304, 2305, 0, 2414, 1320, 0, 0, 2158, 2169, 2170, + 2171, 2340, 2397, 2166, 2167, 2168, 2160, 2161, 2162, 2163, + 2164, 2165, 0, 0, 1215, 2159, 0, 2414, 0, 1320, + 0, 158, 0, 135, 1320, 0, 0, 2414, 0, 0, + 2414, 0, 0, 0, 0, 0, 2414, 0, 0, 0, + 0, 0, 158, 2447, 0, 135, 2414, 0, 0, 1450, + 0, 0, 0, 1452, 1455, 1431, 0, 2243, 0, 2244, + 2271, 1524, 0, 2260, 0, 0, 0, 950, 943, 0, + 951, 958, 0, 0, 960, 0, 0, 944, 0, 0, + 0, 0, 0, 963, 964, 0, 0, 965, 945, 966, + 946, 967, 947, 968, 0, 0, 0, 0, 948, 0, + 0, 0, 1442, 1433, 0, 1579, 1581, 1580, 1578, 507, + 0, 0, 0, 2414, 0, 0, 135, 1509, 0, 2414, + 135, 0, 0, 442, 441, 135, 2290, 440, 439, 2340, + 2397, 0, 1117, 0, 1385, 135, 2414, 0, 181, 2414, + 696, 2414, 1548, 0, 625, 0, 0, 810, 2447, 135, + 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, + 0, 0, 609, 622, 1590, 1588, 0, 1224, 234, 233, + 1222, 902, 2414, 1159, 348, 0, 0, 2414, 1490, 2299, + 1878, 1907, 1885, 1907, 1907, 1874, 1874, 2380, 1887, 2414, + 1875, 1876, 1912, 0, 1907, 1874, 1879, 0, 1877, 1915, + 1915, 1902, 348, 918, 1859, 1860, 1861, 1862, 1888, 1889, + 1863, 1894, 1895, 1899, 1864, 1929, 1874, 2300, 903, 0, + 894, 2414, 348, 1123, 2414, 2294, 168, 0, 892, 2340, + 2397, 2414, 348, 1217, 0, 2414, 348, 2414, 164, 2414, + 348, 2414, 348, 2414, 626, 0, 0, 2414, 348, 2414, + 2447, 166, 0, 2414, 348, 912, 2414, 348, 2262, 2414, + 0, 1434, 0, 1582, 0, 1556, 2648, 1571, 0, 1567, + 1574, 1570, 1680, 1019, 1018, 0, 1019, 0, 1019, 0, + 1019, 0, 1019, 0, 0, 0, 1019, 2288, 2289, 1001, + 0, 1025, 0, 0, 1032, 1031, 1030, 0, 0, 0, + 1033, 0, 1807, 1617, 0, 1424, 1441, 0, 0, 0, + 1087, 1251, 0, 1249, 1086, 0, 0, 1437, 239, 237, + 0, 0, 0, 0, 0, 0, 1443, 0, 1435, 0, + 0, 0, 2273, 2275, 2276, 2172, 2246, 0, 2611, 2612, + 2613, 2235, 0, 2614, 2615, 2616, 2663, 2064, 2051, 2060, + 2065, 2052, 2054, 2061, 2617, 2618, 1999, 2619, 2620, 2283, + 2621, 2622, 2623, 2625, 2626, 2627, 2628, 2056, 2058, 2629, + 2630, 2632, 0, 2284, 2633, 2634, 2476, 2636, 2637, 2639, + 2640, 2062, 2642, 2643, 2644, 2645, 2646, 2647, 2282, 0, + 2063, 2649, 2651, 2652, 2653, 2654, 2656, 2657, 2658, 2659, + 0, 0, 0, 2257, 0, 2031, 0, 1867, 1868, 1890, + 1891, 1869, 1896, 1897, 1870, 0, 2256, 1932, 2117, 2030, + 2047, 0, 2036, 2037, 0, 2029, 2025, 1682, 2252, 0, + 2026, 2272, 2274, 2236, 1682, 2250, 201, 252, 0, 253, + 2258, 2543, 189, 231, 203, 230, 204, 202, 0, 2338, + 190, 0, 0, 191, 0, 0, 0, 0, 249, 247, + 0, 1432, 0, 1805, 1804, 2261, 923, 0, 1535, 1529, + 1538, 1534, 1545, 1542, 2182, 0, 1672, 0, 0, 0, + 1652, 1651, 3, 0, 1550, 1552, 1527, 1548, 1694, 1695, + 0, 0, 0, 0, 0, 0, 0, 0, 1752, 1710, + 1711, 1713, 1749, 1753, 1761, 0, 1658, 0, 0, 1809, + 0, 0, 1457, 0, 0, 0, 0, 0, 1158, 0, + 0, 0, 0, 0, 915, 0, 0, 0, 1477, 0, + 1479, 1480, 1481, 0, 0, 1482, 1483, 1471, 243, 1489, + 1487, 1470, 1472, 1485, 0, 0, 0, 0, 0, 0, + 0, 1501, 0, 172, 173, 0, 638, 622, 0, 2414, + 0, 0, 0, 0, 1166, 1173, 1319, 0, 0, 0, + 0, 0, 0, 0, 0, 1167, 1165, 0, 1168, 245, + 1178, 1197, 1200, 0, 0, 1125, 1128, 0, 0, 0, + 0, 0, 1310, 0, 0, 0, 1310, 0, 0, 0, + 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 268, 270, 281, 343, 0, 601, 0, 0, 0, 604, + 0, 2414, 1320, 0, 0, 0, 1219, 0, 0, 0, + 0, 0, 0, 0, 0, 1200, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 133, 134, 139, 0, 0, + 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, + 587, 600, 0, 0, 0, 0, 0, 597, 0, 0, + 135, 273, 577, 583, 0, 0, 0, 703, 702, 0, + 0, 0, 0, 0, 1401, 1400, 0, 0, 0, 0, + 1499, 1498, 0, 0, 0, 0, 0, 0, 1310, 0, + 262, 264, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 379, 380, 0, + 0, 0, 139, 0, 0, 1310, 0, 275, 0, 0, + 1451, 1448, 1449, 0, 1454, 0, 0, 0, 0, 2039, + 0, 2186, 1702, 2184, 1143, 2242, 0, 2306, 2684, 2685, + 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, + 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, + 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, + 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, + 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, + 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, + 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, + 2756, 2757, 2758, 2759, 2760, 2239, 2238, 2267, 2307, 2308, + 2309, 2310, 2245, 0, 1520, 0, 957, 0, 0, 0, + 0, 959, 0, 952, 0, 0, 949, 2340, 2397, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 818, + 0, 1471, 1508, 0, 0, 0, 631, 0, 2414, 0, + 137, 856, 0, 808, 443, 0, 0, 0, 1190, 1384, + 137, 0, 0, 175, 0, 0, 700, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 747, 746, 0, 0, + 0, 809, 0, 0, 137, 0, 2414, 580, 2414, 0, + 507, 507, 0, 0, 1089, 0, 0, 0, 0, 0, + 0, 1644, 1646, 1645, 0, 1643, 0, 346, 347, 0, + 1207, 1232, 0, 0, 0, 1906, 1893, 1901, 1900, 0, + 1883, 1882, 1881, 0, 1880, 0, 1907, 1907, 1905, 1884, + 1859, 0, 0, 0, 1911, 0, 1909, 0, 885, 1855, + 1851, 0, 1918, 1919, 1920, 1917, 1930, 1916, 0, 1865, + 1921, 1874, 1871, 905, 0, 0, 1201, 0, 0, 2414, + 348, 2414, 0, 2414, 0, 0, 0, 1209, 348, 0, + 1203, 0, 0, 1205, 0, 1402, 0, 901, 899, 898, + 900, 0, 0, 883, 0, 0, 0, 2414, 348, 0, + 0, 878, 0, 0, 880, 0, 0, 0, 0, 1680, + 0, 220, 221, 219, 1572, 222, 1573, 1569, 1555, 0, + 1009, 0, 1013, 0, 1004, 0, 1010, 0, 1005, 1002, + 1003, 0, 1008, 0, 0, 508, 510, 0, 0, 2363, + 2379, 0, 2403, 2435, 2436, 2500, 2528, 2533, 2539, 0, + 2568, 2579, 0, 1034, 1064, 1029, 714, 0, 0, 1627, + 1425, 2189, 0, 1680, 0, 0, 0, 0, 1240, 1241, + 238, 210, 0, 0, 0, 1066, 2532, 1440, 980, 622, + 0, 2027, 0, 2034, 2035, 2234, 0, 0, 0, 0, + 0, 0, 2033, 2197, 0, 0, 0, 0, 0, 0, + 1955, 0, 0, 0, 2214, 0, 2220, 0, 0, 1992, + 0, 0, 0, 0, 0, 0, 0, 0, 1956, 1936, + 1937, 2031, 2182, 0, 2032, 2279, 0, 1929, 2255, 2172, + 0, 2169, 2170, 2171, 0, 0, 0, 2249, 0, 2180, + 0, 0, 1970, 2178, 1972, 0, 0, 0, 0, 2166, + 2167, 2168, 2160, 2161, 2162, 2163, 2164, 2165, 2176, 1952, + 0, 0, 2119, 0, 1951, 0, 0, 1765, 0, 2277, + 2237, 1765, 254, 255, 251, 0, 0, 206, 205, 0, + 224, 228, 229, 200, 227, 0, 223, 208, 2106, 2105, + 207, 199, 196, 194, 211, 213, 214, 197, 195, 248, + 0, 0, 0, 348, 1553, 0, 1536, 1537, 1533, 1540, + 1762, 0, 1674, 0, 1678, 1553, 0, 1549, 1669, 1668, + 1703, 1704, 1109, 1667, 1732, 1733, 0, 0, 0, 0, + 1758, 1756, 1723, 1714, 1722, 0, 0, 1720, 0, 1724, + 1932, 1751, 1656, 1708, 1709, 1712, 1655, 0, 1754, 0, + 1630, 1752, 1713, 1614, 0, 1592, 0, 1810, 0, 0, + 1458, 0, 0, 0, 1138, 1140, 0, 1139, 0, 1142, + 0, 1151, 0, 0, 1137, 1156, 0, 1145, 1143, 0, + 1497, 0, 0, 916, 0, 0, 0, 0, 1478, 0, + 0, 2568, 242, 1481, 1486, 1473, 1484, 0, 0, 0, + 0, 0, 1068, 1067, 0, 0, 1091, 0, 0, 0, + 1504, 496, 0, 345, 0, 0, 0, 0, 0, 0, + 0, 0, 804, 801, 0, 0, 800, 0, 636, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 676, 0, 1310, 0, 708, 0, 1175, 0, 1174, + 0, 1179, 0, 0, 1176, 1171, 1172, 2533, 2543, 2574, + 244, 1177, 1199, 0, 1198, 1194, 0, 1120, 0, 1121, + 0, 0, 0, 0, 0, 2389, 2414, 286, 308, 0, + 1309, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 330, 0, 0, 333, + 332, 0, 0, 0, 0, 0, 337, 316, 0, 317, + 0, 336, 0, 0, 0, 602, 603, 0, 0, 0, + 1310, 0, 277, 0, 0, 0, 0, 0, 0, 0, + 0, 1216, 0, 731, 0, 0, 2533, 1195, 0, 0, + 0, 0, 0, 0, 1388, 0, 0, 161, 0, 156, + 160, 0, 0, 2533, 1196, 0, 0, 0, 0, 0, + 585, 586, 599, 0, 590, 591, 588, 592, 593, 0, + 0, 0, 0, 0, 0, 0, 584, 0, 0, 698, + 697, 701, 0, 0, 0, 0, 0, 1397, 0, 1190, + 0, 0, 1396, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1253, 1252, 0, 0, 0, 0, 1320, + 0, 846, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 163, 718, 0, 717, 0, 157, 162, 0, 0, + 0, 0, 0, 0, 0, 0, 218, 1447, 1453, 1702, + 1702, 1702, 2045, 0, 0, 0, 0, 1701, 2240, 2243, + 1523, 2268, 1522, 0, 0, 0, 0, 961, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 953, 954, 955, + 956, 0, 0, 0, 0, 0, 393, 390, 391, 393, + 0, 0, 0, 0, 820, 0, 823, 826, 0, 1469, + 462, 0, 0, 628, 676, 0, 0, 446, 170, 0, + 0, 0, 0, 733, 0, 0, 0, 1383, 132, 179, + 181, 444, 0, 180, 182, 184, 185, 186, 183, 187, + 0, 695, 699, 0, 0, 0, 0, 624, 0, 0, + 0, 0, 0, 748, 752, 751, 755, 753, 0, 749, + 0, 0, 1830, 0, 0, 155, 0, 0, 575, 579, + 0, 0, 0, 0, 446, 546, 359, 2414, 0, 507, + 0, 2414, 0, 1088, 0, 807, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1642, 348, 1160, 0, + 1491, 0, 0, 0, 0, 348, 1904, 1903, 1856, 1852, + 0, 0, 0, 0, 919, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1872, 348, 1124, 169, 2295, 0, + 887, 0, 0, 0, 0, 348, 1218, 875, 348, 165, + 348, 348, 627, 0, 348, 167, 0, 0, 0, 619, + 348, 913, 348, 2263, 0, 348, 1585, 2414, 507, 1557, + 1568, 1006, 1015, 1014, 1012, 1011, 1007, 0, 1026, 0, + 506, 0, 0, 0, 0, 0, 1042, 1043, 0, 0, + 1039, 1044, 0, 1040, 1041, 1046, 1036, 1035, 1047, 1048, + 0, 0, 1066, 712, 0, 0, 0, 0, 1624, 0, + 1622, 0, 1808, 1626, 1615, 1576, 0, 1575, 0, 568, + 1087, 1087, 1250, 0, 0, 1023, 0, 0, 348, 1439, + 0, 982, 988, 0, 0, 0, 0, 0, 0, 0, + 991, 992, 0, 993, 984, 994, 985, 995, 0, 986, + 0, 0, 0, 0, 2247, 2193, 0, 2194, 0, 0, + 2233, 2229, 0, 0, 0, 0, 0, 2198, 2201, 2202, + 2203, 2200, 2204, 2199, 0, 0, 2205, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2640, 0, 0, + 0, 0, 2000, 0, 0, 2153, 0, 2182, 2219, 0, + 0, 0, 0, 0, 0, 2182, 2225, 0, 0, 0, + 0, 2104, 0, 2101, 0, 0, 0, 0, 2246, 0, + 0, 2280, 1933, 1947, 1948, 1949, 1953, 2254, 0, 2248, + 0, 0, 1934, 1961, 0, 2226, 1988, 0, 1993, 1976, + 2206, 2207, 2208, 2209, 1995, 0, 1969, 0, 1974, 1978, + 0, 1957, 0, 1954, 0, 2249, 2181, 0, 2179, 0, + 1944, 1945, 1946, 1938, 1939, 1940, 1941, 1942, 1943, 1950, + 2157, 2155, 2156, 0, 0, 0, 2127, 0, 0, 1973, + 2406, 2442, 0, 1693, 1693, 1693, 1681, 1691, 2253, 0, + 1825, 1702, 1825, 2259, 0, 0, 1929, 0, 1806, 921, + 922, 920, 1526, 1530, 1539, 1553, 2183, 1547, 1676, 0, + 0, 1528, 1551, 0, 1107, 1108, 0, 1112, 2640, 2530, + 0, 0, 0, 0, 1725, 1759, 0, 1750, 0, 2273, + 1726, 2272, 1727, 1730, 1731, 1721, 1760, 1628, 0, 1755, + 1660, 1659, 0, 1828, 0, 0, 0, 1606, 1594, 0, + 1811, 0, 1765, 1632, 0, 2246, 1763, 1359, 1254, 1321, + 1141, 0, 1874, 1152, 0, 1136, 0, 1135, 1874, 0, + 1153, 0, 1874, 1360, 1255, 1322, 917, 1361, 1256, 1323, + 1362, 1257, 1488, 1476, 1475, 1474, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785, 2414, 348, 1502, 1363, 0, 1258, 344, 1503, 1324, + 1507, 803, 802, 0, 0, 1325, 0, 637, 0, 641, + 0, 643, 644, 645, 0, 0, 0, 646, 0, 2340, + 2397, 648, 651, 652, 653, 660, 665, 655, 0, 0, + 667, 661, 0, 0, 0, 0, 0, 0, 673, 678, + 0, 0, 0, 0, 0, 0, 1169, 1170, 1364, 1261, + 0, 1326, 0, 1119, 0, 1262, 171, 0, 0, 269, + 2414, 288, 0, 680, 785, 0, 1312, 285, 314, 0, + 329, 324, 325, 323, 2414, 348, 2414, 348, 0, 0, + 0, 0, 0, 326, 321, 322, 318, 0, 0, 331, + 2315, 2381, 2544, 0, 684, 686, 0, 691, 334, 1282, + 355, 354, 353, 0, 338, 0, 360, 363, 335, 315, + 313, 310, 282, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2266, 0, 0, 1211, 0, 1367, 1327, 0, + 1349, 0, 0, 0, 0, 725, 1370, 1268, 1330, 0, + 1389, 1391, 1381, 1269, 1390, 159, 1299, 148, 0, 0, + 144, 0, 0, 0, 0, 138, 1371, 1270, 1331, 0, + 0, 1372, 1271, 0, 0, 274, 578, 589, 594, 1276, + 598, 595, 1339, 596, 1379, 1272, 0, 1375, 1302, 1334, + 561, 1382, 1398, 1273, 1190, 1393, 1395, 0, 1310, 0, + 263, 265, 0, 284, 0, 1274, 0, 1332, 1374, 1301, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1510, + 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, + 1312, 2414, 348, 1373, 0, 1307, 0, 1347, 0, 0, + 381, 0, 1300, 1310, 0, 276, 1278, 0, 1341, 0, + 0, 216, 215, 217, 0, 0, 0, 0, 2187, 2188, + 0, 2185, 2040, 2242, 0, 970, 928, 969, 0, 2379, + 0, 927, 929, 0, 0, 0, 930, 0, 934, 935, + 0, 0, 0, 926, 924, 925, 392, 0, 0, 742, + 743, 0, 0, 0, 0, 822, 0, 0, 0, 1500, + 0, 135, 635, 0, 0, 0, 630, 675, 680, 0, + 0, 0, 0, 445, 449, 453, 454, 455, 0, 0, + 0, 0, 149, 136, 0, 864, 0, 507, 0, 735, + 1387, 1386, 1189, 0, 181, 174, 0, 0, 696, 0, + 1548, 0, 0, 359, 817, 815, 814, 816, 0, 0, + 0, 838, 813, 0, 1829, 1831, 0, 0, 0, 0, + 0, 0, 568, 448, 0, 0, 510, 0, 549, 0, + 0, 0, 0, 546, 0, 0, 0, 2299, 0, 834, + 806, 1130, 0, 1148, 1131, 0, 0, 0, 0, 1183, + 1115, 1184, 1161, 1116, 0, 0, 607, 1647, 1648, 0, + 1208, 0, 0, 1496, 0, 1494, 0, 1873, 1886, 886, + 0, 1914, 1913, 1915, 1915, 0, 1857, 0, 1898, 1923, + 1924, 1925, 1926, 1927, 1928, 0, 1922, 1866, 1202, 348, + 0, 348, 0, 348, 1210, 1204, 1206, 1403, 0, 884, + 0, 0, 348, 877, 879, 0, 881, 0, 1027, 509, + 0, 0, 0, 0, 0, 0, 1038, 605, 1045, 0, + 1059, 1054, 1056, 0, 1060, 711, 0, 0, 1625, 1618, + 1620, 1619, 0, 0, 1616, 2190, 876, 0, 574, 0, + 0, 0, 0, 348, 0, 1061, 0, 0, 989, 983, + 0, 0, 987, 0, 0, 0, 990, 0, 0, 1698, + 2191, 2192, 0, 0, 0, 2230, 0, 0, 2079, 0, + 2053, 2055, 2067, 0, 2080, 2038, 2081, 2057, 2059, 2068, + 0, 0, 2173, 0, 0, 2070, 0, 2002, 2003, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2018, 2017, 2071, 2152, + 0, 0, 2217, 2218, 2072, 0, 0, 2224, 0, 0, + 0, 2077, 2082, 0, 0, 0, 0, 2088, 0, 2109, + 0, 0, 0, 2028, 2183, 0, 0, 0, 0, 0, + 0, 0, 0, 1994, 1977, 1997, 1971, 0, 1975, 1979, + 0, 0, 1996, 0, 0, 1965, 0, 0, 1963, 1989, + 1959, 0, 0, 1990, 0, 0, 0, 2046, 0, 0, + 1693, 1693, 1693, 1693, 1690, 0, 0, 0, 0, 2530, + 2660, 0, 1789, 1764, 1766, 1776, 1789, 1794, 1789, 2048, + 1823, 2049, 2260, 0, 1735, 0, 1735, 192, 0, 225, + 212, 1525, 1677, 1680, 1705, 0, 2174, 1112, 0, 1707, + 1729, 1728, 0, 1718, 0, 1757, 1715, 1629, 1613, 0, + 1611, 1598, 1600, 1599, 0, 0, 1601, 2246, 0, 1611, + 1593, 1637, 0, 0, 1828, 0, 1636, 0, 1874, 1133, + 1134, 0, 1157, 0, 1071, 1072, 0, 1070, 0, 0, + 0, 495, 1090, 0, 0, 0, 785, 0, 0, 499, + 0, 1505, 0, 1380, 1298, 639, 640, 0, 654, 0, + 663, 662, 0, 0, 0, 0, 0, 0, 0, 647, + 669, 611, 670, 672, 0, 0, 671, 674, 677, 1310, + 0, 709, 1284, 0, 1345, 1163, 0, 0, 1122, 0, + 0, 0, 0, 0, 0, 462, 309, 0, 0, 0, + 0, 368, 0, 290, 301, 366, 307, 0, 340, 0, + 312, 0, 305, 327, 319, 328, 320, 339, 341, 0, + 688, 689, 687, 683, 0, 690, 692, 0, 357, 0, + 0, 0, 0, 1366, 0, 1310, 0, 278, 1280, 0, + 1343, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1348, 0, 0, 0, 0, 730, 0, + 727, 0, 0, 0, 141, 140, 0, 147, 0, 0, + 0, 0, 0, 0, 0, 1399, 0, 0, 0, 0, + 0, 0, 375, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 382, 350, 0, 841, 0, 0, 0, 384, + 0, 0, 1358, 0, 0, 0, 0, 0, 1365, 1263, + 2043, 2044, 2041, 1702, 2241, 0, 0, 0, 941, 0, + 0, 0, 0, 0, 0, 395, 396, 135, 394, 417, + 0, 785, 0, 0, 819, 824, 832, 2476, 2160, 2161, + 830, 825, 827, 829, 831, 828, 0, 0, 0, 0, + 0, 478, 0, 0, 0, 468, 0, 0, 1190, 461, + 464, 465, 0, 0, 631, 634, 632, 633, 668, 0, + 448, 485, 536, 0, 151, 0, 0, 152, 150, 0, + 0, 359, 732, 0, 729, 0, 177, 444, 0, 700, + 0, 0, 0, 1190, 623, 754, 757, 750, 0, 837, + 839, 811, 0, 680, 0, 0, 580, 0, 507, 1586, + 563, 0, 538, 448, 536, 545, 0, 0, 553, 358, + 0, 0, 568, 359, 0, 0, 1091, 0, 833, 0, + 1129, 0, 0, 0, 1180, 1185, 1181, 0, 0, 1144, + 0, 1182, 1162, 1419, 1420, 1417, 1418, 0, 0, 0, + 1639, 0, 0, 1492, 0, 1892, 0, 1910, 1908, 1853, + 1858, 1931, 888, 0, 871, 0, 873, 348, 719, 0, + 620, 348, 0, 0, 0, 0, 0, 0, 1037, 0, + 1057, 0, 0, 1020, 1063, 0, 0, 1623, 1621, 566, + 0, 1242, 1243, 1066, 0, 1021, 1065, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2195, 0, 2232, 2228, + 0, 2050, 2196, 0, 0, 2212, 2211, 2153, 0, 0, + 2001, 2013, 2014, 2015, 2213, 0, 2023, 0, 0, 2010, + 2011, 2012, 2004, 2005, 2006, 2007, 2008, 2009, 2016, 2222, + 2221, 2215, 2216, 0, 2074, 2075, 2076, 2223, 2083, 0, + 2330, 2110, 0, 2087, 2103, 2102, 0, 0, 0, 2090, + 0, 0, 2099, 0, 2154, 2281, 1935, 0, 0, 1962, + 2227, 1980, 0, 0, 1998, 0, 1958, 2173, 0, 0, + 0, 0, 0, 1967, 0, 0, 0, 2130, 2125, 2126, + 2150, 0, 0, 0, 0, 0, 0, 1684, 1683, 1689, + 1789, 1794, 1789, 0, 0, 1662, 0, 1776, 0, 1788, + 1774, 1787, 0, 0, 1800, 1798, 0, 1800, 0, 1800, + 0, 1768, 0, 1790, 1770, 1787, 1772, 0, 1815, 2261, + 1824, 0, 1748, 2040, 1748, 0, 0, 0, 1706, 1110, + 1111, 1716, 0, 1719, 2359, 1826, 0, 1612, 0, 0, + 0, 1603, 1609, 1591, 0, 0, 1633, 1611, 1634, 1154, + 0, 0, 1146, 1077, 1078, 1081, 1079, 1076, 1080, 0, + 0, 0, 785, 0, 0, 517, 0, 1104, 1104, 0, + 0, 501, 558, 512, 788, 0, 0, 0, 786, 348, + 1259, 0, 664, 0, 0, 659, 657, 656, 658, 0, + 612, 1378, 1260, 0, 0, 0, 0, 1164, 1313, 0, + 0, 1283, 0, 287, 0, 458, 0, 0, 293, 302, + 0, 298, 0, 1311, 0, 0, 0, 0, 297, 370, + 0, 367, 0, 348, 348, 342, 685, 356, 361, 362, + 365, 1318, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 865, 848, 0, 0, 866, + 867, 0, 0, 0, 1213, 1214, 1212, 1350, 1351, 1356, + 1353, 1352, 1355, 1357, 1354, 0, 1266, 0, 0, 723, + 1314, 145, 142, 143, 146, 1315, 1296, 1277, 1340, 562, + 1394, 0, 0, 0, 1275, 0, 1333, 0, 1292, 1286, + 0, 0, 0, 0, 0, 1377, 1306, 1338, 1376, 1304, + 1336, 1303, 1335, 1305, 1337, 1297, 0, 0, 1833, 845, + 0, 0, 0, 348, 348, 844, 721, 1279, 0, 1342, + 1288, 0, 0, 0, 931, 0, 0, 933, 936, 0, + 938, 400, 418, 135, 0, 741, 805, 0, 0, 821, + 784, 0, 466, 0, 472, 476, 0, 0, 480, 481, + 479, 467, 1190, 507, 557, 774, 775, 0, 0, 795, + 0, 629, 0, 446, 0, 482, 0, 0, 450, 154, + 153, 0, 0, 0, 736, 740, 738, 737, 739, 734, + 0, 725, 181, 2414, 0, 0, 0, 0, 559, 1392, + 0, 767, 812, 0, 1832, 715, 0, 359, 576, 0, + 0, 0, 446, 568, 0, 451, 456, 457, 462, 0, + 546, 537, 0, 538, 547, 548, 0, 555, 1467, 0, + 569, 555, 0, 0, 0, 836, 0, 835, 1132, 1149, + 1150, 0, 0, 1113, 0, 0, 0, 0, 614, 348, + 0, 1495, 1854, 348, 348, 1239, 0, 882, 1051, 1052, + 1053, 1050, 1049, 606, 0, 1055, 713, 0, 567, 348, + 0, 997, 975, 996, 974, 976, 0, 978, 979, 973, + 971, 972, 2231, 2066, 2069, 2078, 2210, 2152, 2183, 0, + 0, 2024, 0, 0, 2073, 2650, 0, 0, 2114, 2115, + 0, 2111, 2112, 2107, 2108, 2089, 0, 2465, 2094, 0, + 0, 0, 1986, 1984, 1981, 0, 1982, 1966, 0, 0, + 1964, 1960, 0, 1991, 2116, 0, 2132, 2129, 2149, 2183, + 1688, 1687, 1686, 1685, 1775, 1771, 1773, 0, 2655, 0, + 1778, 1785, 0, 1767, 0, 1799, 1795, 0, 1796, 0, + 0, 1797, 0, 0, 1769, 0, 1785, 0, 1822, 0, + 0, 2121, 2278, 2121, 226, 1675, 0, 1717, 0, 1610, + 1595, 0, 1596, 1602, 0, 0, 0, 0, 1638, 1631, + 1147, 1155, 0, 0, 0, 497, 0, 512, 0, 0, + 0, 1097, 1106, 1096, 0, 512, 0, 1190, 790, 789, + 792, 787, 791, 1506, 0, 649, 650, 666, 1285, 0, + 1346, 1294, 0, 1627, 289, 0, 681, 296, 0, 0, + 0, 291, 369, 371, 292, 295, 299, 350, 311, 304, + 0, 0, 0, 1281, 0, 1344, 1290, 1317, 1368, 1264, + 1328, 0, 0, 854, 0, 0, 0, 0, 1369, 1265, + 1329, 0, 0, 0, 0, 1627, 0, 0, 0, 0, + 0, 0, 0, 0, 1515, 0, 0, 349, 843, 842, + 350, 383, 1308, 0, 2042, 0, 932, 939, 940, 937, + 0, 389, 397, 400, 0, 0, 1230, 1230, 0, 785, + 0, 0, 463, 477, 0, 557, 516, 0, 469, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 728, 727, 176, 0, 446, 0, 680, + 0, 761, 762, 756, 758, 0, 769, 773, 840, 0, + 0, 0, 568, 448, 0, 0, 1583, 447, 0, 0, + 459, 0, 549, 538, 546, 0, 0, 565, 0, 1460, + 0, 571, 0, 0, 0, 1186, 0, 1192, 0, 1143, + 1187, 0, 1825, 0, 0, 0, 0, 618, 1231, 1493, + 872, 874, 720, 1058, 0, 1062, 348, 977, 2154, 2019, + 0, 0, 0, 0, 2084, 0, 2085, 2113, 2091, 2095, + 0, 2092, 2093, 1983, 1987, 1985, 1968, 2118, 0, 1702, + 2151, 1818, 0, 1821, 0, 0, 1777, 0, 0, 1779, + 0, 0, 1781, 1783, 0, 0, 0, 0, 0, 0, + 2264, 2358, 2623, 2527, 0, 1734, 1736, 1739, 1741, 1740, + 1742, 1738, 1747, 0, 1664, 1663, 2175, 1827, 0, 0, + 0, 1092, 0, 1635, 1059, 0, 348, 1104, 1190, 518, + 2476, 519, 1103, 1105, 1109, 0, 1190, 0, 557, 642, + 0, 0, 271, 679, 0, 0, 294, 303, 352, 364, + 0, 1627, 0, 0, 852, 861, 861, 849, 0, 0, + 868, 1267, 724, 0, 0, 266, 1293, 1287, 0, 0, + 0, 1517, 1518, 0, 0, 0, 0, 0, 1316, 348, + 1289, 942, 0, 420, 427, 401, 405, 1509, 0, 1509, + 0, 402, 406, 1509, 1509, 399, 1825, 416, 1230, 0, + 1227, 1226, 783, 0, 505, 582, 0, 470, 0, 527, + 0, 0, 796, 0, 0, 448, 536, 0, 494, 486, + 487, 488, 490, 489, 491, 492, 493, 484, 483, 0, + 680, 858, 359, 1467, 722, 0, 0, 693, 0, 759, + 764, 763, 1509, 768, 0, 0, 0, 680, 0, 1586, + 564, 538, 448, 536, 452, 462, 0, 553, 546, 549, + 0, 550, 0, 554, 0, 0, 0, 568, 1519, 1091, + 0, 1191, 0, 0, 0, 0, 0, 0, 1234, 613, + 0, 0, 617, 608, 680, 1022, 2020, 0, 2021, 0, + 0, 2097, 2096, 0, 2136, 1823, 0, 0, 1817, 0, + 0, 1847, 0, 0, 0, 1786, 1802, 0, 1782, 1780, + 0, 1791, 0, 1793, 0, 0, 0, 1743, 0, 2120, + 2122, 0, 0, 1608, 1825, 0, 1605, 0, 1073, 0, + 1074, 1098, 557, 0, 1109, 1112, 507, 557, 0, 785, + 1295, 0, 682, 582, 0, 306, 0, 279, 1291, 0, + 0, 863, 863, 0, 0, 0, 0, 0, 0, 377, + 0, 0, 1511, 0, 1512, 1513, 1516, 385, 398, 0, + 425, 0, 423, 422, 424, 0, 413, 0, 0, 0, + 0, 0, 0, 388, 1225, 1229, 1228, 0, 0, 471, + 0, 473, 0, 513, 514, 515, 0, 475, 523, 524, + 0, 793, 0, 798, 0, 0, 0, 680, 535, 704, + 0, 0, 0, 1461, 0, 0, 560, 0, 770, 771, + 766, 0, 0, 716, 1467, 568, 546, 0, 538, 460, + 0, 555, 549, 553, 551, 552, 0, 1464, 0, 570, + 0, 1100, 1114, 1193, 1188, 1423, 0, 0, 616, 615, + 710, 2022, 2100, 2086, 2098, 2131, 0, 0, 0, 0, + 1816, 1819, 0, 1850, 0, 0, 0, 0, 1836, 0, + 1784, 0, 0, 1792, 0, 0, 0, 1737, 0, 0, + 1597, 1607, 1093, 0, 0, 522, 0, 1112, 1094, 516, + 785, 511, 498, 1627, 300, 351, 0, 0, 0, 859, + 862, 850, 851, 870, 869, 726, 1627, 0, 373, 372, + 0, 376, 0, 421, 430, 0, 428, 403, 408, 0, + 412, 410, 409, 404, 407, 0, 504, 0, 0, 0, + 0, 0, 525, 0, 526, 556, 0, 797, 0, 0, + 0, 706, 857, 0, 0, 446, 680, 760, 765, 0, + 0, 1462, 1584, 549, 538, 546, 0, 0, 540, 1104, + 1104, 433, 553, 555, 1465, 1466, 0, 0, 359, 1422, + 1421, 1680, 0, 0, 2610, 2359, 2582, 0, 2148, 2137, + 2148, 2148, 2128, 0, 0, 1848, 1849, 1834, 0, 0, + 1838, 1801, 1814, 1745, 0, 1744, 2123, 2124, 1825, 348, + 0, 785, 520, 1095, 527, 500, 272, 1627, 853, 0, + 267, 0, 378, 1514, 426, 0, 411, 773, 581, 474, + 532, 0, 531, 0, 529, 528, 794, 799, 0, 680, + 847, 1467, 694, 772, 0, 553, 546, 549, 0, 539, + 0, 1106, 1106, 555, 431, 0, 0, 555, 1405, 1680, + 1404, 1406, 1414, 1411, 1413, 1412, 1410, 1237, 1238, 0, + 2141, 2140, 2139, 2143, 2142, 0, 2135, 2133, 2134, 1820, + 0, 1837, 1840, 0, 0, 0, 1846, 1839, 1841, 0, + 1812, 1746, 1604, 1075, 0, 502, 785, 280, 860, 0, + 429, 0, 530, 534, 533, 680, 705, 1463, 778, 555, + 549, 553, 1104, 541, 1105, 543, 542, 435, 1100, 1101, + 0, 1825, 0, 1415, 1409, 1662, 1649, 0, 0, 0, + 0, 2145, 0, 2146, 0, 1843, 1844, 1845, 1842, 0, + 0, 503, 0, 0, 707, 780, 0, 776, 779, 781, + 782, 434, 553, 555, 1106, 359, 1099, 0, 1082, 1407, + 1680, 0, 0, 2138, 2144, 2147, 0, 0, 521, 374, + 0, 744, 0, 555, 432, 544, 555, 1102, 1408, 0, + 0, 0, 1813, 0, 777, 436, 1825, 0, 0, 1835, + 778, 1083, 0, 0, 0, 1235, 1236, 745 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -4993, -4993, -4993, 3862, -4993, -4993, -911, 502, 3096, -1082, + -4993, -4993, -4993, 1307, -4993, -4993, -4993, -4993, 3835, -4993, + 2184, -2445, -4993, -4993, 129, 3790, -1315, 110, 3372, 1829, + -4993, -1149, -4993, -4993, -577, 117, -4993, 3794, 480, -4993, + -4993, -4993, -4993, -4993, -4993, -4993, -4993, -620, 2307, -4993, + 2389, 1654, 6520, -2718, -4993, -4993, -1464, -3244, -4993, 954, + -4993, 982, -4249, -556, -4993, -4993, -4993, 2285, -4993, -4993, + -4993, 2228, 1450, -2, -4993, -4993, -4993, -4993, -4993, -4993, + -396, -4993, -4993, -640, 151, 53, -2466, -3783, -4993, -4993, + 826, -40, -1428, -4993, -3614, -4993, 350, -3807, -4993, -4993, + -4993, -1, -1401, 1768, -4993, -708, -1136, 2086, -2951, -502, + -4993, 125, -4993, -616, -404, -398, -523, -3830, -4315, -4993, + -4993, -630, -3273, -4623, -4766, -4326, -4144, 1794, -4993, -4993, + 153, -3159, -3237, 154, 812, -4993, 156, 164, -4993, 828, + -327, -912, -1541, -4993, -841, -4993, -4993, -4993, -2955, -4993, + -4993, -4993, -4993, 78, -4993, -4993, -4993, -4993, 873, -4993, + -4993, -4993, -4993, -4993, -4993, -2724, 2275, 2279, -4993, -3182, + -4993, -869, -4993, 1024, -2989, 1703, -4993, -4993, 1467, 3889, + 861, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -1716, -4993, + -4993, -4993, -4993, 363, 41, -4993, -4993, -4993, -4993, -4993, + -4993, -4993, 172, -4993, 2298, 1471, -4993, -4993, 36, -4993, + -4993, -4993, -4993, -4993, -4993, -575, -4588, -736, -717, -4993, + -2992, -4993, -4993, -4993, 66, -4993, -4993, -4993, -4993, -4993, + -777, -4993, 1531, -3631, -4993, -4993, 839, -4993, -4993, -4993, + -4993, -4993, -494, 127, 3061, -4993, -103, -296, -4993, -4993, + -4993, 131, -4993, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -1090, 11526, -820, -571, -4993, -4993, -4993, -4993, -4993, -2213, + -4993, -4993, -4993, -4993, -3688, -4993, 4805, 2406, 360, 173, + -4993, -18, 52, 3658, -1145, -2662, 805, -59, -4993, -4993, + -4993, -2601, -4993, -4993, -4993, -4993, -3560, 174, -4993, -637, + -4993, -3843, -4633, -4027, -3606, -639, -4993, -3585, -4992, -4009, + -3528, -4993, -4993, -4993, -4993, -567, -152, 3023, -4993, -1419, + 2659, -889, -4993, -2099, 857, 1882, 3037, -2783, -113, 3018, + -2525, -605, -3258, -4993, -4993, -2347, -198, -4993, -4993, 1553, + -1063, -4993, -4993, -4993, -4993, -628, 2968, -204, -4993, -4993, + 4192, -4993, -4387, -4993, 4162, -4993, -4993, -4993, -4993, 2879, + 2891, -4993, 2894, -4993, -4993, -1412, 1636, -4993, -773, -4993, + -4993, 2430, 1076, -4993, -4993, -4993, -4993, -4993, -4993, -4993, + -4993, 1532, 1060, -4993, -4993, -4993, -4993, -4993, -462, -638, + -4993, -4993, 177, -4993, -4993, -4993, -4993, 2297, -899, -733, + 4070, 542, 179, -4745, -4993, -4993, -1098, -4993, 3453, -4993, + -4993, -4993, -4993, -4993, 878, 881, -4993, -4993, -4993, -4993, + -2877, -4993, -4993, -4471, -4993, -4993, -4993, -4993, -4993, 4052, + 108, 2777, -4993, -4993, -4993, -44, -4993, -4993, -965, 2762, + -4993, -1921, -4993, -593, -4993, 2970, -4993, -4993, -4993, -4993, + -1892, 181, -3841, -4993, 12, -4993, -4993, 273, -4993, 695, + -4993, -4993, -3494, 14, -4993, -4993, -4993, -4993, -4468, -4993, + 20, -357, 1235, -2831, -4993, 183, 92, -4993, -4993, 2, + 287, -43, -53, -39, 5, 109, 3530, -4993, -4993, 3579, + -4993, -29, 2050, -4993, -4993, -817, -173, -4993, 2001, -648, + 2738, 3517, 3519, -4993, 1988, 2776, -1984, -1988, -4993, 1283, + -335, -177, -4993, -4993, -4993, -4993, 729, -647, 2753, -4993, + 3524, -4993, -4993, -4993, -1937, -2853, -3498, 1306, -3475, -3400, + 767, 751, -1225, 55, -41, -757, 3527, -4993, -4993, 1314, + -143, -4993, -4993, -140, -2824, 1262, -4993, -4393, -2343, 1320, + -597, -428, -4993, -516, -4993, -300, 4915, 3086, -1050, -4993, + -4993, -1015, 14671, -4993, -4993, -4993, 15189, 15544, -4993, -4993, + 16020, 16617, -4993, -795, 16626, 14185, -1019, -1889, -754, 12566, + -1822, -857, 57, -4993, -3304, -2697, -4993, -4993, -4993, 111, + 1383, 773, -4993, -4439, -3801, -4993, -4993, 329, -4993, -305, + -4993, -303, -4993, -4993, -4993, -2432, -4944, -2472, 2874, -4993, + -4993, -4993, -201, -4993, 17717, -2766, -4993, -393, -1386, -1522, + -3469, -1894, -4993, -4993, -4993, -2669, -4993, -4993, -4993, -4993, + -1249, -3336, -427, 2101, -4993, -4993, 2200, -4993, -4993, -4993, + -901, 2483, -769, -2661, 2106, -4993, -772, 2878, -784, 12137, + -689, 8861, -536, -2277, -1252, -1647, -4993, 3743, -4993, 6707, + 6047, -15, -104, 4125, -371, -6, 14040, -470, -854, 4166, + 12085, 10164, -3190 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 52, 53, 54, 55, 56, 1537, 2518, 2369, 3312, + 3313, 57, 58, 1533, 59, 60, 61, 62, 1447, 63, + 1027, 1783, 2533, 64, 2202, 809, 810, 811, 2103, 2104, + 2457, 2105, 2093, 1334, 1925, 1469, 783, 784, 1429, 1470, + 66, 67, 1328, 2084, 68, 69, 70, 1500, 1591, 1501, + 1502, 1441, 1830, 4368, 5115, 3104, 2331, 3360, 3105, 3106, + 3744, 3745, 3824, 5129, 5130, 71, 1607, 1608, 72, 73, + 2499, 3277, 3877, 4731, 4732, 4965, 622, 4393, 4394, 4952, + 4953, 5143, 5285, 5286, 2534, 1775, 3355, 3962, 3303, 4464, + 3304, 4465, 3305, 4466, 3289, 3909, 3910, 4407, 3911, 3306, + 4425, 4997, 3307, 2221, 5159, 2575, 1947, 1945, 4647, 4979, + 4224, 4225, 5371, 5167, 5168, 5169, 5394, 4427, 4470, 4471, + 5327, 5328, 3358, 3968, 4477, 4797, 4748, 2990, 75, 76, + 718, 1809, 3468, 719, 2578, 656, 720, 2535, 81, 2568, + 5161, 2569, 1563, 2383, 3890, 3448, 82, 1053, 3710, 4817, + 5052, 5053, 83, 226, 84, 1791, 85, 86, 2513, 3296, + 87, 2238, 3007, 88, 89, 3038, 3039, 3040, 90, 3735, + 4665, 1503, 3093, 3094, 3095, 3096, 3765, 91, 1786, 2542, + 2543, 92, 93, 94, 95, 2695, 2696, 96, 2443, 97, + 98, 99, 100, 3800, 4329, 4441, 3135, 3319, 3934, 4439, + 101, 3281, 2536, 1799, 2558, 2559, 4451, 4773, 4774, 4775, + 5012, 5317, 4777, 5014, 5190, 5016, 4417, 5506, 5507, 4739, + 3689, 4238, 103, 4418, 4419, 5174, 104, 2236, 105, 106, + 1759, 2505, 2506, 3891, 2585, 3368, 3369, 3948, 3949, 107, + 3219, 108, 4305, 4306, 657, 5181, 5121, 5271, 109, 110, + 4309, 4310, 111, 112, 113, 114, 115, 710, 711, 712, + 1144, 1145, 2962, 1092, 116, 2113, 117, 990, 991, 3256, + 118, 1220, 2741, 2742, 4522, 119, 743, 1164, 1165, 2537, + 121, 752, 2715, 754, 1962, 3450, 3451, 4033, 122, 123, + 2692, 2718, 124, 1434, 2212, 2213, 4219, 2538, 658, 1205, + 2582, 2985, 4890, 4641, 4891, 5338, 5480, 4642, 4904, 2907, + 3639, 126, 659, 1475, 2288, 1112, 1113, 2588, 3372, 2181, + 2182, 2183, 3988, 2184, 3374, 2185, 1408, 2186, 1063, 1064, + 3380, 3381, 3382, 3984, 3991, 2527, 4807, 4808, 127, 1472, + 2285, 128, 129, 130, 1516, 902, 1122, 1123, 131, 671, + 672, 132, 4970, 133, 1066, 134, 4815, 135, 136, 774, + 775, 1202, 1203, 137, 138, 2302, 3747, 139, 1473, 140, + 141, 3129, 3130, 4321, 142, 143, 144, 1778, 1779, 145, + 146, 3184, 3185, 147, 148, 149, 5420, 5482, 5483, 5484, + 3997, 5341, 5422, 1195, 151, 152, 153, 190, 943, 944, + 945, 855, 2539, 4799, 155, 156, 1430, 1431, 1432, 1433, + 2207, 157, 158, 159, 3394, 3395, 160, 161, 162, 163, + 1763, 164, 165, 4943, 166, 167, 1724, 168, 169, 1357, + 1358, 1359, 1360, 2118, 2895, 616, 827, 1363, 1369, 1374, + 1375, 1376, 171, 722, 1158, 1159, 1160, 1927, 172, 1198, + 994, 723, 1153, 174, 724, 2164, 2937, 3654, 3655, 3656, + 3659, 4626, 4197, 725, 2933, 177, 1969, 2701, 2704, 2929, + 726, 2942, 2943, 2944, 3662, 727, 745, 1056, 2595, 728, + 1295, 182, 183, 184, 836, 830, 831, 2900, 186, 2077, + 2876, 761, 1380, 796, 797, 845, 2467, 2130, 2131, 2155, + 2156, 1389, 1390, 2143, 2147, 2148, 2920, 2913, 2136, 4182, + 4875, 4876, 4877, 4878, 4879, 4880, 4611, 2151, 2152, 1392, + 1393, 1394, 2160, 187, 2880, 3613, 3614, 3615, 4159, 4160, + 4174, 4170, 4596, 4862, 3616, 1193, 1400, 4604, 5450, 3617, + 4851, 4852, 5068, 4178, 3624, 3650, 3343, 3344, 3345, 3618, + 5237, 5238, 5447, 5448, 5070, 5071, 2187, 1860, 1094, 1296, + 1095, 1872, 1297, 1844, 1097, 1298, 1299, 1300, 1100, 1301, + 1302, 1303, 1103, 1836, 1304, 1305, 1854, 1869, 1870, 1364, + 5072, 1307, 1308, 1309, 3620, 1310, 4112, 4560, 4546, 2802, + 2803, 2100, 4108, 3555, 4102, 2072, 2866, 4884, 5089, 5090, + 3597, 4138, 4576, 4849, 5229, 5348, 5349, 5436, 1311, 1312, + 1313, 2863, 2068, 905, 1314, 3893, 2070, 2796, 1632, 1633, + 1972, 1994, 2748, 2764, 2765, 2840, 2776, 3514, 2784, 2789, + 3542, 3543, 2797, 2826, 1315, 2750, 2751, 3496, 1996, 1316, + 949, 1636, 950, 1991, 2821, 1324, 1317, 1318, 1963, 820, + 4858, 1148, 861, 3121, 1716, 952, 758, 1319, 1320, 1321, + 1322, 1509, 876, 1115, 1116, 613, 605, 878, 3097, 614, + 607, 608, 1721 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 604, 903, 180, 819, 904, 185, 1562, 747, 835, 1021, + 846, 1924, 175, 747, 176, 1329, 822, 755, 788, 757, + 178, 2396, 1147, 763, 1612, 1325, 185, 1880, 777, 785, + 755, 1395, 792, 2326, 2220, 785, 785, 1850, 821, 1414, + 824, 1184, 1185, 1186, 1508, 1624, 1944, 1190, 869, 1722, + 1567, 3302, 1355, 2297, 3473, 2289, 909, 1630, 3626, 914, + 1840, 1841, 3182, 602, 3383, 1356, 655, 1788, 3123, 1984, + 1849, 1856, 3736, 1343, 2309, 753, 2470, 4226, 856, 3648, + 2298, 2707, 3716, 2955, 2957, 3325, 2563, 3216, 789, 3944, + 3973, 3454, 1006, 1057, 1717, 1761, 709, 3895, 2747, 1766, + 611, 3760, 1476, 3762, 1770, 2461, 912, 663, 170, 4188, + 3661, 1504, 4125, 4156, 1780, 3960, 3918, 65, 4463, 4221, + 934, 4265, 3992, 1155, 1126, 3992, 840, 1130, 1804, 721, + 2423, 2424, 848, 4484, 4473, 1138, 1526, 4424, 1206, 4289, + 3637, 1543, 4173, 1068, 2882, 782, 849, 3563, 2811, 2280, + 4855, 74, 816, 77, 78, 4801, 79, 1834, 4794, 833, + 2925, 2193, 2922, 4983, 80, 4203, 3580, 2583, 3667, 5027, + 808, 5040, 102, 120, 125, 4755, 2419, 150, 927, 154, + 4472, 173, 3621, 179, 1355, 604, 859, 859, 862, 2646, + 859, 3957, 2781, 2892, 871, 4912, 821, 1388, 1391, 906, + 1059, 4643, 871, 2450, 2901, 871, 4091, -2399, 821, 2280, + 859, 2116, 4867, 821, 4869, 729, 4171, 859, 4176, 821, + -2327, -2437, -1907, 4793, 3520, 1336, 2280, -2460, 1827, 1840, + 1841, 729, 669, -2497, 1800, 3621, 620, 4935, -1874, 2459, + 2460, 4945, 4946, 3315, 1773, 2310, -1887, 1161, 1166, 1827, + 1849, -1912, 4434, 1827, -1902, -2402, 1856, 2430, 5183, 2040, + 1801, 5201, 669, 3261, 1471, 3262, 729, 2435, 1505, 3266, + 3241, 3268, 3269, 3982, 729, 5120, 669, 2524, 1837, 1838, + 3273, 3274, 3275, 1170, 3666, -2271, 1871, 181, 2046, 1848, + 2111, 1752, -2299, 854, -2270, 669, -2300, 2717, 1561, 3912, + 4551, -2299, -2299, 2819, 1471, -2300, -2300, 1590, 181, 1471, + 2819, 3001, -1915, 4640, 2300, 3717, -2666, 1617, 5061, 1926, + 2048, 4651, 1128, -2158, 2417, -2666, -2666, 1215, 669, 2204, + -2158, 3993, 1059, -135, 2671, 3712, 1141, 729, 834, -135, + 1333, 2678, 3471, 4435, -1915, 4163, 4485, 2226, 2497, 3458, + 4971, 1827, 2516, 4624, 3460, 3421, 1361, 3423, 4813, 2572, + 4524, 4525, 2879, 4527, 4528, 4529, 4530, 4531, 1827, 1361, + 4460, 843, 1402, 735, 1181, 5339, 2572, -1731, 1827, 4227, + 1621, 5050, 1827, 3643, 2573, 3279, 735, 735, 939, 5463, + 2349, 618, -2458, 735, 4410, 4461, 5431, 736, 2860, 735, + 5429, 2573, 1827, 2521, 2927, 2861, 5203, 3229, 1443, 1814, + 736, 736, 2127, 1602, 2693, 2275, 3994, 736, 4164, 5475, + 5476, 735, 2090, 736, 1505, 669, -2177, 2988, 4436, 2305, + 729, 2306, 4189, -2177, 3942, 1365, 904, 5333, 1837, 1838, + 188, 2531, 3729, 615, 1624, 736, 3822, 3623, 4756, 5321, + 3292, 4165, 3210, 5117, 1722, 2300, 2454, 735, 2300, 1535, + 4668, 3770, 2357, 2300, 5010, 1848, 4166, 4673, 3818, 2455, + 1846, 1847, 847, 2301, 3771, 5082, 4167, 1443, 5028, 2374, + 2672, 736, 1536, 2989, 189, 3211, 940, 904, 669, 839, + 188, 3663, 2307, 3823, 4190, 4757, 2300, 2456, 2380, 2694, + 2094, 2300, 4168, 2697, 3520, 2106, 2106, 1828, 2276, 2928, + 5011, 5008, 2673, 2040, 3730, 2300, 1603, 1444, 2214, 2117, + 2532, 2522, 5535, 2300, 2350, 2674, 2034, 5062, 1828, 825, + 2150, 1015, 1828, 2091, 189, 941, 2215, 1025, 2112, 1757, + 2517, 5432, 2046, 5464, 2300, 5523, 4411, -1731, 1182, 2311, + 1039, 5340, 3883, 3644, 2080, 1622, 5051, 3293, 2040, 1717, + 2675, 4625, 2312, 1975, 2313, 1908, 5413, 1403, 3494, 1928, + 3995, 3459, 2574, 3717, 2048, 1722, 3461, 2465, -419, 5332, + 3895, 5154, 4437, 4462, 5299, 3280, 1444, 2046, 2498, 4767, + 2399, 3713, 942, 4169, 2216, 4975, 2679, 3913, 4814, 1225, + 1515, 4977, 3520, 1967, 5320, 4324, 3521, 3522, 3523, 3242, + 953, 2267, 867, 2217, 1878, 3002, 821, 3520, 859, 2048, + 859, 2274, 862, 998, 859, 2314, 185, 2698, 1082, 2436, + 1828, 906, -2458, 995, 3983, 996, 1028, 4652, 859, 5469, + 3996, 997, 1988, 2525, 2418, 859, 2391, 1828, 2431, 2394, + 2092, 1189, 4438, 2820, 4565, 1835, 5467, 1828, 2437, 1829, + 3586, 1828, 5282, 2509, 4593, 1217, 1189, 2227, 4597, 604, + -2158, 621, 1059, 862, 835, 1396, 4173, 1162, 871, 2123, + 1857, 1828, 906, 1758, 1875, 871, 3663, 4433, 871, 3406, + 1059, 1968, 2881, 3535, 4231, 989, -2399, 741, 742, 2401, + 5405, -2458, -1907, 5415, 859, 5513, 5196, 3682, 2381, -2327, + -2437, 2384, 2385, 4629, -2458, 1163, -2460, 1168, 1839, 1172, + 1192, 185, -2497, 947, 2458, 1176, 1843, 948, 2067, 4481, + 4536, -1912, 741, 742, -1902, 4480, 1630, 1630, 1630, 2343, + 1506, 1507, 2036, 3294, -2402, 2862, 5533, 2161, 2162, 1059, + 4584, 4837, 4586, 1888, 2364, 821, 2078, 1851, 2121, 1917, + 2218, 2088, 1623, 947, 5109, -2271, 1739, 948, 1154, 904, + 1207, 4455, -2299, -2177, -2270, 2885, -2300, 1535, 1852, 3524, + 664, 1192, 1886, 848, 5471, 2449, 2560, 3895, 3819, 1851, + 1323, 1323, 1853, 821, 785, 5376, -2666, 849, 785, 1910, + 1536, 3525, 2412, 741, 742, -135, -135, 2667, 5380, 1913, + 1852, 1399, 821, 1878, 1734, 2466, 821, 1964, 1445, 2650, + 1741, 1047, 1323, 1742, 1855, 1157, 3042, 1450, 1974, 2699, + 2265, 3117, 3295, 4032, 821, 2121, 1179, 3815, 4827, 5353, + 180, 4063, 1727, 185, 1985, 3854, 821, 5512, 826, 2700, + 175, 3043, 176, 4253, 4790, 3669, 2624, 3670, 178, 1758, + 2677, -1874, 821, 3957, 3875, 3876, 3061, 2284, 1059, 3526, + 5101, 2689, 1758, 2219, 4294, 5331, 1059, 1059, 2749, 3936, + 821, 1446, 2934, 5325, 4351, 859, 859, 4392, 4211, 4396, + 1059, 2351, 2342, 5300, 2479, 5105, 1506, 1507, 4976, 868, + 2075, 2033, 3109, 1968, 2507, 1345, 4302, 1827, 181, 5457, + 843, 3621, 669, 1011, 3621, 5530, 2228, 785, 785, 2984, + 2284, 2438, 1862, 615, 3642, 4395, 5309, 2922, 3118, 1332, + 4422, 1109, -1730, 1340, 1596, 4191, 1435, 2284, 1366, -1874, + 1323, 1323, 2966, 3251, 1732, 887, 170, 794, 5324, 604, + 3015, 3925, 888, 889, 890, 65, 3517, 3518, 5255, 4708, + 871, 3537, 1048, 5260, 906, 2561, 871, 669, 2280, 871, + 3532, 3533, 3534, 3535, 3631, -1091, 1597, 2214, 1428, 2064, + 2065, 2066, 2067, 4709, 859, 669, 3621, 3869, 3870, 74, + 669, 77, 78, 2976, 79, 1863, 4201, 3629, 3567, 3568, + 5021, 5494, 80, 181, 834, 3664, 821, 5414, 2169, 5406, + 102, 120, 125, 859, 859, 150, 5443, 154, 4303, 173, + 617, 179, 2062, 2063, 2064, 2065, 2066, 2067, 2396, 4322, + 790, 1527, 4226, 782, 1582, 821, 821, 821, 1418, 859, + 3412, 604, 604, 604, 4498, 1436, 3785, 795, 1862, 4919, + 3868, 2606, 2607, 2216, 665, 2439, 1864, 4352, 2974, 1865, + 2935, 5030, 3527, 3528, 3529, 2229, 3530, 3531, 3532, 3533, + 3534, 3535, 2217, 768, 4832, 5031, 4039, 3, 4, 2977, + 3965, 3530, 3531, 3532, 3533, 3534, 3535, 5477, 3100, 4448, + 2744, 5481, 1167, 1169, 1171, 5257, 4859, 1173, 1174, 1175, + -2268, 4863, -1730, 2576, 4865, 4192, 3110, 1180, 1049, -1874, + 850, 859, 666, 859, 859, 4856, 3244, 2959, 4423, 3926, + 1419, 1863, 4304, 847, 670, 181, 40, 5444, 1850, 188, + 1821, 1820, 2562, 1722, 4307, 4460, 2554, 669, 715, 3516, + 1528, 3101, 5155, 5511, 1050, 1346, 1323, 1598, 1792, 5390, + 667, 2867, 668, 1866, 2230, 3786, 5176, 2782, 15, 769, + 4461, 993, 44, 3409, 3738, 2800, 5163, 185, 3373, 1866, + 1378, 1418, 1420, 189, 2686, 2687, 1946, 1946, 5195, 1722, + 2076, 821, 1864, 755, 1822, 1865, 1828, 5534, 3892, 1630, + 1793, 2817, 20, 5198, 1897, 851, 5210, 4792, 2757, 821, + 1012, 669, 5175, 1051, 48, 1981, 1437, 5545, 821, 1052, + 5546, 1987, 3147, 4780, 1347, 3635, 2845, 49, 1110, 2218, + 756, 2555, 1548, 2652, 3410, 1323, 4786, 1211, 4040, 3255, + 4635, 1733, 5096, 5085, 3308, 3992, 1898, 3016, 3102, 5197, + 50, 1549, 4710, 634, 1438, 3621, 4308, 3804, 5226, 5032, + 1599, 835, 4521, 1419, 2936, 1151, 1323, 1930, 2411, 1932, + 2676, 1934, 2034, 1936, 2681, 1938, 1939, 1940, 2685, 1421, + 1379, 2688, 1942, 3739, 2605, 4666, 5445, 1439, 3989, 2914, + 1867, 5446, 1823, 4853, 1323, 1323, 1323, 3155, 1323, 2868, + 5156, 1550, 1601, 2954, 3148, 1866, 5164, 2600, 1602, 1868, + -1874, 1529, 3033, 636, 2758, 1420, 947, 2625, 1323, -1874, + 948, 1839, -1874, 1413, 1188, -1874, 3787, 770, 904, 2119, + 2960, 4227, 2638, 2961, 760, 2640, 2659, 2128, 2129, 1422, + 2133, 2644, 2219, 1218, 4227, 5099, 766, 1866, 1824, 1530, + 1717, 849, 849, 2137, 849, 1440, 821, 3149, 5315, 5391, + 939, 3133, 2846, 2005, 3788, 767, 1399, 2847, 771, 772, + 4750, 1794, 5057, 3046, 3155, 1532, 5078, 1423, 2708, 2040, + 5165, 35, 1531, 32, 4628, 2926, 1323, 2759, 1551, 4911, + 1323, 1323, 793, 3034, 2774, 2680, 2138, 3789, 2683, 2684, + 5227, 821, 821, 2167, 2848, 1323, 5097, 3206, 1189, 3309, + 1424, 1603, 1421, 40, 3103, 3150, 1867, 1899, 893, 894, + 895, 5199, 896, 897, 898, 899, 900, 901, 785, 852, + 5228, 3147, 1493, 4415, 1548, 3134, 1552, 1758, 5392, 1553, + 2048, 2556, 1425, 1825, 1426, 3207, 2137, 2386, 2760, 44, + 4988, 2761, 4519, 1549, 2395, 2557, 2603, 2139, 940, 181, + 1161, 773, 1878, 2271, 5119, 5393, 3047, 817, 785, 5123, + 5124, 859, 2203, 4493, 1795, 3621, 828, 3166, 3208, 3621, + 647, 3107, 648, 4751, 821, 2299, 3740, 3741, 1555, 2138, + 3351, 48, 837, 821, 1427, 716, 859, 1796, 2222, 5252, + 3895, 4989, 2232, 1550, 49, 2140, 3131, 941, 1774, 4990, + 4227, 5490, 2233, 3148, 1878, 3742, 2627, -2290, 1797, 3151, + 1900, -158, 4934, 906, 1993, 821, 2223, 50, 785, 2904, + 2639, 5029, 1557, 1929, 4781, 2260, 1931, 4991, 1933, 2487, + 1935, 717, 1937, 2645, 2002, 785, 1941, 2849, 821, 3419, + -158, 821, 3167, 2414, 1558, 5020, 768, 4540, 3033, 4541, + 3170, 2762, 3310, 3173, 942, 2141, 3149, 3186, 3037, 838, + 3462, 4414, 1604, 859, 1560, 1425, 2019, 1426, 3200, 4416, + 853, 2488, 2387, 2134, 3201, 2388, 1630, 5258, 821, 5491, + 1551, 2031, 4992, 3212, 3704, 3131, 2363, 5007, 2140, 1758, + 859, 859, 859, 859, 821, 4993, 4449, 2743, 4056, 2746, + 1605, 3311, 3140, 3141, 2905, 2753, 3144, 4994, 821, 4454, + 5034, 2767, 2768, 2769, 3150, 40, 3213, 1456, 5035, 1323, + 1323, 1323, 2786, 2788, 1535, 2396, 3705, 2798, 1552, 3034, + 3152, 1553, 769, 1606, 2082, 3728, 939, 1878, 3153, 841, + 3463, 3154, 3245, 3246, 3247, 1361, 2395, 1536, 2141, 3209, + 1428, 44, -675, 5116, 4384, 1428, 3215, 3290, 4387, 4388, + 2234, 4390, 2763, 5492, 2971, 2224, 1798, 847, 847, 2135, + 847, 3892, 5388, 3059, 854, 3897, 3033, 3202, 1758, 4075, + 1555, 4076, 2636, 1493, 904, 904, 4898, 4944, 4548, 3392, + 3214, 40, 4542, 48, 4906, 1564, 4320, 2988, 2235, 4071, + 4072, 4073, 4074, 2083, 842, 4079, 4080, 4081, 4082, 4083, + 4084, 4085, 4086, 4087, 4088, 4019, 2598, 2471, 3151, 821, + 3652, 3900, 3251, 2626, 1557, 2327, 1428, 44, 3863, 5373, + 1428, 859, 859, 1565, 940, 40, 4503, 1059, 4504, 2463, + 2464, 4186, 2489, 51, 5411, 5412, 1558, 4973, 2335, 3322, + 2208, 859, 863, 3685, 729, 5202, 3653, 3034, 5182, 3165, + 865, 2209, 4853, 1517, 4129, 4130, 1560, 2223, 3321, 48, + 821, 44, 3334, 3335, 3336, 3337, 3820, 3902, 1878, 2210, + 843, 5036, 49, 941, 3342, 4408, 859, 859, 859, 859, + 770, 4227, 3035, 4995, 3190, 4234, 4996, 3706, 4549, 821, + 5209, 1384, 4941, 4268, 3037, 50, 821, 5493, 2471, 3370, + 5479, 904, 1384, 48, 4077, 40, 1384, 1385, 5179, 51, + 604, 3855, 634, 604, 4078, 4942, 49, 862, 3235, 3145, + 3036, 771, 772, 1323, 1518, 5193, 4269, 1535, 3203, 3152, + 942, 3447, 1566, 1913, 5268, 2490, 2300, 3153, 885, 50, + 3154, 44, 2040, 3688, 4409, 886, 2308, 1573, 4826, 4735, + 1536, 5049, -1701, 51, 3411, 3413, 3414, -1701, 871, 871, + 4741, 3363, 5220, 1386, -135, 3905, 3204, 4235, 3892, 906, + 906, 2046, 636, 871, 1386, 2328, 871, 5514, 1386, 3816, + 3621, -573, 4736, 48, 1342, 3969, 5329, 3621, 1574, 4648, + 3707, 1040, 3621, 859, 859, 3621, 49, 4292, 1575, 3205, + 859, 5537, 821, 2048, 2329, 5269, 4270, 3906, 844, 2691, + 3056, 2782, 2782, 5323, 185, 5112, 2782, 2702, 3621, 50, + 2211, 1387, 3037, 3907, -1701, 1387, 1041, 1946, 4236, 2330, + 3078, 3621, 4237, 51, 859, 3553, 871, 2624, 2526, 871, + 871, 3560, 821, 821, 3992, 859, 1545, 4754, 5322, 4918, + 1878, 3817, 821, 2782, 2782, 2714, 4655, 4656, 4649, 821, + 4894, 1042, 4896, 929, 2325, 998, 755, 755, 185, 4293, + 2719, -1701, 1338, 938, 1323, 995, 1323, 996, 5045, 3814, + 3446, 1323, 1323, 997, 1546, 5311, 4785, 4765, 1323, 1323, + 1323, 3079, 4949, 1323, 2086, 1323, 906, 1323, 1323, 1323, + 1323, 1323, 1323, 2367, 1323, 3386, 1323, 1323, 2370, 1043, + 1323, 2661, 946, 2662, 3080, 2663, 5148, 2664, 1157, 2665, + 3908, 5149, 4227, 2666, 2713, 1323, 1323, 1323, 1323, 1802, + 4232, 1040, 859, 1323, 1346, 3021, 2106, 1323, 904, 647, + 1323, 648, 5407, 1323, 1323, 1323, 1323, 1323, 1323, 1323, + 1323, 1323, 1803, 1323, 3625, 4745, 1576, 2740, 4941, 821, + 1323, 3432, 1323, 3469, 3470, 1000, 1041, 653, 4404, 821, + 5145, 5150, 5147, 4164, 2317, 3081, 5151, 5152, 4031, 2441, + 1409, 4942, -1662, 2447, 5417, 3017, 5219, 947, 3022, 3023, + 1577, 948, 4370, 2327, 1578, -1662, 5329, 3621, 821, 1913, + -1662, 3938, 4227, 1347, 5188, 1323, 4165, 5262, 2318, 821, + 821, 2098, 1059, 4371, 1410, -1662, 1211, 3009, 1411, 4032, + 1323, 4599, 3668, 5470, 5402, 5187, 2452, 1579, -1662, 1323, + 1323, 4167, 5153, -1662, 1404, 1002, 5189, 3741, 634, 3339, + 3897, 3627, 3331, 821, 3340, 5186, 3898, -1662, 1905, 1043, + 2940, 1412, 2945, 2099, 1851, 1005, 2938, 3621, 3899, 1592, + 4726, 3718, 4727, 4728, 2453, 4280, 4729, -1662, 1059, 3490, + 1225, 1906, 1405, 3520, 2121, 1852, 3055, 3521, 3522, 3523, + -1662, 2978, 2975, 2981, 862, 1008, 3900, 3746, 3901, 1853, + 923, 4279, 3945, 755, 4117, 755, 181, 1593, 636, 3396, + -1662, 1594, 3955, 4227, 3584, 1406, 2327, 5466, 2393, 35, + 1538, 3041, 1323, 1225, -1662, 1919, 3520, 2894, 1920, 924, + 3521, 3522, 3523, -1662, 604, 2386, 859, 859, 4456, 1609, + 1595, 871, 1613, 906, 871, 871, 1851, 859, 2366, 859, + 5236, 4405, 3902, 859, 4234, 2405, 821, -1662, 4169, 1035, + 181, -1661, 4213, 2328, 3146, 4066, -1662, 1852, 5375, 4771, + 5251, 5536, 1415, 1022, -1661, 4406, 4271, 785, 4278, -1661, + 3903, 1855, 2528, 5504, 2406, 1570, 2898, 1045, 2299, 2336, + 3677, 2317, 2329, 4772, 4092, 729, 3066, 821, 4353, 5157, + 4908, -444, 227, 3077, -572, 4263, 2565, 4254, 619, 2899, + 1416, 3621, 821, 5418, 29, 3491, 713, 2330, 1192, 1192, + 3492, 4354, 1192, 1571, 3782, 2318, -1661, 4044, 4483, 841, + 1851, 2420, 1044, 821, 791, 4941, 4235, 2825, 3122, 3122, + 2327, 3232, -1702, 1417, 3896, 3904, -1661, -1702, 1046, 3340, + 3905, 1852, 2325, 821, 821, 1630, 1572, 821, 4942, 862, + 785, 1630, 3783, 4295, 3546, 3941, 3548, 3549, 4163, 3621, + 2387, -1662, 2327, 2388, 1061, 647, 2328, 648, 1976, 5455, + 3914, 1977, 3525, 859, 4007, 4008, 859, 3519, 1013, 1065, + 1014, 3180, 3906, -1661, 842, 3784, 627, 4236, 3621, 3547, + 1108, 4237, -1661, 1774, -1662, 2329, 3673, 40, 3907, 821, + 821, 1839, 1117, 2194, -1702, 2039, 3640, 1059, 2040, -444, + 2114, 3721, 729, 2115, 3217, 3525, 3220, 3222, 744, 3695, + 2330, 3570, 2507, 947, 744, 2120, 1370, 948, 2121, 1124, + 4214, 4164, 3572, 44, 3573, 2125, 4215, 2046, 2115, 2656, + 3526, 181, 2121, 4216, -2667, 2451, 1118, 1323, 1323, 1323, + 1135, -1702, 1525, 1323, 5501, 2325, 4210, 1542, 3574, 859, + 843, 1839, 1152, 2194, 4165, 3599, 1142, 859, 3186, 2048, + 859, 634, 729, 5001, 1192, 48, 859, 3044, 4217, 4166, + 947, 1183, -2271, 3526, 948, 1323, 3777, 859, 49, 4167, + 2328, 1187, 4474, 3621, -1085, 3908, 2668, 3884, 1191, 2669, + 4218, 2299, 4951, 1194, 3122, 2670, 821, 5212, 2669, 821, + 1017, 50, 1018, 3324, 2705, 4168, 755, 2706, 2897, 2329, + 2946, 1913, 2328, 2121, 3053, 5419, 1059, 3054, 859, 1323, + -1661, 636, 3125, 2327, 5452, 3126, 3569, 3285, 4229, 4230, + 3286, 5102, 4860, 1197, 2330, 3397, 3217, 1199, 2121, 5107, + 4467, 2329, 3373, 1992, 3438, 51, 859, 2669, 3356, 2830, + 2831, 2832, 2833, 3352, 3480, 3489, 3575, 3483, 2121, 1201, + 3484, 3892, 3576, 1200, 3327, 3498, 2330, 3577, 2121, 2325, + -2667, 1208, 5369, 3326, 2327, -2667, 1323, 1839, 1204, 1413, + 715, 2830, 2831, 2832, 2833, 3674, 3675, 3476, 844, 3931, + 1225, 3504, 3505, 3520, 2121, 2121, 4169, 3521, 3522, 3523, + 15, 2325, 2593, 859, 2594, 859, 3122, 859, 3122, 3600, + 3506, 3601, -2667, 2121, 4118, 3539, 3, 4, 2121, 3621, + 4050, 904, 1210, 3527, 3528, 3529, 1209, 3530, 3531, 3532, + 3533, 3534, 3535, 2624, 20, 1211, 3552, 5518, 3119, 2121, + 2923, 2924, 2744, 1946, 2782, 2782, 2782, 2782, -1725, -1725, + 2782, 2782, 2782, 2782, 2782, 2782, 2782, 2782, 2782, 2782, + 3557, 3763, 1214, 3558, 3764, 2055, 3527, 3528, 3529, 1219, + 3530, 3531, 3532, 3533, 3534, 3535, 1341, 4101, 3768, 4035, + 1212, 3769, 4104, 2328, 4861, 3636, 1213, 5041, 647, 3812, + 648, 1221, 3793, 3621, 604, 3794, 3915, 4829, 3917, 3621, + 871, 650, 5551, 871, -1729, -1729, 871, 3578, 1624, 2782, + 2782, 3852, 2329, 652, 3794, 859, 1774, 835, 3579, 4279, + 1344, 3978, 3980, 1323, 3979, 3981, 4003, 4005, 1323, 4004, + 2121, 3602, 4098, 3603, 2328, 4099, 4028, 2330, 3966, 4109, + 3967, 1225, 4110, 3798, 3520, 2744, -1728, -1728, 3521, 3522, + 3523, 1348, 1323, 1323, 1323, -2667, 4120, 1323, 1839, 2121, + 2194, 835, 3807, 2329, 1349, 1323, 1323, 1323, 1323, 4397, + 4199, 4398, 2325, 4200, 1548, 5350, 5351, 2804, 1323, 3986, + 2807, 1323, 1225, 1323, 4204, 3520, 1350, 4205, 2330, 3521, + 3522, 3523, 3525, 1549, 1323, 1323, 4209, 1354, 1323, 2961, + 3621, 4233, 1362, 1059, 2669, 1059, 4568, 1367, 4457, 4516, + 4272, 2669, 1968, 1368, 4664, 32, 906, 5519, 1323, 5520, + 1323, 1370, 1323, 2325, 3605, 3606, 3607, 4537, 4566, 4785, + 2121, 2706, 1225, 4179, 4578, 3520, 1371, 2121, 181, 3521, + 3522, 3523, 1323, 1550, 4631, 40, 821, 2961, 4637, 4644, + 2327, 4638, 2669, 3622, 4645, -2667, 4569, 2669, 5437, 5438, + 3526, -2569, 2062, 2063, 2064, 2065, 2066, 2067, 1370, 821, + -1650, 4250, 1381, 835, 1383, 4787, 4819, 1323, 4788, 4004, + 4834, 44, 4836, 4835, 4955, 2121, 1059, 4843, 4913, 1382, + 2706, 4914, 1323, 1225, 1397, 3107, 3520, 4290, 1398, 1413, + 3521, 3522, 3523, 1401, 1407, 2327, 3622, 4274, 5002, 5042, + 3657, 2669, 5043, 3660, 1448, 2945, 3619, 3924, 2039, 3927, + 3131, 2040, 4598, 48, 4601, 2041, 2042, 2043, 4956, 5058, + 1551, 1474, 2706, -2301, 4319, 5065, 49, 1477, 5066, 1479, + 3186, 5075, 2044, 3525, 1913, 5081, 4391, 1480, 3952, 5083, + 2046, 1515, 3952, 4957, -2569, 1519, 1323, 2047, 3122, 50, + 1520, 1532, 1521, 1946, 4376, 3821, 2327, 2327, 5094, 3619, + 4958, 5095, 5138, 51, 4959, 5139, 5178, 5211, 1552, 2085, + 5095, 1553, 2048, 2827, 3525, 2828, -2571, 1534, 5056, 1544, + 859, 1547, 859, 859, 859, 4960, 2395, 5221, 4961, 5222, + 2706, 1569, 3558, 5223, -2569, 5234, 2121, 1583, 5235, 2829, + 2328, 3526, 2039, 4962, 1584, 2040, 5240, -2569, 5243, 1913, + 3856, 3952, -2569, 2782, 1600, 5261, 4381, -2569, 2669, 5267, + 1555, 1610, 2706, -2569, 3525, 5273, -2569, 1611, 2706, 2329, + -2569, 1614, 5274, 4561, 2046, 2706, 5277, 2031, 1620, 2121, + 1619, -2667, 3526, 3527, 3528, 3529, 1723, 3530, 3531, 3532, + 3533, 3534, 3535, 1725, 2330, 2328, 3636, 1726, 5278, -2569, + 5279, 2121, 5307, 5280, 1557, 5308, 2048, 1728, 1731, -2571, + 4043, 4255, 4296, 5357, 1736, 5361, 5358, 4621, 1913, -2569, + 1735, 2031, 1745, 2049, 2329, -2667, 1558, 5362, 2050, 2325, + 2121, 4963, 3526, 4068, 5363, 5365, 821, 2121, 2121, 1744, + 2830, 2831, 2832, 2833, 2825, 1748, 1560, 2834, 2835, 2330, + 2051, 2052, 5384, 2836, 1754, 5385, 2328, 2328, 2837, -2571, + 3593, 5409, 1751, 1762, 5410, 2053, -2569, 4097, 5439, -2569, + 1756, 3952, -2571, 3583, 1765, -2569, 3612, -2571, 1767, 1758, + 1776, 4964, -2571, 40, 2325, 2329, 2329, 5451, -2571, 5478, + 5088, -2571, 5095, 3526, 5516, -2571, 5529, 5517, 4513, 2121, + 5531, 1777, 5549, 5532, 2054, 5358, 5557, 1781, 1782, 5532, + 2330, 2330, -178, 1784, 1785, 4141, 1787, -2667, 2055, 44, + 1789, 2056, -2667, 1790, -2571, 1805, 1819, 1812, 207, 3612, + -2569, 1826, 1831, 834, 3527, 3528, 3529, 1832, 3530, 3531, + 3532, 3533, 3534, 3535, -2571, 2325, 2325, 1833, 1323, 1835, + 1839, 1842, 1843, 1845, 1323, 4552, 29, 5233, 1859, -2667, + 1861, 48, 1873, 859, 1874, 1877, 1885, 1878, 3122, 3122, + 1889, 1891, 1892, 1894, 49, 3527, 3528, 3529, 1896, 3530, + 3531, 3532, 3533, 3534, 3535, 760, 1902, 1904, 1722, 1901, + 1909, -2571, 1912, 1915, -2571, 1916, 1973, 50, 2838, 1918, + -2571, 1980, 1943, 821, 821, 821, 4761, 4589, 2057, 2839, + 2744, 51, 2055, -2569, 1982, 1983, 1989, 1990, -1878, -1885, + 821, 1997, 1998, 1999, 2000, 3527, 3528, 3529, -1875, 3530, + 3531, 3532, 3533, 3534, 3535, 3976, 2001, -2569, -1876, -2569, + -2569, -1879, 1946, 821, 4508, 4509, 4510, 4511, 4512, 40, + -1877, 51, 1946, 821, 821, -2571, 2003, 2004, 821, 2071, + 2005, 3122, 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2073, + 821, 2075, 2014, 2015, 3972, -2569, 2016, 2089, -2569, -2569, + -2569, 2017, 2076, 2018, 2020, 44, 3527, 3528, 3529, 2021, + 3530, 3531, 3532, 3533, 3534, 3535, 2022, 4467, 2023, 2101, + 2024, 4000, -2667, 2025, 2026, 2027, 2085, 2109, 2058, 2124, + 760, 2059, 2060, 2061, 2126, 2062, 2063, 2064, 2065, 2066, + 2067, 1385, 1387, 2157, 2159, 1192, 2168, 48, 3511, 2170, + 2171, 4135, 2172, 2173, 4619, 2189, 2190, 2191, -2571, 859, + 49, 4672, 2192, 2194, 2197, 2195, 2198, 2196, 2199, 5104, + 2200, 2206, 2225, 2231, 2237, 2262, 2266, 2268, 2269, 2270, + 821, 2272, -2571, 50, -2571, -2571, 2273, 2286, 2290, 2292, + 2303, 2304, 2291, 821, 2319, 2315, 821, 51, -1416, 2321, + -1416, 2324, 2322, 2323, 2325, 2332, 2333, 2338, 2334, 2337, + 2339, 2348, 4733, 2344, 2345, 2354, 2358, 2355, 1323, 2361, + -2571, 2359, -2667, -2571, -2571, -2571, 2360, 1323, 2365, 2062, + 2063, 2064, 2065, 2066, 2067, 1323, 2362, 1323, 2375, 2368, + 1323, 2371, 2382, 2389, 2392, 1323, 1323, 1323, 1323, 1493, + 2409, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, + 1323, 2415, 2372, 2377, 1323, 1323, 2378, 2390, 2416, 1548, + 2432, 2433, 2397, 2413, 1323, 2398, 2403, 2440, 1323, 835, + 2462, 2404, 1323, 2408, 4429, 4430, 2410, 2473, 1549, 4616, + 1323, 2421, 2422, 1323, 2434, 1323, 2445, 2475, 835, 3636, + 2476, 4143, 4144, 4145, 4146, 2039, 2469, 1323, 2040, 2478, + 1323, 1323, 2041, 2042, 2043, 1323, 1323, 2482, 2483, 2484, + 4139, 2477, 1323, 2485, 3636, 2486, 2492, 2493, 2496, 821, + 821, 821, 604, 4806, 2494, 3622, 4161, 2046, 1550, 4273, + 4161, 4175, 4161, 2495, 2047, 2500, 2228, 1323, 2502, 2501, + 2503, 5495, 5496, 2508, 2511, 2512, 2515, 629, 2520, 2526, + 2529, 2540, 2544, 2548, 1566, 998, 2564, 2545, 185, 2048, + -2587, 2553, 2567, 1323, 2571, 995, 2570, 996, 2580, 181, + 2584, 2587, 2590, 997, 2592, 2596, 2601, 2945, 2602, 1323, + 2608, 4711, 4712, 2610, 4714, 3619, 2611, 2618, 3619, 2619, + 2615, 2616, 4274, 2620, 2622, 2621, 181, 4228, 1946, 1946, + 2629, 2471, 2782, 2631, 2632, 2633, 2634, 2647, 2648, 2682, + 2690, 2703, 2716, 2749, 2799, 1551, 2754, 2805, 859, 859, + 859, 859, 2040, 2809, 2818, 4746, 4547, 2824, 2842, 2864, + 2844, 2865, 2879, 2884, 2887, 2888, 2889, 842, 2915, 2890, + 2903, 2916, 2917, 2932, 2918, 2939, 2950, 2299, 2951, 2953, + 2979, 2982, 2986, -2587, 2987, 2993, 2984, 2998, 3014, 3003, + 3619, 3008, 3004, 1552, 3006, 4284, 1553, 3029, 3028, 603, + 2049, 3010, 3050, 3018, 3045, 2050, 2396, 1338, 1342, 3032, + 3088, 2395, 3115, 3052, 3062, 4275, 3113, 3114, 3069, 3082, + 3087, 5108, 3120, 3124, 3160, 1451, 3636, 2051, 2052, 3176, + 3218, 3132, 3139, -2587, 3159, 3231, 3239, 4331, 3240, 3258, + 3243, 843, 2053, 3271, 3252, 1555, -2587, 3263, 4339, 3264, + 3265, -2587, 3299, 3287, 3300, 5142, -2587, 3276, 3314, 1452, + 3318, 3320, -2587, 3316, 3329, -2587, 3346, 3332, 3338, -2587, + 2039, 3354, 3347, 2040, 3349, 3341, 3348, 3350, 3357, 3361, + 3362, 2054, 3365, 3366, 3384, 3385, 3359, 3387, 3388, 1557, + 3391, 3389, 4373, 3393, 3416, 2055, 1866, 3398, -2587, 3428, + 3400, 3430, 2046, 5132, 3431, 5134, 3435, 3401, 3437, -2667, + 3402, 1558, 3440, 3403, 1913, 3441, 3445, 3442, -2587, 1453, + 3453, 2717, 3443, 3444, 3455, 3375, 4954, 859, 3464, 2031, + 3456, 1560, 3404, 4276, 2048, 3457, 4277, 3408, 4662, 3417, + 821, 3472, 859, 1910, 1323, 4150, 1451, 1875, 4155, 3467, + 1189, 821, 3474, 3478, 1454, 3479, 3481, 4420, 3482, 3486, + 3503, -2150, 3500, 3501, 3502, -2587, 3507, 2299, -2587, 3508, + 181, 3512, 3515, 3516, -2587, 3538, 3554, 3544, 3566, 3571, + 1452, 2121, 821, 3581, 857, 2057, 3622, 3596, 3551, 3565, + 1455, 3592, 3594, 870, 3591, 3632, 3217, 3582, 3595, 3598, + 3633, 870, 3638, 3645, 870, 4468, 3623, 3647, 3649, 3651, + 3671, 3683, 3658, 3687, 3676, 821, 3684, 3690, 3665, 2471, + 4704, 3678, 4478, 2782, 4999, 3679, 1323, 1323, 3692, -2587, + 1457, 3699, 3714, 3715, 3725, 3727, 904, 3732, 2325, 3731, + 1453, 3726, 5284, 3734, 3733, -2667, 3748, 2782, 3749, 3619, + -2667, 3737, 3751, 3757, 3759, 3767, 3758, 3122, 3772, 3122, + 3781, 4901, 1459, 5290, 5292, 3797, 821, 3799, 3801, 1968, + 3802, 3808, 3795, 3809, 3810, 1454, 3803, 3806, 3811, 3825, + 3832, 3826, 5064, 2039, 760, 2058, 2040, -2667, 2059, 2060, + 2061, 3813, 2062, 2063, 2064, 2065, 2066, 2067, 3830, 3831, + 3827, 1323, 3828, 35, 4770, 2282, 3376, 1461, 3829, 3833, + 3835, 1455, -2587, 1323, 4925, 2046, 1462, 3834, 3836, 4763, + 3837, 3838, -2667, 3840, 1463, 3841, 3844, 3839, 3846, 3848, + 2430, 3867, 2283, 3871, 3864, 3872, -2587, 3860, -2587, -2587, + 2055, 3861, 3862, 1323, 1465, 3874, 1323, 2048, 3850, 3880, + 3851, 1457, 3857, 1466, 1323, 1323, 3882, 1467, 3932, 3933, + 3923, 1323, 1323, 5144, 3935, 3922, 1323, 3929, 3937, 3940, + 3952, 3954, 1323, 3961, -2587, 1323, 1323, -2587, -2587, -2587, + 1323, 4577, 3951, 1459, 3970, 3971, 1323, 821, 821, 821, + 821, 3974, 3964, 3975, 4161, 4175, 4161, 3990, 1323, 4161, + 3999, 4009, 4591, 5386, 4806, 4002, 3622, 4011, 4013, 4015, + 3622, 1468, 3977, 4022, 4128, 4034, 4606, 4023, 5074, 4024, + 4025, 4036, 606, 4026, 35, 4027, 4037, 4038, 3377, 5074, + -2667, 906, 4047, 4048, 4010, 4029, 4049, 1462, 4051, 4052, + 1323, 4053, 4054, 4055, 3657, 1463, 4059, 3520, 1992, 2945, + 4620, 4622, 4633, 2283, 3541, 4069, -2149, 3540, -2667, 4094, + 4122, 4111, 2782, -2667, 755, 1465, 4123, 1323, 4095, 3619, + 4096, 4103, 4136, 3619, 1466, 4124, 4127, 4142, 1467, 3612, + 4153, 4154, 4162, 4177, 4181, 4183, 5284, 3122, 3122, 4193, + 4185, 4187, 4196, 4198, 4202, 4212, 4220, 3378, 5297, 4241, + -2667, 4667, 4243, 4249, 4244, 4256, 2299, 181, 5136, 4259, + 4257, 4675, 4260, 4262, 4267, 4264, 4266, 4282, 4285, 4297, + 2039, 4676, 4298, 2040, 4299, 4301, 4300, 2041, 2042, 2043, + -2667, 4311, 1468, 4312, 4313, 4954, 3379, 2062, 2063, 2064, + 2065, 2066, 2067, 4314, 2044, 4341, 4325, 4328, 4342, 4350, + 4347, 4367, 2046, 2055, 1225, 4366, 4369, 3520, 4273, 2047, + 4920, -2667, -2667, -2667, 4315, 4316, 4327, 4401, 4372, 4382, + 4383, 1323, 4385, 4386, 4389, 4412, 877, 4426, 4432, 4446, + 4440, 4447, 4450, 2669, 2048, 913, 4459, 4469, 4475, 4452, + 4486, 4476, 4492, 4453, 4494, 4491, 859, 4496, 4495, 935, + 4506, 4514, 4497, 4518, 4520, 4526, 4539, 606, 4550, 4502, + 4553, 859, 4554, -2151, 4594, 4499, 606, 879, 4533, 4534, + 4559, 4595, 4543, 4587, 606, 4544, 879, 606, 2782, 4555, + 4574, 4590, 5356, 4592, 4602, 4603, 4607, 4608, 5241, 4609, + 879, 4615, 4610, -2667, 4617, 1323, 4618, 4627, 5259, 4630, + 4632, 4634, 4640, 4639, 4650, 4646, 4669, 4670, 4671, 4674, + 4680, 604, 4681, 4682, 4701, 4694, 4697, 2299, 857, 4703, + 4706, 4715, 4716, 4707, 4723, 4724, 1946, 870, 4725, 4730, + 4734, 4737, 4738, 4743, 870, 4744, 4747, 870, 904, 4752, + 4753, 1323, 5060, 4758, 4759, 2049, 4762, 4768, 4766, 3612, + 2050, 4760, 4776, 3612, 859, 4779, 3356, 4791, 4789, 4784, + 4795, 4782, 4796, 4800, 4802, 4803, 4811, 4816, 4798, 4824, + 5131, 4804, 2051, 2052, 4823, 5256, 4830, 4839, 4831, 3636, + 4841, 2033, 4833, 4854, 1059, 181, 181, 2053, 4926, 2039, + 821, 904, 2040, -2667, 4840, 4848, 4857, 5440, 4842, 4868, + 2062, 2063, 2064, 2065, 2066, 2067, 4889, 4864, 4883, 4886, + 4892, 4895, 4907, 4910, 4915, 4905, 4909, 4916, 4917, 4922, + 4928, 2046, 4947, 4929, 4969, 4411, 2054, 4933, -2667, 4938, + 4980, 4939, 4978, 1323, 4940, 4981, 4984, 4987, 4986, 4924, + 2055, 5005, 5006, 2056, 5013, 5127, 5128, 5018, 5015, 5025, + 5044, 5063, 5046, 2048, 5023, 5048, 5047, 5067, 5073, 5092, + 5077, 5080, 1323, 1323, 1481, 5084, 1323, 5086, 5088, 5111, + 1482, 5113, 5103, 5120, 3526, 5114, 5158, 5160, 5126, 5166, + 5170, 604, 5171, 4968, 4161, 5173, 2782, 2782, 3622, 5180, + 5185, 5192, 5191, 3622, 5204, 5206, 3622, 604, 5208, 3217, + 5200, 4870, 5205, 1323, 1323, 5207, 5216, 5215, 5217, 5224, + 5248, 5218, 1484, 5232, 5510, 5245, 5253, 5249, 5254, 4228, + 4131, 1323, 5266, 5270, 5289, 5295, 5296, 5301, 5303, 5313, + 2057, 5310, 4228, 906, 859, 5314, 859, 5306, 5336, 5334, + 5335, 5337, 5342, 5343, 3619, 5354, 5370, 5381, 5352, 4137, + 5379, 3619, 5372, 5299, 5387, 5389, 3619, 5300, 5396, 3619, + 5397, 5430, 5435, 5442, -2667, 5449, 1485, 5462, 5416, -2667, + 5225, 1059, 5489, 1486, 5398, 5497, 1487, 5454, 5510, 5503, + 5459, 5468, 3619, 5521, 5526, 871, 906, 5242, 5487, 5488, + 5522, 5244, 5499, 5246, 5524, 3619, 5510, 5525, 857, 5539, + 1372, 5540, 1488, 5547, 5548, 5550, -2667, 5552, 2446, 870, + 4887, 5553, 1478, 3323, 1581, 870, 3630, 1580, 870, 2108, + 3743, 3191, 3112, 4288, 5382, 3230, 4281, 3278, 3879, 871, + 2058, 4966, 821, 2059, 2060, 2061, 1489, 2062, 2063, 2064, + 2065, 2066, 2067, 5283, 4420, 5460, 181, 821, 5024, 4428, + 3561, 3681, 821, 4742, 3122, 3439, 4998, 5374, 5456, 2055, + 1016, 2299, 5039, 4899, 5003, 5304, 1016, -2667, -2667, -2667, + 5302, 3530, 3531, 3532, 3533, 3534, 3535, 5395, 821, 1016, + 5473, 3686, 4468, 4479, 4458, 5026, 5264, 4421, 4286, 3297, + 1815, 1816, 1817, 3298, 3761, 3939, 859, 821, 4228, 1587, + 4445, 879, 5037, 1491, 4764, 5004, 3288, 879, 1568, 5009, + 5131, 3947, 5461, 1492, 5554, 5544, 4982, 3885, 4487, 5400, + 879, 4927, 1493, 5122, 1323, 2239, 5272, 1323, 4930, 1323, + 2240, 835, 2519, 762, 1494, 5098, 879, 4515, 4488, 5515, + 2589, 606, 2956, 3672, 2597, 5213, 1107, 1965, 1323, -2667, + 606, 879, 2586, 2635, 1323, 2710, 3847, 606, 3622, 879, + 606, 3619, 4870, 1060, 3943, 2241, 1136, 2711, 1323, 3228, + 4317, 2712, 1107, 879, 4340, 1496, 1497, 5091, 2242, 5421, + 4500, 3612, 5538, 879, 2205, 4501, 3612, 1351, 2902, 3612, + 2660, 1373, 2893, 2243, 4888, 4623, 5368, 2122, 4206, 821, + 2931, 1946, 904, 2081, 3634, 1498, 3646, 2154, 2153, 4184, + 5364, 5247, 2912, 4613, 2930, 1059, 2158, 4157, 4585, 4600, + 5079, 3619, 4151, 5231, 2163, 5230, 4207, 1323, 4152, 5541, + 5441, 5498, 1323, 1323, 2244, 5355, 2609, 859, 859, 859, + 859, 4105, 4885, 5366, 5059, 2245, 5367, 2869, 3589, -2667, + 3495, 3587, 3254, 3375, 2878, 0, 2062, 2063, 2064, 2065, + 2066, 2067, 606, 606, 0, 0, 2246, 0, 879, 0, + 1323, 2247, 0, 1499, 1451, 0, 0, 604, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 879, 0, 606, 0, 0, 0, 0, 821, + 0, 0, 3622, 0, 0, 879, 0, 0, 1452, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2248, 0, 0, 0, 0, 0, 181, + 0, 0, 0, 0, 0, 0, 0, 1323, 0, 0, + 604, 0, 0, 1323, 0, 3619, 5502, 5239, 1453, 0, + 0, 0, 0, 0, 1323, 0, 0, 0, 1323, 0, + 1323, 0, 1323, 2249, 0, 0, 0, 181, 0, 4228, + 0, 0, 0, 0, 5250, 0, 0, 906, 0, 0, + 0, 0, 0, 1454, 0, 0, 0, 0, 1323, 0, + 0, 0, 606, 606, 1718, 5378, 207, 2250, 0, 0, + 0, 606, 0, 3619, 0, 0, 0, 0, 1107, 0, + 0, 0, 606, 0, 3376, 0, 0, 0, 606, 1455, + 0, 606, 0, 1946, 1946, 0, 0, 0, 0, 2251, + 0, 3612, 3619, 1107, 0, 2252, 0, 0, 0, 0, + 0, 2031, 2253, 0, 0, 2254, 0, 0, 1107, 0, + 0, 0, 0, 0, 859, 0, 0, 0, 0, 1457, + 0, 5318, 0, 0, 0, 1323, 0, 0, 0, 0, + 5427, 5428, 0, 0, 5330, 0, 0, 2255, 0, 0, + 0, 0, 0, 0, 2256, 0, 0, 0, 0, 0, + 1451, 1459, 2257, 606, 606, 606, 0, 0, 0, 2258, + 1323, 1323, 1323, 0, 0, 0, 3217, 0, 0, 1323, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1323, + 0, 0, 5091, 0, 1452, 2259, 0, 2945, 0, 0, + 0, 0, 35, 1107, 0, 0, 1461, 3619, 0, 0, + 2039, 871, 0, 2040, 0, 1462, 0, 2041, 2042, 2043, + 0, 0, 0, 1463, 0, 0, 859, 0, 0, 0, + 0, 2283, 0, 1946, 2044, 0, 0, 0, 0, 0, + 879, 0, 2046, 1465, 0, 3612, 0, 0, 0, 2047, + 0, 0, 1466, 0, 1453, 181, 1467, 0, 879, 2299, + 2039, 0, 0, 2040, 604, 0, 5401, 0, 606, 0, + 1323, 0, 0, 0, 2048, 3378, 879, 0, 0, 0, + 4228, 0, 0, 0, 0, 0, 871, 871, 1323, 1454, + 0, 0, 2046, 5426, 0, 0, 185, 0, 1323, -2667, + 0, 0, 5239, 5423, 879, 5424, 0, 0, 0, 0, + 1468, 5425, 0, 1107, 3379, 879, 0, 0, 0, 0, + 0, 0, 0, 859, 2048, 1455, 5486, 0, 0, 181, + 0, 879, 0, 0, 0, 879, 0, 0, 0, 0, + 0, 0, 0, 3619, 0, 0, 0, 606, 0, 0, + 5555, 5556, 0, 0, 5330, 859, 859, 0, 0, 0, + 4228, 1456, 0, 0, 0, 1457, 0, 0, 0, 0, + 0, 5426, 0, 0, 185, 0, 0, 0, 606, 0, + 0, 5423, 0, 5424, 0, 2049, 0, 1323, 1323, 5425, + 2050, 4132, 0, 0, 0, 0, 1458, 1459, 1323, 0, + 0, 0, 0, 1323, 0, 0, 606, 606, 606, 0, + 606, 0, 2051, 2052, 0, 0, 0, 3619, 0, 0, + 0, 0, 0, 3619, 0, 0, 0, 2053, 0, 0, + 606, 0, 0, 1323, 1460, -2667, 0, 0, 35, 0, + -2667, 0, 1461, 1323, 0, 0, 0, 0, 0, 0, + 0, 1462, 0, 0, 879, 0, 0, 0, 859, 1463, + 0, 4228, 879, 879, 0, 0, 2054, 1464, 0, 0, + 5239, 0, 5426, 0, 604, 185, 879, -2667, 0, 1465, + 2055, 0, 5423, 2056, 5424, 0, 0, 0, 1466, 0, + 5425, 0, 1467, 0, 0, 0, 871, 871, 606, 0, + 0, 0, 606, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 606, 0, 857, + 0, 0, 857, 1107, 3619, 0, 0, 0, 0, 1718, + 2055, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1093, 1468, 0, 0, 0, + 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 870, 870, 0, + 2057, 1093, 0, 0, 0, 0, 0, 0, 181, 2038, + 0, 0, 870, 0, 0, 870, 2039, 0, 0, 2040, + 1107, 0, 0, 2041, 2042, 2043, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2044, 0, 0, 2045, 0, 0, 0, 0, 2046, 2039, + -2667, 0, 2040, 0, 0, 2047, 2041, 2042, 2043, 0, + 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2044, 0, 870, 0, 0, 870, 870, + 2048, 2046, 0, 0, 0, 0, 5485, 0, 2047, 0, + 0, 0, 0, 0, 1107, 0, 0, 0, 0, 0, + 2058, 0, 0, 2059, 2060, 2061, 0, 2062, 2063, 2064, + 2065, 2066, 2067, 2048, 0, 2444, 0, 3509, 0, 0, + 3510, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -2667, 0, 0, 0, 0, 0, 879, 2062, 2063, 2064, + 2065, 2066, 2067, 0, 0, 0, 0, 0, 0, 0, + 0, 606, 606, 606, 0, 2039, 0, 0, 2040, 0, + 0, 0, -2667, -2667, -2667, 0, 0, 181, 0, 0, + 0, 2049, 0, 0, 0, 0, 2050, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2046, 0, 0, + 0, 0, 0, 0, 2047, 0, 0, 0, 2051, 2052, + 0, 0, 0, 0, 2049, 0, 0, 0, 0, 2050, + 0, 0, 0, 2053, 0, 0, 0, 0, 2039, 2048, + 0, 2040, 0, 0, 0, 2041, 2042, 2043, 0, 0, + 0, 2051, 2052, 0, 0, 0, 0, 1730, 0, 0, + 0, 0, 2044, 0, 0, 0, 2053, 0, 0, 0, + 2046, 0, 2054, 0, 1107, 0, 0, 2047, 0, 0, + 0, 0, 1747, 0, 0, 0, 2055, 2530, 0, 2056, + 0, 1107, 0, 0, 0, 2547, 0, 1755, 0, 0, + 0, 0, 2048, 0, 1718, 2054, 0, 2444, 0, 1107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2055, + 0, 0, 2056, 0, 0, 0, 0, 0, 879, 0, + 0, 0, 0, 0, 0, 0, 879, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 879, 0, + 2049, 0, 0, 0, 0, 2050, 0, 0, 0, 0, + 0, 0, 0, 857, 0, 1107, 0, 0, 0, 0, + 870, 0, 606, 870, 870, 606, 2057, 0, 1107, 0, + 0, 0, 0, 2628, 0, 606, 0, 0, 0, 0, + 0, 1107, 2053, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1107, 0, 0, 0, 0, 0, 2057, + 2444, 0, 0, 2049, 0, 0, 0, 0, 2050, 0, + 606, 606, 0, 879, 879, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 0, 879, 606, 0, + 2051, 2052, 0, 0, 673, 2055, 0, 1107, 1107, 0, + 879, 879, 0, 759, 0, 2053, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 879, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2058, 0, 0, 2059, + 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, + 0, 0, 1971, 0, 2054, 0, 0, 0, 606, 0, + 0, 606, 606, 0, 0, 0, 0, 0, 2055, 2058, + 0, 2056, 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, + 2066, 2067, 0, 0, 0, 0, 2808, 0, 0, 0, + 0, 0, 0, 0, 0, 2057, 606, 0, 606, 0, + 0, 0, 0, 606, 606, 2720, 0, 0, 0, 0, + 606, 606, 606, 0, 0, 606, 0, 606, 0, 606, + 606, 606, 606, 606, 606, 0, 606, 0, 606, 606, + 0, 0, 606, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1107, 606, 606, 606, + 606, 1718, 0, 0, 2721, 606, 0, 0, 2057, 606, + 0, 0, 606, 0, 0, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 0, 606, 0, 0, 0, 0, + 0, 0, 606, 0, 606, 0, 2722, 0, 0, 0, + 0, 0, 0, 2039, 0, 2058, 2040, 0, -2667, -2667, + -2667, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 2723, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2724, 879, 0, 0, 0, 2046, 0, 606, 0, 0, + 0, 0, -2667, 0, 0, 0, 2947, 0, 0, 0, + 0, 2725, 606, 0, 0, 0, 2726, 0, 0, 0, + 0, 606, 606, 0, 2963, 0, 0, 2048, 2058, 0, + 2967, 2059, 2060, 2061, 2970, 2062, 2063, 2064, 2065, 2066, + 2067, 0, 0, 1481, 0, 3881, 0, 879, 2039, 1482, + 0, 2040, 0, 0, 1107, 2041, 2042, 2043, 1107, 1107, + 2994, 0, 1483, 0, 0, 879, 0, 2727, 0, 0, + 1718, 879, 2044, 0, 0, 879, 0, 0, 0, 0, + 2046, 0, 0, 879, 0, 0, 0, 2047, 2728, 0, + 1451, 1484, 0, 0, 4572, 0, 0, 0, 0, 0, + 0, 879, 0, 0, 606, 3048, 0, 0, 0, 0, + 0, 0, 2048, 0, 0, 0, 606, 0, 0, 0, + 1107, 0, 0, 606, 1452, 1016, 606, 606, 0, 0, + 0, 0, 0, 0, 1107, 0, 0, 0, -2667, 0, + 2347, 0, 0, -2667, 0, 1485, 879, 0, 0, 0, + 0, 0, 1486, 0, 0, 1487, 0, 3098, 0, 0, + 0, 207, 2729, 0, 0, 2730, 879, 879, 0, 0, + 0, 0, 0, 857, 0, 1107, 0, 0, 0, 870, + -2667, 1488, 870, 3127, 1453, 870, 0, 0, 0, 3136, + 0, 2731, 0, 0, 2732, 0, 3142, 1718, 879, 0, + 2733, 1718, 0, 1016, 0, 0, 3156, 2734, 0, 0, + 0, 0, 3161, 0, 0, 1489, 0, 0, 0, 1454, + 0, 0, 0, 2049, 879, 0, 1718, 0, 2050, 0, + 879, 0, 3174, 2055, 0, 0, 2735, 879, 3177, 0, + 0, 0, 2736, 3181, 879, 2737, 0, 879, 0, 0, + 2051, 2052, 0, 879, 0, 1455, 3198, 0, 0, 0, + 0, 0, 0, 0, 2738, 2053, 0, 0, 0, 3223, + 0, 0, 0, 879, 0, 0, 0, 0, 1490, 879, + 1016, 0, 1491, 0, 879, 0, 0, 1718, 0, 0, + 2739, 1456, 1492, 0, 0, 1457, 0, 879, 0, 0, + 0, 1493, 0, 0, 2054, 0, 0, 0, 0, 0, + 879, 0, 0, 1494, 0, 1718, 0, 0, 2055, 0, + 0, 879, 0, -2667, 0, 0, 1522, 1459, 0, 0, + 0, 0, 603, 0, 0, 0, 0, 0, 0, 606, + 606, 606, 0, 0, 0, 606, 0, 0, 0, 0, + 0, 1495, 0, 2474, 1496, 1497, 0, 0, 0, 0, + 0, 0, 0, 0, 1523, 0, 0, 0, 35, 0, + 2491, 0, 1461, 0, 0, 992, 0, 606, 1107, 0, + 0, 1462, 0, 0, 1498, 603, 0, 1718, 2510, 1463, + 0, 0, 0, 1481, 0, 0, 0, 1524, 0, 1482, + 0, 0, 0, 0, 0, 0, 1548, 0, 2057, 1465, + 0, 0, 0, 0, 0, 0, 0, 0, 1466, 0, + 0, 606, 1467, -2667, 0, 1549, 0, 1058, 673, 0, + 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 746, + 0, 1484, 0, 0, 2591, 746, 0, 0, 0, 0, + 0, 0, 1499, 0, 0, 0, 0, 2599, 0, 0, + 1107, 0, 0, 1107, 0, 0, 0, 0, 879, 0, + 1093, 0, 0, 0, 0, 1550, 1468, 0, 606, 0, + 0, 0, 2614, 0, 0, 0, 0, 0, 1481, 0, + 0, 0, 0, 0, 1482, 1485, 0, 0, 0, 0, + 0, 0, 1486, 0, 0, 1487, 0, 1585, 2058, 0, + 0, 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, + 2067, 1196, 0, 0, 879, 3452, 2643, 1093, 0, 0, + 0, 1488, 0, 0, 0, 0, 1484, 0, 0, 0, + 0, 0, 0, 3466, 0, 0, 0, 1216, 0, 0, + 0, 3452, 0, 0, 0, 1326, 0, 0, 1335, 1058, + 1337, 0, 1551, 0, 0, 1489, 879, 0, 0, 0, + 0, 0, 2039, 0, 0, 2040, 0, 0, 0, 2041, + 2042, 2043, 1107, 0, 879, 0, 0, 0, 1586, 0, + 1485, 0, 879, 0, 0, 0, 606, 1486, 0, 1107, + 1487, 0, 606, 0, 2046, 606, 0, 0, 606, 0, + 1552, 2047, 0, 1553, 1107, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 1488, 0, 1554, 0, + 606, 0, 1491, 0, 0, 0, 2048, 0, 0, 0, + 0, 0, 1492, 0, 0, 0, 0, 0, 0, 0, + 0, 1493, 0, 0, 606, 606, 606, 0, 0, 606, + 1489, 0, 1555, 1494, 0, 2812, 0, 606, 606, 606, + 606, 1481, 0, 0, 0, 1718, 0, 1482, 0, 0, + 606, 1718, 0, 606, 0, 606, 0, 0, 0, 0, + 1585, 0, 0, 0, 0, 0, 606, 606, 0, 0, + 606, 1556, 0, 0, 1496, 1497, 1557, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1484, + 606, 0, 606, 1587, 606, 0, 0, 1491, 1558, 0, + 0, 0, 0, 0, 1559, 0, 0, 1492, 0, 0, + 0, 0, 0, 0, 606, 0, 1493, 2049, 1560, 0, + 0, 0, 2050, 2039, 0, 606, 2040, 0, 1494, 0, + 2041, 2042, 2043, 879, 0, 0, 0, 0, 0, 0, + 0, 1586, 0, 1485, -2667, -2667, 0, 2044, 0, 606, + 1486, 0, 0, 1487, 0, 2046, 0, 0, 0, 2053, + 0, 0, 2047, 0, 606, 0, 1588, 0, 0, 1496, + 1497, 0, 1499, 0, 0, 0, 0, 0, 606, 1488, + 0, 0, 0, 0, 0, 0, 0, 2048, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1107, -2667, 1589, + 1107, 0, 1107, 0, 0, 0, 0, 1107, 3693, 0, + 0, 0, 2055, 1489, 0, 0, 0, 0, 0, 0, + 0, 0, 879, 879, 0, 0, 0, 0, 606, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3013, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 879, + 0, 0, 879, 3030, 0, 0, 1107, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1499, 0, 1058, + 0, 0, 0, 0, 0, 1107, 1587, 0, 0, 0, + 1491, 0, 0, 0, 0, 0, 0, 1058, 0, 0, + 1492, 0, 0, 0, 3063, 0, 0, 0, 2049, 1493, + 1107, 0, 2057, 2050, 0, 0, 0, 0, 0, 0, + 0, 1494, 0, 0, 0, 0, 0, 0, 0, 3773, + 0, 1970, 0, 0, 0, 2051, 2052, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1718, 1718, 1718, 0, + 2053, 0, 0, 0, 0, 0, 1058, 0, 0, 3188, + 0, 0, 1496, 1497, 0, 0, 0, 0, 0, 0, + 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1107, 0, 1107, 0, 0, 0, 0, 0, 0, 2054, + 879, 0, 3189, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2055, 0, 0, 2056, 0, 0, 879, + 0, 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, + 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, 0, + 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, + 0, 603, 2037, 0, 603, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3858, 0, 2079, 0, 0, 0, + 1499, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1107, 0, 1058, 0, 0, 2096, 2097, + 0, 0, 0, 1058, 1058, 0, 0, 0, 0, 0, + 0, 0, 0, 2057, 0, 879, 0, 1058, 0, 0, + 606, 0, 0, 0, 0, 0, 606, 3283, 0, 0, + 0, 0, 0, 0, 1107, 0, 603, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 746, 0, 746, + 0, 746, 0, 0, 0, 0, 0, 746, 1177, 1178, + 0, 0, 1718, 1107, 0, 0, 0, 0, 0, 879, + 0, 879, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 879, 0, 879, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1718, 0, + 0, 0, 0, 2058, 0, 0, 2059, 2060, 2061, 0, + 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, + 4061, 0, 1107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1481, 0, 0, 0, 0, 2039, 1482, 0, + 2040, 0, 879, 1107, 2041, 2042, 2043, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2444, 1107, 0, 0, + 0, 2044, 0, 0, 0, 0, 0, 0, 0, 2046, + 0, 0, 0, 0, 4030, 0, 2047, 0, 0, 0, + 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 746, 0, 0, 0, 0, 879, 0, 4046, + 0, 2048, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1858, 2400, 0, 879, 0, 0, 0, 0, + 2407, 3465, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1876, 0, 1485, 0, 0, 879, 3477, 0, + 879, 1486, 1887, 0, 1487, 0, 1890, 0, 0, 0, + 1893, 0, 1895, 3485, 0, 0, 0, 0, 1903, 0, + 606, 0, 0, 1107, 1911, 0, 0, 1914, 0, 606, + 1488, 0, 0, 0, 0, 0, 0, 606, 0, 606, + 0, 0, 606, 0, 0, 603, 1107, 606, 606, 606, + 606, 0, 0, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 606, 0, 1489, 0, 606, 606, 0, 0, + 0, 1107, 2049, 0, 0, 0, 606, 2050, 0, 0, + 606, 0, 1718, 0, 606, 0, 0, 0, 0, 0, + 0, 0, 606, 0, 0, 606, 0, 606, 0, 2051, + 2052, 0, 0, 0, 0, 0, 0, 1107, 0, 606, + 0, 0, 606, 606, 2053, 0, 0, 606, 606, 0, + 0, 0, 0, 0, 606, 0, 0, 1587, 0, 0, + 0, 1491, 0, 0, 606, 0, 0, 606, 0, 0, + 0, 1492, 0, 0, 0, 0, 0, 0, 0, 606, + 1493, 0, 0, 2054, 0, 0, 0, 0, 0, 0, + 0, 0, 1494, 0, 0, 0, 0, 2055, 0, 0, + 2056, 0, 0, 0, 0, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 606, 2541, 0, 0, 0, 2546, 1107, 0, 4251, + 1615, 0, 0, 1496, 1497, 0, 0, 0, 0, 606, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, + 0, 0, 0, 1616, 0, 0, 0, 0, 0, 0, + 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2057, 0, 0, + 0, 0, 0, 0, 0, 603, 0, 2039, 0, 603, + 2040, 0, 0, 0, 2041, 2042, 2043, 0, 0, 0, + 0, 0, 0, 0, 0, 3697, 0, 0, 0, 0, + 1718, 2044, 0, 0, 0, 1718, 1107, 1718, 0, 2046, + 0, 1499, 0, 0, 3708, 0, 2047, 0, 0, 0, + 1481, 0, 0, 0, 0, 4355, 1482, 0, 4358, 0, + 1718, 1107, 0, 1548, 0, 0, 0, 0, 0, 0, + 0, 2048, 0, 0, 0, 0, 0, 0, 0, 0, + 1718, 0, 1549, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 879, 2058, 1484, 879, + 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, + 0, 0, 0, 0, 4114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1550, 0, 0, 0, 0, 0, 0, 3790, + 0, 3792, 0, 0, 0, 0, 0, 0, 746, 0, + 2766, 0, 1485, 746, 746, 0, 0, 0, 0, 1486, + 4442, 0, 1487, 0, 0, 0, 606, 746, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2444, + 0, 0, 2049, 0, 0, 0, 0, 2050, 1488, 0, + 0, 879, 879, 0, 0, 1107, 0, 0, 0, 0, + 0, 879, 0, 0, 0, 0, 0, 0, 606, 2051, + 2052, 0, 0, 0, 0, 0, 0, 0, 0, 1551, + 879, 0, 1489, 0, 2053, 0, 0, 0, 0, 0, + 0, 0, 3843, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2886, 1107, 0, 0, 0, 1107, 606, 606, + 0, 0, 0, 0, 0, 0, 0, 3452, 0, 746, + 4749, 0, 0, 2054, 0, 0, 0, 1552, 0, 746, + 1553, 0, 0, 3865, 0, 0, 0, 2055, 0, 0, + 2056, 0, 0, 0, 0, 1554, 0, 0, 0, 1491, + 0, 0, 0, 0, 0, 0, 0, 0, 879, 1492, + 0, 0, 0, 0, 0, 0, 0, 0, 1493, 0, + 0, 0, 0, 1177, 1178, 0, 0, 0, 0, 1555, + 1494, 0, 0, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1058, 0, 746, 0, 3163, 746, + 746, 1496, 1497, 1557, 0, 606, 0, 2057, 606, 0, + 0, 3063, 0, 0, 0, 0, 606, 606, 0, 1107, + 0, 0, 0, 606, 606, 1558, 0, 0, 606, 1107, + 0, 3164, 0, 0, 606, 0, 0, 606, 606, 0, + 0, 0, 606, 0, 0, 1560, 4001, 0, 606, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 0, 0, 0, 1337, 0, 0, 0, 606, 0, + 603, 0, 606, 0, 0, 0, 0, 603, 1481, 0, + 0, 0, 603, 0, 1482, 603, 4866, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1499, + 0, 0, 606, 0, 0, 0, 0, 2058, 603, 0, + 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, + 0, 603, 0, 0, 4222, 0, 1484, 0, 0, 606, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2630, 0, 0, 1337, 0, 0, 0, 1107, 2637, 0, + 0, 0, 4060, 0, 0, 0, 0, 0, 0, 0, + 1337, 0, 0, 0, 4688, 879, 0, 0, 2649, 0, + 1718, 0, 0, 0, 870, 4070, 4698, 0, 0, 0, + 1485, 0, 746, 0, 0, 0, 0, 1486, 1107, 0, + 1487, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4093, 0, 0, 0, 0, 879, 0, 0, 0, 0, + 1107, 0, 0, 0, 0, 0, 1488, 879, 870, 0, + 0, 0, 0, 0, 3226, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 2039, 0, 1971, 2040, 0, 0, + 0, 2041, 2042, 2043, 0, 0, 0, 879, 0, 0, + 1489, 0, 0, 0, 0, 0, 0, 0, 2044, 0, + 3257, 0, 0, 3257, 0, 3257, 2046, 0, 0, 3257, + 0, 3257, 3257, 2047, 0, 0, 0, 0, 1107, 0, + 3257, 3257, 3257, 0, 0, 0, 0, 603, 0, 0, + 2604, 0, 0, 0, 0, 0, 0, 0, 2048, 0, + 2612, 0, 2613, 0, 0, 0, 0, 606, 2617, 0, + 0, 0, 0, 1587, 0, 2623, 0, 1491, 0, 0, + 0, 0, 0, 606, 0, 0, 0, 1492, 0, 0, + 0, 0, 0, 0, 0, 3333, 1493, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 879, 603, 1494, 0, + 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3364, 0, 0, + 0, 0, 0, 2891, 0, 0, 0, 0, 0, 1058, + 0, 0, 0, 0, 0, 3452, 2263, 0, 0, 1496, + 1497, 0, 0, 0, 0, 0, 0, 0, 1107, 0, + 1107, 0, 0, 0, 0, 0, 0, 0, 0, 2049, + 0, 0, 0, 0, 2050, 0, 0, 0, 0, 2264, + 0, 0, 0, 0, 0, 0, 879, 0, 0, 0, + 0, 0, 0, 0, 0, 1058, 2051, 2052, 0, 0, + 0, 0, 0, 0, 0, 606, 0, 2755, 2756, 1107, + 0, 2053, 0, 0, 2770, 2771, 0, 0, 0, 0, + 0, 0, 2039, 0, 0, 2040, 5172, 0, 0, 2041, + 2042, 2043, 0, 0, 606, 606, 0, 0, 606, 0, + 0, 0, 0, 2810, 0, 0, 2044, 1499, 0, 0, + 2054, 603, 0, 606, 2046, 0, 0, 3452, 0, 3452, + 606, 2047, 0, 0, 2055, 606, 0, 2056, 606, 606, + 0, 0, 0, 0, 0, 606, 606, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2048, 0, 0, 0, + 0, 606, 0, 606, 0, 0, 0, 0, 879, 0, + 879, 0, 0, 0, 606, 0, 0, 1481, 0, 603, + 0, 0, 0, 1482, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 603, 0, + 0, 0, 0, 0, 4431, 0, 1107, 879, 0, 0, + 0, 0, 2921, 2921, 2057, 1484, 0, 606, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, + 0, 0, 0, 0, 0, 662, 612, 0, 0, 0, + 0, 714, 0, 612, 0, 0, 0, 0, 0, 612, + 0, 765, 0, 0, 0, 0, 1718, 2049, 0, 0, + 0, 606, 2050, 0, 0, 0, 0, 0, 0, 1485, + 832, 832, 0, 0, 746, 0, 1486, 0, 0, 1487, + 0, 0, 0, 0, 2051, 2052, 0, 0, 0, 0, + 0, 0, 0, 0, 1058, 0, 0, 0, 0, 2053, + 0, 0, 0, 603, 0, 1488, 0, 0, 0, 0, + 0, 0, 0, 0, 2058, 0, 0, 2059, 2060, 2061, + 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, + 606, 4535, 1107, 0, 0, 0, 0, 0, 2054, 1489, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2055, 0, 0, 2056, 606, 1107, 0, 606, + 0, 606, 0, 0, 0, 0, 0, 0, 0, 3065, + 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 0, 0, 0, 0, 0, 606, 0, 0, 0, + 606, 0, 0, 0, 0, 0, 1107, 0, 1971, 0, + 606, 0, 1490, 0, 0, 0, 1491, 0, 0, 0, + 0, 0, 0, 1058, 0, 0, 1492, 0, 0, 866, + 0, 0, 0, 5404, 0, 1493, 0, 908, 0, 0, + 910, 0, 0, 915, 916, 0, 919, 1494, 922, 603, + 1718, 928, 2057, 930, 0, 870, 870, 0, 0, 1107, + 746, 0, 0, 0, 1107, 1107, 0, 0, 746, 606, + 0, 746, 0, 0, 606, 606, 879, 0, 0, 0, + 0, 0, 0, 746, 0, 2340, 0, 3390, 1496, 1497, + 879, 0, 0, 0, 0, 3399, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 3766, 0, 3418, 0, 0, 2341, 606, + 0, 0, 0, 603, 0, 3424, 4654, 0, 3425, 603, + 3426, 3427, 0, 0, 3429, 0, 0, 0, 0, 0, + 3433, 0, 3434, 0, 606, 3436, 0, 0, 0, 0, + 0, 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, + 2063, 2064, 2065, 2066, 2067, 0, 0, 4677, 3805, 4573, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1107, + 1107, 0, 0, 0, 0, 0, 1499, 0, 0, 4693, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 0, 0, 606, 0, 0, 606, 0, 0, 3475, 0, + 0, 0, 0, 0, 0, 0, 606, 0, 0, 0, + 606, 0, 606, 0, 606, 0, 0, 0, 0, 0, + 603, 606, 0, 0, 0, 0, 3845, 0, 0, 0, + 0, 0, 0, 5543, 0, 0, 0, 0, 1481, 0, + 606, 0, 0, 0, 1482, 0, 0, 4720, 0, 0, + 0, 0, 0, 0, 0, 870, 870, 0, 0, 0, + 0, 0, 0, 0, 0, 1718, 0, 879, 0, 0, + 3257, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3405, 3407, 3878, 3878, 1484, 0, 3415, 0, + 0, 0, 0, 0, 3894, 0, 0, 0, 0, 0, + 1058, 0, 1058, 2039, 0, 0, 2040, 0, 0, 0, + 2041, 2042, 2043, 0, 0, 0, 0, 606, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 2044, 0, 0, + 0, 0, 0, 0, 0, 2046, 0, 0, 0, 3452, + 1485, 0, 2047, 0, 0, 0, 0, 1486, 3950, 746, + 1487, 0, 606, 606, 606, 0, 0, 0, 0, 0, + 0, 606, 1718, 0, 0, 1107, 0, 2048, 0, 4810, + 0, 606, 1481, 0, 0, 0, 1488, 0, 1482, 0, + 879, 0, 3985, 1058, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 879, 0, 0, 0, + 1489, 0, 0, 0, 0, 0, 0, 0, 1971, 0, + 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 0, 0, 0, + 0, 0, 606, 1010, 0, 0, 0, 0, 0, 0, + 1023, 1024, 606, 0, 1030, 0, 1033, 1034, 606, 606, + 606, 1036, 3691, 1587, 1485, 0, 0, 1491, 2049, 1481, + 606, 1486, 1055, 2050, 1487, 1482, 0, 1492, 0, 0, + 0, 0, 2039, 0, 0, 2040, 1493, 0, 0, 2041, + 2042, 2043, 0, 0, 0, 2051, 2052, 0, 1494, 0, + 1488, 879, 0, 0, 0, 0, 2044, 0, 0, 0, + 2053, 1132, 0, 1134, 2046, 0, 0, 1484, 0, 0, + 0, 2047, 0, 1150, 0, 0, 606, 0, 0, 0, + 0, 0, 606, 0, 1489, 0, 3058, 0, 0, 1496, + 1497, 0, 3628, 0, 746, 3750, 2048, 3752, 0, 2054, + 0, 0, 0, 0, 0, 612, 0, 0, 0, 606, + 606, 0, 4115, 2055, 0, 0, 2056, 3641, 3641, 1498, + 606, 1485, 0, 0, 0, 606, 0, 0, 1486, 0, + 0, 1487, 0, 0, 1718, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1587, 0, 0, + 0, 1491, 0, 0, 0, 606, 0, 1488, 1451, 0, + 0, 1492, 0, 0, 0, 606, 0, 0, 0, 0, + 1493, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1494, 606, 0, 0, 0, 1499, 0, 0, + 832, 1489, 1452, 0, 0, 0, 606, 0, 1718, 0, + 0, 0, 0, 2057, 0, 0, 2039, 2049, 0, 2040, + 0, 0, 2050, 2041, 2042, 2043, 1718, 0, 606, 606, + 3233, 0, 0, 1496, 1497, 0, 1442, 0, 0, 0, + 2044, 0, 0, 0, 2051, 2052, 3842, 0, 2046, 0, + 0, 0, 3849, 0, 0, 2047, 1971, 0, 0, 2053, + 0, 0, 1453, 3234, 1587, 0, 0, 0, 1491, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1492, 0, + 2048, 0, 0, 0, 0, 0, 0, 1493, 0, 0, + 0, 0, 0, 0, 0, 3843, 0, 1454, 2054, 1494, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1618, + 0, 0, 2055, 2058, 0, 2056, 2059, 2060, 2061, 0, + 2062, 2063, 2064, 2065, 2066, 2067, 0, 3894, 2468, 0, + 1729, 1499, 0, 1455, 0, 0, 0, 3719, 0, 0, + 1496, 1497, 1740, 0, 0, 0, 0, 1743, 1971, 0, + 0, 0, 4323, 1971, 1971, 0, 0, 1746, 0, 0, + 4332, 0, 1750, 4333, 0, 4334, 0, 0, 0, 1456, + 3720, 1753, 0, 1457, 0, 0, 1760, 2039, 0, 1764, + 2040, 0, 0, 0, 2041, 2042, 2043, 0, 0, 0, + 0, 2049, 0, 0, 0, 0, 2050, 0, 0, 0, + 0, 2044, 2057, 0, 1539, 1459, 0, 0, 4375, 2046, + 0, 0, 0, 0, 0, 0, 2047, 0, 2051, 2052, + 0, 1818, 0, 0, 3257, 0, 0, 0, 3257, 3257, + 0, 3257, 0, 2053, 0, 0, 0, 0, 1499, 0, + 0, 2048, 1540, 0, 0, 0, 35, 0, 0, 4012, + 1461, 4014, 0, 4016, 0, 0, 0, 0, 0, 1462, + 0, 0, 4020, 0, 0, 0, 0, 1463, 0, 5214, + 0, 0, 2054, 0, 0, 1541, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2055, 1465, 0, 2056, + 0, 0, 0, 0, 0, 0, 1466, 0, 0, 0, + 1467, 0, 2058, 4045, 746, 2059, 2060, 2061, 0, 2062, + 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, 4828, + 0, 0, 0, 0, 0, 0, 0, 0, 3928, 0, + 0, 4482, 0, 0, 3894, 0, 612, 0, 612, 0, + 612, 0, 612, 0, 612, 612, 612, 0, 0, 0, + 0, 612, 2049, 0, 1468, 0, 0, 2050, 0, 0, + 0, 0, 1966, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2057, 1979, 0, 2051, + 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2053, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4523, 4523, 4523, 0, 4523, 4523, + 4523, 4523, 4523, 0, 0, 0, 0, 4006, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2054, 0, 0, 0, 0, 0, 0, + 0, 0, -130, 0, 0, 0, 0, 2055, 0, 0, + 2056, 0, 0, 0, 0, 1481, 0, 0, 0, 0, + 0, 1482, 1, 0, 5360, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 3, 4, 2058, 0, 0, 2059, + 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, + 5, 0, 0, 4838, 0, 0, 0, 0, 746, 6, + 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, + 0, 7, 0, 8, 9, 0, 0, 0, 0, 0, + 10, 2039, 11, 0, 2040, 0, 0, 0, 2041, 2042, + 2043, 0, 0, 12, 0, 13, 0, 2057, 832, 0, + 4612, 0, 4614, 0, 0, 2044, 0, 0, 0, 0, + 0, 0, 14, 2046, 0, 15, 0, 1485, 0, 0, + 2047, 0, 0, 0, 1486, 0, 0, 1487, 0, 16, + 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 19, 0, 0, 0, 2048, 0, 0, 0, 20, + 0, 21, 0, 1488, 0, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 0, 2261, + 0, 0, 0, 0, 0, 0, 0, 1489, 0, 0, + 0, 24, 0, 0, 0, 0, 0, 2058, 0, 0, + 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, + 0, 0, 0, 0, 4847, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 26, 0, 872, 881, 0, 27, 0, 0, + 0, 0, 872, 0, 881, 872, 0, 0, 0, 28, + 1587, 2352, 0, 0, 1491, 0, 2049, 0, 881, 0, + 0, 2050, 0, 0, 1492, 0, 0, 29, 0, 0, + 0, 0, 0, 1493, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2051, 2052, 1494, 0, 4718, 4719, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2053, 0, + 3257, 0, 3257, 3257, 0, 0, 3257, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3775, 31, 0, 1496, 1497, 0, 0, + 32, 33, 0, 34, 0, 0, 0, 2054, 35, 0, + 0, 0, 0, 36, 0, 0, 37, 746, 0, 0, + 0, 2055, 0, 38, 2056, 0, 3776, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 4778, 42, 746, 0, 0, 0, 0, 0, 0, 746, + 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 746, 0, 0, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4505, 4805, 0, + 0, 4507, 0, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 1499, 0, 0, 46, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 48, 0, + 0, 2057, 0, 4523, 0, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1177, 1178, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, + 0, -130, 0, 0, 0, 0, 0, 0, 2514, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, 2063, + 2064, 2065, 2066, 2067, 746, 0, 0, 2039, 4850, 0, + 2040, 0, 0, 0, 2041, 2042, 2043, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2044, 0, 0, 0, 0, 0, 0, 0, 2046, + 0, 0, 0, 0, 0, 0, 2047, 3894, 0, 0, + 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2048, 0, 0, 0, 2641, 0, 2642, 0, 4653, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3257, 0, 2653, 0, 2654, 0, 0, 0, + 0, 4967, 0, 0, 0, 0, 0, 0, 0, 0, + 612, 0, 612, 0, 612, 0, 612, 0, 612, 881, + 0, 0, 612, 4678, 4679, 881, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 872, 881, + 0, 0, 0, 0, 0, 872, 0, 881, 872, 0, + 0, 0, 2049, 0, 0, 0, 0, 2050, 0, 0, + 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 881, 0, 0, 0, 0, 0, 0, 0, 2051, + 2052, 0, 0, 4721, 4722, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2053, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2054, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2055, 0, 0, + 2056, 0, 0, 0, 0, 0, 881, 0, 0, 0, + 0, 0, 0, 746, 0, 0, 0, 0, 0, 746, + 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, + 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1058, 0, 881, 0, 5146, 0, 0, 0, 4691, + 4692, 0, 0, 0, 4695, 4696, 0, 0, 0, 4818, + 0, 0, 0, 4820, 4821, 0, 0, 0, 0, 0, + 0, 0, 0, 2948, 2949, 0, 0, 0, 0, 4825, + 0, 0, 0, 0, 0, 0, 0, 2057, 0, 0, + 0, 0, 2964, 2965, 0, 0, 0, 2968, 2969, 0, + 0, 0, 2972, 0, 0, 2039, 0, 0, 2040, 0, + 0, 0, 2041, 2042, 2043, 0, 2983, 0, 0, 0, + 0, 0, 0, 2992, 0, 0, 0, 2995, 2996, 2044, + 0, 2999, 3000, 0, 0, 0, 0, 2046, 3005, 0, + 0, 0, 0, 0, 2047, 0, 0, 0, 0, 0, + 0, 0, 1720, 3024, 0, 3026, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, + 872, 0, 0, 3049, 0, 0, 872, 0, 3051, 872, + 0, 0, 0, 0, 0, 0, 0, 2058, 0, 0, + 2059, 2060, 2061, 3057, 2062, 2063, 2064, 2065, 2066, 2067, + 0, 0, 3064, 0, 4897, 3068, 0, 3070, 3073, 3075, + 0, 0, 0, 0, 3083, 3086, 0, 0, 0, 0, + 0, 0, 0, 0, 3099, 0, 0, 0, 1058, 3108, + 0, 0, 5287, 3111, 5288, 0, 0, 0, 5293, 5294, + 0, 0, 0, 0, 0, 2039, 0, 0, 2040, 0, + 3128, 0, 2041, 2042, 2043, 0, 3137, 3138, 0, 0, + 0, 0, 0, 3143, 0, 0, 0, 0, 0, 2044, + 0, 0, 0, 3157, 3158, 0, 0, 2046, 0, 3162, + 2049, 0, 0, 0, 2047, 2050, 0, 0, 0, 0, + 0, 3169, 0, 0, 3172, 0, 0, 0, 0, 3175, + 0, 0, 0, 0, 0, 3178, 3179, 2051, 2052, 2048, + 0, 3183, 0, 0, 3187, 0, 0, 0, 3194, 3195, + 3196, 3197, 2053, 3199, 0, 0, 0, 0, 881, 0, + 0, 0, 0, 0, 0, 0, 3224, 3225, 0, 3227, + 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, + 3236, 3237, 3238, 0, 0, 0, 0, 0, 0, 0, + 0, 2054, 0, 0, 881, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2055, 0, 0, 2056, 0, + 0, 0, 2039, 0, 0, 2040, 5055, 0, 0, 2041, + 2042, 2043, 881, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 881, 0, 0, 2044, 0, 0, 0, + 0, 0, 0, 3291, 2046, 0, 0, 0, 0, 881, + 2049, 2047, 0, 881, 0, 2050, 0, 746, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3328, 0, 0, 0, 0, 2048, 2051, 2052, 0, + 0, 0, 0, 0, 0, 0, 5100, 0, 0, 0, + 0, 0, 2053, 0, 0, 2057, 0, 0, 0, 0, + 0, 0, 1058, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2054, 0, 0, 0, 0, 0, 0, 0, 5137, + 0, 0, 0, 0, 0, 2055, 0, 0, 2056, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, + 881, 881, 0, 0, 0, 5509, 0, 2049, 0, 0, + 0, 0, 2050, 0, 881, 2058, 0, 0, 2059, 2060, + 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, + 0, 0, 4932, 0, 2051, 2052, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2053, + 2039, 0, 0, 2040, 0, 2057, 0, 2041, 2042, 2043, + 0, 0, 0, 0, 0, 0, 0, 1720, 0, 5509, + 0, 0, 0, 0, 2044, 0, 0, 0, 0, 0, + 0, 0, 2046, 0, 0, 0, 0, 5509, 2054, 2047, + 0, 0, 0, 3488, 0, 0, 0, 0, 0, 0, + 0, 0, 2055, 0, 0, 2056, 0, 0, 0, 0, + 0, 0, 0, 0, 2048, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 746, 0, 0, 0, 2058, 0, 0, 2059, 2060, + 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, + 0, 0, 4974, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2039, 0, 0, + 2040, 0, 2057, 0, 2041, 2042, 2043, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 858, 860, + 0, 2044, 864, 0, 0, 0, 0, 0, 0, 2046, + 0, 0, 0, 0, 0, 2049, 2047, 0, 0, 0, + 2050, 0, 921, 0, 0, 0, 0, 0, 0, 931, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2048, 2051, 2052, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 881, 0, 0, 2053, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, + 2063, 2064, 2065, 2066, 2067, 0, 2054, 0, 0, 5275, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2055, 0, 0, 2056, 0, 0, 0, 0, 5281, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3694, 0, 0, 0, 3696, + 0, 0, 2049, 0, 0, 3698, 0, 2050, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5453, + 0, 0, 0, 3709, 3711, 0, 0, 0, 3711, 2051, + 2052, 0, 0, 3722, 3723, 3724, 0, 0, 0, 0, + 0, 0, 0, 0, 2053, 0, 0, 0, 0, 0, + 2057, 0, 1720, 2039, 0, 0, 2040, 0, 0, 0, + 2041, 2042, 2043, 0, 0, 0, 0, 0, 0, 3753, + 3754, 3755, 3756, 0, 0, 0, 881, 2044, 0, 0, + 0, 0, 0, 2054, 881, 2046, 0, 0, 0, 0, + 0, 0, 2047, 0, 0, 0, 881, 2055, 0, 0, + 2056, 0, 0, 0, 0, 0, 3774, 0, 3778, 3779, + 3780, 0, 0, 0, 0, 0, 0, 2048, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2058, 0, 0, 2059, 2060, 2061, 0, 2062, 2063, 2064, + 2065, 2066, 2067, 0, 0, 0, 0, 5298, 872, 872, + 0, 881, 881, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 872, 0, 881, 872, 2057, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 881, 881, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, + 0, 0, 3853, 0, 0, 0, 0, 0, 2049, 0, + 0, 3859, 0, 2050, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 0, 0, 872, + 872, 0, 0, 0, 0, 2051, 2052, 0, 0, 0, + 0, 0, 3873, 0, 0, 0, 0, 0, 0, 0, + 2053, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1001, 0, 1004, 0, 0, 3916, 1007, 2058, 0, 0, + 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, + 1032, 0, 0, 0, 5403, 5508, 0, 1037, 0, 2054, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2055, 0, 0, 2056, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3953, 0, 1720, + 0, 0, 3959, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5508, + 0, 0, 0, 0, 0, 0, 3998, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, + 0, 0, 0, 2057, 0, 0, 880, 0, 0, 4017, + 0, 4018, 0, 0, 0, 880, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, + 0, 0, 0, 0, 0, 0, 0, 2039, 0, 0, + 2040, 0, 0, 0, 2041, 2042, 2043, 0, 0, 0, + 0, 4042, 0, 0, 0, 881, 0, 0, 0, 884, + 0, 2044, 0, 0, 0, 0, 0, 0, 0, 2046, + 0, 918, 0, 881, 0, 0, 2047, 0, 1720, 881, + 0, 0, 937, 881, 0, 0, 0, 0, 0, 0, + 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2048, 0, 2058, 0, 0, 2059, 2060, 2061, 881, + 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, + 5472, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 872, 0, 0, 872, 872, 0, 1513, 1514, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2039, + 0, 0, 2040, 0, 881, 881, 2041, 2042, 2043, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2044, 0, 0, 0, 0, 0, 0, + 0, 2046, 0, 0, 0, 1720, 881, 0, 2047, 1720, + 0, 0, 2049, 0, 0, 0, 0, 2050, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 881, 2048, 1720, 0, 1749, 0, 881, 2051, + 2052, 0, 0, 0, 0, 881, 0, 0, 0, 0, + 0, 0, 881, 0, 2053, 881, 0, 0, 0, 0, + 0, 881, 0, 0, 0, 1771, 1772, 0, 0, 0, + 0, 4239, 0, 4240, 0, 0, 0, 0, 0, 0, + 4242, 881, 0, 0, 0, 0, 0, 881, 0, 0, + 0, 1813, 881, 2054, 0, 1720, 4252, 0, 0, 0, + 0, 0, 0, 0, 0, 881, 0, 2055, 4258, 0, + 2056, 0, 4261, 2039, 0, 0, 2040, 0, 881, 0, + 2041, 2042, 2043, 1720, 0, 0, 0, 0, 0, 881, + 4283, 0, 0, 0, 0, 0, 0, 2044, 0, 0, + 0, 2904, 0, 0, 2049, 2046, 0, 0, 4287, 2050, + 0, 0, 2047, 4291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1882, 1884, 0, 0, 0, + 0, 2051, 2052, 0, 0, 0, 0, 2048, 4326, 0, + 0, 0, 4330, 0, 0, 0, 2053, 0, 0, 0, + 4335, 4336, 4337, 4338, 0, 1720, 0, 2057, 0, 4343, + 4344, 4345, 4346, 0, 0, 0, 4348, 4349, 0, 0, + 0, 0, 4356, 4357, 0, 4359, 4360, 4361, 4362, 4363, + 4364, 4365, 0, 0, 0, 2054, 2905, 0, 0, 0, + 0, 4374, 0, 0, 0, 4377, 4378, 4379, 4380, 2055, + 880, 0, 2056, 0, 0, 0, 880, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, + 0, 3711, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 951, 0, 880, 881, 0, 0, 999, + 4403, 0, 0, 0, 0, 0, 0, 0, 2049, 0, + 880, 0, 0, 2050, 0, 0, 0, 2058, 880, 0, + 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, + 0, 0, 880, 0, 5528, 2051, 2052, 0, 0, 0, + 0, 0, 880, 0, 0, 0, 0, 0, 0, 2057, + 2053, 0, 881, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2054, + 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, + 3711, 0, 0, 2055, 0, 0, 2056, 0, 0, 0, + 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, + 881, 0, 0, 0, 0, 0, 0, 880, 0, 0, + 872, 0, 0, 872, 0, 0, 872, 4517, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058, + 0, 880, 2059, 2060, 2061, 0, 2062, 2063, 2064, 2065, + 2066, 2067, 0, 0, 880, 2039, 5542, 0, 2040, 0, + 0, 0, 2041, 2042, 2043, 0, 1330, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2044, + 0, 0, 0, 2057, 0, 1353, 0, 2046, 0, 0, + 0, 0, 0, 1720, 2047, 0, 0, 0, 0, 1720, + 0, 0, 0, 0, 0, 0, 0, 1377, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, + 0, 0, 0, 2281, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2906, 0, 0, 0, 0, 2320, 0, + 0, 0, 0, 1512, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1719, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 881, 0, 2058, 0, 0, 2059, 2060, 2061, 0, + 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3540, 0, 0, 0, + 0, 3541, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2402, 0, 0, 0, 0, + 2049, 0, 0, 0, 0, 2050, 0, 0, 0, 0, + 4657, 0, 0, 0, 4658, 4659, 4660, 4661, 0, 0, + 0, 4663, 2425, 2426, 2427, 2428, 0, 2051, 2052, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 881, 881, 2053, 0, 0, 0, 0, 0, 0, 1769, + 0, 0, 0, 0, 0, 4683, 4684, 4685, 4686, 4687, + 0, 4689, 4690, 0, 0, 0, 0, 881, 0, 0, + 881, 0, 0, 4699, 4700, 0, 0, 0, 1807, 1810, + 1811, 2054, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2055, 0, 0, 2056, 0, + 0, 0, 0, 4705, 0, 0, 0, 0, 0, 880, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 880, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 880, 0, 0, 0, 0, + 0, 0, 0, 0, 1720, 1720, 1720, 0, 0, 0, + 0, 0, 0, 2480, 2481, 0, 0, 0, 0, 0, + 0, 0, 0, 880, 0, 0, 0, 0, 881, 0, + 0, 0, 0, 2504, 880, 2057, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, + 880, 0, 0, 0, 880, 0, 0, 4769, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 881, 2549, 2550, + 2551, 2552, 0, 0, 1330, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2039, 0, 0, 2040, + 0, 0, 1978, 2041, 2042, 2043, 0, 0, 0, 0, + 0, 1330, 0, 0, 0, 0, 0, 0, 0, 0, + 2044, 0, 1306, 1306, 0, 0, 0, 4822, 2046, 0, + 0, 0, 0, 0, 0, 2047, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2058, 0, 0, 2059, 2060, + 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, + 2048, 0, 0, 881, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 880, 0, 0, 0, 0, 0, 0, + 0, 880, 880, 0, 0, 0, 2651, 0, 0, 0, + 0, 0, 2655, 0, 0, 880, 0, 0, 0, 0, + 1720, 0, 0, 0, 0, 0, 0, 881, 0, 881, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 881, 0, 881, 0, 0, 0, 0, 612, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2110, + 0, 0, 0, 0, 0, 0, 1720, 0, 1719, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2049, 1631, 1635, 0, 0, 2050, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2165, 0, 0, 2051, 2052, + 881, 0, 0, 4921, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2053, 0, 0, 0, 0, 0, 0, + 0, 0, 4931, 0, 0, 0, 0, 4936, 4937, 0, + 0, 0, 0, 0, 2822, 0, 0, 4948, 0, 0, + 0, 0, 0, 0, 4950, 0, 0, 0, 0, 0, + 0, 0, 2054, 0, 0, 881, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2055, 0, 0, 2056, + 0, 0, 0, 881, 0, 2039, 0, 2293, 2040, 0, + 5000, 0, 2041, 2042, 2043, 0, 2316, 0, 0, 0, + 0, 0, 0, 4106, 0, 881, 0, 0, 881, 2044, + 5017, 0, 5019, 0, 0, 0, 0, 2046, 0, 0, + 0, 0, 0, 0, 2047, 0, 0, 5033, 2353, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3711, 0, 2048, + 0, 2376, 0, 0, 2379, 5054, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 880, 2057, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4107, 0, 0, 0, 0, 0, 0, + 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2429, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5093, 2448, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5433, 0, 0, 3011, 3012, + 0, 5110, 0, 0, 0, 0, 0, 0, 0, 3025, + 0, 3027, 0, 5118, 0, 3031, 0, 0, 0, 0, + 2049, 0, 0, 0, 0, 2050, 2058, 1995, 0, 2059, + 2060, 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, + 0, 0, 0, 0, 0, 0, 0, 2051, 2052, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2010, 0, + 0, 0, 2053, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1719, 0, 0, 0, 0, 5177, 0, + 0, 0, 0, 0, 0, 0, 2028, 2029, 2030, 0, + 2032, 0, 2472, 0, 0, 0, 0, 880, 0, 0, + 0, 2054, 0, 0, 0, 880, 0, 0, 881, 0, + 2074, 0, 0, 0, 0, 2055, 0, 880, 2056, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5434, 0, 3711, 2523, 0, 3168, 0, 0, 3171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1720, 0, + 0, 0, 0, 1720, 0, 1720, 0, 0, 0, 0, + 0, 0, 2566, 0, 0, 0, 0, 0, 2132, 2579, + 0, 0, 2144, 2149, 0, 0, 0, 0, 1720, 0, + 0, 0, 880, 880, 0, 0, 0, 0, 0, 0, + 0, 0, 5263, 0, 0, 2057, 880, 0, 1720, 0, + 0, 0, 0, 0, 0, 0, 0, 5276, 0, 880, + 880, 0, 0, 0, 881, 0, 0, 881, 0, 0, + 0, 3260, 0, 0, 0, 880, 0, 0, 0, 3267, + 0, 0, 3270, 0, 0, 0, 0, 0, 3272, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3284, + 0, 5305, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5316, 0, 0, 0, + 0, 0, 0, 0, 0, 2658, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3330, 0, 0, 0, 0, 2058, 0, 0, 2059, 2060, + 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 881, + 881, 0, 0, 0, 0, 1330, 1330, 2039, 3353, 881, + 2040, 0, 0, 0, 2041, 2042, 2043, 0, 0, 0, + 0, 0, 2709, 0, 0, 0, 0, 0, 881, 0, + 0, 2044, 0, 0, 3497, 0, 0, 5377, 0, 2046, + 1719, 0, 0, 0, 0, 0, 2047, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3420, 0, 3422, + 0, 2048, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5399, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1631, 1631, 1631, 0, 0, 881, 0, 0, 0, + 880, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2877, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2883, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2039, 0, 0, 2040, 0, 0, + 0, 2041, 2042, 2043, 0, 0, 0, 0, 0, 0, + 0, 1377, 0, 0, 0, 0, 880, 0, 2044, 5465, + 0, 0, 1377, 1377, 0, 0, 2046, 3487, 0, 0, + 0, 0, 2049, 2047, 880, 0, 0, 2050, 0, 1719, + 880, 0, 0, 0, 880, 0, 0, 0, 0, 0, + 0, 0, 880, 0, 0, 0, 1330, 0, 2048, 2051, + 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 880, 0, 0, 0, 2053, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2054, 0, 880, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2055, 0, 0, + 2056, 0, 0, 0, 0, 880, 880, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1719, 880, 0, 2049, + 1719, 0, 0, 0, 2050, 0, 0, 0, 0, 0, + 0, 0, 0, 881, 0, 0, 0, 0, 1720, 0, + 0, 0, 0, 880, 0, 1719, 2051, 2052, 0, 880, + 3067, 0, 0, 0, 0, 0, 880, 0, 0, 0, + 0, 2053, 0, 880, 0, 3089, 880, 2057, 0, 0, + 0, 0, 880, 881, 0, 0, 0, 0, 0, 0, + 0, 2039, 0, 0, 2040, 881, 3116, 0, 2041, 2042, + 2043, 0, 880, 0, 0, 0, 0, 0, 880, 0, + 2054, 0, 0, 880, 0, 2044, 1719, 0, 3545, 0, + 0, 0, 0, 2046, 2055, 881, 880, 2056, 0, 0, + 2047, 0, 0, 0, 0, 0, 0, 0, 0, 880, + 0, 0, 0, 0, 1719, 3513, 0, 0, 0, 0, + 880, 0, 0, 0, 0, 2048, 0, 0, 0, 0, + 0, 0, 3700, 0, 3701, 3702, 3703, 0, 0, 0, + 0, 0, 3192, 3193, 0, 0, 0, 2058, 0, 0, + 2059, 2060, 2061, 2752, 2062, 2063, 2064, 2065, 2066, 2067, + 0, 0, 0, 0, 0, 2772, 0, 2773, 0, 2775, + 0, 0, 2787, 2790, 2795, 0, 0, 0, 0, 2801, + 0, 0, 2806, 0, 2057, 0, 1719, 0, 0, 0, + 0, 0, 0, 0, 881, 0, 0, 2813, 2814, 2815, + 2816, 0, 0, 0, 0, 2823, 0, 0, 0, 2841, + 0, 0, 2843, 0, 0, 2850, 2851, 2852, 2853, 2854, + 2855, 2856, 2857, 2858, 0, 2859, 0, 0, 0, 0, + 0, 0, 1306, 0, 1631, 0, 2049, 0, 0, 0, + 0, 2050, 0, 0, 0, 0, 0, 0, 0, 3317, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2051, 2052, 0, 0, 880, 0, 0, + 0, 0, 0, 0, 881, 0, 0, 2896, 2053, 0, + 0, 0, 0, 0, 2058, 0, 0, 2059, 2060, 2061, + 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, + 0, 2029, 2030, 0, 0, 0, 0, 0, 0, 0, + 1106, 0, 0, 0, 0, 0, 0, 2054, 0, 0, + 0, 0, 0, 880, 0, 0, 0, 0, 0, 0, + 0, 2055, 2039, 0, 2056, 2040, 1106, 0, 0, 2041, + 2042, 2043, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2044, 0, 0, 0, + 0, 0, 0, 0, 2046, 880, 0, 0, 0, 0, + 2039, 2047, 0, 2040, 0, 3866, 0, 2041, 2042, 2043, + 0, 0, 0, 880, 2997, 0, 881, 0, 881, 0, + 0, 880, 0, 0, 2044, 0, 2048, 3556, 0, 0, + 0, 0, 2046, 0, 0, 0, 0, 0, 0, 2047, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2057, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2048, 881, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, + 0, 0, 0, 2039, 0, 1105, 2040, 0, 0, 0, + 2041, 2042, 2043, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1719, 0, 0, 2044, 0, 0, + 1719, 1105, 0, 0, 1720, 2046, 0, 0, 3550, 872, + 0, 0, 2047, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2049, 0, 0, + 0, 0, 2050, 0, 0, 0, 0, 2048, 0, 0, + 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, 2063, + 2064, 2065, 2066, 2067, 2051, 2052, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2049, 0, 0, 0, 2053, + 2050, 4021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 880, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2051, 2052, 0, 0, 1634, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2053, 2054, 0, + 0, 0, 1106, 0, 0, 0, 0, 0, 0, 3604, + 0, 0, 2055, 0, 0, 2056, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1106, 0, 3248, + 3249, 1631, 1377, 0, 0, 3253, 2054, 0, 2049, 0, + 0, 0, 1106, 2050, 0, 0, 0, 0, 0, 0, + 2055, 0, 0, 2056, 0, 0, 0, 0, 0, 0, + 0, 880, 880, 0, 0, 2051, 2052, 3282, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1720, 0, + 2053, 0, 0, 0, 0, 0, 0, 0, 880, 0, + 0, 880, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2057, 0, 881, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 881, 2054, + 0, 0, 0, 0, 0, 0, 0, 1106, 0, 0, + 0, 0, 0, 2055, 0, 0, 2056, 0, 0, 0, + 2057, 0, 0, 0, 0, 0, 0, 1105, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1105, 0, 0, 1719, 1719, 1719, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1105, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, + 0, 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, + 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, 880, + 0, 0, 0, 2057, 0, 0, 0, 0, 0, 0, + 4245, 4246, 4247, 4248, 0, 0, 0, 1106, 880, 0, + 2058, 0, 0, 2059, 2060, 2061, 0, 2062, 2063, 2064, + 2065, 2066, 2067, 0, 0, 4057, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3796, + 0, 0, 1105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1720, 0, 881, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3493, 0, 0, 0, 0, + 3499, 0, 0, 2058, 880, 0, 2059, 2060, 2061, 0, + 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2032, 0, 0, 0, + 0, 1096, 0, 0, 0, 2039, 0, 2795, 2040, 2795, + 2795, 0, 2041, 2042, 2043, 0, 0, 0, 0, 0, + 3559, 1719, 0, 3562, 0, 3564, 0, 1096, 880, 2044, + 880, 0, 1105, 0, 0, 0, 0, 2046, 0, 0, + 0, 0, 0, 880, 2047, 880, 0, 0, 0, 0, + 1720, 0, 0, 0, 0, 0, 0, 0, 0, 4399, + 3585, 0, 3588, 0, 3590, 0, 0, 1719, 881, 2048, + 0, 0, 0, 0, 4402, 0, 0, 0, 0, 0, + 0, 872, 0, 0, 0, 0, 3919, 3920, 3921, 0, + 0, 0, 0, 0, 881, 0, 0, 2188, 0, 0, + 0, 0, 0, 3930, 0, 0, 0, 0, 0, 0, + 0, 880, 0, 0, 0, 0, 0, 0, 0, 2132, + 0, 0, 0, 0, 0, 0, 3946, 0, 0, 0, + 0, 0, 0, 0, 2149, 0, 3956, 3958, 0, 0, + 0, 3963, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2039, 0, 0, 2040, 0, 872, 872, 2041, 2042, + 2043, 0, 0, 0, 2188, 0, 880, 0, 0, 0, + 0, 0, 0, 0, 0, 2044, 2095, 0, 4113, 0, + 2049, 0, 0, 2046, 880, 2050, 0, 0, 0, 0, + 2047, 0, 0, 0, 0, 0, 0, 0, 3680, 881, + 0, 0, 0, 0, 0, 1106, 880, 2051, 2052, 880, + 0, 0, 0, 0, 0, 2048, 0, 0, 0, 0, + 0, 0, 2053, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1106, 0, + 0, 0, 1105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4041, 0, 0, 1330, + 0, 2054, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2055, 0, 0, 2056, 0, + 0, 0, 1720, 1096, 0, 0, 0, 0, 0, 0, + 0, 1719, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1096, 1105, + 0, 0, 0, 0, 0, 1634, 1634, 1634, 0, 0, + 0, 0, 0, 1096, 0, 0, 2049, 0, 0, 0, + 0, 2050, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1720, 0, 0, 0, + 1105, 0, 0, 2051, 2052, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1720, 2057, 872, 872, 2053, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1105, 0, 0, 0, 0, 0, 0, + 0, 0, 4147, 4148, 4149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2054, 1096, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1106, 0, + 0, 2055, 0, 0, 2056, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, + 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, + 1631, 0, 0, 0, 0, 2058, 1631, 0, 2059, 2060, + 2061, 0, 2062, 2063, 2064, 2065, 2066, 2067, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1719, + 0, 0, 0, 0, 1719, 0, 1719, 0, 0, 1106, + 0, 2057, 0, 0, 0, 0, 0, 0, 1096, 1098, + 0, 0, 1106, 0, 0, 0, 0, 0, 4713, 1719, + 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, + 0, 0, 0, 4717, 0, 1098, 0, 1106, 0, 1719, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1105, 0, 880, 0, 0, 880, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1106, 1106, 0, 0, 0, 0, 0, 1105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2058, 0, 0, 2059, 2060, 2061, 0, 2062, 2063, + 2064, 2065, 2066, 2067, 0, 674, 0, 0, 0, 0, + 675, 0, 0, 0, 0, 0, 4783, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1105, 0, 0, 0, 0, 0, + 880, 880, 0, 0, 0, 676, 0, 1105, 0, 0, + 880, 0, 0, 0, 0, 0, 0, 0, 677, 0, + 1105, 0, 0, 4400, 0, 0, 0, 0, 0, 880, + 0, 0, 1105, 678, 4413, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4058, 679, 0, 0, 0, 0, 0, 0, 0, 4062, + 0, 0, 0, 0, 0, 4444, 0, 4064, 1096, 4065, + 1106, 0, 0, 0, 680, 0, 1105, 1105, 0, 0, + 0, 0, 0, 0, 0, 681, 0, 0, 0, 0, + 0, 0, 0, 0, 682, 0, 4089, 4090, 2579, 0, + 0, 0, 0, 0, 0, 0, 683, 880, 1634, 0, + 0, 684, 0, 0, 2801, 0, 0, 0, 685, 0, + 0, 0, 4116, 0, 0, 4119, 0, 4121, 0, 0, + 0, 0, 0, 0, 0, 1096, 0, 686, 0, 4126, + 0, 1098, 0, 0, 0, 0, 0, 4133, 4134, 2658, + 0, 0, 0, 0, 0, 0, 4902, 0, 4903, 0, + 0, 0, 0, 0, 0, 0, 1098, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1096, 0, 0, 4180, + 0, 1098, 0, 687, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4195, 0, 0, 2952, 1096, + 0, 0, 2188, 2958, 1099, 1105, 0, 0, 0, 0, + 0, 4208, 0, 688, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 689, 0, 0, 0, + 1099, 0, 0, 0, 0, 0, 690, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 207, 691, 0, 0, + 692, 0, 0, 0, 0, 0, 1098, 0, 0, 0, + 4580, 4581, 4582, 4583, 1106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 693, 0, 1106, 694, + 0, 0, 0, 695, 0, 696, 0, 0, 0, 0, + 0, 0, 697, 0, 0, 698, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5038, 0, + 0, 0, 0, 0, 699, 0, 0, 0, 0, 1106, + 0, 700, 0, 0, 880, 0, 0, 701, 0, 1719, + 702, 0, 0, 0, 703, 0, 0, 0, 0, 0, + 0, 0, 704, 1105, 705, 0, 0, 1105, 1105, 706, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 707, 0, 880, 0, 1098, 0, 0, 0, + 0, 0, 0, 0, 0, 708, 880, 0, 0, 1096, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 880, 0, 0, 1105, + 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, + 0, 0, 0, 1105, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5133, 0, 5135, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1105, 0, 0, 0, 0, 0, + 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1096, 0, 1634, 1099, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, + 0, 0, 0, 0, 0, 880, 0, 0, 1096, 0, + 0, 1099, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1106, 0, 0, 0, 1099, 0, 4489, 4490, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1096, 1096, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1098, 0, 0, 0, + 0, 0, 0, 0, 0, 880, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4532, 2188, 0, 0, 2188, 0, 0, + 0, 1099, 0, 4812, 0, 4538, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1098, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4556, 4558, 0, 0, + 0, 0, 0, 4562, 4563, 0, 0, 1105, 4564, 0, + 0, 0, 0, 0, 4567, 0, 0, 4570, 4571, 0, + 1101, 0, 4575, 0, 1098, 0, 5312, 623, 4579, 0, + 0, 1096, 0, 0, 0, 0, 0, 880, 0, 880, + 0, 0, 0, 0, 624, 0, 1101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1098, 0, 0, + 0, 1099, 0, 0, 0, 0, 1106, 625, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 626, 0, 1306, 1106, 0, 0, 880, 0, 0, 1105, + 0, 627, 1105, 0, 0, -856, 0, 0, 1106, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4636, + 0, 0, 0, 628, 0, 0, 0, 0, 0, 629, + 0, 0, 0, 0, 0, 0, 0, 0, 5383, 0, + 0, 0, 0, 0, 0, 1719, 630, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, + 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 633, 1096, + 0, 0, 0, 1096, 1096, 0, 634, 0, 0, 0, + 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4972, 0, 0, 0, -1085, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4985, 1105, 0, 4702, 0, 1330, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5458, 0, 0, 1105, 0, + 0, 0, 0, 0, 0, 1096, 636, 1098, 0, 0, + 0, 5022, 0, 1105, 0, -573, 0, 0, 0, 1096, + 0, 0, 0, 0, 1098, 0, 0, 5474, 5474, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1099, 1098, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 637, 0, 4740, 638, 0, + 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1101, 0, 0, 0, 0, 0, 639, 0, + 0, 2188, 0, 0, 2958, 0, 2958, 0, 0, 1719, + 0, 2188, 640, 0, 0, 0, 0, 1101, 1098, -444, + 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, + 0, 1098, 1101, 0, 0, 880, 0, 0, 641, 0, + 0, 0, 0, 0, 1098, 0, 0, 642, 0, 880, + 5474, 0, 5106, 0, -444, 0, 1098, 643, 0, 0, + 1106, 0, 0, 0, 0, 0, 0, 0, 0, 1099, + 0, 0, 0, 0, 0, 0, 644, 0, 0, 1106, + 0, 0, 0, 645, 0, 0, 0, 0, 0, -444, + 0, 0, 646, 647, 0, 648, 649, 0, 0, 0, + 1098, 1098, 1099, 0, 2188, 0, 650, 0, 0, 0, + 0, 651, 0, 0, 0, 0, 0, 1101, 652, 0, + 0, 653, 0, 0, 654, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -444, 0, 0, + 0, 0, 0, 0, 4844, 4845, 1105, 0, 4846, 1105, + 0, 1105, 5184, 0, 0, 0, 1105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1106, 0, 1106, 0, 0, 0, + 0, 0, 0, 1096, 0, 4881, 4882, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4893, 0, 1105, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1105, 0, 0, 1101, 0, 0, + 0, 0, 0, 0, 1719, 0, 880, 0, 0, 1098, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1096, 0, 1106, 1096, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1099, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1634, 0, 0, 0, 0, 1099, + 1634, 0, 0, 0, 0, 0, 0, 1102, 1106, 0, + 0, 0, 0, 0, 0, 0, 1104, 1099, 0, 1105, + 0, 1105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1719, 0, 1102, 0, 0, 0, 2958, 0, 0, + 0, 0, 1104, 0, 0, 0, 0, 0, 0, 880, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1099, 0, 880, 0, 1098, 0, 0, + 0, 1098, 1098, 0, 0, 0, 1099, 1096, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1099, + 0, 0, 0, 0, 1096, 0, 1106, 0, 0, 2801, + 0, 1099, 1105, 0, 0, 0, 0, 0, 0, 1096, + 0, 0, 0, 0, 0, 0, 0, 2958, 0, 0, + 0, 0, 0, 0, 0, 0, 5076, 1101, 0, 0, + 0, 1106, 0, 1098, 0, 0, 0, 0, 0, 0, + 2032, 0, 0, 1105, 0, 1099, 1099, 1098, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 954, 0, 0, 0, 0, 955, 0, 0, 0, + 880, 0, 1105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1098, 0, + 0, 0, 0, 0, 1101, 0, 0, 0, 0, 5125, + 0, 956, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 957, 958, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 959, 0, 0, 0, 960, + 0, 0, 0, 0, 0, 1101, 0, 1106, 0, 0, + 0, 1105, 5162, 0, 0, 0, 0, 961, 0, 0, + 0, 0, 0, 1719, 0, 0, 0, 0, 0, 0, + 1106, 0, 1105, 0, 0, 0, 0, 0, 1101, 0, + 962, 0, 0, 0, 0, 0, 1105, 0, 0, 1102, + 0, 963, 0, 0, 1099, 1106, 0, 0, 1104, 0, + 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 965, 0, 1102, 0, 0, 966, 0, 0, + 0, 0, 0, 1104, 0, 0, 0, 1719, 0, 1102, + 0, 1106, 1096, 0, 0, 1096, 0, 1096, 1104, 0, + 0, 0, 1096, 967, 0, 1719, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4881, 0, 0, 0, 968, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 969, + 5265, 1096, 1105, 0, 0, 0, 0, 0, 0, 0, + 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, + 1096, 0, 0, 0, 1102, 1105, 0, 0, 0, 0, + 0, 2188, 0, 1104, 0, 0, 0, 0, 0, 970, + 0, 0, 1099, 0, 0, 1096, 1099, 1099, 0, 0, + 1105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 0, 0, 0, 0, 0, 1101, 0, + 0, 0, 207, 972, 0, 0, 973, 5319, 0, 0, + 0, 0, 0, 0, 0, 1101, 1105, 0, 0, 0, + 0, 0, 0, 1098, 0, 0, 1098, 0, 0, 0, + 0, 0, 974, 1101, 0, 975, 0, 0, 1099, 976, + 0, 977, 5347, 5347, 5347, 1096, 0, 1096, 978, 0, + 0, 979, 1099, 0, 0, 0, 0, 0, 0, 0, + 2958, 4881, 0, 0, 1102, 0, 0, 0, 0, 0, + 980, 0, 0, 1104, 0, 0, 0, 981, 0, 0, + 0, 0, 0, 982, 0, 2958, 983, 0, 0, 1101, + 984, 0, 0, 1099, 0, 0, 0, 0, 985, 0, + 986, 0, 1101, 0, 0, 987, 1105, 0, 0, 0, + 0, 0, 0, 0, 0, 1101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, + 0, 988, 0, 0, 0, 0, 0, 0, 1096, 0, + 0, 0, 5408, 0, 0, 1098, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5347, 0, 1098, 0, 0, 0, 0, 0, 0, 0, + 0, 1101, 1101, 0, 0, 0, 0, 1098, 0, 1096, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1105, 0, 0, 1096, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1106, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2958, 0, 0, + 5500, 2188, 0, 0, 1102, 0, 0, 1096, 0, 0, + 0, 0, 0, 1104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1099, 0, 1096, 0, + 0, 0, 0, 0, 0, 5347, 0, 0, 0, 0, + 1101, 0, 1096, 0, 0, 5527, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1105, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, + 0, 1099, 1102, 0, 0, 0, 0, 0, 0, 0, + 1098, 1104, 0, 1098, 0, 1098, 0, 0, 0, 0, + 1098, 0, 0, 1106, 0, 0, 0, 0, 0, 0, + 0, 0, 1105, 1106, 0, 1102, 1105, 0, 1096, 0, + 0, 0, 0, 0, 1104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1096, 0, 0, 0, 0, 0, 0, 1101, 1098, + 0, 0, 1101, 1101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1096, 0, 1098, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1098, 0, 0, 0, 0, 0, 0, + 1099, 0, 1096, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 1101, 0, 0, 1099, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1101, 0, + 0, 1106, 1099, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1105, 0, + 192, 0, 0, 1098, 0, 1098, 0, 0, 0, 1101, + 0, 0, 1106, 0, 0, 193, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1096, 194, 1106, 1102, 0, 0, 0, 195, + 0, 0, 0, 0, 1104, 0, 0, 0, 0, 0, + 0, 0, 1102, 0, 0, 0, 196, 0, 0, 0, + 0, 1104, 0, 0, 0, 0, 0, 197, 0, 0, + 1102, 0, 0, 0, 0, 0, 198, 0, 0, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, + 0, 0, 0, 200, 0, 0, 1098, 0, 0, 0, + 201, 0, 1106, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1105, 0, 0, 202, + 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, + 0, 1096, 0, 0, 0, 1104, 0, 1098, 0, 1102, + 0, 0, 0, 0, 203, 0, 0, 0, 1104, 0, + 0, 0, 1102, 0, 0, 0, 1096, 1105, 0, 0, + 0, 1104, 0, 0, 1102, 204, 1098, 0, 0, 0, + 0, 0, 0, 1104, 0, 0, 0, 0, 0, 1105, + 0, 0, 0, 0, 0, 1099, 0, 0, 1099, 0, + 1099, 0, 0, 0, 0, 1099, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 205, 0, 0, 1102, 1102, + 0, 0, 1101, 0, 0, 0, 0, 1104, 1104, 0, + 0, 0, 4809, 0, 1106, 0, 0, 0, 206, 0, + 0, 0, 0, 0, 0, 1098, 0, 0, 207, 208, + 0, 0, 209, 0, 1099, 0, 0, 1105, 0, 0, + 0, 0, 0, 0, 0, 0, 1098, 0, 0, 0, + 0, 0, 0, 1099, 0, 0, 0, 0, 210, 0, + 1098, 211, 0, 1106, 0, 212, 0, 213, 0, 0, + 0, 0, 0, 0, 214, 0, 0, 215, 1099, 0, + 1096, 0, 0, 0, 1101, 0, 0, 1101, 0, 0, + 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 217, 0, 0, 0, 0, 218, 219, + 0, 0, 220, 0, 0, 0, 221, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 222, 0, 1096, 0, + 0, 223, 1096, 0, 0, 0, 0, 1102, 0, 0, + 0, 0, 0, 0, 224, 0, 1104, 0, 1099, 0, + 1099, 0, 0, 0, 0, 0, 0, 225, 0, 1105, + 0, 0, 0, 0, 0, 0, 1098, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2958, 0, 0, 0, 0, 0, 1101, 0, 1105, 0, + 0, 0, 0, 0, 1098, 0, 0, 0, 0, 0, + 0, 0, 0, 1101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1101, 0, + 0, 1099, 0, 0, 0, 0, 0, 0, 0, 0, + 1098, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1096, 1102, 0, 0, 0, 1102, + 1102, 0, 1099, 0, 1104, 0, 0, 0, 1104, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1099, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2958, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1098, 1102, 0, 0, 0, 1105, 0, 0, 0, 0, + 1104, 1106, 0, 0, 0, 1102, 0, 0, 0, 0, + 0, 0, 0, 0, 1104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1106, 0, 1096, 0, 0, 0, 1102, 0, 0, 0, + 0, 1099, 0, 0, 0, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1096, 0, 0, 0, 0, 0, 1098, + 0, 0, 0, 1106, 0, 0, 0, 0, 1106, 1106, + 0, 1101, 0, 0, 1101, 1096, 1101, 0, 0, 0, + 0, 1101, 0, 0, 1098, 0, 0, 0, 0, 0, + 0, 1105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1105, 0, 0, 0, + 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, + 1101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1099, 0, 1096, 0, 0, 0, 0, 0, 1101, + 0, 0, 0, 0, 0, 1105, 0, 0, 0, 0, + 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1101, 0, 0, 0, 0, 0, + 0, 2069, 0, 4809, 1106, 0, 0, 0, 0, 1099, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1105, 0, + 0, 0, 0, 1105, 1105, 0, 0, 0, 1098, 1102, + 0, 0, 0, 0, 0, 1099, 0, 0, 1104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1101, 0, 1101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1096, 1098, 0, 0, 0, + 1098, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1102, 0, 0, 1102, 0, 0, 0, 0, 0, + 1104, 0, 0, 1104, 1096, 1099, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, + 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1101, 1106, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1098, 0, 0, 0, 0, 1101, 0, 0, + 0, 0, 1098, 0, 1099, 0, 0, 0, 0, 0, + 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, + 0, 0, 1104, 0, 0, 0, 0, 0, 0, 1099, + 1102, 0, 0, 0, 0, 0, 0, 0, 2069, 1104, + 0, 1096, 2069, 0, 0, 1102, 0, 0, 0, 0, + 0, 0, 0, 0, 1104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1105, 0, 0, 0, 0, 0, + 1098, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1098, 0, 1099, 0, 0, 0, 1096, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1098, 0, 0, 0, 0, 0, 0, + 0, 0, 1096, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, + 0, 1099, 0, 0, 0, 1099, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 1096, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1098, 0, 0, 0, 1101, 0, 0, 1102, 0, + 0, 1102, 0, 1102, 0, 0, 0, 1104, 1102, 0, + 1104, 0, 1104, 0, 0, 0, 0, 1104, 0, 0, + 0, 0, 0, 0, 1096, 0, 0, 0, 0, 1096, + 1096, 1101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, + 0, 0, 0, 0, 0, 0, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, + 0, 0, 0, 0, 0, 1104, 0, 1099, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, + 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 0, 0, 1098, 0, 0, 0, 0, 0, 0, + 0, 1101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2069, 0, 0, 1096, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, + 0, 2783, 1098, 0, 0, 0, 0, 0, 0, 0, + 0, 1102, 0, 1102, 0, 2069, 2069, 2069, 0, 2069, + 1104, 0, 1104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, + 1101, 2069, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, + 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0, + 0, 0, 0, 1104, 0, 0, 0, 0, 1099, 2069, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2069, 0, 0, 0, 0, 2069, 0, 0, 1098, + 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, + 0, 0, 0, 0, 1104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0, + 1096, 0, 0, 1104, 0, 0, 1099, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, + 0, 0, 1104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1102, 1098, 0, 1101, 0, 0, + 0, 1101, 0, 1104, 0, 0, 0, 0, 1102, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, + 1098, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1098, 0, 1102, 0, 0, 1098, 1098, 0, + 0, 0, 0, 1104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1101, 0, 0, 0, 1102, 0, 0, + 0, 0, 0, 1101, 0, 0, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1102, 0, 0, 0, 0, 0, 0, 0, + 0, 1104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, + 0, 0, 0, 1098, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, + 0, 0, 1101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, + 0, 0, 1101, 0, 0, 0, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1102, 0, 1099, 0, 0, 0, 0, 0, + 0, 1104, 0, 0, 0, 0, 0, 0, 1098, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1099, 0, 2069, + 0, 0, 1099, 1099, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, + 2069, 0, 2069, 0, 0, 2783, 2783, 0, 3536, 0, + 2783, 0, 0, 0, 2069, 0, 0, 2069, 0, 0, + 0, 0, 2069, 0, 1101, 0, 0, 0, 2069, 0, + 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, + 2069, 2069, 2069, 2069, 0, 0, 0, 2783, 2783, 0, + 2069, 0, 0, 0, 0, 0, 1102, 0, 0, 0, + 0, 0, 0, 0, 0, 1104, 0, 0, 2069, 0, + 2069, 0, 0, 1101, 0, 0, 0, 2069, 2069, 2069, + 2069, 2069, 2069, 2069, 2069, 2069, 2069, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, + 0, 0, 0, 0, 1102, 0, 0, 0, 1102, 0, + 0, 0, 0, 1104, 0, 0, 0, 1104, 0, 0, + 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2069, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1102, 0, 0, 0, 0, 0, 0, 0, 0, 1104, + 1102, 0, 0, 0, 0, 0, 0, 0, 0, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1101, 0, 0, 0, 0, 0, 0, 1102, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 0, 0, 0, 0, 0, 0, 0, 0, 1102, + 0, 0, 0, 0, 0, 0, 0, 0, 1104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1101, 0, 0, 0, 0, 1101, 1101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2069, 2069, 0, 0, 0, + 2069, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1102, + 0, 0, 0, 0, 0, 0, 0, 0, 1104, 2069, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1102, 0, 0, 0, 0, 0, 0, 0, 0, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2069, 0, 0, 0, 0, 0, 2069, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3536, 3536, 0, 0, 2783, 2783, + 2783, 2783, 0, 0, 2783, 2783, 2783, 2783, 2783, 2783, + 2783, 2783, 2783, 2783, 3536, 0, 0, 0, 0, 1101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2069, 0, 0, 2069, + 0, 2069, 0, 0, 3536, 3536, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, + 0, 0, 2069, 2783, 2783, 2069, 1104, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, + 0, 0, 1104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, + 0, 0, 0, 0, 0, 0, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1102, 0, 0, 0, 0, 1102, 1102, 0, 0, 1104, + 0, 0, 0, 0, 1104, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2783, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2069, 0, 0, 0, 2069, + 0, 2069, 2069, 0, 0, 0, 0, 0, 3536, 3536, + 3536, 3536, 0, 0, 0, 0, 3536, 3536, 3536, 3536, + 3536, 3536, 3536, 3536, 3536, 3536, 2069, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2069, 0, 0, 2069, 0, 2069, 0, + 0, 0, 0, 2069, 0, 0, 3536, 3536, 0, 0, + 2069, 2069, 0, 0, 0, 0, 1102, 0, 0, 0, + 0, 0, 0, 0, 0, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2069, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3536, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2069, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, + 0, 0, 0, 0, 0, 2069, 2783, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2069, 0, 2069, 0, 0, 0, 2069, + 2069, 2069, 0, 0, 2069, 0, 0, 2069, 2069, 0, + 0, 0, 2069, 0, 0, 0, 2069, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3536, 2783, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2069, 2069, 2069, 0, 0, 0, 0, 0, 0, + 0, 2783, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2069, 2069, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2069, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3536, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2783, 0, 0, 3536, + 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2069, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3536, 0, 2783, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2069, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2069, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2069, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2783, 2783, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3536, 3536, 0, 0, 0, 2069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 1222, 669, 0, 1223, 1224, 1225, 729, 1226, 0, 0, + 0, 0, 0, 0, 2069, 229, 230, 231, 232, 233, + 234, 235, 236, 1625, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 1626, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, 391, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 1262, 424, + 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 1266, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 1270, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, 518, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 1279, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 1627, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, 1290, 0, 0, 0, 0, + 0, 0, 1291, 1292, 1628, 0, 0, 0, 0, 0, + 0, 1294, 1629, 228, 0, 1222, 669, 0, 1223, 1224, + 1225, 729, 1226, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 1227, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 1228, 251, 1229, 1230, 0, 254, 255, 256, 257, 258, + 259, 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, + 266, 267, 268, 1235, 0, 1236, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, + 296, 1244, 1245, 299, 1246, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 1077, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 1247, 327, + 328, 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 1251, 0, 1252, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 1256, 389, 390, 391, 0, 392, + 393, 394, 1257, 1258, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1259, 412, 1260, 414, 415, 416, 417, 418, 419, 420, + 421, 1261, 423, 1262, 424, 425, 426, 427, 1263, 1264, + 429, 1265, 431, 432, 433, 0, 434, 435, 0, 0, + 1266, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 1267, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 1268, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 1269, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 1270, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 40, 508, + 509, 510, 511, 512, 1271, 513, 514, 515, 516, 517, + 518, 519, 520, 1272, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 1273, + 537, 0, 538, 539, 44, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 1274, 1275, 0, 0, 550, 551, + 1276, 553, 1277, 1278, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 1279, 563, 564, 565, 566, 567, 1280, + 0, 568, 569, 570, 571, 572, 1156, 1281, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 49, + 582, 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, + 1285, 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, + 1290, 0, 50, 0, 0, 0, 0, 1291, 1292, 0, + 0, 0, 0, 0, 0, 0, 1294, 5087, 228, 0, + 1222, 669, 0, 1223, 1224, 1225, 729, 1226, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, 391, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 1262, 424, + 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 1266, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 1270, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, 518, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 1279, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, 1290, 0, 0, 0, 0, + 0, 0, 1291, 1292, 0, 0, 0, 0, 0, 0, + 0, 1294, 2785, 228, 0, 1222, 669, 0, 1223, 1224, + 1225, 729, 1226, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 1227, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 1228, 251, 1229, 1230, 0, 254, 255, 256, 257, 258, + 259, 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, + 266, 267, 268, 1235, 0, 1236, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, + 296, 1244, 1245, 299, 1246, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 1077, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 1247, 327, + 328, 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 1251, 0, 1252, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 1256, 389, 390, 391, 0, 392, + 393, 394, 1257, 1258, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1259, 412, 1260, 414, 415, 416, 417, 418, 419, 420, + 421, 1261, 423, 1262, 424, 425, 426, 427, 1263, 1264, + 429, 1265, 431, 432, 433, 0, 434, 435, 0, 0, + 1266, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 1267, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 1268, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 1269, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 1270, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 1271, 513, 514, 515, 516, 517, + 518, 519, 520, 1272, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 1273, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 1274, 1275, 0, 0, 550, 551, + 1276, 553, 1277, 1278, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 1279, 563, 564, 565, 566, 567, 1280, + 0, 568, 569, 570, 571, 572, 573, 1281, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, + 1285, 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, + 1290, 0, 0, 0, 0, 0, 0, 1291, 1292, 0, + 0, 0, 0, 0, 0, 0, 1294, 4067, 228, 0, + 1222, 669, 0, 1223, 1224, 1225, 729, 1226, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, 391, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 1262, 424, + 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 1266, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 1270, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, 518, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 1279, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, 1290, 609, 0, 0, 0, + 0, 0, 1291, 1292, 0, 0, 0, 0, 0, 0, + 0, 1294, 4140, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 4158, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, -1789, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + -1789, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, -1789, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, -1789, 382, + 383, 384, 385, 386, 0, 0, 387, 388, -1789, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, -1789, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, -1789, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 0, 1069, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1370, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 245, 246, 247, 248, + 0, 1070, 251, 1071, 1072, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 1073, 1074, 264, 0, + 265, 266, 267, 268, 0, 0, 270, 0, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 286, 287, 288, 289, 0, + 0, 0, 290, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 1075, 1076, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 1077, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 0, + 327, 328, 329, 330, 0, 0, 332, 0, 333, 334, + 1078, 336, 0, 337, 0, 338, 339, 0, 340, 341, + 342, 343, 344, 0, 345, 0, 0, 0, 348, 349, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 2174, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 368, 2175, 370, 371, 372, 373, 1080, 1081, 0, + 1082, 0, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 0, 0, 387, 0, 389, 390, 391, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 1083, 412, 1084, 414, 415, 416, 417, 418, 419, + 420, 0, 0, 423, 0, 424, 425, 426, 427, 0, + 0, 429, 1085, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 2177, 442, + 443, 444, 0, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 0, 458, 0, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 1086, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 0, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 2178, 516, + 517, 518, 519, 520, 1088, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 0, 537, 0, 538, 539, 0, 540, 541, 542, 543, + 544, 545, 546, 0, 547, 1089, 1090, 0, 0, 550, + 551, 0, 553, 0, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 0, 1091, 2179, + 575, 576, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 1069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 599, 600, + 601, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 2287, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 0, 1070, 251, 1071, 1072, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 1073, + 1074, 264, 0, 265, 266, 267, 268, 0, 0, 270, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 0, 0, 0, 290, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 1075, 1076, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 1077, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 0, 327, 328, 329, 330, 0, 0, 332, + 0, 333, 334, 1078, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 0, 0, + 0, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 2174, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 2175, 370, 371, 372, 373, + 1080, 1081, 0, 1082, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 0, 389, + 390, 391, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1083, 412, 1084, 414, 415, 416, + 417, 418, 419, 420, 0, 0, 423, 0, 424, 425, + 426, 427, 0, 0, 429, 1085, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 2177, 442, 443, 444, 0, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 0, 458, + 0, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 1086, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 2178, 516, 517, 518, 519, 520, 1088, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 0, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 1089, 1090, + 0, 0, 550, 551, 0, 553, 0, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 0, 1091, 2179, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 228, 0, 1222, 669, 0, 1223, 1224, 1225, 729, 1226, + 0, 599, 600, 601, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 3371, 0, 1227, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 1228, 251, 1229, + 1230, 0, 254, 255, 256, 257, 258, 259, 1231, 1232, + 260, 261, 1233, 1234, 264, 0, 265, 266, 267, 268, + 1235, 0, 1236, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, + 299, 1246, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 1077, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 1247, 327, 328, 329, 330, + 1248, 1249, 332, 0, 333, 334, 1250, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 1251, 0, 1252, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 1253, 1254, 0, 1255, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 1256, 389, 390, 391, 0, 392, 393, 394, 1257, + 1258, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 1259, 412, 1260, + 414, 415, 416, 417, 418, 419, 420, 421, 1261, 423, + 1262, 424, 425, 426, 427, 1263, 1264, 429, 1265, 431, + 432, 433, 0, 434, 435, 0, 0, 1266, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 1267, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 1268, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 1269, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 1270, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 40, 508, 509, 510, 511, + 512, 1271, 513, 514, 515, 516, 517, 518, 519, 520, + 1272, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 1273, 537, 0, 538, + 539, 44, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 1274, 1275, 0, 0, 550, 551, 1276, 553, 1277, + 1278, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 1279, 563, 564, 565, 566, 567, 1280, 0, 568, 569, + 570, 571, 572, 1156, 1281, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 49, 582, 583, 584, + 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, + 1287, 1288, 1289, 598, 599, 600, 601, 1290, 0, 50, + 0, 0, 0, 0, 1291, 1292, 0, 0, 0, 228, + 0, 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 1227, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, + 2791, 254, 255, 256, 257, 258, 259, 1231, 1232, 260, + 261, 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, + 0, 1236, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, 299, + 1246, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 1247, 327, 328, 329, 330, 1248, + 1249, 332, 0, 333, 334, 1250, 336, 0, 337, 0, + 338, 339, 2792, 340, 341, 342, 343, 344, 0, 345, + 1251, 0, 1252, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 2793, 387, + 1256, 389, 390, 391, 0, 392, 393, 394, 1257, 1258, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1259, 412, 1260, 414, + 415, 416, 417, 418, 419, 420, 421, 1261, 423, 1262, + 424, 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, + 433, 0, 434, 435, 0, 0, 1266, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 1267, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 1268, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1269, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 1270, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 1271, 513, 514, 515, 516, 517, 518, 519, 520, 1272, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 1273, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1274, 1275, 0, 2794, 550, 551, 1276, 553, 1277, 1278, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 1279, + 563, 564, 565, 566, 567, 1280, 0, 568, 569, 570, + 571, 572, 573, 1281, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, + 1288, 1289, 598, 599, 600, 601, 1290, 0, 0, 0, + 0, 0, 0, 1291, 1292, 0, 0, 0, 228, 0, + 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, 391, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 1262, 424, + 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 1266, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 1270, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, 518, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 1279, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, 1290, 0, 0, 0, 0, + 0, 0, 1291, 1292, 0, 0, 0, 0, 0, 1992, + 2745, 1294, 228, 0, 1222, 669, 0, 1223, 1224, 1225, + 729, 1226, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 1227, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 249, 1228, + 251, 1229, 1230, 0, 254, 255, 256, 257, 258, 259, + 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, 266, + 267, 268, 1235, 0, 1236, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 288, 289, 1237, 1238, 1239, + 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, 296, + 1244, 1245, 299, 1246, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 1077, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 1247, 327, 328, + 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 1251, 0, 1252, 348, 349, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 1256, 389, 390, 391, 0, 392, 393, + 394, 1257, 1258, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 1259, + 412, 1260, 414, 415, 416, 417, 418, 419, 420, 421, + 1261, 423, 1262, 424, 425, 426, 427, 1263, 1264, 429, + 1265, 431, 432, 433, 0, 434, 435, 0, 0, 1266, + 437, 438, 0, 0, 439, 440, 441, 442, 443, 444, + 1267, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 1268, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 1269, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 1270, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 1271, 513, 514, 515, 516, 517, 518, + 519, 520, 1272, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 1273, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 1274, 1275, 0, 0, 550, 551, 1276, + 553, 1277, 1278, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 1279, 563, 564, 565, 566, 567, 1280, 0, + 568, 569, 570, 571, 572, 573, 1281, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, 1285, + 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, 1290, + 0, 0, 0, 0, 0, 0, 1291, 1292, 1293, 0, + 0, 228, 0, 1222, 669, 1294, 1223, 1224, 1225, 729, + 1226, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 2142, 237, 238, 239, + 0, 0, 0, 0, 1227, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 249, 1228, 251, + 1229, 1230, 0, 254, 255, 256, 257, 258, 259, 1231, + 1232, 260, 261, 1233, 1234, 264, 0, 265, 266, 267, + 268, 1235, 0, 1236, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 289, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 291, 292, 293, 294, 295, 296, 1244, + 1245, 299, 1246, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 1077, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 1247, 327, 328, 329, + 330, 1248, 1249, 332, 0, 333, 334, 1250, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 1251, 0, 1252, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, + 370, 371, 372, 373, 1253, 1254, 0, 1255, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 1256, 389, 390, 391, 0, 392, 393, 394, + 1257, 1258, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1259, 412, + 1260, 414, 415, 416, 417, 418, 419, 420, 421, 1261, + 423, 1262, 424, 425, 426, 427, 1263, 1264, 429, 1265, + 431, 432, 433, 0, 434, 435, 0, 0, 1266, 437, + 438, 0, 0, 439, 440, 441, 442, 443, 444, 1267, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 1268, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 1269, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 1270, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 1271, 513, 514, 515, 516, 517, 518, 519, + 520, 1272, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 1273, 537, 0, + 538, 539, 0, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 1274, 1275, 0, 0, 550, 551, 1276, 553, + 1277, 1278, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 1279, 563, 564, 565, 566, 567, 1280, 0, 568, + 569, 570, 571, 572, 573, 1281, 0, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, + 1286, 1287, 1288, 1289, 598, 599, 600, 601, 1290, 0, + 0, 0, 0, 0, 0, 1291, 1292, 0, 0, 0, + 228, 0, 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 1227, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 1228, 251, 1229, + 1230, 0, 254, 255, 256, 257, 258, 259, 1231, 1232, + 260, 261, 1233, 1234, 264, 0, 265, 266, 267, 268, + 1235, 0, 1236, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, + 299, 1246, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 1077, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 1247, 327, 328, 329, 330, + 1248, 1249, 332, 0, 333, 334, 1250, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 1251, 0, 1252, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 1253, 1254, 0, 1255, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 1256, 389, 390, 391, 0, 392, 393, 394, 1257, + 1258, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 1259, 412, 1260, + 414, 415, 416, 417, 418, 419, 420, 421, 1261, 423, + 1262, 424, 425, 426, 427, 1263, 1264, 429, 1265, 431, + 432, 433, 0, 434, 435, 0, 0, 1266, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 1267, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 1268, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 1269, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 1270, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 1271, 513, 514, 515, 516, 517, 518, 519, 520, + 1272, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 1273, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 1274, 1275, 0, 0, 550, 551, 1276, 553, 1277, + 1278, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 1279, 563, 564, 565, 566, 567, 1280, 0, 568, 569, + 570, 571, 572, 573, 1281, 3250, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, + 1287, 1288, 1289, 598, 599, 600, 601, 1290, 0, 0, + 0, 0, 0, 0, 1291, 1292, 0, 0, 0, 228, + 0, 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 1227, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, + 0, 254, 255, 256, 257, 258, 259, 1231, 1232, 260, + 261, 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, + 0, 1236, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, 299, + 1246, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 1247, 327, 328, 329, 330, 1248, + 1249, 332, 0, 333, 334, 1250, 336, 0, 337, 0, + 338, 339, 2792, 340, 341, 342, 343, 344, 0, 345, + 1251, 0, 1252, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 1256, 389, 390, 391, 0, 392, 393, 394, 1257, 1258, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1259, 412, 1260, 414, + 415, 416, 417, 418, 419, 420, 421, 1261, 423, 1262, + 424, 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, + 433, 0, 434, 435, 0, 0, 1266, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 1267, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 1268, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1269, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 1270, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 1271, 513, 514, 515, 516, 517, 518, 519, 520, 1272, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 1273, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1274, 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 1279, + 563, 564, 565, 566, 567, 1280, 0, 568, 569, 570, + 571, 572, 573, 1281, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, + 1288, 1289, 598, 599, 600, 601, 1290, 0, 0, 0, + 0, 0, 0, 1291, 1292, 0, 0, 0, 228, 0, + 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, 391, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 1262, 424, + 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 1266, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 1270, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, 518, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 1279, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, 1290, 0, 0, 0, 0, + 0, 0, 1291, 1292, 0, 0, 0, 228, 0, 1222, + 669, 1294, 1223, 1224, 1225, 729, 1226, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 1227, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, 254, + 255, 256, 257, 258, 259, 1231, 1232, 260, 261, 1233, + 1234, 264, 0, 265, 266, 267, 268, 1235, 0, 1236, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, + 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 1077, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, 332, + 0, 333, 334, 1250, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 1251, 0, + 1252, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, + 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 1256, 389, + 390, 391, 0, 392, 393, 394, 1257, 1258, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1259, 412, 1260, 414, 415, 416, + 417, 418, 419, 420, 421, 1261, 423, 1262, 424, 425, + 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, 0, + 434, 435, 0, 0, 1266, 437, 438, 0, 0, 439, + 440, 441, 442, 443, 444, 1267, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 1268, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 1269, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 1270, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 1271, 513, + 514, 515, 516, 517, 518, 519, 520, 1272, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 1273, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 1274, 1275, + 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 1279, 563, 564, + 565, 566, 567, 1280, 0, 568, 569, 570, 571, 572, + 573, 1281, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, + 598, 599, 600, 601, 1290, 0, 0, 0, 0, 0, + 0, 2145, 2146, 0, 0, 0, 228, 0, 2919, 669, + 1294, 1223, 1224, 1225, 729, 1226, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 1227, + 0, 0, 240, 241, 0, 242, 243, 244, 245, 246, + 247, 248, 249, 1228, 251, 1229, 1230, 0, 254, 255, + 256, 257, 258, 259, 1231, 1232, 260, 261, 1233, 1234, + 264, 0, 265, 266, 267, 268, 1235, 0, 1236, 0, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 286, 287, 288, + 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, 292, + 293, 294, 295, 296, 1244, 1245, 299, 1246, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 1077, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 1247, 327, 328, 329, 330, 1248, 1249, 332, 0, + 333, 334, 1250, 336, 0, 337, 0, 338, 339, 0, + 340, 341, 342, 343, 344, 0, 345, 1251, 0, 1252, + 348, 349, 0, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 368, 369, 370, 371, 372, 373, 1253, + 1254, 0, 1255, 0, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 0, 0, 387, 1256, 389, 390, + 391, 0, 392, 393, 394, 1257, 1258, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 1259, 412, 1260, 414, 415, 416, 417, + 418, 419, 420, 421, 1261, 423, 1262, 424, 425, 426, + 427, 1263, 1264, 429, 1265, 431, 432, 433, 0, 434, + 435, 0, 0, 1266, 437, 438, 0, 0, 439, 440, + 441, 442, 443, 444, 1267, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 1268, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 1269, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 1270, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 1271, 513, 514, + 515, 516, 517, 518, 519, 520, 1272, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 1273, 537, 0, 538, 539, 0, 540, 541, + 542, 543, 544, 545, 546, 0, 547, 1274, 1275, 0, + 0, 550, 551, 1276, 553, 1277, 1278, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 1279, 563, 564, 565, + 566, 567, 1280, 0, 568, 569, 570, 571, 572, 573, + 1281, 0, 575, 576, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, 598, + 599, 600, 601, 1290, 0, 0, 0, 0, 0, 0, + 1291, 1292, 0, 0, 0, 228, 0, 1222, 669, 1294, + 1223, 1224, 1225, 729, 1226, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 1227, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 249, 1228, 251, 1229, 1230, 0, 254, 255, 256, + 257, 258, 259, 1231, 1232, 260, 261, 1233, 1234, 264, + 0, 265, 266, 267, 268, 1235, 0, 1236, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 4194, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, 292, 293, + 294, 295, 296, 1244, 1245, 299, 1246, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 1077, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 1247, 327, 328, 329, 330, 1248, 1249, 332, 0, 333, + 334, 1250, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 1251, 0, 1252, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 369, 370, 371, 372, 373, 1253, 1254, + 0, 1255, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 1256, 389, 390, 391, + 0, 392, 393, 394, 1257, 1258, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1259, 412, 1260, 414, 415, 416, 417, 418, + 419, 420, 421, 1261, 423, 1262, 424, 425, 426, 427, + 1263, 1264, 429, 1265, 431, 432, 433, 0, 434, 435, + 0, 0, 1266, 437, 438, 0, 0, 439, 440, 441, + 442, 443, 444, 1267, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 1268, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 1269, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 1270, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 1271, 513, 514, 515, + 516, 517, 518, 519, 520, 1272, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 1273, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 1274, 1275, 0, 0, + 550, 551, 1276, 553, 1277, 1278, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 1279, 563, 564, 565, 566, + 567, 1280, 0, 568, 569, 570, 571, 572, 573, 1281, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 1282, + 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, 598, 599, + 600, 601, 1290, 0, 0, 0, 0, 0, 0, 1291, + 1292, 0, 0, 0, 228, 0, 1222, 669, 1294, 1223, + 1224, 1225, 729, 1226, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 1227, 0, 0, + 240, 241, 0, 242, 243, 244, 245, 246, 247, 248, + 249, 1228, 251, 1229, 1230, 0, 254, 255, 256, 257, + 258, 259, 1231, 1232, 260, 261, 1233, 1234, 264, 0, + 265, 266, 267, 268, 1235, 0, 1236, 0, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 286, 287, 288, 289, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, + 295, 296, 1244, 1245, 299, 1246, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 1077, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 1247, + 327, 328, 329, 330, 1248, 1249, 332, 0, 333, 334, + 1250, 336, 0, 337, 0, 338, 339, 0, 340, 341, + 342, 343, 344, 0, 345, 1251, 0, 1252, 348, 349, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 368, 369, 370, 371, 372, 373, 1253, 1254, 0, + 1255, 0, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 0, 0, 387, 1256, 389, 390, 391, 0, + 392, 393, 394, 1257, 1258, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 1259, 412, 1260, 414, 415, 416, 417, 418, 419, + 420, 421, 1261, 423, 1262, 424, 425, 426, 427, 1263, + 1264, 429, 1265, 431, 432, 433, 0, 434, 435, 0, + 0, 1266, 437, 438, 0, 0, 439, 440, 441, 442, + 443, 444, 1267, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 1268, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 1269, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 1270, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 1271, 513, 514, 515, 516, + 517, 518, 519, 520, 1272, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 1273, 537, 0, 538, 539, 0, 540, 541, 542, 543, + 544, 545, 546, 0, 547, 1274, 1275, 0, 0, 550, + 551, 1276, 553, 1277, 1278, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 1279, 563, 564, 565, 566, 567, + 1280, 0, 568, 569, 570, 571, 572, 573, 1281, 0, + 575, 576, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 4545, 1282, 1283, + 1284, 1285, 593, 1286, 1287, 1288, 1289, 598, 599, 600, + 601, 1290, 0, 0, 0, 0, 0, 0, 1291, 1292, + 0, 0, 0, 228, 0, 1222, 669, 1294, 1223, 1224, + 1225, 729, 1226, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 1227, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 1228, 251, 1229, 1230, 0, 254, 255, 256, 257, 258, + 259, 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, + 266, 267, 268, 1235, 0, 1236, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, + 296, 1244, 1245, 299, 1246, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 1077, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 1247, 327, + 328, 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 1251, 0, 1252, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 1256, 389, 390, 391, 0, 392, + 393, 394, 1257, 1258, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1259, 412, 1260, 414, 415, 416, 417, 418, 419, 4557, + 421, 1261, 423, 1262, 424, 425, 426, 427, 1263, 1264, + 429, 1265, 431, 432, 433, 0, 434, 435, 0, 0, + 1266, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 1267, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 1268, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 1269, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 1270, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 1271, 513, 514, 515, 516, 517, + 518, 519, 520, 1272, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 1273, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 1274, 1275, 0, 0, 550, 551, + 1276, 553, 1277, 1278, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 1279, 563, 564, 565, 566, 567, 1280, + 0, 568, 569, 570, 571, 572, 573, 1281, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, + 1285, 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, + 1290, 0, 0, 0, 0, 0, 0, 1291, 1292, 0, + 0, 0, 228, 0, 1222, 669, 1294, 1223, 1224, 1225, + 729, 1226, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 1227, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 249, 1228, + 251, 1229, 1230, 0, 254, 255, 256, 257, 258, 259, + 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, 266, + 267, 268, 1235, 0, 1236, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 4871, 289, 1237, 1238, 1239, + 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, 296, + 1244, 1245, 299, 1246, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 1077, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 1247, 327, 328, + 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 1251, 0, 4872, 348, 349, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 1256, 389, 390, 391, 0, 392, 393, + 394, 1257, 1258, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 1259, + 412, 1260, 414, 415, 416, 417, 418, 419, 420, 421, + 1261, 423, 1262, 424, 425, 426, 427, 1263, 1264, 429, + 1265, 431, 432, 433, 0, 434, 435, 0, 0, 1266, + 437, 438, 0, 0, 439, 440, 441, 442, 443, 444, + 1267, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 1268, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 1269, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 4873, 496, 497, 1270, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 1271, 513, 514, 515, 516, 517, 518, + 519, 520, 1272, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 1273, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 1274, 1275, 0, 0, 550, 551, 1276, + 553, 1277, 1278, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 1279, 563, 564, 565, 566, 567, 1280, 0, + 568, 569, 570, 571, 572, 573, 1281, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, 1285, + 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, 1290, + 0, 0, 0, 0, 0, 0, 1291, 1292, 0, 0, + 0, 228, 0, 1222, 669, 4874, 1223, 1224, 1225, 729, + 1226, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 1227, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 5344, 1228, 251, + 1229, 1230, 0, 254, 255, 256, 257, 258, 259, 1231, + 1232, 260, 261, 1233, 1234, 264, 0, 265, 266, 267, + 268, 1235, 0, 1236, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 5345, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 291, 292, 293, 294, 295, 296, 1244, + 1245, 299, 1246, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 1077, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 1247, 327, 328, 329, + 330, 1248, 1249, 332, 0, 333, 334, 1250, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 1251, 0, 1252, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, + 370, 371, 372, 373, 1253, 1254, 0, 1255, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 1256, 389, 390, 391, 0, 392, 393, 394, + 1257, 1258, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1259, 412, + 1260, 414, 415, 416, 417, 418, 419, 420, 421, 1261, + 423, 1262, 424, 425, 426, 427, 1263, 1264, 429, 1265, + 431, 432, 433, 0, 434, 435, 0, 0, 1266, 437, + 438, 0, 0, 439, 440, 441, 442, 443, 444, 1267, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 1268, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 1269, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 1270, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 1271, 513, 514, 515, 516, 517, 518, 519, + 520, 1272, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 1273, 537, 0, + 538, 539, 0, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 1274, 1275, 0, 0, 550, 551, 1276, 553, + 1277, 1278, 555, 556, 557, 558, 559, 5346, 561, 562, + 0, 1279, 563, 564, 565, 566, 567, 1280, 0, 568, + 569, 570, 571, 572, 573, 1281, 0, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, + 1286, 1287, 1288, 1289, 598, 599, 600, 601, 1290, 0, + 0, 0, 0, 0, 0, 1291, 1292, 0, 0, 0, + 228, 0, 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 1227, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 1228, 251, 1229, + 1230, 0, 254, 255, 256, 257, 258, 259, 1231, 1232, + 260, 261, 1233, 1234, 264, 0, 265, 266, 267, 268, + 1235, 0, 1236, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 5345, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, + 299, 1246, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 1077, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 1247, 327, 328, 329, 330, + 1248, 1249, 332, 0, 333, 334, 1250, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 1251, 0, 1252, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 1253, 1254, 0, 1255, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 1256, 389, 390, 391, 0, 392, 393, 394, 1257, + 1258, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 1259, 412, 1260, + 414, 415, 416, 417, 418, 419, 420, 421, 1261, 423, + 1262, 424, 425, 426, 427, 1263, 1264, 429, 1265, 431, + 432, 433, 0, 434, 435, 0, 0, 1266, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 1267, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 1268, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 1269, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 1270, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 1271, 513, 514, 515, 516, 517, 518, 519, 520, + 1272, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 1273, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 1274, 1275, 0, 0, 550, 551, 1276, 553, 1277, + 1278, 555, 556, 557, 558, 559, 5346, 561, 562, 0, + 1279, 563, 564, 565, 566, 567, 1280, 0, 568, 569, + 570, 571, 572, 573, 1281, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, + 1287, 1288, 1289, 598, 599, 600, 601, 1290, 0, 0, + 0, 0, 0, 0, 1291, 1292, 0, 0, 0, 228, + 0, 1222, 669, 1294, 1223, 1224, 1225, 729, 1226, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 1227, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, + 0, 254, 255, 256, 257, 258, 259, 1231, 1232, 260, + 261, 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, + 0, 1236, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, 299, + 5069, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 1247, 327, 328, 329, 330, 1248, + 1249, 332, 0, 333, 334, 1250, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 1251, 0, 1252, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 1256, 389, 390, 391, 0, 392, 393, 394, 1257, 1258, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1259, 412, 1260, 414, + 415, 416, 417, 418, 419, 420, 421, 1261, 423, 0, + 424, 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, + 433, 0, 434, 435, 0, 0, 1266, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 1267, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 1268, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1269, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 2777, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 1271, 513, 514, 515, 516, 517, 518, 519, 520, 1272, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 1273, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1274, 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 1280, 0, 568, 569, 570, + 571, 572, 573, 1281, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, + 1288, 1289, 598, 599, 600, 601, 0, 0, 0, 0, + 0, 0, 0, 2778, 2779, 0, 0, 0, 228, 0, + 1222, 669, 2780, 1223, 1224, 1225, 729, 1226, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, -2667, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 5345, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 1246, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + -2667, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 0, 0, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, -2667, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 1262, 424, + 425, 0, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 1266, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 1270, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, -2667, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 5346, 561, 562, 0, 1279, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, -2667, 0, 0, 0, 0, + 0, 0, 1291, 1292, 0, 0, 0, 228, 0, 1222, + 669, 1294, 1223, 1224, 1225, 729, 1226, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 1227, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, 254, + 255, 256, 257, 258, 259, 1231, 1232, 260, 261, 1233, + 1234, 264, 0, 265, 266, 267, 268, 1235, 0, 1236, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, + 292, 293, 294, 295, 296, 1244, 1245, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 1077, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, 332, + 0, 333, 334, 1250, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 1251, 0, + 1252, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, + 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 1256, 389, + 390, 391, 0, 392, 393, 394, 1257, 1258, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1259, 412, 1260, 414, 415, 416, + 417, 418, 419, 420, 421, 1261, 423, 0, 424, 425, + 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, 0, + 434, 435, 0, 0, 1266, 437, 438, 0, 0, 439, + 440, 441, 442, 443, 444, 1267, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 1268, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 1269, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 2777, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 1271, 513, + 514, 515, 516, 517, 518, 519, 520, 1272, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 1273, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 1274, 1275, + 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 1280, 0, 568, 569, 570, 571, 572, + 573, 1281, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, + 598, 599, 600, 601, 0, 0, 0, 0, 0, 0, + 0, 2778, 2779, 228, 0, 1222, 669, 0, 1223, 1224, + 2780, 729, 1226, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 1227, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 1228, 251, 1229, 1230, 0, 254, 255, 256, 257, 258, + 259, 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, + 266, 267, 268, 1235, 0, 1236, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, + 296, 1244, 1245, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 1077, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 1247, 327, + 328, 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 1251, 0, 1252, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 1256, 389, 390, 391, 0, 392, + 393, 394, 1257, 1258, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1259, 412, 1260, 414, 415, 416, 417, 418, 419, 420, + 421, 1261, 423, 0, 424, 425, 426, 427, 1263, 1264, + 429, 1265, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 1267, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 1268, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 1269, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 2908, 2909, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 1271, 513, 514, 515, 516, 517, + 518, 519, 520, 1272, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 1273, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 1274, 1275, 0, 0, 550, 551, + 1276, 553, 1277, 1278, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 1280, + 0, 568, 569, 570, 571, 572, 573, 1281, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, + 1285, 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, + 0, 0, 0, 0, 0, 0, 0, 2910, 2911, 0, + 0, 0, 228, 0, 1222, 669, 2780, 1223, 1224, 1225, + 729, 1226, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 1227, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 249, 1228, + 251, 1229, 1230, 0, 254, 255, 256, 257, 258, 259, + 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, 266, + 267, 268, 1235, 0, 1236, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 288, 289, 1237, 1238, 1239, + 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, 296, + 1244, 1245, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 1077, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 1247, 327, 328, + 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 1251, 0, 1252, 348, 349, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, 0, + 377, 0, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 1256, 389, 390, 391, 0, 392, 393, + 394, 1257, 1258, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 1259, + 412, 1260, 414, 415, 416, 417, 418, 419, 420, 421, + 1261, 423, 0, 424, 425, 426, 427, 1263, 1264, 429, + 1265, 431, 432, 433, 0, 434, 435, 0, 0, 1266, + 437, 438, 0, 0, 439, 440, 441, 442, 443, 444, + 1267, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 1268, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 1269, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 2777, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 1271, 513, 514, 515, 516, 517, 518, + 519, 520, 1272, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 1273, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 1274, 1275, 0, 0, 550, 551, 1276, + 553, 1277, 1278, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 1280, 0, + 568, 569, 570, 571, 572, 573, 1281, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, 1285, + 593, 1286, 1287, 1288, 1289, 598, 599, 600, 601, 0, + 0, 0, 0, 0, 0, 0, 2778, 2779, 228, 0, + 1222, 669, 0, 1223, 1224, 2780, 729, 1226, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 1227, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 1228, 251, 1229, 1230, 0, + 254, 255, 256, 257, 258, 259, 1231, 1232, 260, 261, + 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, 0, + 1236, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 291, 292, 293, 294, 295, 296, 1244, 1245, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 1077, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 1247, 327, 328, 329, 330, 1248, 1249, + 332, 0, 333, 334, 1250, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 1251, + 0, 1252, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 1253, 1254, 0, 1255, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 1256, + 389, 390, 391, 0, 392, 393, 394, 1257, 1258, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 1259, 412, 1260, 414, 415, + 416, 417, 418, 419, 420, 421, 1261, 423, 0, 424, + 425, 426, 427, 1263, 1264, 429, 1265, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 1267, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 1268, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 1269, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 2777, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 1271, + 513, 514, 515, 516, 517, 518, 519, 520, 1272, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 1273, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 1274, + 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 1280, 0, 568, 569, 570, 571, + 572, 573, 1281, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, + 1289, 598, 599, 600, 601, 228, 0, 1222, 669, 0, + 1223, 1224, 0, 729, 1226, 0, 0, 0, 0, 0, + 0, 2780, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 1227, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 249, 1228, 251, 1229, 1230, 0, 4100, 255, 256, + 257, 258, 259, 1231, 1232, 260, 261, 1233, 1234, 264, + 0, 265, 266, 267, 268, 1235, 0, 1236, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 289, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, 292, 293, + 294, 295, 296, 1244, 1245, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 1077, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 1247, 327, 328, 329, 330, 1248, 1249, 332, 0, 333, + 334, 1250, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 1251, 0, 1252, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 369, 370, 371, 372, 373, 1253, 1254, + 0, 1255, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 1256, 389, 390, 391, + 0, 392, 393, 394, 1257, 1258, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1259, 412, 1260, 414, 415, 416, 417, 418, + 419, 420, 421, 1261, 423, 0, 424, 425, 426, 427, + 1263, 1264, 429, 1265, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 442, 443, 444, 1267, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 1268, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 1269, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 2777, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 1271, 513, 514, 515, + 516, 517, 518, 519, 520, 1272, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 1273, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 1274, 1275, 0, 0, + 550, 551, 1276, 553, 1277, 1278, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 1280, 0, 568, 569, 570, 571, 572, 573, 1281, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 1282, + 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, 598, 599, + 600, 601, 228, 0, 1222, 669, 0, 1223, 1224, 0, + 729, 1226, 0, 0, 0, 0, 0, 0, 2780, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 1227, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 249, 1228, + 251, 1229, 1230, 0, 254, 255, 256, 257, 258, 259, + 1231, 1232, 260, 261, 1233, 1234, 264, 0, 265, 266, + 267, 268, 1235, 0, 1236, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 288, 289, 1237, 1238, 1239, + 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, 296, + 1244, 1245, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 1077, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 1247, 327, 328, + 329, 330, 1248, 1249, 332, 0, 333, 334, 1250, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 1251, 0, 1252, 348, 349, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 369, 370, 371, 372, 373, 1253, 1254, 0, 1255, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 1256, 389, 390, 391, 0, 392, 393, + 394, 1257, 1258, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 1259, + 412, 1260, 414, 415, 416, 417, 418, 419, 420, 421, + 1261, 423, 0, 424, 425, 426, 427, 1263, 1264, 429, + 1265, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 442, 443, 444, + 1267, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 1268, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 1269, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 2777, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 1271, 513, 514, 515, 516, 517, 518, + 519, 520, 1272, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 1273, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 1274, 1275, 0, 0, 550, 551, 1276, + 553, 1277, 1278, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 1280, 0, + 568, 569, 570, 571, 572, 573, 1281, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, 1285, + 4588, 1286, 1287, 1288, 1289, 598, 599, 600, 601, 228, + 0, 1222, 669, 0, 1223, 1224, 1225, 729, 1226, 0, + 0, 0, 0, 0, 0, 2780, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 1227, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 0, 1228, 251, 1229, 1230, + 0, 254, 255, 256, 257, 258, 259, 1231, 1232, 260, + 261, 1233, 1234, 264, 0, 265, 266, 267, 268, 1235, + 0, 1236, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 291, 292, 293, 294, 295, 296, 1244, 1245, 299, + 1246, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 0, 321, 0, + 322, 323, 324, 325, 1247, 327, 328, 329, 330, 1248, + 1249, 332, 0, 333, 334, 1250, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 1251, 0, 1252, 348, 349, 0, 350, 351, 352, 353, + 354, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 1253, 1254, 0, 1255, 0, 377, 0, 0, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 1256, 389, 390, 0, 0, 392, 393, 394, 1257, 1258, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1259, 412, 1260, 414, + 415, 416, 417, 418, 419, 420, 421, 1261, 423, 1262, + 424, 425, 0, 427, 1263, 1264, 429, 1265, 431, 432, + 433, 0, 434, 435, 0, 0, 1266, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 1267, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 1268, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1269, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 1270, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 1271, 513, 514, 515, 516, 517, 0, 519, 520, 1272, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 1273, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1274, 1275, 0, 0, 550, 551, 1276, 553, 1277, 1278, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 1279, + 563, 564, 565, 566, 567, 1280, 0, 568, 569, 570, + 571, 572, 573, 1281, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, + 1288, 1289, 598, 599, 600, 601, 228, 0, 0, 0, + 0, 0, 0, 1291, 1292, 0, 0, 0, 0, 0, + 0, 0, 1294, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 1232, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 1235, 0, 1236, 0, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 286, 287, 288, + 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 1248, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 339, 0, + 340, 341, 342, 343, 344, 0, 345, 1251, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 3608, 0, 387, 1256, 389, 390, + 391, 0, 392, 393, 394, 1257, 1258, 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, 1261, 423, 0, 424, 425, 426, + 427, 0, 1264, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 818, 436, 437, 438, 0, 0, 439, 440, + 441, 442, 443, 444, 1267, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 1268, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 3609, 500, 501, 502, 503, 504, 505, 506, + 507, 40, 508, 509, 510, 511, 512, 1271, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 1273, 537, 0, 538, 539, 44, 540, 541, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 1276, 553, 1277, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 1280, 0, 568, 569, 570, 571, 572, 1156, + 574, 0, 575, 576, 577, 578, 579, 580, 0, 0, + 581, 0, 49, 582, 583, 584, 585, 586, 587, 588, + 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, 3610, + 599, 600, 601, 228, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3611, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 1232, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 1235, 0, 1236, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 1248, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 1251, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 3608, 0, 387, 1256, 389, 390, 391, 0, 392, + 393, 394, 1257, 1258, 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, 1261, 423, 0, 424, 425, 426, 427, 0, 1264, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 818, + 436, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 1267, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 1268, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 3609, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 1271, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 1273, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 1276, 553, 1277, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 1280, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 1282, 1283, 1284, + 1285, 593, 1286, 1287, 1288, 1289, 3610, 599, 600, 601, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3611, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 1232, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 1235, 0, 1236, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 1248, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 1251, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 1256, 389, 390, 391, 0, 392, 393, 394, 1257, + 1258, 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, 1261, 423, + 0, 424, 425, 426, 427, 0, 1264, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 1267, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 1268, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 3609, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 1271, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 1273, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 1276, 553, 1277, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 1280, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, + 1287, 1288, 1289, 3610, 599, 600, 601, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 51, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 1232, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 1235, 0, 1236, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 1248, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 1251, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 1256, 389, + 390, 391, 0, 392, 393, 394, 1257, 1258, 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, 1261, 423, 0, 424, 425, + 426, 427, 0, 1264, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 442, 443, 444, 1267, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 1268, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 1271, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 1273, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 1276, 553, 1277, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 1280, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 1282, 1283, 1284, 1285, 593, 1286, 1287, 1288, 1289, + 598, 599, 600, 601, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4223, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 1232, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 1235, 0, 1236, 0, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 286, 287, 288, 289, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 1248, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 339, 0, 340, 341, + 342, 343, 344, 0, 345, 1251, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 0, 0, 387, 1256, 389, 390, 391, 0, + 392, 393, 394, 1257, 1258, 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, 1261, 423, 0, 424, 425, 426, 427, 0, + 1264, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 442, + 443, 444, 1267, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 1268, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 1271, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 1273, 537, 0, 538, 539, 0, 540, 541, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 1276, 553, 1277, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 1280, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 576, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 1282, 1283, + 1284, 1285, 593, 1286, 1287, 1288, 1289, 598, 599, 600, + 601, 873, 0, 1505, 669, 0, 0, 0, 0, 729, + 0, 0, 0, 0, 0, 0, 0, 5326, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 270, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 289, 0, 0, 0, 290, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 1921, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 389, 390, 391, 0, 392, 393, 394, + 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 1922, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 1923, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 873, 0, + 0, 0, 0, 0, 0, 1506, 1507, 5140, 0, 0, + 0, 0, 0, 0, 5141, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 3, 4, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 270, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 0, 0, 0, 290, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 389, 390, 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, + 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 40, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 44, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 1156, 574, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 49, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 228, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 270, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 289, + 0, 0, 0, 290, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 389, 390, 391, + 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4923, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 40, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 44, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 1156, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 49, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1352, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2941, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4137, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 0, 0, 0, + 1069, 0, 1505, 669, 0, 0, 0, 887, 729, 0, + 0, 0, 0, 4605, 888, 889, 890, 229, 230, 231, + 232, 233, 234, 235, 236, 1638, 237, 238, 239, 1639, + 1640, 1641, 1642, 1643, 1644, 1645, 240, 241, 1646, 242, + 243, 244, 245, 246, 247, 248, 0, 1070, 251, 1071, + 1072, 1647, 254, 255, 256, 257, 258, 259, 1648, 1649, + 260, 261, 1073, 1074, 264, 1650, 265, 266, 267, 268, + 0, 1651, 270, 1652, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 1653, 280, 281, 282, 283, 284, 285, + 1654, 286, 287, 288, 289, 1655, 1656, 1657, 290, 1658, + 1659, 1660, 291, 292, 293, 294, 295, 296, 1075, 1076, + 299, 1661, 300, 1662, 301, 302, 303, 304, 305, 306, + 1663, 307, 308, 309, 310, 1664, 1665, 311, 312, 1077, + 314, 315, 1666, 316, 317, 318, 1667, 319, 320, 321, + 1668, 322, 323, 324, 325, 0, 327, 328, 329, 330, + 0, 1669, 332, 1670, 333, 334, 1078, 336, 1671, 337, + 1672, 338, 339, 1673, 340, 341, 342, 343, 344, 1674, + 345, 0, 1675, 0, 348, 349, 1676, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 1677, 360, 361, + 362, 363, 364, 365, 366, 1678, 367, 368, 0, 370, + 371, 372, 373, 1080, 1081, 1679, 1082, 1680, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 1681, 1682, + 387, 0, 389, 390, 391, 1683, 392, 393, 394, 1684, + 1685, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 1083, 412, 1084, + 414, 415, 416, 417, 418, 419, 420, 3886, 0, 423, + 1686, 424, 425, 426, 427, 1687, 0, 429, 1085, 431, + 432, 433, 1688, 434, 435, 1689, 1690, 3887, 437, 438, + 1691, 1692, 439, 440, 0, 442, 443, 444, 0, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 1693, 455, + 456, 0, 458, 0, 460, 461, 462, 1694, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 1086, 474, + 475, 476, 477, 1695, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 1696, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 1697, 508, 509, 510, 511, + 512, 1698, 513, 514, 2178, 516, 517, 518, 519, 520, + 1088, 522, 1699, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 0, 537, 1700, 538, + 539, 1701, 540, 541, 542, 543, 544, 545, 546, 1702, + 547, 1089, 1090, 1703, 1704, 550, 551, 0, 553, 0, + 1705, 555, 556, 557, 558, 559, 560, 561, 562, 1706, + 1707, 563, 564, 565, 566, 567, 1708, 1709, 568, 569, + 570, 571, 572, 0, 1091, 1710, 575, 576, 577, 578, + 579, 580, 1711, 1712, 581, 1713, 1714, 582, 583, 584, + 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 599, 600, 601, 0, 0, 0, + 893, 894, 895, 0, 3888, 3889, 898, 899, 900, 901, + 1069, 0, 1505, 669, 0, 0, 0, 887, 729, 0, + 0, 0, 0, 0, 888, 889, 890, 229, 230, 231, + 232, 233, 234, 235, 236, 1638, 237, 238, 239, 1639, + 1640, 1641, 1642, 1643, 1644, 1645, 240, 241, 1646, 242, + 243, 244, 245, 246, 247, 248, 0, 1070, 251, 1071, + 1072, 1647, 254, 255, 256, 257, 258, 259, 1648, 1649, + 260, 261, 1073, 1074, 264, 1650, 265, 266, 267, 268, + 0, 1651, 270, 1652, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 1653, 280, 281, 282, 283, 284, 285, + 1654, 286, 287, 288, 289, 1655, 1656, 1657, 290, 1658, + 1659, 1660, 291, 292, 293, 294, 295, 296, 1075, 1076, + 299, 1661, 300, 1662, 301, 302, 303, 304, 305, 306, + 1663, 307, 308, 309, 310, 1664, 1665, 311, 312, 1077, + 314, 315, 1666, 316, 317, 318, 1667, 319, 320, 321, + 1668, 322, 323, 324, 325, 0, 327, 328, 329, 330, + 0, 1669, 332, 1670, 333, 334, 1078, 336, 1671, 337, + 1672, 338, 339, 1673, 340, 341, 342, 343, 344, 1674, + 345, 0, 1675, 0, 348, 349, 1676, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 1677, 360, 361, + 362, 363, 364, 365, 366, 1678, 367, 368, 0, 370, + 371, 372, 373, 1080, 1081, 1679, 1082, 1680, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 1681, 1682, + 387, 0, 389, 390, 391, 1683, 392, 393, 394, 1684, + 1685, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 1083, 412, 1084, + 414, 415, 416, 417, 418, 419, 420, 4318, 0, 423, + 1686, 424, 425, 426, 427, 1687, 0, 429, 1085, 431, + 432, 433, 1688, 434, 435, 1689, 1690, 3887, 437, 438, + 1691, 1692, 439, 440, 0, 442, 443, 444, 0, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 1693, 455, + 456, 0, 458, 0, 460, 461, 462, 1694, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 1086, 474, + 475, 476, 477, 1695, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 1696, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 1697, 508, 509, 510, 511, + 512, 1698, 513, 514, 2178, 516, 517, 518, 519, 520, + 1088, 522, 1699, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 0, 537, 1700, 538, + 539, 1701, 540, 541, 542, 543, 544, 545, 546, 1702, + 547, 1089, 1090, 1703, 1704, 550, 551, 0, 553, 0, + 1705, 555, 556, 557, 558, 559, 560, 561, 562, 1706, + 1707, 563, 564, 565, 566, 567, 1708, 1709, 568, 569, + 570, 571, 572, 0, 1091, 1710, 575, 576, 577, 578, + 579, 580, 1711, 1712, 581, 1713, 1714, 582, 583, 584, + 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 599, 600, 601, 0, 0, 0, + 893, 894, 895, 609, 3888, 3889, 898, 899, 900, 901, + 887, 0, 0, 0, 0, 0, 0, 888, 889, 890, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 891, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 892, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 0, 0, 0, 893, 894, 895, 609, 896, 897, 898, + 899, 900, 901, 887, 0, 0, 0, 0, 0, 0, + 888, 889, 890, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 1019, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 1020, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 0, 0, 0, 893, 894, 895, 609, + 896, 897, 898, 899, 900, 901, 887, 0, 0, 0, + 0, 0, 0, 888, 889, 890, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 1119, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 1120, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 1121, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 0, 0, 0, 893, + 894, 895, 609, 896, 897, 898, 899, 900, 901, 887, + 0, 0, 0, 0, 0, 0, 888, 889, 890, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 1737, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 1738, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 0, + 0, 0, 893, 894, 895, 609, 896, 897, 898, 899, + 900, 901, 887, 0, 0, 0, 0, 0, 0, 888, + 889, 890, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 0, 0, 0, 893, 894, 895, 609, 896, + 897, 898, 899, 900, 901, 887, 0, 0, 0, 0, + 0, 0, 888, 889, 890, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 3019, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 3020, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 354, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 0, 0, 0, 893, 894, + 895, 609, 896, 897, 898, 899, 900, 901, 887, 0, + 0, 0, 0, 0, 0, 888, 889, 890, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 4900, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 1637, 0, + 0, 893, 894, 895, 0, 896, 897, 898, 899, 900, + 901, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 1638, 237, 238, 239, 1639, 1640, 1641, + 1642, 1643, 1644, 1645, 240, 241, 1646, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 1647, + 254, 255, 256, 257, 258, 259, 1648, 1649, 260, 261, + 262, 263, 264, 1650, 265, 266, 267, 268, 269, 1651, + 270, 1652, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 1653, 280, 281, 282, 283, 284, 285, 1654, 286, + 287, 288, 289, 1655, 1656, 1657, 290, 1658, 1659, 1660, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 1661, + 300, 1662, 301, 302, 303, 304, 305, 306, 1663, 307, + 308, 309, 310, 1664, 1665, 311, 312, 313, 314, 315, + 1666, 316, 317, 318, 1667, 319, 320, 321, 1668, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 1669, + 332, 1670, 333, 334, 335, 336, 1671, 337, 1672, 338, + 339, 1673, 340, 341, 342, 343, 344, 1674, 345, 346, + 1675, 347, 348, 349, 1676, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 1677, 360, 361, 362, 363, + 364, 365, 366, 1678, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 1679, 376, 1680, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 1681, 1682, 387, 388, + 389, 390, 391, 1683, 392, 393, 394, 1684, 1685, 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, 1686, 424, + 425, 426, 427, 1687, 428, 429, 430, 431, 432, 433, + 1688, 434, 435, 1689, 1690, 436, 437, 438, 1691, 1692, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 1693, 455, 456, 457, + 458, 459, 460, 461, 462, 1694, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 1695, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 1696, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 1697, 508, 509, 510, 511, 512, 1698, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 1699, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 1700, 538, 539, 1701, + 540, 541, 542, 543, 544, 545, 546, 1702, 547, 548, + 549, 1703, 1704, 550, 551, 552, 553, 554, 1705, 555, + 556, 557, 558, 559, 560, 561, 562, 1706, 1707, 563, + 564, 565, 566, 567, 1708, 1709, 568, 569, 570, 571, + 572, 573, 574, 1710, 575, 576, 577, 578, 579, 580, + 1711, 1712, 581, 1713, 1714, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 1715, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 823, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 1069, + 0, 0, 0, 0, 0, 0, 0, 0, 5291, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 0, 1070, 251, 1071, 1072, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 1073, 1074, 264, 0, 265, 266, 267, 268, 0, + 0, 270, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 0, 0, 0, 290, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 1075, 1076, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 0, 327, 328, 329, 330, 0, + 0, 332, 0, 333, 334, 1078, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 0, 0, 0, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 2174, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 2175, 370, 371, + 372, 373, 1080, 1081, 0, 1082, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 0, 389, 390, 391, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1083, 412, 1084, 414, + 415, 416, 417, 418, 419, 420, 0, 0, 423, 0, + 424, 425, 426, 427, 0, 0, 429, 1085, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 2176, 439, 440, 2177, 442, 443, 444, 0, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 0, 458, 0, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1086, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 0, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 2178, 516, 517, 518, 519, 520, 1088, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 0, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1089, 1090, 0, 0, 550, 551, 0, 553, 0, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 0, 1091, 2179, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 3367, + 0, 0, 0, 599, 600, 601, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2180, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 0, 1070, 251, 1071, 1072, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 1073, 1074, 264, 0, 265, 266, 267, 268, 0, + 0, 270, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 0, 0, 0, 290, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 1075, 1076, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 0, 327, 328, 329, 330, 0, + 0, 332, 0, 333, 334, 1078, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 0, 0, 0, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 2174, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 2175, 370, 371, + 372, 373, 1080, 1081, 0, 1082, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 0, 389, 390, 391, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1083, 412, 1084, 414, + 415, 416, 417, 418, 419, 420, 0, 0, 423, 0, + 424, 425, 426, 427, 0, 0, 429, 1085, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 2176, 439, 440, 2177, 442, 443, 444, 0, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 0, 458, 0, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1086, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 0, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 2178, 516, 517, 518, 519, 520, 1088, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 0, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1089, 1090, 0, 0, 550, 551, 0, 553, 0, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 0, 1091, 2179, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 873, + 0, 1505, 669, 599, 600, 601, 0, 729, 0, 0, + 0, 0, 0, 0, 0, 2180, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 270, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 0, 0, 0, 290, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 2102, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 1921, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 389, 390, 391, 0, 392, 393, 394, 0, 0, + 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, 0, + 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 1922, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 1923, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 0, 873, 0, 1505, + 669, 0, 0, 1506, 1507, 729, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 270, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 0, 0, 0, 290, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 2107, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 1921, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 389, + 390, 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, + 426, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 1922, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 1923, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 0, 873, 0, 1505, 669, 0, + 0, 1506, 1507, 729, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 270, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 289, + 0, 0, 0, 290, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 1921, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 389, 390, 391, + 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 1922, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 1923, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 0, 873, 0, 0, 669, 0, 0, 1506, + 1507, 729, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 270, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 0, 0, + 0, 290, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 2973, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 1921, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 389, 390, 391, 0, 392, + 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 1922, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 1923, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 0, 609, 0, 0, 0, 0, 0, 741, 742, 729, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 730, + 231, 232, 233, 234, 235, 236, 731, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 732, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 733, 335, 336, 0, + 337, 0, 734, 0, 735, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 0, 356, 357, 358, 359, 736, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 737, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 738, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 739, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 740, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 0, 1637, + 0, 5505, 669, 0, 0, 741, 742, 729, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 1638, 237, 238, 239, 1639, 1640, + 1641, 1642, 1643, 1644, 1645, 240, 241, 1646, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 1647, 254, 255, 256, 257, 258, 259, 1648, 1649, 260, + 261, 262, 263, 264, 1650, 265, 266, 267, 268, 269, + 1651, 270, 1652, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 1653, 280, 281, 282, 283, 284, 285, 1654, + 286, 287, 288, 289, 1655, 1656, 1657, 290, 1658, 1659, + 1660, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 1661, 300, 1662, 301, 302, 303, 304, 305, 306, 1663, + 307, 308, 309, 310, 1664, 1665, 311, 312, 313, 314, + 315, 1666, 316, 317, 318, 1667, 319, 320, 321, 1668, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 1669, 332, 1670, 333, 334, 335, 336, 1671, 337, 1672, + 338, 339, 1673, 340, 341, 342, 343, 344, 1674, 345, + 346, 1675, 347, 348, 349, 1676, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 1677, 360, 361, 362, + 363, 364, 365, 366, 1678, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 1679, 376, 1680, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 1681, 1682, 387, + 388, 389, 390, 391, 1683, 392, 393, 394, 1684, 1685, + 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, 1686, + 424, 425, 426, 427, 1687, 428, 429, 430, 431, 432, + 433, 1688, 434, 435, 1689, 1690, 436, 437, 438, 1691, + 1692, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 1693, 455, 456, + 457, 458, 459, 460, 461, 462, 1694, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 1695, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 1696, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 1697, 508, 509, 510, 511, 512, + 1698, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 1699, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 1700, 538, 539, + 1701, 540, 541, 542, 543, 544, 545, 546, 1702, 547, + 548, 549, 1703, 1704, 550, 551, 552, 553, 554, 1705, + 555, 556, 557, 558, 559, 560, 561, 562, 1706, 1707, + 563, 564, 565, 566, 567, 1708, 1709, 568, 569, 570, + 571, 572, 573, 574, 1710, 575, 576, 577, 578, 579, + 580, 1711, 1712, 581, 1713, 1714, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 1637, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 1638, 237, 238, 239, 1639, 1640, 1641, 1642, 1643, + 1644, 1645, 240, 241, 1646, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 1647, 254, 255, + 256, 257, 258, 259, 1648, 1649, 260, 261, 262, 263, + 264, 1650, 265, 266, 267, 268, 269, 1651, 270, 1652, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 1653, + 280, 281, 282, 283, 284, 285, 1654, 286, 287, 288, + 289, 1655, 1656, 1657, 290, 1658, 1659, 1660, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 1661, 300, 1662, + 301, 302, 303, 304, 305, 306, 1663, 307, 308, 309, + 310, 1664, 1665, 311, 312, 313, 314, 315, 1666, 316, + 317, 318, 1667, 319, 320, 321, 1668, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 1669, 332, 1670, + 333, 334, 335, 336, 1671, 337, 1672, 338, 339, 1673, + 340, 341, 342, 343, 344, 1674, 345, 346, 1675, 347, + 348, 349, 1676, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 1677, 360, 361, 362, 363, 364, 365, + 366, 1678, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 1679, 376, 1680, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 1681, 1682, 387, 388, 389, 390, + 391, 1683, 392, 393, 394, 1684, 1685, 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, 1686, 424, 425, 426, + 427, 1687, 428, 429, 430, 431, 432, 433, 1688, 434, + 435, 1689, 1690, 436, 437, 438, 1691, 1692, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 1693, 455, 456, 457, 458, 459, + 460, 461, 462, 1694, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 1695, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 1696, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 1697, 508, 509, 510, 511, 512, 1698, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 1699, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 1700, 538, 539, 1701, 540, 541, + 542, 543, 544, 545, 546, 1702, 547, 548, 549, 1703, + 1704, 550, 551, 552, 553, 554, 1705, 555, 556, 557, + 558, 559, 560, 561, 562, 1706, 1707, 563, 564, 565, + 566, 567, 1708, 1709, 568, 569, 570, 571, 572, 573, + 574, 1710, 575, 576, 577, 578, 579, 580, 1711, 1712, + 581, 1713, 1714, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 1637, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 3090, 234, 235, 236, 1638, 237, + 238, 239, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 240, + 241, 1646, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 1647, 254, 255, 256, 257, 258, + 259, 1648, 1649, 260, 261, 262, 263, 264, 1650, 265, + 266, 267, 268, 269, 1651, 270, 1652, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 1653, 280, 281, 282, + 283, 284, 285, 1654, 286, 287, 288, 289, 1655, 1656, + 1657, 290, 1658, 1659, 1660, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 1661, 300, 1662, 301, 302, 303, + 304, 305, 306, 1663, 307, 308, 309, 310, 1664, 1665, + 311, 312, 313, 3091, 315, 1666, 316, 317, 318, 1667, + 319, 320, 321, 1668, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 1669, 332, 1670, 333, 334, 335, + 336, 1671, 337, 1672, 338, 339, 1673, 340, 341, 342, + 343, 344, 1674, 345, 346, 1675, 347, 348, 349, 1676, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 1677, 360, 361, 362, 363, 364, 365, 366, 1678, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 1679, 376, + 1680, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 1681, 1682, 387, 388, 389, 390, 391, 1683, 392, + 393, 394, 1684, 1685, 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, 1686, 424, 425, 426, 427, 1687, 428, + 429, 430, 431, 432, 433, 1688, 434, 435, 1689, 1690, + 436, 437, 438, 1691, 1692, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 1693, 455, 456, 457, 458, 459, 460, 461, 462, + 1694, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 1695, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 1696, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 1697, 508, + 509, 510, 511, 512, 1698, 3092, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 1699, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 1700, 538, 539, 1701, 540, 541, 542, 543, 544, + 545, 546, 1702, 547, 548, 549, 1703, 1704, 550, 551, + 552, 553, 554, 1705, 555, 556, 557, 558, 559, 560, + 561, 562, 1706, 1707, 563, 564, 565, 566, 567, 1708, + 1709, 568, 569, 570, 571, 572, 573, 574, 1710, 575, + 576, 577, 578, 579, 580, 1711, 1712, 581, 1713, 1714, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 1232, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 1235, 0, 1236, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 1248, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 1251, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 1256, 389, 390, 391, 0, 392, 393, 394, 1257, + 1258, 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, 1261, 423, + 0, 424, 425, 426, 427, 0, 1264, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 1267, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 1268, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 1271, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 1273, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 1276, 553, 1277, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 1280, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 1282, 1283, 1284, 1285, 593, 1286, + 1287, 1288, 1289, 598, 599, 600, 601, 873, 0, 0, + 669, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 270, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 0, 0, 0, 290, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 1921, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 389, + 390, 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, + 426, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 1922, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 1923, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 873, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 911, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 270, 0, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 286, 287, 288, 289, 0, + 0, 0, 290, 0, 0, 874, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 339, 0, 340, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 389, 390, 391, 0, + 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 875, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 541, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 576, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 873, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 932, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 270, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 289, 0, 0, 0, 290, + 0, 0, 874, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 389, 390, 391, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 933, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 426, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 875, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 873, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 270, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 0, 0, 0, 290, 0, 0, 874, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 389, 390, 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, + 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 875, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 2442, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 873, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 270, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 289, + 0, 0, 0, 290, 0, 0, 874, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 346, 3449, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 389, 390, 391, + 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 875, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 873, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 270, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 288, 289, 0, 0, 0, + 290, 0, 0, 874, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 389, 390, 391, 0, 392, 393, + 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 875, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 873, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 270, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 0, 0, 0, 290, 0, 0, + 874, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 389, 390, 391, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 1038, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 875, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 873, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 270, 0, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 286, 287, 288, + 289, 0, 0, 0, 290, 0, 0, 874, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 339, 0, + 340, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 1114, 355, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 389, 390, + 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 875, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 541, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 576, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 873, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 270, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 0, 0, + 0, 290, 0, 0, 874, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 1127, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 389, 390, 391, 0, 392, + 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 875, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 270, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 0, 0, 0, 290, 0, + 0, 874, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 1139, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 389, 390, 391, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 1140, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 426, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 875, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 873, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 3, 4, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 270, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 0, 0, 0, 290, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 389, + 390, 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, + 426, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 873, 0, 0, 669, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 270, 0, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 286, 287, 288, 289, 0, + 0, 0, 290, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 2087, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 339, 0, 340, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 389, 390, 391, 0, + 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 541, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 576, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 873, 0, 0, 669, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 270, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 289, 0, 0, 0, 290, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 389, 390, 391, 0, 392, 393, 394, + 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 873, 0, + 0, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 270, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 0, 0, 0, 290, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 1907, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 389, 390, 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, + 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 228, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 270, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 289, + 0, 0, 0, 290, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 389, 390, 391, + 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 270, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 288, 289, 0, 0, 0, + 290, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 1062, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 389, 390, 391, 0, 392, 393, + 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 228, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 270, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 0, 0, 0, 290, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 1111, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 389, 390, 391, 0, 392, 393, 394, 0, 0, + 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, 0, + 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 270, 0, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 286, 287, 288, + 289, 0, 0, 0, 290, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 339, 0, + 340, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 1125, 355, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 389, 390, + 391, 0, 392, 393, 394, 0, 0, 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, 0, 424, 425, 426, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 541, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 576, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 228, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 270, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 0, 0, + 0, 290, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 1129, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 389, 390, 391, 0, 392, + 393, 394, 0, 0, 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, 0, 424, 425, 426, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 270, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 0, 0, 0, 290, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 389, 390, 391, 0, 392, 393, 394, 0, + 0, 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, + 0, 424, 425, 426, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 2214, 265, 266, 267, 268, 269, 0, 0, + 2294, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 2215, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 2295, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 2217, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 2296, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 2218, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 2219, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 2214, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 2215, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 2295, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 2217, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 354, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 3301, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 2218, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 2219, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 786, 235, 236, 748, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 749, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 787, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 750, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 751, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 748, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 749, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 2980, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 354, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 750, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 751, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 2214, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 2215, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 2295, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 2217, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 2218, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 2219, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 748, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 749, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 750, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 751, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 1948, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 1949, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 1950, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 1951, + 338, 0, 0, 0, 1952, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 1953, 1954, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 1955, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 1956, 497, 498, 499, 500, 501, 1957, 503, + 504, 505, 506, 507, 0, 1958, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 1959, 540, 0, 1960, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 1961, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 749, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 750, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 751, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 925, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 926, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 818, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 3071, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 3072, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 3084, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 3085, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 610, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 354, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 660, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 661, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 778, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 354, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 779, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 780, + 549, 0, 0, 781, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 812, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 813, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 814, 549, 0, 0, + 815, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 818, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 882, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 883, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 1054, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 1327, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 1338, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 798, 261, 262, 263, 1339, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 801, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 802, 494, 495, 496, 497, 498, 499, 500, 501, 803, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 1331, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 805, 549, 0, 0, 806, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 807, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 1449, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 818, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 1510, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 1511, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 778, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 2870, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 354, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 2871, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 2872, + 540, 0, 542, 2873, 544, 2874, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 2875, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 669, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 729, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 4158, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 4172, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 764, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 776, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 798, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 799, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 354, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 800, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 801, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 802, 494, 495, 496, 497, 498, + 499, 500, 501, 803, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 804, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 805, 549, 0, 0, 806, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 807, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 829, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 907, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 917, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 920, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 936, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 1003, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 1009, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 1026, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 1029, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 1031, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 1067, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 1131, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 1133, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 1143, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 1146, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 1149, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 798, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 801, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 802, 494, 495, 496, 497, 498, 499, + 500, 501, 803, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 1331, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 805, 549, 0, 0, 806, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 807, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 1768, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 1806, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 1808, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 1879, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 1881, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 1883, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 493, 494, 495, 496, 497, 498, 499, 500, + 1986, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 548, 549, 0, 0, 550, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 2166, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 0, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 798, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 354, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 801, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 802, 494, 495, 496, + 497, 498, 499, 500, 501, 803, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 1331, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 2201, 543, 544, 545, 546, 0, 547, 805, 549, 0, + 0, 806, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 807, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 798, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 801, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 802, 494, 495, 496, 497, 498, 499, + 500, 501, 2277, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 2278, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 805, 549, 0, 0, 2279, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 807, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 798, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 354, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 801, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 802, 494, 495, 496, 497, 498, 499, 500, 501, 2356, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 2278, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 805, 549, 0, 0, 2279, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 807, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 798, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 801, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 802, 494, 495, + 496, 497, 498, 499, 500, 501, 2373, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 2278, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 805, 549, + 0, 0, 2279, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 807, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 2577, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 0, 246, 247, 248, 249, 250, 0, + 252, 253, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 262, 263, 264, 0, 265, 266, 267, + 268, 269, 0, 0, 0, 271, 272, 273, 274, 275, + 0, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 0, 287, 288, 289, 0, 0, 0, 0, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 313, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 0, 333, 334, 335, 336, 0, + 337, 0, 338, 0, 0, 0, 341, 342, 343, 344, + 0, 345, 346, 0, 347, 348, 349, 0, 350, 351, + 352, 353, 2581, 0, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 0, 369, + 370, 371, 372, 373, 374, 375, 0, 376, 0, 377, + 0, 0, 380, 0, 382, 383, 384, 385, 386, 0, + 0, 387, 388, 0, 390, 0, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 0, 424, 425, 0, 427, 0, 428, 429, 430, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 441, 0, 443, 0, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 457, 458, 459, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 0, 519, + 520, 521, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 0, + 538, 539, 0, 540, 0, 542, 543, 544, 545, 546, + 0, 547, 548, 549, 0, 0, 550, 551, 552, 553, + 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 573, 574, 0, 575, 0, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 609, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 0, 246, 247, 248, 249, 250, 0, 252, 253, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 262, 263, 264, 0, 265, 266, 267, 268, 269, 0, + 0, 0, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 0, + 287, 288, 289, 0, 0, 0, 0, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 0, 333, 334, 335, 336, 0, 337, 0, 338, + 0, 0, 0, 341, 342, 343, 344, 0, 345, 346, + 0, 347, 348, 349, 0, 350, 351, 352, 353, 2657, + 0, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 0, 376, 0, 377, 0, 0, 380, + 0, 382, 383, 384, 385, 386, 0, 0, 387, 388, + 0, 390, 0, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 0, 424, + 425, 0, 427, 0, 428, 429, 430, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 441, 0, 443, 0, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 0, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 0, 519, 520, 521, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 0, 538, 539, 0, + 540, 0, 542, 543, 544, 545, 546, 0, 547, 548, + 549, 0, 0, 550, 551, 552, 553, 554, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 573, 574, 0, 575, 0, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 0, 252, 253, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 262, 263, 264, + 0, 265, 266, 267, 268, 269, 0, 0, 0, 271, + 272, 273, 274, 275, 0, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 0, 287, 288, 289, + 0, 0, 0, 0, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 313, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 0, 333, + 334, 335, 336, 0, 337, 0, 338, 0, 0, 0, + 341, 342, 343, 344, 0, 345, 346, 0, 347, 348, + 349, 0, 350, 351, 352, 353, 2991, 0, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 0, 376, 0, 377, 0, 0, 380, 0, 382, 383, + 384, 385, 386, 0, 0, 387, 388, 0, 390, 0, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 0, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 0, 424, 425, 0, 427, + 0, 428, 429, 430, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 441, + 0, 443, 0, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 0, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 0, 519, 520, 521, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 0, 538, 539, 0, 540, 0, 542, + 543, 544, 545, 546, 0, 547, 548, 549, 0, 0, + 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 0, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 0, 246, 247, 248, 249, 250, + 0, 252, 253, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 798, 261, 262, 263, 264, 0, 265, 266, + 267, 268, 269, 0, 0, 0, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 0, 287, 288, 289, 0, 0, 0, + 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 313, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 0, 333, 334, 335, 336, + 0, 337, 0, 338, 0, 0, 0, 341, 342, 343, + 344, 0, 345, 346, 0, 347, 348, 349, 0, 350, + 351, 352, 353, 354, 0, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 0, + 369, 370, 371, 372, 373, 374, 375, 0, 376, 0, + 377, 0, 0, 380, 0, 382, 383, 384, 385, 386, + 0, 0, 387, 388, 0, 390, 0, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 801, 411, + 0, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 0, 424, 425, 0, 427, 0, 428, 429, + 430, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 441, 0, 443, 0, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 0, 802, 494, 495, 496, 497, 498, 499, 500, + 501, 803, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 2278, 0, 513, 514, 515, 516, 517, 0, + 519, 520, 521, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 0, 538, 539, 0, 540, 0, 542, 543, 544, 545, + 546, 0, 547, 805, 549, 0, 0, 2279, 551, 552, + 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 573, 574, 0, 575, 0, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 807, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 609, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 0, 246, 247, 248, 249, 250, 0, 252, 253, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 262, 263, 264, 0, 265, 266, 267, 268, 269, + 0, 0, 0, 271, 272, 273, 274, 275, 0, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 0, 287, 288, 289, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 313, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 0, 333, 334, 335, 336, 0, 337, 0, + 338, 0, 0, 0, 341, 342, 343, 344, 0, 345, + 346, 0, 347, 348, 349, 0, 350, 351, 352, 353, + 3060, 0, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 0, 369, 370, 371, + 372, 373, 374, 375, 0, 376, 0, 377, 0, 0, + 380, 0, 382, 383, 384, 385, 386, 0, 0, 387, + 388, 0, 390, 0, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 0, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 0, + 424, 425, 0, 427, 0, 428, 429, 430, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 441, 0, 443, 0, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 457, 458, 459, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 0, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 0, 519, 520, 521, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, + 0, 540, 0, 542, 543, 544, 545, 546, 0, 547, + 548, 549, 0, 0, 550, 551, 552, 553, 554, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 573, 574, 0, 575, 0, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 0, 246, + 247, 248, 249, 250, 0, 252, 253, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 262, 263, + 264, 0, 265, 266, 267, 268, 269, 0, 0, 0, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 0, 287, 288, + 289, 0, 0, 0, 0, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 313, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 0, + 333, 334, 335, 336, 0, 337, 0, 338, 0, 0, + 0, 341, 342, 343, 344, 0, 345, 346, 0, 347, + 348, 349, 0, 350, 351, 352, 353, 3074, 0, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 0, 369, 370, 371, 372, 373, 374, + 375, 0, 376, 0, 377, 0, 0, 380, 0, 382, + 383, 384, 385, 386, 0, 0, 387, 388, 0, 390, + 0, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 0, 424, 425, 0, + 427, 0, 428, 429, 430, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 441, 0, 443, 0, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 0, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 0, 519, 520, 521, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 0, 538, 539, 0, 540, 0, + 542, 543, 544, 545, 546, 0, 547, 548, 549, 0, + 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 573, + 574, 0, 575, 0, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 609, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 0, 246, 247, 248, 249, + 250, 0, 252, 253, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 262, 263, 264, 0, 265, + 266, 267, 268, 269, 0, 0, 0, 271, 272, 273, + 274, 275, 0, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 0, 287, 288, 289, 0, 0, + 0, 0, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 313, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 0, 333, 334, 335, + 336, 0, 337, 0, 338, 0, 0, 0, 341, 342, + 343, 344, 0, 345, 346, 0, 347, 348, 349, 0, + 350, 351, 352, 353, 3076, 0, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 0, 369, 370, 371, 372, 373, 374, 375, 0, 376, + 0, 377, 0, 0, 380, 0, 382, 383, 384, 385, + 386, 0, 0, 387, 388, 0, 390, 0, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 0, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 0, 424, 425, 0, 427, 0, 428, + 429, 430, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 441, 0, 443, + 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 0, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 0, 519, 520, 521, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 0, 538, 539, 0, 540, 0, 542, 543, 544, + 545, 546, 0, 547, 548, 549, 0, 0, 550, 551, + 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 573, 574, 0, 575, + 0, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 0, 246, 247, 248, 249, 250, 0, 252, + 253, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 262, 263, 264, 0, 265, 266, 267, 268, + 269, 0, 0, 0, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 0, 287, 288, 289, 0, 0, 0, 0, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 313, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 0, 333, 334, 335, 336, 0, 337, + 0, 338, 0, 0, 0, 341, 342, 343, 344, 0, + 345, 346, 0, 347, 348, 349, 0, 350, 351, 352, + 353, 3221, 0, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 0, 369, 370, + 371, 372, 373, 374, 375, 0, 376, 0, 377, 0, + 0, 380, 0, 382, 383, 384, 385, 386, 0, 0, + 387, 388, 0, 390, 0, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 0, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 0, 424, 425, 0, 427, 0, 428, 429, 430, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 441, 0, 443, 0, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 0, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 0, 519, 520, + 521, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 0, 538, + 539, 0, 540, 0, 542, 543, 544, 545, 546, 0, + 547, 548, 549, 0, 0, 550, 551, 552, 553, 554, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 573, 574, 0, 575, 0, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 0, + 246, 247, 248, 249, 250, 0, 252, 253, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 262, + 263, 264, 0, 265, 266, 267, 268, 269, 0, 0, + 0, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 0, 287, + 288, 289, 0, 0, 0, 0, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 3259, 313, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 0, 333, 334, 335, 336, 0, 337, 0, 338, 0, + 0, 0, 341, 342, 343, 344, 0, 345, 346, 0, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 0, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 0, 369, 370, 371, 372, 373, + 374, 375, 0, 376, 0, 377, 0, 0, 380, 0, + 382, 383, 384, 385, 386, 0, 0, 387, 388, 0, + 390, 0, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 0, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 0, 424, 425, + 0, 427, 0, 428, 429, 430, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 441, 0, 443, 0, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 0, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 0, 519, 520, 521, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 0, 538, 539, 0, 540, + 0, 542, 543, 544, 545, 546, 0, 547, 548, 549, + 0, 0, 550, 551, 552, 553, 554, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 573, 574, 0, 575, 0, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 348, 349, + 0, 350, 351, 352, 353, 4443, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 1069, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 0, 1070, 251, + 1071, 1072, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 1073, 1074, 264, 0, 265, 266, 267, + 268, 0, 0, 270, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 289, 0, 0, 0, 290, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 1075, + 1076, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 1077, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 0, 327, 328, 329, + 330, 0, 0, 332, 0, 333, 334, 1078, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 0, 0, 0, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 2174, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 2175, + 370, 371, 372, 373, 1080, 1081, 0, 1082, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 0, 389, 390, 391, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1083, 412, + 1084, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 423, 0, 424, 425, 426, 427, 0, 0, 429, 1085, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 2177, 442, 443, 444, 0, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 0, 458, 0, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 1086, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 0, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 2178, 516, 517, 518, 519, + 520, 1088, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 0, 537, 0, + 538, 539, 0, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 1089, 1090, 0, 0, 550, 551, 0, 553, + 0, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 0, 1091, 2179, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 609, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 599, 600, 601, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 0, 246, 247, 248, + 249, 250, 0, 252, 253, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 262, 263, 264, 0, + 265, 266, 267, 268, 269, 0, 0, 0, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 0, 287, 288, 289, 0, + 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 313, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 0, 333, 334, + 335, 336, 0, 337, 0, 338, 0, 0, 0, 341, + 342, 343, 344, 0, 345, 346, 0, 347, 0, 349, + 0, 350, 351, 352, 353, 354, 0, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 0, 369, 370, 371, 372, 373, 374, 375, 0, + 376, 0, 377, 0, 0, 380, 0, 382, 383, 384, + 385, 386, 0, 0, 387, 388, 0, 390, 0, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 0, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 0, 424, 425, 0, 427, 0, + 428, 429, 430, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 441, 0, + 443, 0, 445, 446, 447, 448, 449, 450, 451, 0, + 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 0, 472, 473, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 0, 493, 494, 495, 496, 497, 498, + 0, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 0, 519, 520, 521, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 0, 538, 539, 0, 540, 0, 542, 543, + 544, 545, 546, 0, 547, 548, 549, 0, 0, 550, + 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 573, 574, 0, + 575, 0, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 1069, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 0, + 242, 243, 244, 245, 246, 247, 248, 0, 1070, 251, + 1071, 1072, 0, 254, 255, 256, 257, 258, 259, 0, + 0, 260, 261, 1073, 1074, 264, 0, 265, 266, 267, + 268, 0, 0, 270, 0, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, + 285, 0, 286, 287, 288, 289, 0, 0, 0, 290, + 0, 0, 0, 291, 292, 293, 294, 295, 296, 1075, + 1076, 299, 0, 300, 0, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 0, 0, 311, 312, + 1077, 314, 315, 0, 316, 317, 318, 0, 319, 320, + 321, 0, 322, 323, 324, 325, 0, 327, 328, 329, + 330, 0, 0, 332, 0, 333, 334, 1078, 336, 0, + 337, 0, 338, 339, 0, 340, 341, 342, 343, 344, + 0, 345, 0, 0, 0, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 0, 360, + 361, 362, 363, 364, 365, 366, 0, 367, 368, 0, + 370, 371, 372, 373, 1080, 1081, 0, 1082, 0, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, + 0, 387, 0, 389, 390, 391, 0, 392, 393, 394, + 0, 0, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1083, 412, + 1084, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 423, 0, 424, 425, 426, 427, 2273, 0, 429, 1085, + 431, 432, 433, 0, 434, 435, 0, 0, 436, 437, + 438, 0, 0, 439, 440, 0, 442, 443, 444, 0, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, + 455, 456, 0, 458, 0, 460, 461, 462, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 1086, + 474, 475, 476, 477, 0, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 0, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 0, 508, 509, 510, + 511, 512, 0, 513, 514, 2178, 516, 517, 518, 519, + 520, 1088, 522, 0, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 0, 537, 0, + 538, 539, 3987, 540, 541, 542, 543, 544, 545, 546, + 0, 547, 1089, 1090, 0, 0, 550, 551, 0, 553, + 0, 0, 555, 556, 557, 558, 559, 560, 561, 562, + 0, 0, 563, 564, 565, 566, 567, 0, 0, 568, + 569, 570, 571, 572, 0, 1091, 0, 575, 576, 577, + 578, 579, 580, 0, 0, 581, 0, 0, 582, 583, + 584, 585, 586, 587, 1069, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 599, 600, 601, 0, 0, + 0, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 0, 242, 243, 244, 245, 246, 247, 248, + 0, 1070, 251, 1071, 1072, 0, 254, 255, 256, 257, + 258, 259, 0, 0, 260, 261, 1073, 1074, 264, 0, + 265, 266, 267, 268, 0, 0, 270, 0, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, + 282, 283, 284, 285, 0, 286, 287, 288, 289, 0, + 0, 0, 290, 0, 0, 0, 291, 292, 293, 294, + 295, 296, 1075, 1076, 299, 0, 300, 0, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 0, + 0, 311, 312, 1077, 314, 315, 0, 316, 317, 318, + 0, 319, 320, 321, 0, 322, 323, 324, 325, 0, + 327, 328, 329, 330, 0, 0, 332, 0, 333, 334, + 1078, 336, 0, 337, 0, 338, 339, 0, 340, 341, + 342, 343, 344, 0, 345, 0, 0, 0, 348, 349, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 0, 360, 361, 362, 363, 364, 365, 366, 0, + 367, 368, 0, 370, 371, 372, 373, 1080, 1081, 0, + 1082, 0, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 0, 0, 387, 0, 389, 390, 391, 0, + 392, 393, 394, 0, 0, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 1083, 412, 1084, 414, 415, 416, 417, 418, 419, + 420, 2346, 0, 423, 0, 424, 425, 426, 427, 0, + 0, 429, 1085, 431, 432, 433, 0, 434, 435, 0, + 0, 436, 437, 438, 0, 0, 439, 440, 0, 442, + 443, 444, 0, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 456, 0, 458, 0, 460, 461, + 462, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 1086, 474, 475, 476, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 0, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 0, + 508, 509, 510, 511, 512, 0, 513, 514, 1087, 516, + 517, 518, 519, 520, 1088, 522, 0, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 0, 537, 0, 538, 539, 0, 540, 541, 542, 543, + 544, 545, 546, 0, 547, 1089, 1090, 0, 0, 550, + 551, 0, 553, 0, 0, 555, 556, 557, 558, 559, + 560, 561, 562, 0, 0, 563, 564, 565, 566, 567, + 0, 0, 568, 569, 570, 571, 572, 0, 1091, 0, + 575, 576, 577, 578, 579, 580, 0, 0, 581, 0, + 0, 582, 583, 584, 585, 586, 587, 1069, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 599, 600, + 601, 0, 0, 0, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 0, 0, 0, 0, + 0, 0, 0, 240, 241, 0, 242, 243, 244, 245, + 246, 247, 248, 0, 1070, 251, 1071, 1072, 0, 254, + 255, 256, 257, 258, 259, 0, 0, 260, 261, 1073, + 1074, 264, 0, 265, 266, 267, 268, 0, 0, 270, + 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 280, 281, 282, 283, 284, 285, 0, 286, 287, + 288, 289, 0, 0, 0, 290, 0, 0, 0, 291, + 292, 293, 294, 295, 296, 1075, 1076, 299, 0, 300, + 0, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 0, 0, 311, 312, 1077, 314, 315, 0, + 316, 317, 318, 0, 319, 320, 321, 0, 322, 323, + 324, 325, 0, 327, 328, 329, 330, 0, 0, 332, + 0, 333, 334, 1078, 336, 0, 337, 0, 338, 339, + 0, 340, 341, 342, 343, 344, 0, 345, 0, 0, + 0, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 0, 360, 361, 362, 363, 364, + 365, 366, 0, 367, 368, 0, 370, 371, 372, 373, + 1080, 1081, 0, 1082, 0, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 0, 387, 0, 389, + 390, 391, 0, 392, 393, 394, 0, 0, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1083, 412, 1084, 414, 415, 416, + 417, 418, 419, 420, 3791, 0, 423, 0, 424, 425, + 426, 427, 0, 0, 429, 1085, 431, 432, 433, 0, + 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, + 440, 0, 442, 443, 444, 0, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 0, 458, + 0, 460, 461, 462, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 1086, 474, 475, 476, 477, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 0, 508, 509, 510, 511, 512, 0, 513, + 514, 1087, 516, 517, 518, 519, 520, 1088, 522, 0, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 0, 537, 0, 538, 539, 0, 540, + 541, 542, 543, 544, 545, 546, 0, 547, 1089, 1090, + 0, 0, 550, 551, 0, 553, 0, 0, 555, 556, + 557, 558, 559, 560, 561, 562, 0, 0, 563, 564, + 565, 566, 567, 0, 0, 568, 569, 570, 571, 572, + 0, 1091, 0, 575, 576, 577, 578, 579, 580, 0, + 0, 581, 0, 0, 582, 583, 584, 585, 586, 587, + 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 599, 600, 601, 0, 0, 0, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 0, 242, + 243, 244, 245, 246, 247, 248, 0, 1070, 251, 1071, + 1072, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 260, 261, 1073, 1074, 264, 0, 265, 266, 267, 268, + 0, 0, 270, 0, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 0, 286, 287, 288, 289, 0, 0, 0, 290, 0, + 0, 0, 291, 292, 293, 294, 295, 296, 1075, 1076, + 299, 0, 300, 0, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 0, 0, 311, 312, 1077, + 314, 315, 0, 316, 317, 318, 0, 319, 320, 321, + 0, 322, 323, 324, 325, 0, 327, 328, 329, 330, + 0, 0, 332, 0, 333, 334, 1078, 336, 5359, 337, + 0, 338, 339, 0, 340, 341, 342, 343, 344, 0, + 345, 0, 0, 0, 348, 349, 0, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 0, 360, 361, + 362, 363, 364, 365, 366, 0, 367, 368, 0, 370, + 371, 372, 373, 1080, 1081, 0, 1082, 0, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 0, 0, + 387, 0, 389, 390, 391, 0, 392, 393, 394, 0, + 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 1083, 412, 1084, + 414, 415, 416, 417, 418, 419, 420, 0, 0, 423, + 0, 424, 425, 426, 427, 0, 0, 429, 1085, 431, + 432, 433, 0, 434, 435, 0, 0, 436, 437, 438, + 0, 0, 439, 440, 0, 442, 443, 444, 0, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 456, 0, 458, 0, 460, 461, 462, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 1086, 474, + 475, 476, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 0, 508, 509, 510, 511, + 512, 0, 513, 514, 1087, 516, 517, 518, 519, 520, + 1088, 522, 0, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 0, 537, 0, 538, + 539, 0, 540, 541, 542, 543, 544, 545, 546, 0, + 547, 1089, 1090, 0, 0, 550, 551, 0, 553, 0, + 0, 555, 556, 557, 558, 559, 560, 561, 562, 0, + 0, 563, 564, 565, 566, 567, 0, 0, 568, 569, + 570, 571, 572, 0, 1091, 0, 575, 576, 577, 578, + 579, 580, 0, 0, 581, 0, 0, 582, 583, 584, + 585, 586, 587, 1069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 599, 600, 601, 0, 0, 0, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 0, 242, 243, 244, 245, 246, 247, 248, 0, + 1070, 251, 1071, 1072, 0, 254, 255, 256, 257, 258, + 259, 0, 0, 260, 261, 1073, 1074, 264, 0, 265, + 266, 267, 268, 0, 0, 270, 0, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, + 283, 284, 285, 0, 286, 287, 288, 289, 0, 0, + 0, 290, 0, 0, 0, 291, 292, 293, 294, 295, + 296, 1075, 1076, 299, 0, 300, 0, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 0, 0, + 311, 312, 1077, 314, 315, 0, 316, 317, 318, 0, + 319, 320, 321, 0, 322, 323, 324, 325, 0, 327, + 328, 329, 330, 0, 0, 332, 0, 333, 334, 1078, + 336, 0, 337, 0, 338, 339, 0, 340, 341, 342, + 343, 344, 0, 345, 0, 0, 0, 348, 349, 0, + 350, 351, 352, 353, 1079, 355, 356, 357, 358, 359, + 0, 360, 361, 362, 363, 364, 365, 366, 0, 367, + 368, 0, 370, 371, 372, 373, 1080, 1081, 0, 1082, + 0, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 0, 0, 387, 0, 389, 390, 391, 0, 392, + 393, 394, 0, 0, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1083, 412, 1084, 414, 415, 416, 417, 418, 419, 420, + 0, 0, 423, 0, 424, 425, 426, 427, 0, 0, + 429, 1085, 431, 432, 433, 0, 434, 435, 0, 0, + 436, 437, 438, 0, 0, 439, 440, 0, 442, 443, + 444, 0, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 0, 458, 0, 460, 461, 462, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 1086, 474, 475, 476, 477, 0, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 0, 508, + 509, 510, 511, 512, 0, 513, 514, 1087, 516, 517, + 518, 519, 520, 1088, 522, 0, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 0, + 537, 0, 538, 539, 0, 540, 541, 542, 543, 544, + 545, 546, 0, 547, 1089, 1090, 0, 0, 550, 551, + 0, 553, 0, 0, 555, 556, 557, 558, 559, 560, + 561, 562, 0, 0, 563, 564, 565, 566, 567, 0, + 0, 568, 569, 570, 571, 572, 0, 1091, 0, 575, + 576, 577, 578, 579, 580, 0, 0, 581, 0, 0, + 582, 583, 584, 585, 586, 587, 1069, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 599, 600, 601, + 0, 0, 0, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 0, 242, 243, 244, 245, 246, + 247, 248, 0, 1070, 251, 1071, 1072, 0, 254, 255, + 256, 257, 258, 259, 0, 0, 260, 261, 1073, 1074, + 264, 0, 265, 266, 267, 268, 0, 0, 270, 0, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 0, 286, 287, 288, + 289, 0, 0, 0, 290, 0, 0, 0, 291, 292, + 293, 294, 295, 296, 1075, 1076, 299, 0, 300, 0, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 0, 0, 311, 312, 1077, 314, 315, 0, 316, + 317, 318, 0, 319, 320, 321, 0, 322, 323, 324, + 325, 0, 327, 328, 329, 330, 0, 0, 332, 0, + 333, 334, 1078, 336, 0, 337, 0, 338, 339, 0, + 340, 341, 342, 343, 344, 0, 345, 0, 0, 0, + 348, 349, 0, 350, 351, 352, 353, 1137, 355, 356, + 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, + 366, 0, 367, 368, 0, 370, 371, 372, 373, 1080, + 1081, 0, 1082, 0, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 0, 0, 387, 0, 389, 390, + 391, 0, 392, 393, 394, 0, 0, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 1083, 412, 1084, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 423, 0, 424, 425, 426, + 427, 0, 0, 429, 1085, 431, 432, 433, 0, 434, + 435, 0, 0, 436, 437, 438, 0, 0, 439, 440, + 0, 442, 443, 444, 0, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 0, 455, 456, 0, 458, 0, + 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 1086, 474, 475, 476, 477, 0, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 0, 508, 509, 510, 511, 512, 0, 513, 514, + 1087, 516, 517, 518, 519, 520, 1088, 522, 0, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 0, 537, 0, 538, 539, 0, 540, 541, + 542, 543, 544, 545, 546, 0, 547, 1089, 1090, 0, + 0, 550, 551, 0, 553, 0, 0, 555, 556, 557, + 558, 559, 560, 561, 562, 0, 0, 563, 564, 565, + 566, 567, 0, 0, 568, 569, 570, 571, 572, 0, + 1091, 0, 575, 576, 577, 578, 579, 580, 0, 0, + 581, 0, 0, 582, 583, 584, 585, 586, 587, 1069, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 599, 600, 601, 0, 0, 0, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 0, 242, 243, + 244, 245, 246, 247, 248, 0, 1070, 251, 1071, 1072, + 0, 254, 255, 256, 257, 258, 259, 0, 0, 260, + 261, 1073, 1074, 264, 0, 265, 266, 267, 268, 0, + 0, 270, 0, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 0, + 286, 287, 288, 289, 0, 0, 0, 290, 0, 0, + 0, 291, 292, 293, 294, 295, 296, 1075, 1076, 299, + 0, 300, 0, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 0, 0, 311, 312, 1077, 314, + 315, 0, 316, 317, 318, 0, 319, 320, 321, 0, + 322, 323, 324, 325, 0, 327, 328, 329, 330, 0, + 0, 332, 0, 333, 334, 1078, 336, 0, 337, 0, + 338, 339, 0, 340, 341, 342, 343, 344, 0, 345, + 0, 0, 0, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 0, 360, 361, 362, + 363, 364, 365, 366, 0, 367, 368, 0, 370, 371, + 372, 373, 1080, 1081, 0, 1082, 0, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 0, 0, 387, + 0, 389, 390, 391, 0, 392, 393, 394, 0, 0, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1083, 412, 1084, 414, + 415, 416, 417, 418, 419, 420, 0, 0, 423, 0, + 424, 425, 426, 427, 0, 0, 429, 1085, 431, 432, + 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, + 0, 439, 440, 0, 442, 443, 444, 0, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, + 0, 458, 0, 460, 461, 462, 0, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 1086, 474, 475, + 476, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, + 494, 495, 496, 497, 0, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 0, 508, 509, 510, 511, 512, + 0, 513, 514, 1087, 516, 517, 518, 519, 520, 1088, + 522, 0, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 0, 537, 0, 538, 539, + 0, 540, 541, 542, 543, 544, 545, 546, 0, 547, + 1089, 1090, 0, 0, 550, 551, 0, 553, 0, 0, + 555, 556, 557, 558, 559, 560, 561, 562, 0, 0, + 563, 564, 565, 566, 567, 0, 0, 568, 569, 570, + 571, 572, 0, 1091, 0, 575, 576, 577, 578, 579, + 580, 0, 0, 581, 0, 0, 582, 583, 584, 585, + 586, 587, 1069, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 599, 600, 601, 0, 0, 0, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 0, 242, 243, 244, 245, 246, 247, 248, 0, 1070, + 251, 1071, 1072, 0, 254, 255, 256, 257, 258, 259, + 0, 0, 260, 261, 1073, 1074, 264, 0, 265, 266, + 267, 268, 0, 0, 270, 0, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, + 284, 285, 0, 286, 287, 288, 289, 0, 0, 0, + 290, 0, 0, 0, 291, 292, 293, 294, 295, 296, + 1075, 1076, 299, 0, 300, 0, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 0, 0, 311, + 312, 1077, 314, 315, 0, 316, 317, 318, 0, 319, + 320, 321, 0, 322, 323, 324, 325, 0, 327, 328, + 329, 330, 0, 0, 332, 0, 333, 334, 1078, 336, + 0, 337, 0, 338, 339, 0, 340, 341, 342, 343, + 344, 0, 345, 0, 0, 0, 348, 349, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 0, + 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, + 0, 370, 371, 372, 373, 1080, 1081, 0, 1082, 0, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 0, 0, 387, 0, 389, 390, 391, 0, 392, 393, + 394, 0, 0, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 1083, + 412, 1084, 414, 415, 416, 417, 418, 419, 420, 0, + 0, 423, 0, 424, 425, 426, 427, 0, 0, 429, + 1085, 431, 432, 433, 0, 434, 435, 0, 0, 436, + 437, 438, 0, 0, 439, 440, 0, 442, 443, 444, + 0, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 456, 0, 458, 0, 460, 461, 462, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 1086, 474, 475, 476, 477, 0, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 0, 508, 509, + 510, 511, 512, 0, 513, 514, 2178, 516, 517, 518, + 519, 520, 1088, 522, 0, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 0, 537, + 0, 538, 539, 0, 540, 541, 542, 543, 544, 545, + 546, 0, 547, 1089, 1090, 0, 0, 550, 551, 0, + 553, 0, 0, 555, 556, 557, 558, 559, 560, 561, + 562, 0, 0, 563, 564, 565, 566, 567, 0, 0, + 568, 569, 570, 571, 572, 0, 1091, 0, 575, 576, + 577, 578, 579, 580, 0, 0, 581, 0, 0, 582, + 583, 584, 585, 586, 587, 1069, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 599, 600, 601, 0, + 0, 0, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, + 0, 240, 241, 0, 242, 243, 244, 245, 246, 247, + 248, 0, 1070, 251, 1071, 1072, 0, 254, 255, 256, + 257, 258, 259, 0, 0, 260, 261, 1073, 1074, 264, + 0, 265, 266, 267, 268, 0, 0, 270, 0, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, + 281, 282, 283, 284, 285, 0, 286, 287, 288, 289, + 0, 0, 0, 290, 0, 0, 0, 291, 292, 293, + 294, 295, 296, 1075, 1076, 299, 0, 300, 0, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 0, 0, 311, 312, 1077, 314, 315, 0, 316, 317, + 318, 0, 319, 320, 321, 0, 322, 323, 324, 325, + 0, 327, 328, 329, 330, 0, 0, 332, 0, 333, + 334, 1078, 336, 0, 337, 0, 338, 339, 0, 340, + 341, 342, 343, 344, 0, 345, 0, 0, 0, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 0, 360, 361, 362, 363, 364, 365, 366, + 0, 367, 368, 0, 370, 371, 372, 373, 1080, 1081, + 0, 1082, 0, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 0, 0, 387, 0, 389, 390, 391, + 0, 392, 393, 394, 0, 0, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1083, 412, 1084, 414, 415, 416, 417, 418, + 419, 420, 0, 0, 423, 0, 424, 425, 426, 427, + 0, 0, 429, 1085, 431, 432, 433, 0, 434, 435, + 0, 0, 436, 437, 438, 0, 0, 439, 440, 0, + 442, 443, 444, 0, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 456, 0, 458, 0, 460, + 461, 462, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 1086, 474, 475, 476, 477, 0, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 0, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 508, 509, 510, 511, 512, 0, 513, 514, 0, + 516, 517, 518, 519, 520, 1088, 522, 0, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 0, 537, 0, 538, 539, 0, 540, 541, 542, + 543, 544, 545, 546, 0, 547, 1089, 1090, 0, 0, + 550, 551, 0, 553, 0, 0, 555, 556, 557, 558, + 559, 560, 561, 562, 0, 0, 563, 564, 565, 566, + 567, 0, 0, 568, 569, 570, 571, 572, 0, 1091, + 0, 575, 576, 577, 578, 579, 580, 0, 0, 581, + 0, 0, 582, 583, 584, 585, 586, 587, 1069, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 599, + 600, 601, 0, 0, 0, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 242, 243, 244, + 245, 246, 247, 248, 0, 0, 251, 0, 0, 0, + 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, + 0, 0, 264, 0, 265, 266, 267, 268, 0, 0, + 270, 0, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 280, 281, 282, 283, 284, 285, 0, 286, + 287, 288, 289, 0, 0, 0, 290, 0, 0, 0, + 291, 292, 293, 294, 295, 296, 0, 0, 299, 0, + 300, 0, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 0, 0, 311, 312, 313, 314, 315, + 0, 316, 317, 318, 0, 319, 320, 321, 0, 322, + 323, 324, 325, 0, 327, 328, 329, 330, 0, 0, + 332, 0, 333, 334, 0, 336, 0, 337, 0, 338, + 339, 0, 340, 341, 342, 343, 344, 0, 345, 0, + 0, 0, 348, 349, 0, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 0, 360, 361, 362, 363, + 364, 365, 366, 0, 367, 368, 0, 370, 371, 372, + 373, 0, 0, 0, 0, 0, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 0, 0, 387, 0, + 389, 390, 391, 0, 392, 393, 394, 0, 0, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 0, 412, 0, 414, 415, + 416, 417, 418, 419, 420, 0, 0, 423, 0, 424, + 425, 426, 427, 0, 0, 429, 0, 431, 432, 433, + 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, + 439, 440, 0, 442, 443, 444, 0, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 0, + 458, 0, 460, 461, 462, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 0, 474, 475, 476, + 477, 0, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, + 495, 496, 497, 0, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 0, 508, 509, 510, 511, 512, 0, + 513, 514, 0, 516, 517, 518, 519, 520, 0, 522, + 0, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 0, 537, 0, 538, 539, 0, + 540, 541, 542, 543, 544, 545, 546, 0, 547, 0, + 0, 0, 0, 550, 551, 0, 553, 0, 0, 555, + 556, 557, 558, 559, 560, 561, 562, 0, 0, 563, + 564, 565, 566, 567, 0, 0, 568, 569, 570, 571, + 572, 0, 0, 0, 575, 576, 577, 578, 579, 580, + 0, 0, 581, 0, 0, 582, 583, 584, 585, 586, + 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 599, 600, 601 +}; + +static const yytype_int16 yycheck[] = +{ + 6, 205, 0, 44, 205, 0, 918, 22, 51, 637, + 183, 1160, 0, 28, 0, 799, 45, 23, 36, 25, + 0, 1562, 711, 29, 935, 797, 21, 1117, 34, 35, + 36, 848, 38, 1497, 1435, 41, 42, 1087, 44, 859, + 46, 749, 750, 751, 885, 944, 1182, 755, 200, 950, + 919, 2517, 821, 1481, 2716, 1474, 208, 946, 2882, 211, + 1075, 1076, 2409, 6, 2589, 822, 13, 1032, 2345, 1214, + 1085, 1090, 3064, 806, 1486, 23, 1723, 3683, 191, 2932, + 1481, 1973, 3037, 2182, 2183, 2530, 1802, 2430, 36, 3333, + 3363, 2692, 628, 670, 948, 1006, 18, 3287, 1992, 1010, + 8, 3090, 871, 3092, 1015, 1627, 210, 15, 0, 3637, + 2941, 884, 3581, 3611, 1025, 3352, 3298, 0, 3959, 3679, + 224, 3735, 3380, 716, 691, 3383, 170, 694, 1039, 21, + 1594, 1595, 185, 3976, 3964, 706, 909, 3920, 775, 3770, + 2906, 914, 3617, 679, 2081, 35, 185, 2808, 2037, 1464, + 4589, 0, 42, 0, 0, 4481, 0, 1068, 4473, 50, + 2148, 1413, 2146, 4751, 0, 3659, 2835, 1814, 2951, 4792, + 41, 4804, 0, 0, 0, 4424, 1588, 0, 219, 0, + 3963, 0, 2879, 0, 953, 191, 192, 193, 194, 1905, + 196, 3350, 2014, 2114, 200, 4663, 202, 845, 845, 205, + 670, 4228, 208, 1615, 2125, 211, 3542, 0, 214, 1524, + 216, 1360, 4605, 219, 4607, 11, 3616, 223, 3618, 225, + 0, 0, 6, 4472, 13, 802, 1541, 0, 59, 1244, + 1245, 11, 6, 0, 37, 2932, 51, 4705, 6, 1625, + 1626, 4712, 4713, 2520, 1021, 31, 6, 717, 28, 59, + 1265, 6, 28, 59, 6, 0, 1275, 44, 5003, 13, + 1037, 5027, 6, 2476, 869, 2478, 11, 44, 5, 2482, + 81, 2484, 2485, 114, 11, 161, 6, 28, 1073, 1074, + 2493, 2494, 2495, 28, 2945, 6, 1106, 0, 42, 1084, + 89, 999, 6, 34, 6, 6, 6, 173, 918, 147, + 4101, 15, 16, 41, 909, 15, 16, 927, 21, 914, + 41, 31, 6, 74, 76, 3039, 6, 937, 259, 1160, + 74, 116, 693, 28, 86, 15, 16, 166, 6, 1427, + 35, 119, 802, 5, 169, 178, 707, 11, 51, 11, + 114, 107, 166, 119, 6, 94, 3977, 86, 166, 146, + 4737, 59, 298, 278, 146, 2632, 826, 2634, 166, 273, + 4048, 4049, 166, 4051, 4052, 4053, 4054, 4055, 59, 839, + 273, 284, 64, 166, 312, 29, 273, 279, 59, 3683, + 279, 259, 59, 279, 298, 194, 166, 166, 116, 114, + 352, 309, 166, 166, 116, 298, 160, 190, 28, 166, + 5344, 298, 59, 324, 267, 35, 5029, 24, 24, 1046, + 190, 190, 1377, 30, 143, 118, 204, 190, 167, 5411, + 5412, 166, 3, 190, 5, 6, 28, 430, 204, 348, + 11, 350, 158, 35, 166, 828, 637, 5203, 1233, 1234, + 408, 93, 293, 440, 1343, 190, 114, 446, 145, 5194, + 59, 200, 332, 4921, 1355, 76, 320, 166, 76, 449, + 4267, 475, 1525, 76, 348, 1260, 215, 4274, 86, 333, + 65, 66, 185, 86, 488, 4868, 225, 24, 4793, 1542, + 315, 190, 472, 486, 452, 365, 214, 688, 6, 486, + 408, 490, 411, 161, 220, 192, 76, 361, 1548, 228, + 1341, 76, 251, 22, 13, 1346, 1347, 338, 211, 372, + 394, 166, 347, 13, 365, 76, 133, 133, 68, 1360, + 172, 442, 5514, 76, 486, 360, 1295, 468, 338, 167, + 1387, 635, 338, 114, 452, 263, 86, 641, 337, 166, + 486, 305, 42, 268, 76, 5489, 268, 449, 486, 335, + 654, 205, 166, 449, 1323, 454, 434, 166, 13, 1413, + 395, 486, 348, 1200, 350, 1142, 5332, 259, 135, 1162, + 358, 368, 486, 3297, 74, 1476, 368, 490, 121, 5202, + 3770, 4968, 358, 486, 119, 394, 133, 42, 406, 486, + 268, 434, 320, 342, 144, 183, 362, 445, 406, 10, + 486, 4745, 13, 190, 5192, 3795, 17, 18, 19, 420, + 616, 1452, 107, 163, 490, 335, 622, 13, 624, 74, + 626, 1462, 628, 621, 630, 411, 621, 146, 209, 406, + 338, 637, 406, 621, 475, 621, 642, 432, 644, 5405, + 428, 621, 1219, 394, 406, 651, 1557, 338, 435, 1560, + 231, 490, 428, 391, 4123, 439, 5401, 338, 435, 490, + 391, 338, 5133, 1761, 4162, 406, 490, 406, 4166, 675, + 375, 486, 1142, 679, 717, 848, 4151, 721, 684, 1368, + 490, 338, 688, 486, 490, 691, 490, 3931, 694, 485, + 1160, 490, 2078, 482, 3686, 617, 489, 477, 478, 1568, + 5323, 475, 486, 5336, 710, 5471, 5021, 2984, 1549, 489, + 489, 1552, 1553, 4207, 488, 730, 489, 732, 486, 734, + 761, 716, 489, 484, 1623, 740, 486, 488, 482, 3973, + 4066, 486, 477, 478, 486, 3972, 1625, 1626, 1627, 1512, + 477, 478, 486, 352, 489, 375, 5512, 1395, 1395, 1219, + 4150, 4552, 4152, 1124, 1531, 761, 486, 451, 490, 1152, + 310, 1338, 490, 484, 4908, 486, 970, 488, 715, 970, + 776, 3953, 486, 375, 486, 486, 486, 449, 472, 190, + 28, 822, 490, 836, 5407, 406, 140, 3977, 406, 451, + 796, 797, 486, 799, 800, 5263, 486, 836, 804, 490, + 472, 212, 1579, 477, 478, 477, 478, 1943, 5276, 490, + 472, 852, 818, 490, 966, 1632, 822, 1188, 365, 1909, + 972, 27, 828, 975, 486, 717, 406, 868, 1199, 348, + 1450, 406, 441, 490, 840, 490, 744, 3184, 4526, 5232, + 838, 3510, 955, 838, 1215, 406, 852, 5470, 486, 368, + 838, 2263, 838, 406, 4468, 2954, 1871, 2956, 838, 486, + 1950, 36, 868, 4022, 382, 383, 2294, 1472, 1338, 280, + 4897, 1961, 486, 423, 406, 5201, 1346, 1347, 445, 3324, + 886, 428, 114, 5198, 161, 891, 892, 430, 3671, 3881, + 1360, 1519, 1512, 428, 1735, 4904, 477, 478, 486, 394, + 210, 1294, 72, 490, 1758, 166, 168, 59, 621, 5377, + 284, 3608, 6, 107, 3611, 5503, 114, 923, 924, 430, + 1525, 352, 109, 440, 2912, 3880, 5175, 2911, 2340, 800, + 298, 107, 279, 804, 83, 279, 24, 1542, 829, 114, + 946, 947, 2194, 2465, 107, 10, 838, 28, 5197, 955, + 107, 175, 17, 18, 19, 838, 2778, 2779, 5102, 166, + 966, 2783, 168, 5107, 970, 319, 972, 6, 2283, 975, + 479, 480, 481, 482, 2895, 486, 125, 68, 861, 479, + 480, 481, 482, 190, 990, 6, 3683, 3264, 3265, 838, + 6, 838, 838, 343, 838, 182, 3657, 2886, 2820, 2821, + 4783, 5440, 838, 716, 717, 2942, 1012, 5333, 1401, 5324, + 838, 838, 838, 1019, 1020, 838, 3, 838, 280, 838, + 278, 838, 477, 478, 479, 480, 481, 482, 2569, 3795, + 309, 24, 4638, 923, 924, 1041, 1042, 1043, 3, 1045, + 243, 1047, 1048, 1049, 3999, 133, 24, 128, 109, 4680, + 3263, 1846, 1847, 144, 302, 486, 243, 334, 2207, 246, + 292, 119, 473, 474, 475, 263, 477, 478, 479, 480, + 481, 482, 163, 108, 4543, 133, 107, 32, 33, 429, + 3357, 477, 478, 479, 480, 481, 482, 5413, 114, 3942, + 1991, 5417, 732, 733, 734, 5104, 4594, 737, 738, 739, + 278, 4599, 449, 1811, 4602, 449, 276, 747, 314, 284, + 119, 1117, 360, 1119, 1120, 4590, 490, 284, 486, 343, + 85, 182, 384, 836, 218, 838, 358, 114, 2178, 408, + 51, 1053, 486, 2034, 168, 273, 119, 6, 93, 486, + 133, 167, 40, 5469, 350, 406, 1152, 296, 83, 59, + 398, 348, 400, 356, 352, 133, 4986, 2014, 113, 194, + 298, 619, 394, 182, 24, 2022, 167, 1162, 2587, 356, + 28, 3, 137, 452, 1958, 1959, 1182, 1183, 5019, 2080, + 490, 1187, 243, 1189, 105, 246, 338, 5513, 3287, 2078, + 125, 2045, 147, 5023, 83, 204, 5039, 4470, 3, 1205, + 394, 6, 4985, 409, 436, 1211, 294, 5533, 1214, 415, + 5536, 1217, 3, 4457, 475, 280, 49, 449, 394, 310, + 163, 204, 37, 1912, 243, 1231, 4463, 488, 259, 268, + 4222, 394, 264, 366, 25, 4493, 125, 394, 264, 5022, + 472, 56, 449, 171, 332, 3942, 280, 268, 177, 307, + 399, 1294, 268, 85, 486, 713, 1262, 1165, 317, 1167, + 1949, 1169, 2031, 1171, 1953, 1173, 1174, 1175, 1957, 234, + 128, 1960, 1180, 133, 1845, 4264, 263, 365, 3377, 2136, + 467, 268, 203, 4587, 1290, 1291, 1292, 2369, 1294, 486, + 188, 106, 24, 2182, 85, 356, 297, 1833, 30, 486, + 475, 294, 178, 231, 109, 137, 484, 1874, 1314, 484, + 488, 486, 487, 488, 406, 490, 294, 352, 1519, 1363, + 487, 4625, 1889, 490, 394, 1892, 1919, 1380, 1381, 294, + 1383, 1902, 423, 791, 4638, 4895, 293, 356, 259, 332, + 2194, 1380, 1381, 216, 1383, 433, 1352, 138, 486, 259, + 116, 332, 185, 486, 332, 240, 1397, 190, 393, 394, + 34, 296, 4831, 118, 2446, 190, 4864, 332, 406, 13, + 371, 336, 365, 328, 4205, 2159, 1382, 182, 193, 365, + 1386, 1387, 217, 259, 2012, 1952, 259, 365, 1955, 1956, + 319, 1397, 1398, 1399, 227, 1401, 428, 294, 490, 190, + 365, 133, 234, 358, 430, 196, 467, 296, 473, 474, + 475, 5025, 477, 478, 479, 480, 481, 482, 1424, 428, + 349, 3, 282, 168, 37, 406, 241, 486, 338, 244, + 74, 414, 397, 354, 399, 332, 216, 106, 243, 394, + 28, 246, 4043, 56, 259, 428, 1839, 320, 214, 1162, + 1920, 486, 490, 1459, 4923, 365, 211, 408, 1464, 4928, + 4929, 1467, 294, 3988, 399, 4162, 486, 2379, 365, 4166, + 398, 2325, 400, 147, 1480, 1481, 336, 337, 293, 259, + 147, 436, 0, 1489, 449, 440, 1492, 26, 86, 5095, + 4680, 79, 126, 106, 449, 368, 2350, 263, 426, 87, + 4804, 97, 136, 85, 490, 365, 1877, 332, 47, 300, + 399, 336, 365, 1519, 1227, 1521, 114, 472, 1524, 38, + 1891, 4794, 337, 1163, 147, 1447, 1166, 115, 1168, 83, + 1170, 486, 1172, 1904, 1247, 1541, 1176, 370, 1544, 2629, + 365, 1547, 2383, 1584, 359, 4782, 108, 128, 178, 130, + 2391, 356, 343, 2394, 320, 428, 138, 2411, 434, 489, + 348, 3908, 294, 1569, 379, 397, 1279, 399, 24, 314, + 490, 125, 241, 158, 30, 244, 2465, 5105, 1584, 175, + 193, 1294, 170, 332, 83, 2439, 394, 4769, 368, 486, + 1596, 1597, 1598, 1599, 1600, 183, 3943, 1990, 3492, 1992, + 332, 392, 2359, 2360, 123, 1998, 2363, 195, 1614, 3952, + 60, 2004, 2005, 2006, 196, 358, 365, 259, 68, 1625, + 1626, 1627, 2015, 2016, 449, 3166, 125, 2020, 241, 259, + 421, 244, 194, 365, 117, 3054, 116, 490, 429, 143, + 428, 432, 2459, 2460, 2461, 2115, 259, 472, 428, 2426, + 1533, 394, 282, 365, 3867, 1538, 2429, 2511, 3871, 3872, + 294, 3874, 467, 259, 2200, 263, 205, 1380, 1381, 254, + 1383, 3770, 487, 2293, 34, 68, 178, 133, 486, 128, + 293, 130, 1886, 282, 1885, 1886, 4637, 334, 325, 2600, + 332, 358, 273, 436, 4645, 294, 3795, 430, 332, 3521, + 3522, 3523, 3524, 186, 208, 3527, 3528, 3529, 3530, 3531, + 3532, 3533, 3534, 3535, 3536, 3431, 1829, 1723, 300, 1725, + 393, 114, 3244, 1875, 337, 237, 1609, 394, 3250, 5257, + 1613, 1737, 1738, 332, 214, 358, 4013, 2207, 4015, 15, + 16, 3633, 296, 486, 5329, 5330, 359, 4739, 5, 2526, + 161, 1757, 312, 486, 11, 5028, 429, 259, 5002, 2379, + 411, 172, 5066, 294, 3586, 3587, 379, 114, 2525, 436, + 1776, 394, 2549, 2550, 2551, 2552, 3188, 170, 490, 190, + 284, 231, 449, 263, 2561, 117, 1792, 1793, 1794, 1795, + 352, 5095, 294, 381, 2414, 116, 384, 296, 435, 1805, + 5037, 156, 449, 150, 434, 472, 1812, 403, 1814, 2586, + 5416, 2012, 156, 436, 263, 358, 156, 161, 5000, 486, + 1826, 3233, 171, 1829, 273, 472, 449, 1833, 2448, 2365, + 332, 393, 394, 1839, 365, 5017, 183, 449, 294, 421, + 320, 2682, 441, 490, 284, 399, 76, 429, 272, 472, + 432, 394, 13, 2989, 186, 442, 86, 85, 4520, 168, + 472, 4816, 156, 486, 2618, 2619, 2620, 161, 1874, 1875, + 263, 2579, 5054, 228, 486, 268, 332, 198, 3977, 1885, + 1886, 42, 231, 1889, 228, 397, 1892, 5472, 228, 293, + 4587, 240, 201, 436, 374, 3359, 5200, 4594, 126, 117, + 399, 324, 4599, 1909, 1910, 4602, 449, 293, 136, 365, + 1916, 5517, 1918, 74, 426, 355, 263, 310, 422, 449, + 2291, 2778, 2779, 5196, 1919, 4914, 2783, 1968, 4625, 472, + 341, 275, 434, 326, 228, 275, 359, 1943, 259, 451, + 350, 4638, 263, 486, 1950, 2799, 1952, 2962, 449, 1955, + 1956, 2805, 1958, 1959, 5212, 1961, 294, 4423, 5195, 4677, + 490, 365, 1968, 2820, 2821, 1983, 4243, 4244, 186, 1975, + 4632, 394, 4634, 355, 486, 1973, 1982, 1983, 1973, 365, + 1986, 275, 45, 218, 1990, 1973, 1992, 1973, 4812, 490, + 2679, 1997, 1998, 1973, 332, 5177, 4462, 4442, 2004, 2005, + 2006, 411, 4720, 2009, 67, 2011, 2012, 2013, 2014, 2015, + 2016, 2017, 2018, 1533, 2020, 2592, 2022, 2023, 1538, 442, + 2026, 1929, 486, 1931, 350, 1933, 263, 1935, 1920, 1937, + 423, 268, 5336, 1941, 1982, 2041, 2042, 2043, 2044, 161, + 3687, 324, 2048, 2049, 406, 2249, 2887, 2053, 2249, 398, + 2056, 400, 5325, 2059, 2060, 2061, 2062, 2063, 2064, 2065, + 2066, 2067, 184, 2069, 2881, 4412, 294, 1989, 449, 2075, + 2076, 2648, 2078, 2710, 2711, 242, 359, 426, 3900, 2085, + 4957, 318, 4959, 167, 162, 411, 4963, 4964, 449, 1609, + 294, 472, 143, 1613, 5338, 2247, 5051, 484, 2250, 2251, + 328, 488, 26, 237, 332, 156, 5410, 4804, 2114, 490, + 161, 394, 5416, 475, 348, 2121, 200, 5109, 196, 2125, + 2126, 88, 2592, 47, 328, 143, 488, 2240, 332, 490, + 2136, 215, 2952, 5406, 5316, 5012, 294, 365, 156, 2145, + 2146, 225, 4966, 161, 294, 486, 380, 337, 171, 278, + 68, 2884, 2545, 2159, 283, 5008, 74, 208, 161, 442, + 2166, 365, 2168, 130, 451, 411, 2164, 4864, 86, 294, + 4383, 3040, 4385, 4386, 332, 365, 4389, 228, 2648, 485, + 10, 184, 332, 13, 490, 472, 2290, 17, 18, 19, + 208, 2209, 2207, 2211, 2200, 411, 114, 3066, 116, 486, + 336, 3742, 3338, 2209, 34, 2211, 1919, 332, 231, 2602, + 228, 336, 3348, 5517, 2842, 365, 237, 5399, 352, 336, + 913, 2262, 2228, 10, 275, 487, 13, 2119, 490, 365, + 17, 18, 19, 284, 2240, 106, 2242, 2243, 3954, 932, + 365, 2247, 935, 2249, 2250, 2251, 451, 2253, 365, 2255, + 37, 31, 170, 2259, 116, 352, 2262, 275, 342, 355, + 1973, 143, 169, 397, 2368, 3514, 284, 472, 5260, 253, + 5094, 5515, 294, 334, 156, 55, 3740, 2283, 3742, 161, + 198, 486, 1780, 5465, 381, 294, 240, 90, 2294, 5, + 2979, 162, 426, 277, 3543, 11, 2302, 2303, 161, 161, + 4647, 324, 5, 2309, 240, 3733, 1804, 3719, 11, 263, + 332, 5008, 2318, 264, 265, 485, 19, 451, 2359, 2360, + 490, 184, 2363, 332, 294, 196, 208, 3472, 3975, 143, + 451, 352, 240, 2339, 37, 449, 198, 2050, 2344, 2345, + 237, 2445, 156, 365, 278, 263, 228, 161, 194, 283, + 268, 472, 486, 2359, 2360, 3244, 365, 2363, 472, 2365, + 2366, 3250, 332, 3775, 2791, 3330, 2793, 2794, 94, 5066, + 241, 422, 237, 244, 242, 398, 397, 400, 487, 5371, + 3291, 490, 212, 2389, 3403, 3404, 2392, 2780, 398, 184, + 400, 2406, 310, 275, 208, 365, 86, 259, 5095, 2792, + 411, 263, 284, 426, 422, 426, 481, 358, 326, 2415, + 2416, 486, 82, 488, 228, 10, 5, 2887, 13, 442, + 487, 3041, 11, 490, 2430, 212, 2432, 2433, 22, 3006, + 451, 2824, 3286, 484, 28, 487, 487, 488, 490, 55, + 347, 167, 128, 394, 130, 487, 353, 42, 490, 487, + 280, 2164, 490, 360, 49, 352, 442, 2463, 2464, 2465, + 355, 275, 909, 2469, 5456, 486, 481, 914, 154, 2475, + 284, 486, 486, 488, 200, 2868, 218, 2483, 3332, 74, + 2486, 171, 11, 4760, 2525, 436, 2492, 352, 395, 215, + 484, 486, 486, 280, 488, 2501, 3116, 2503, 449, 225, + 397, 278, 3966, 5200, 194, 423, 487, 3284, 352, 490, + 417, 2517, 4725, 490, 2520, 487, 2522, 5042, 490, 2525, + 398, 472, 400, 2529, 487, 251, 2532, 490, 487, 426, + 487, 490, 397, 490, 487, 486, 3006, 490, 2544, 2545, + 422, 231, 487, 237, 5368, 490, 141, 487, 3684, 3685, + 490, 4898, 278, 486, 451, 487, 2562, 55, 490, 4906, + 3961, 426, 3981, 484, 487, 486, 2572, 490, 2574, 255, + 256, 257, 258, 2571, 2726, 487, 262, 2729, 490, 440, + 2732, 4680, 268, 442, 2531, 487, 451, 273, 490, 486, + 185, 45, 5254, 283, 237, 190, 2602, 486, 82, 488, + 93, 255, 256, 257, 258, 2976, 2977, 2720, 422, 3317, + 10, 487, 487, 13, 490, 490, 342, 17, 18, 19, + 113, 486, 449, 2629, 451, 2631, 2632, 2633, 2634, 398, + 487, 400, 227, 490, 34, 487, 32, 33, 490, 5336, + 3481, 2842, 214, 473, 474, 475, 469, 477, 478, 479, + 480, 481, 482, 3668, 147, 488, 487, 5481, 352, 490, + 348, 349, 3563, 2669, 3521, 3522, 3523, 3524, 348, 349, + 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, + 487, 487, 278, 490, 490, 280, 473, 474, 475, 161, + 477, 478, 479, 480, 481, 482, 469, 3554, 487, 3456, + 281, 490, 3556, 397, 430, 2906, 281, 4806, 398, 352, + 400, 278, 487, 5410, 2720, 490, 3293, 4539, 3295, 5416, + 2726, 411, 5546, 2729, 348, 349, 2732, 413, 3627, 3586, + 3587, 487, 426, 423, 490, 2741, 426, 2780, 424, 4280, + 281, 487, 487, 2749, 490, 490, 487, 487, 2754, 490, + 490, 398, 487, 400, 397, 490, 3445, 451, 449, 487, + 451, 10, 490, 3134, 13, 3666, 348, 349, 17, 18, + 19, 45, 2778, 2779, 2780, 370, 487, 2783, 486, 490, + 488, 2824, 3153, 426, 469, 2791, 2792, 2793, 2794, 449, + 487, 451, 486, 490, 37, 5227, 5228, 2024, 2804, 3376, + 2027, 2807, 10, 2809, 487, 13, 214, 490, 451, 17, + 18, 19, 212, 56, 2820, 2821, 487, 479, 2824, 490, + 5517, 487, 165, 3293, 490, 3295, 34, 490, 487, 487, + 3741, 490, 490, 486, 4262, 328, 2842, 487, 2844, 489, + 2846, 487, 2848, 486, 2873, 2874, 2875, 487, 487, 5315, + 490, 490, 10, 3622, 487, 13, 487, 490, 2571, 17, + 18, 19, 2868, 106, 487, 358, 2872, 490, 487, 487, + 237, 490, 490, 2879, 487, 470, 34, 490, 5350, 5351, + 280, 0, 477, 478, 479, 480, 481, 482, 487, 2895, + 489, 3711, 842, 2936, 844, 487, 487, 2903, 490, 490, + 487, 394, 487, 490, 51, 490, 3376, 487, 487, 55, + 490, 490, 2918, 10, 166, 3769, 13, 3771, 210, 488, + 17, 18, 19, 486, 486, 237, 2932, 170, 487, 487, + 2936, 490, 490, 2939, 453, 2941, 2879, 3308, 10, 3310, + 3794, 13, 4167, 436, 4169, 17, 18, 19, 95, 487, + 193, 486, 490, 486, 3795, 487, 449, 332, 490, 190, + 3814, 487, 34, 212, 490, 487, 3877, 148, 490, 487, + 42, 486, 490, 120, 93, 488, 2982, 49, 2984, 472, + 148, 190, 278, 2989, 3853, 352, 237, 237, 487, 2932, + 137, 490, 487, 486, 141, 490, 487, 487, 241, 490, + 490, 244, 74, 128, 212, 130, 0, 332, 4830, 278, + 3016, 148, 3018, 3019, 3020, 162, 259, 487, 165, 487, + 490, 148, 490, 487, 143, 487, 490, 190, 490, 154, + 397, 280, 10, 180, 148, 13, 487, 156, 487, 490, + 352, 490, 161, 3900, 278, 487, 3863, 166, 490, 487, + 293, 161, 490, 172, 212, 487, 175, 332, 490, 426, + 179, 148, 487, 4113, 42, 490, 487, 2780, 116, 490, + 226, 49, 280, 473, 474, 475, 430, 477, 478, 479, + 480, 481, 482, 278, 451, 397, 3287, 242, 487, 208, + 487, 490, 487, 490, 337, 490, 74, 486, 411, 93, + 3471, 352, 352, 487, 442, 487, 490, 292, 490, 228, + 272, 2824, 161, 185, 426, 212, 359, 487, 190, 486, + 490, 268, 280, 3516, 487, 487, 3132, 490, 490, 355, + 255, 256, 257, 258, 2847, 218, 379, 262, 263, 451, + 212, 213, 487, 268, 68, 490, 397, 397, 273, 143, + 2863, 487, 487, 37, 490, 227, 275, 3550, 487, 278, + 263, 490, 156, 141, 263, 284, 2879, 161, 453, 486, + 278, 318, 166, 358, 486, 426, 426, 487, 172, 487, + 490, 175, 490, 280, 487, 179, 487, 490, 4029, 490, + 487, 161, 487, 490, 266, 490, 487, 263, 45, 490, + 451, 451, 45, 263, 416, 3598, 263, 185, 280, 394, + 85, 283, 190, 294, 208, 442, 161, 442, 313, 2932, + 339, 148, 148, 2936, 473, 474, 475, 486, 477, 478, + 479, 480, 481, 482, 228, 486, 486, 148, 3244, 439, + 486, 306, 486, 148, 3250, 4102, 265, 5069, 36, 227, + 486, 436, 453, 3259, 148, 148, 148, 490, 3264, 3265, + 148, 148, 148, 148, 449, 473, 474, 475, 148, 477, + 478, 479, 480, 481, 482, 394, 148, 148, 4179, 161, + 148, 275, 148, 148, 278, 278, 37, 472, 413, 394, + 284, 226, 486, 3299, 3300, 3301, 4432, 4154, 370, 424, + 4201, 486, 280, 422, 161, 161, 278, 486, 6, 6, + 3316, 486, 486, 161, 486, 473, 474, 475, 6, 477, + 478, 479, 480, 481, 482, 3366, 486, 446, 6, 448, + 449, 6, 3338, 3339, 4023, 4024, 4025, 4026, 4027, 358, + 6, 486, 3348, 3349, 3350, 339, 486, 486, 3354, 450, + 486, 3357, 486, 486, 486, 486, 486, 486, 486, 290, + 3366, 210, 486, 486, 3362, 484, 486, 37, 487, 488, + 489, 486, 490, 486, 486, 394, 473, 474, 475, 486, + 477, 478, 479, 480, 481, 482, 486, 4788, 486, 97, + 486, 3389, 370, 486, 486, 486, 490, 226, 470, 37, + 394, 473, 474, 475, 490, 477, 478, 479, 480, 481, + 482, 161, 275, 161, 273, 3456, 365, 436, 490, 64, + 406, 3594, 406, 352, 4196, 406, 441, 406, 422, 3435, + 449, 4272, 352, 488, 352, 406, 228, 406, 406, 4903, + 406, 475, 406, 86, 352, 148, 278, 357, 223, 406, + 3456, 406, 446, 472, 448, 449, 268, 122, 406, 397, + 298, 278, 429, 3469, 273, 348, 3472, 486, 487, 486, + 489, 183, 406, 406, 486, 86, 490, 190, 122, 294, + 148, 406, 4393, 430, 430, 406, 122, 406, 3494, 406, + 484, 394, 470, 487, 488, 489, 394, 3503, 108, 477, + 478, 479, 480, 481, 482, 3511, 406, 3513, 122, 406, + 3516, 406, 55, 55, 248, 3521, 3522, 3523, 3524, 282, + 317, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, + 3536, 298, 406, 406, 3540, 3541, 406, 406, 298, 37, + 44, 44, 406, 397, 3550, 406, 406, 490, 3554, 3592, + 487, 406, 3558, 406, 3925, 3926, 406, 212, 56, 4187, + 3566, 406, 406, 3569, 406, 3571, 406, 278, 3611, 3770, + 212, 3600, 3601, 3602, 3603, 10, 491, 3583, 13, 212, + 3586, 3587, 17, 18, 19, 3591, 3592, 212, 278, 212, + 3596, 453, 3598, 212, 3795, 278, 278, 212, 406, 3605, + 3606, 3607, 3608, 4492, 212, 3611, 3612, 42, 106, 107, + 3616, 3617, 3618, 212, 49, 416, 114, 3623, 37, 486, + 148, 5443, 5444, 26, 278, 148, 263, 114, 430, 449, + 148, 148, 148, 234, 441, 3633, 263, 278, 3633, 74, + 0, 273, 263, 3649, 37, 3633, 263, 3633, 161, 3362, + 486, 486, 37, 3633, 218, 354, 486, 3663, 486, 3665, + 36, 4350, 4351, 404, 4353, 3608, 404, 406, 3611, 406, + 484, 484, 170, 406, 406, 486, 3389, 3683, 3684, 3685, + 148, 3687, 4539, 148, 430, 148, 430, 148, 148, 272, + 406, 267, 166, 445, 248, 193, 486, 248, 3704, 3705, + 3706, 3707, 13, 490, 404, 4413, 4099, 486, 486, 175, + 406, 157, 166, 408, 490, 487, 183, 208, 368, 183, + 490, 216, 279, 430, 490, 37, 287, 3733, 55, 487, + 352, 486, 216, 93, 216, 268, 430, 268, 411, 406, + 3683, 242, 406, 241, 406, 3751, 244, 161, 355, 6, + 185, 486, 278, 442, 268, 190, 5297, 45, 374, 218, + 348, 259, 397, 278, 263, 263, 278, 406, 226, 226, + 226, 4907, 122, 490, 332, 58, 3977, 212, 213, 365, + 184, 278, 278, 143, 278, 362, 406, 3802, 406, 37, + 320, 284, 227, 218, 487, 293, 156, 212, 3813, 430, + 430, 161, 148, 475, 273, 4954, 166, 316, 161, 92, + 37, 395, 172, 442, 163, 175, 362, 317, 273, 179, + 10, 273, 148, 13, 148, 486, 486, 148, 430, 263, + 37, 266, 263, 278, 278, 218, 449, 181, 181, 337, + 37, 161, 3848, 162, 246, 280, 356, 487, 208, 218, + 484, 362, 42, 4943, 161, 4945, 278, 469, 263, 49, + 469, 359, 190, 487, 490, 190, 453, 190, 228, 152, + 25, 173, 190, 190, 406, 37, 4730, 3883, 245, 3592, + 486, 379, 487, 381, 74, 166, 384, 487, 4259, 487, + 3896, 278, 3898, 490, 3900, 3608, 58, 490, 3611, 449, + 490, 3907, 55, 411, 187, 394, 272, 3913, 442, 218, + 166, 290, 487, 487, 487, 275, 487, 3923, 278, 487, + 3633, 487, 487, 486, 284, 487, 299, 487, 469, 166, + 92, 490, 3938, 486, 191, 370, 3942, 289, 487, 487, + 223, 486, 486, 200, 406, 240, 3952, 262, 486, 486, + 486, 208, 471, 428, 211, 3961, 446, 236, 446, 436, + 55, 486, 278, 194, 278, 3971, 486, 148, 475, 3975, + 4341, 281, 3970, 4830, 4758, 278, 3982, 3983, 406, 339, + 263, 453, 406, 406, 202, 151, 4187, 263, 486, 406, + 152, 268, 5141, 282, 148, 185, 357, 4854, 148, 3942, + 190, 365, 148, 357, 226, 194, 357, 4013, 151, 4015, + 278, 4639, 295, 5149, 5150, 406, 4022, 430, 151, 490, + 228, 427, 475, 151, 406, 187, 300, 300, 406, 406, + 352, 406, 4849, 10, 394, 470, 13, 227, 473, 474, + 475, 381, 477, 478, 479, 480, 481, 482, 406, 406, + 238, 4057, 238, 336, 4447, 338, 218, 340, 238, 406, + 352, 223, 422, 4069, 4692, 42, 349, 406, 406, 4440, + 352, 406, 49, 406, 357, 122, 263, 352, 365, 148, + 44, 212, 365, 212, 485, 212, 446, 487, 448, 449, + 280, 487, 487, 4099, 377, 212, 4102, 74, 406, 178, + 406, 263, 406, 386, 4110, 4111, 487, 390, 3, 161, + 490, 4117, 4118, 4954, 45, 487, 4122, 416, 334, 107, + 490, 161, 4128, 486, 484, 4131, 4132, 487, 488, 489, + 4136, 4137, 487, 295, 37, 148, 4142, 4143, 4144, 4145, + 4146, 406, 487, 148, 4150, 4151, 4152, 161, 4154, 4155, + 178, 485, 4158, 5289, 5043, 486, 4162, 487, 430, 430, + 4166, 444, 475, 148, 141, 281, 4172, 352, 4857, 352, + 352, 362, 6, 352, 336, 352, 146, 146, 340, 4868, + 370, 4187, 212, 212, 485, 490, 212, 349, 212, 212, + 4196, 212, 212, 212, 4200, 357, 139, 13, 484, 4205, + 4198, 4199, 4220, 365, 166, 490, 290, 161, 185, 487, + 166, 441, 5069, 190, 4220, 377, 486, 4223, 487, 4162, + 487, 487, 446, 4166, 386, 262, 487, 490, 390, 3942, + 166, 486, 490, 472, 175, 487, 5385, 4243, 4244, 403, + 487, 486, 339, 435, 84, 416, 161, 409, 5160, 37, + 227, 4266, 430, 218, 430, 406, 4262, 3970, 4947, 55, + 202, 4276, 397, 148, 170, 486, 381, 416, 357, 406, + 10, 4277, 151, 13, 406, 352, 406, 17, 18, 19, + 470, 406, 444, 406, 352, 5139, 448, 477, 478, 479, + 480, 481, 482, 487, 34, 55, 332, 449, 397, 161, + 436, 74, 42, 280, 10, 278, 148, 13, 107, 49, + 4681, 17, 18, 19, 487, 487, 486, 486, 416, 487, + 212, 4327, 212, 212, 212, 216, 201, 197, 486, 453, + 406, 278, 327, 490, 74, 210, 37, 298, 276, 487, + 3, 278, 486, 490, 416, 490, 4352, 406, 490, 224, + 362, 172, 486, 107, 166, 212, 166, 191, 55, 485, + 447, 4367, 447, 290, 215, 487, 200, 201, 487, 487, + 490, 288, 486, 486, 208, 487, 210, 211, 5235, 487, + 487, 487, 5236, 486, 215, 396, 486, 285, 5077, 55, + 224, 487, 179, 370, 403, 4401, 273, 475, 5106, 416, + 406, 166, 74, 449, 196, 191, 184, 184, 268, 268, + 475, 4417, 55, 397, 406, 490, 490, 4423, 675, 68, + 406, 148, 151, 406, 406, 487, 4432, 684, 212, 486, + 121, 168, 166, 114, 691, 37, 430, 694, 4639, 190, + 273, 4447, 4835, 486, 362, 185, 37, 163, 263, 4162, + 190, 430, 161, 4166, 4460, 362, 4462, 55, 449, 273, + 80, 4459, 397, 37, 166, 278, 161, 199, 449, 210, + 4940, 486, 212, 213, 281, 5103, 166, 435, 486, 4680, + 487, 4874, 486, 486, 4954, 4198, 4199, 227, 4692, 10, + 4496, 4692, 13, 470, 378, 298, 486, 5354, 487, 486, + 477, 478, 479, 480, 481, 482, 86, 215, 448, 487, + 129, 278, 486, 406, 37, 326, 487, 148, 148, 406, + 486, 42, 161, 486, 37, 268, 266, 486, 49, 486, + 194, 486, 239, 4539, 486, 486, 486, 362, 487, 4691, + 280, 148, 107, 283, 134, 4938, 4939, 37, 445, 282, + 416, 55, 376, 74, 487, 487, 376, 37, 77, 435, + 486, 486, 4568, 4569, 24, 486, 4572, 486, 490, 397, + 30, 183, 486, 161, 280, 430, 259, 486, 397, 278, + 397, 4587, 487, 4735, 4590, 6, 5443, 5444, 4594, 155, + 453, 147, 486, 4599, 349, 68, 4602, 4603, 68, 4605, + 486, 4607, 349, 4609, 4610, 281, 449, 129, 449, 435, + 490, 434, 72, 486, 5468, 486, 365, 37, 166, 4625, + 141, 4627, 397, 323, 268, 134, 196, 278, 278, 37, + 370, 362, 4638, 4639, 4640, 37, 4642, 486, 486, 281, + 281, 191, 168, 168, 4587, 490, 446, 406, 487, 486, + 55, 4594, 487, 119, 348, 385, 4599, 428, 487, 4602, + 6, 348, 144, 285, 185, 333, 126, 23, 486, 190, + 5063, 5141, 34, 133, 362, 268, 136, 486, 5532, 147, + 486, 486, 4625, 406, 77, 4691, 4692, 5080, 490, 490, + 166, 5084, 486, 5086, 348, 4638, 5550, 286, 955, 376, + 838, 376, 162, 449, 449, 486, 227, 168, 1612, 966, + 4618, 168, 877, 2529, 924, 972, 2887, 923, 975, 1347, + 3066, 2414, 2333, 3769, 5280, 2440, 3744, 2499, 3278, 4735, + 470, 4733, 4738, 473, 474, 475, 196, 477, 478, 479, + 480, 481, 482, 5139, 4750, 5385, 4459, 4753, 4788, 3923, + 490, 2983, 4758, 4403, 4760, 2669, 4757, 5259, 5374, 280, + 635, 4767, 4803, 4638, 4762, 5169, 641, 473, 474, 475, + 5168, 477, 478, 479, 480, 481, 482, 5300, 4784, 654, + 5410, 2987, 4788, 3971, 3956, 4791, 5113, 3914, 3764, 2514, + 1047, 1048, 1049, 2514, 3091, 3328, 4802, 4803, 4804, 259, + 3939, 635, 4800, 263, 4441, 4764, 2508, 641, 919, 4773, + 5280, 3340, 5387, 273, 5550, 5532, 4750, 3286, 3979, 5313, + 654, 4694, 282, 4926, 4830, 22, 5122, 4833, 4697, 4835, + 27, 4874, 1771, 28, 294, 4894, 670, 4032, 3981, 5478, + 1817, 675, 2183, 2961, 1826, 5043, 680, 1189, 4854, 370, + 684, 685, 1815, 1885, 4860, 1976, 3220, 691, 4864, 693, + 694, 4804, 4868, 671, 3332, 62, 704, 1976, 4874, 2439, + 3794, 1977, 706, 707, 3814, 335, 336, 4883, 75, 5341, + 4002, 4594, 5520, 717, 1431, 4004, 4599, 817, 2126, 4602, + 1920, 839, 2115, 90, 4621, 4200, 5253, 1367, 3663, 4905, + 2162, 4907, 5103, 1324, 2903, 365, 2918, 1390, 1389, 3626, + 5245, 5088, 2136, 4184, 2161, 5385, 1392, 3611, 4151, 4168, + 4865, 4864, 3608, 5066, 1397, 5065, 3664, 4933, 3608, 5526, + 5358, 5447, 4938, 4939, 131, 5235, 1850, 4943, 4944, 4945, + 4946, 3558, 4613, 5248, 4833, 142, 5249, 2073, 2847, 470, + 2750, 2845, 2469, 37, 2076, -1, 477, 478, 479, 480, + 481, 482, 796, 797, -1, -1, 163, -1, 802, -1, + 4976, 168, -1, 433, 58, -1, -1, 4983, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 826, -1, 828, -1, -1, -1, -1, 5005, + -1, -1, 5008, -1, -1, 839, -1, -1, 92, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5018, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 240, -1, -1, -1, -1, -1, 4762, + -1, -1, -1, -1, -1, -1, -1, 5063, -1, -1, + 5066, -1, -1, 5069, -1, 5008, 5459, 5073, 152, -1, + -1, -1, -1, -1, 5080, -1, -1, -1, 5084, -1, + 5086, -1, 5088, 280, -1, -1, -1, 4800, -1, 5095, + -1, -1, -1, -1, 5092, -1, -1, 5103, -1, -1, + -1, -1, -1, 187, -1, -1, -1, -1, 5114, -1, + -1, -1, 946, 947, 948, 5267, 313, 314, -1, -1, + -1, 955, -1, 5066, -1, -1, -1, -1, 962, -1, + -1, -1, 966, -1, 218, -1, -1, -1, 972, 223, + -1, 975, -1, 5149, 5150, -1, -1, -1, -1, 346, + -1, 4864, 5095, 987, -1, 352, -1, -1, -1, -1, + -1, 4874, 359, -1, -1, 362, -1, -1, 1002, -1, + -1, -1, -1, -1, 5180, -1, -1, -1, -1, 263, + -1, 5187, -1, -1, -1, 5191, -1, -1, -1, -1, + 5342, 5343, -1, -1, 5200, -1, -1, 394, -1, -1, + -1, -1, -1, -1, 401, -1, -1, -1, -1, -1, + 58, 295, 409, 1047, 1048, 1049, -1, -1, -1, 416, + 5226, 5227, 5228, -1, -1, -1, 5232, -1, -1, 5235, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5245, + -1, -1, 5248, -1, 92, 442, -1, 5253, -1, -1, + -1, -1, 336, 1087, -1, -1, 340, 5200, -1, -1, + 10, 5267, -1, 13, -1, 349, -1, 17, 18, 19, + -1, -1, -1, 357, -1, -1, 5282, -1, -1, -1, + -1, 365, -1, 5289, 34, -1, -1, -1, -1, -1, + 1124, -1, 42, 377, -1, 5008, -1, -1, -1, 49, + -1, -1, 386, -1, 152, 5018, 390, -1, 1142, 5315, + 10, -1, -1, 13, 5320, -1, 5314, -1, 1152, -1, + 5326, -1, -1, -1, 74, 409, 1160, -1, -1, -1, + 5336, -1, -1, -1, -1, -1, 5342, 5343, 5344, 187, + -1, -1, 42, 5341, -1, -1, 5341, -1, 5354, 49, + -1, -1, 5358, 5341, 1188, 5341, -1, -1, -1, -1, + 444, 5341, -1, 1197, 448, 1199, -1, -1, -1, -1, + -1, -1, -1, 5379, 74, 223, 5419, -1, -1, 5092, + -1, 1215, -1, -1, -1, 1219, -1, -1, -1, -1, + -1, -1, -1, 5336, -1, -1, -1, 1231, -1, -1, + 5552, 5553, -1, -1, 5410, 5411, 5412, -1, -1, -1, + 5416, 259, -1, -1, -1, 263, -1, -1, -1, -1, + -1, 5419, -1, -1, 5419, -1, -1, -1, 1262, -1, + -1, 5419, -1, 5419, -1, 185, -1, 5443, 5444, 5419, + 190, 141, -1, -1, -1, -1, 294, 295, 5454, -1, + -1, -1, -1, 5459, -1, -1, 1290, 1291, 1292, -1, + 1294, -1, 212, 213, -1, -1, -1, 5410, -1, -1, + -1, -1, -1, 5416, -1, -1, -1, 227, -1, -1, + 1314, -1, -1, 5489, 332, 185, -1, -1, 336, -1, + 190, -1, 340, 5499, -1, -1, -1, -1, -1, -1, + -1, 349, -1, -1, 1338, -1, -1, -1, 5514, 357, + -1, 5517, 1346, 1347, -1, -1, 266, 365, -1, -1, + 5526, -1, 5520, -1, 5530, 5520, 1360, 227, -1, 377, + 280, -1, 5520, 283, 5520, -1, -1, -1, 386, -1, + 5520, -1, 390, -1, -1, -1, 5552, 5553, 1382, -1, + -1, -1, 1386, 1387, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1401, -1, 1826, + -1, -1, 1829, 1407, 5517, -1, -1, -1, -1, 1413, + 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 680, 444, -1, -1, -1, + -1, 5314, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1874, 1875, -1, + 370, 706, -1, -1, -1, -1, -1, -1, 5341, 3, + -1, -1, 1889, -1, -1, 1892, 10, -1, -1, 13, + 1474, -1, -1, 17, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 34, -1, -1, 37, -1, -1, -1, -1, 42, 10, + 370, -1, 13, -1, -1, 49, 17, 18, 19, -1, + -1, 1515, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34, -1, 1952, -1, -1, 1955, 1956, + 74, 42, -1, -1, -1, -1, 5419, -1, 49, -1, + -1, -1, -1, -1, 1548, -1, -1, -1, -1, -1, + 470, -1, -1, 473, 474, 475, -1, 477, 478, 479, + 480, 481, 482, 74, -1, 1610, -1, 487, -1, -1, + 490, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 470, -1, -1, -1, -1, -1, 1610, 477, 478, 479, + 480, 481, 482, -1, -1, -1, -1, -1, -1, -1, + -1, 1625, 1626, 1627, -1, 10, -1, -1, 13, -1, + -1, -1, 17, 18, 19, -1, -1, 5520, -1, -1, + -1, 185, -1, -1, -1, -1, 190, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, + -1, -1, -1, -1, 49, -1, -1, -1, 212, 213, + -1, -1, -1, -1, 185, -1, -1, -1, -1, 190, + -1, -1, -1, 227, -1, -1, -1, -1, 10, 74, + -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, + -1, 212, 213, -1, -1, -1, -1, 962, -1, -1, + -1, -1, 34, -1, -1, -1, 227, -1, -1, -1, + 42, -1, 266, -1, 1728, -1, -1, 49, -1, -1, + -1, -1, 987, -1, -1, -1, 280, 1782, -1, 283, + -1, 1745, -1, -1, -1, 1790, -1, 1002, -1, -1, + -1, -1, 74, -1, 1758, 266, -1, 1802, -1, 1763, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, + -1, -1, 283, -1, -1, -1, -1, -1, 1782, -1, + -1, -1, -1, -1, -1, -1, 1790, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1802, -1, + 185, -1, -1, -1, -1, 190, -1, -1, -1, -1, + -1, -1, -1, 2240, -1, 1819, -1, -1, -1, -1, + 2247, -1, 1826, 2250, 2251, 1829, 370, -1, 1832, -1, + -1, -1, -1, 1878, -1, 1839, -1, -1, -1, -1, + -1, 1845, 227, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1857, -1, -1, -1, -1, -1, 370, + 1905, -1, -1, 185, -1, -1, -1, -1, 190, -1, + 1874, 1875, -1, 1877, 1878, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1889, -1, 1891, 1892, -1, + 212, 213, -1, -1, 17, 280, -1, 1901, 1902, -1, + 1904, 1905, -1, 26, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1920, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 470, -1, -1, 473, + 474, 475, -1, 477, 478, 479, 480, 481, 482, -1, + -1, -1, 1197, -1, 266, -1, -1, -1, 1952, -1, + -1, 1955, 1956, -1, -1, -1, -1, -1, 280, 470, + -1, 283, 473, 474, 475, -1, 477, 478, 479, 480, + 481, 482, -1, -1, -1, -1, 487, -1, -1, -1, + -1, -1, -1, -1, -1, 370, 1990, -1, 1992, -1, + -1, -1, -1, 1997, 1998, 27, -1, -1, -1, -1, + 2004, 2005, 2006, -1, -1, 2009, -1, 2011, -1, 2013, + 2014, 2015, 2016, 2017, 2018, -1, 2020, -1, 2022, 2023, + -1, -1, 2026, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2040, 2041, 2042, 2043, + 2044, 2045, -1, -1, 76, 2049, -1, -1, 370, 2053, + -1, -1, 2056, -1, -1, 2059, 2060, 2061, 2062, 2063, + 2064, 2065, 2066, 2067, -1, 2069, -1, -1, -1, -1, + -1, -1, 2076, -1, 2078, -1, 108, -1, -1, -1, + -1, -1, -1, 10, -1, 470, 13, -1, 473, 474, + 475, -1, 477, 478, 479, 480, 481, 482, -1, 131, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 142, 2115, -1, -1, -1, 42, -1, 2121, -1, -1, + -1, -1, 49, -1, -1, -1, 2171, -1, -1, -1, + -1, 163, 2136, -1, -1, -1, 168, -1, -1, -1, + -1, 2145, 2146, -1, 2189, -1, -1, 74, 470, -1, + 2195, 473, 474, 475, 2199, 477, 478, 479, 480, 481, + 482, -1, -1, 24, -1, 487, -1, 2171, 10, 30, + -1, 13, -1, -1, 2178, 17, 18, 19, 2182, 2183, + 2225, -1, 43, -1, -1, 2189, -1, 219, -1, -1, + 2194, 2195, 34, -1, -1, 2199, -1, -1, -1, -1, + 42, -1, -1, 2207, -1, -1, -1, 49, 240, -1, + 58, 72, -1, -1, 141, -1, -1, -1, -1, -1, + -1, 2225, -1, -1, 2228, 2270, -1, -1, -1, -1, + -1, -1, 74, -1, -1, -1, 2240, -1, -1, -1, + 2244, -1, -1, 2247, 92, 2290, 2250, 2251, -1, -1, + -1, -1, -1, -1, 2258, -1, -1, -1, 185, -1, + 1515, -1, -1, 190, -1, 126, 2270, -1, -1, -1, + -1, -1, 133, -1, -1, 136, -1, 2322, -1, -1, + -1, 313, 314, -1, -1, 317, 2290, 2291, -1, -1, + -1, -1, -1, 2720, -1, 2299, -1, -1, -1, 2726, + 227, 162, 2729, 2348, 152, 2732, -1, -1, -1, 2354, + -1, 343, -1, -1, 346, -1, 2361, 2321, 2322, -1, + 352, 2325, -1, 2368, -1, -1, 2371, 359, -1, -1, + -1, -1, 2377, -1, -1, 196, -1, -1, -1, 187, + -1, -1, -1, 185, 2348, -1, 2350, -1, 190, -1, + 2354, -1, 2397, 280, -1, -1, 388, 2361, 2403, -1, + -1, -1, 394, 2408, 2368, 397, -1, 2371, -1, -1, + 212, 213, -1, 2377, -1, 223, 2421, -1, -1, -1, + -1, -1, -1, -1, 416, 227, -1, -1, -1, 2434, + -1, -1, -1, 2397, -1, -1, -1, -1, 259, 2403, + 2445, -1, 263, -1, 2408, -1, -1, 2411, -1, -1, + 442, 259, 273, -1, -1, 263, -1, 2421, -1, -1, + -1, 282, -1, -1, 266, -1, -1, -1, -1, -1, + 2434, -1, -1, 294, -1, 2439, -1, -1, 280, -1, + -1, 2445, -1, 370, -1, -1, 294, 295, -1, -1, + -1, -1, 2879, -1, -1, -1, -1, -1, -1, 2463, + 2464, 2465, -1, -1, -1, 2469, -1, -1, -1, -1, + -1, 332, -1, 1728, 335, 336, -1, -1, -1, -1, + -1, -1, -1, -1, 332, -1, -1, -1, 336, -1, + 1745, -1, 340, -1, -1, 618, -1, 2501, 2502, -1, + -1, 349, -1, -1, 365, 2932, -1, 2511, 1763, 357, + -1, -1, -1, 24, -1, -1, -1, 365, -1, 30, + -1, -1, -1, -1, -1, -1, 37, -1, 370, 377, + -1, -1, -1, -1, -1, -1, -1, -1, 386, -1, + -1, 2545, 390, 470, -1, 56, -1, 670, 671, -1, + 477, 478, 479, 480, 481, 482, -1, -1, -1, 22, + -1, 72, -1, -1, 1819, 28, -1, -1, -1, -1, + -1, -1, 433, -1, -1, -1, -1, 1832, -1, -1, + 2584, -1, -1, 2587, -1, -1, -1, -1, 2592, -1, + 1845, -1, -1, -1, -1, 106, 444, -1, 2602, -1, + -1, -1, 1857, -1, -1, -1, -1, -1, 24, -1, + -1, -1, -1, -1, 30, 126, -1, -1, -1, -1, + -1, -1, 133, -1, -1, 136, -1, 43, 470, -1, + -1, 473, 474, 475, -1, 477, 478, 479, 480, 481, + 482, 764, -1, -1, 2648, 2690, 1901, 1902, -1, -1, + -1, 162, -1, -1, -1, -1, 72, -1, -1, -1, + -1, -1, -1, 2708, -1, -1, -1, 790, -1, -1, + -1, 2716, -1, -1, -1, 798, -1, -1, 801, 802, + 803, -1, 193, -1, -1, 196, 2690, -1, -1, -1, + -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, + 18, 19, 2706, -1, 2708, -1, -1, -1, 124, -1, + 126, -1, 2716, -1, -1, -1, 2720, 133, -1, 2723, + 136, -1, 2726, -1, 42, 2729, -1, -1, 2732, -1, + 241, 49, -1, 244, 2738, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2749, 162, -1, 259, -1, + 2754, -1, 263, -1, -1, -1, 74, -1, -1, -1, + -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, + -1, 282, -1, -1, 2778, 2779, 2780, -1, -1, 2783, + 196, -1, 293, 294, -1, 2040, -1, 2791, 2792, 2793, + 2794, 24, -1, -1, -1, 2799, -1, 30, -1, -1, + 2804, 2805, -1, 2807, -1, 2809, -1, -1, -1, -1, + 43, -1, -1, -1, -1, -1, 2820, 2821, -1, -1, + 2824, 332, -1, -1, 335, 336, 337, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, + 2844, -1, 2846, 259, 2848, -1, -1, 263, 359, -1, + -1, -1, -1, -1, 365, -1, -1, 273, -1, -1, + -1, -1, -1, -1, 2868, -1, 282, 185, 379, -1, + -1, -1, 190, 10, -1, 2879, 13, -1, 294, -1, + 17, 18, 19, 2887, -1, -1, -1, -1, -1, -1, + -1, 124, -1, 126, 212, 213, -1, 34, -1, 2903, + 133, -1, -1, 136, -1, 42, -1, -1, -1, 227, + -1, -1, 49, -1, 2918, -1, 332, -1, -1, 335, + 336, -1, 433, -1, -1, -1, -1, -1, 2932, 162, + -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2951, 266, 365, + 2954, -1, 2956, -1, -1, -1, -1, 2961, 3003, -1, + -1, -1, 280, 196, -1, -1, -1, -1, -1, -1, + -1, -1, 2976, 2977, -1, -1, -1, -1, 2982, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2244, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3003, + -1, -1, 3006, 2258, -1, -1, 3010, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 433, -1, 1142, + -1, -1, -1, -1, -1, 3029, 259, -1, -1, -1, + 263, -1, -1, -1, -1, -1, -1, 1160, -1, -1, + 273, -1, -1, -1, 2299, -1, -1, -1, 185, 282, + 3054, -1, 370, 190, -1, -1, -1, -1, -1, -1, + -1, 294, -1, -1, -1, -1, -1, -1, -1, 3114, + -1, 1194, -1, -1, -1, 212, 213, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3090, 3091, 3092, -1, + 227, -1, -1, -1, -1, -1, 1219, -1, -1, 332, + -1, -1, 335, 336, -1, -1, -1, -1, -1, -1, + 3114, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3124, -1, 3126, -1, -1, -1, -1, -1, -1, 266, + 3134, -1, 365, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 280, -1, -1, 283, -1, -1, 3153, + -1, -1, 470, -1, -1, 473, 474, 475, -1, 477, + 478, 479, 480, 481, 482, -1, -1, -1, -1, -1, + -1, -1, -1, 1296, -1, -1, -1, -1, -1, -1, + -1, 3608, 1305, -1, 3611, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3239, -1, 1319, -1, -1, -1, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3217, -1, 1338, -1, -1, 1341, 1342, + -1, -1, -1, 1346, 1347, -1, -1, -1, -1, -1, + -1, -1, -1, 370, -1, 3239, -1, 1360, -1, -1, + 3244, -1, -1, -1, -1, -1, 3250, 2502, -1, -1, + -1, -1, -1, -1, 3258, -1, 3683, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 730, -1, 732, + -1, 734, -1, -1, -1, -1, -1, 740, 741, 742, + -1, -1, 3286, 3287, -1, -1, -1, -1, -1, 3293, + -1, 3295, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3308, -1, 3310, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3332, -1, + -1, -1, -1, 470, -1, -1, 473, 474, 475, -1, + 477, 478, 479, 480, 481, 482, -1, -1, -1, -1, + 487, -1, 3356, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 24, -1, -1, -1, -1, 10, 30, -1, + 13, -1, 3376, 3377, 17, 18, 19, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3431, 3391, -1, -1, + -1, 34, -1, -1, -1, -1, -1, -1, -1, 42, + -1, -1, -1, -1, 3449, -1, 49, -1, -1, -1, + 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 885, -1, -1, -1, -1, 3431, -1, 3474, + -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1092, 1566, -1, 3449, -1, -1, -1, -1, + 1573, 2706, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1112, -1, 126, -1, -1, 3471, 2723, -1, + 3474, 133, 1122, -1, 136, -1, 1126, -1, -1, -1, + 1130, -1, 1132, 2738, -1, -1, -1, -1, 1138, -1, + 3494, -1, -1, 3497, 1144, -1, -1, 1147, -1, 3503, + 162, -1, -1, -1, -1, -1, -1, 3511, -1, 3513, + -1, -1, 3516, -1, -1, 3942, 3520, 3521, 3522, 3523, + 3524, -1, -1, 3527, 3528, 3529, 3530, 3531, 3532, 3533, + 3534, 3535, 3536, -1, 196, -1, 3540, 3541, -1, -1, + -1, 3545, 185, -1, -1, -1, 3550, 190, -1, -1, + 3554, -1, 3556, -1, 3558, -1, -1, -1, -1, -1, + -1, -1, 3566, -1, -1, 3569, -1, 3571, -1, 212, + 213, -1, -1, -1, -1, -1, -1, 3581, -1, 3583, + -1, -1, 3586, 3587, 227, -1, -1, 3591, 3592, -1, + -1, -1, -1, -1, 3598, -1, -1, 259, -1, -1, + -1, 263, -1, -1, 3608, -1, -1, 3611, -1, -1, + -1, 273, -1, -1, -1, -1, -1, -1, -1, 3623, + 282, -1, -1, 266, -1, -1, -1, -1, -1, -1, + -1, -1, 294, -1, -1, -1, -1, 280, -1, -1, + 283, -1, -1, -1, -1, 3649, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3665, 1785, -1, -1, -1, 1789, 3671, -1, 3714, + 332, -1, -1, 335, 336, -1, -1, -1, -1, 3683, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1160, -1, -1, + -1, -1, -1, 365, -1, -1, -1, -1, -1, -1, + 3714, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, + -1, -1, -1, -1, -1, 4162, -1, 10, -1, 4166, + 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, + -1, -1, -1, -1, -1, 3010, -1, -1, -1, -1, + 3764, 34, -1, -1, -1, 3769, 3770, 3771, -1, 42, + -1, 433, -1, -1, 3029, -1, 49, -1, -1, -1, + 24, -1, -1, -1, -1, 3830, 30, -1, 3833, -1, + 3794, 3795, -1, 37, -1, -1, -1, -1, -1, -1, + -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, + 3814, -1, 56, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3830, 470, 72, 3833, + 473, 474, 475, -1, 477, 478, 479, 480, 481, 482, + -1, -1, -1, -1, 487, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 106, -1, -1, -1, -1, -1, -1, 3124, + -1, 3126, -1, -1, -1, -1, -1, -1, 1341, -1, + 2003, -1, 126, 1346, 1347, -1, -1, -1, -1, 133, + 3935, -1, 136, -1, -1, -1, 3900, 1360, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3954, + -1, -1, 185, -1, -1, -1, -1, 190, 162, -1, + -1, 3925, 3926, -1, -1, 3929, -1, -1, -1, -1, + -1, 3935, -1, -1, -1, -1, -1, -1, 3942, 212, + 213, -1, -1, -1, -1, -1, -1, -1, -1, 193, + 3954, -1, 196, -1, 227, -1, -1, -1, -1, -1, + -1, -1, 3217, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2095, 3977, -1, -1, -1, 3981, 3982, 3983, + -1, -1, -1, -1, -1, -1, -1, 4032, -1, 1452, + 4417, -1, -1, 266, -1, -1, -1, 241, -1, 1462, + 244, -1, -1, 3258, -1, -1, -1, 280, -1, -1, + 283, -1, -1, -1, -1, 259, -1, -1, -1, 263, + -1, -1, -1, -1, -1, -1, -1, -1, 4032, 273, + -1, -1, -1, -1, -1, -1, -1, -1, 282, -1, + -1, -1, -1, 1506, 1507, -1, -1, -1, -1, 293, + 294, -1, -1, 4057, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4069, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2207, -1, 1549, -1, 332, 1552, + 1553, 335, 336, 337, -1, 4099, -1, 370, 4102, -1, + -1, 3356, -1, -1, -1, -1, 4110, 4111, -1, 4113, + -1, -1, -1, 4117, 4118, 359, -1, -1, 4122, 4123, + -1, 365, -1, -1, 4128, -1, -1, 4131, 4132, -1, + -1, -1, 4136, -1, -1, 379, 3391, -1, 4142, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4154, -1, -1, -1, 2277, -1, -1, -1, 4162, -1, + 4587, -1, 4166, -1, -1, -1, -1, 4594, 24, -1, + -1, -1, 4599, -1, 30, 4602, 4603, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 433, + -1, -1, 4196, -1, -1, -1, -1, 470, 4625, -1, + 473, 474, 475, -1, 477, 478, 479, 480, 481, 482, + -1, 4638, -1, -1, 487, -1, 72, -1, -1, 4223, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1880, -1, -1, 2356, -1, -1, -1, 4241, 1888, -1, + -1, -1, 3497, -1, -1, -1, -1, -1, -1, -1, + 2373, -1, -1, -1, 4299, 4259, -1, -1, 1908, -1, + 4264, -1, -1, -1, 4691, 3520, 4311, -1, -1, -1, + 126, -1, 1735, -1, -1, -1, -1, 133, 4282, -1, + 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3545, -1, -1, -1, -1, 4299, -1, -1, -1, -1, + 4304, -1, -1, -1, -1, -1, 162, 4311, 4735, -1, + -1, -1, -1, -1, 2437, -1, -1, -1, -1, -1, + -1, -1, -1, 4327, 10, -1, 3581, 13, -1, -1, + -1, 17, 18, 19, -1, -1, -1, 4341, -1, -1, + 196, -1, -1, -1, -1, -1, -1, -1, 34, -1, + 2473, -1, -1, 2476, -1, 2478, 42, -1, -1, 2482, + -1, 2484, 2485, 49, -1, -1, -1, -1, 4372, -1, + 2493, 2494, 2495, -1, -1, -1, -1, 4804, -1, -1, + 1843, -1, -1, -1, -1, -1, -1, -1, 74, -1, + 1853, -1, 1855, -1, -1, -1, -1, 4401, 1861, -1, + -1, -1, -1, 259, -1, 1868, -1, 263, -1, -1, + -1, -1, -1, 4417, -1, -1, -1, 273, -1, -1, + -1, -1, -1, -1, -1, 2548, 282, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4440, 4864, 294, -1, + -1, -1, -1, 4447, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2580, -1, -1, + -1, -1, -1, 2113, -1, -1, -1, -1, -1, 2592, + -1, -1, -1, -1, -1, 4520, 332, -1, -1, 335, + 336, -1, -1, -1, -1, -1, -1, -1, 4492, -1, + 4494, -1, -1, -1, -1, -1, -1, -1, -1, 185, + -1, -1, -1, -1, 190, -1, -1, -1, -1, 365, + -1, -1, -1, -1, -1, -1, 4520, -1, -1, -1, + -1, -1, -1, -1, -1, 2648, 212, 213, -1, -1, + -1, -1, -1, -1, -1, 4539, -1, 2000, 2001, 4543, + -1, 227, -1, -1, 2007, 2008, -1, -1, -1, -1, + -1, -1, 10, -1, -1, 13, 4983, -1, -1, 17, + 18, 19, -1, -1, 4568, 4569, -1, -1, 4572, -1, + -1, -1, -1, 2036, -1, -1, 34, 433, -1, -1, + 266, 5008, -1, 4587, 42, -1, -1, 4632, -1, 4634, + 4594, 49, -1, -1, 280, 4599, -1, 283, 4602, 4603, + -1, -1, -1, -1, -1, 4609, 4610, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, + -1, 4625, -1, 4627, -1, -1, -1, -1, 4632, -1, + 4634, -1, -1, -1, 4638, -1, -1, 24, -1, 5066, + -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5095, -1, + -1, -1, -1, -1, 3929, -1, 4680, 4681, -1, -1, + -1, -1, 2145, 2146, 370, 72, -1, 4691, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, -1, -1, -1, -1, 14, 15, -1, -1, -1, + -1, 20, -1, 22, -1, -1, -1, -1, -1, 28, + -1, 30, -1, -1, -1, -1, 4730, 185, -1, -1, + -1, 4735, 190, -1, -1, -1, -1, -1, -1, 126, + 49, 50, -1, -1, 2207, -1, 133, -1, -1, 136, + -1, -1, -1, -1, 212, 213, -1, -1, -1, -1, + -1, -1, -1, -1, 2887, -1, -1, -1, -1, 227, + -1, -1, -1, 5200, -1, 162, -1, -1, -1, -1, + -1, -1, -1, -1, 470, -1, -1, 473, 474, 475, + -1, 477, 478, 479, 480, 481, 482, -1, -1, -1, + 4804, 487, 4806, -1, -1, -1, -1, -1, 266, 196, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 280, -1, -1, 283, 4830, 4831, -1, 4833, + -1, 4835, -1, -1, -1, -1, -1, -1, -1, 2302, + 5267, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4854, -1, -1, -1, -1, -1, 4860, -1, -1, -1, + 4864, -1, -1, -1, -1, -1, 4870, -1, 4123, -1, + 4874, -1, 259, -1, -1, -1, 263, -1, -1, -1, + -1, -1, -1, 3006, -1, -1, 273, -1, -1, 198, + -1, -1, -1, 5320, -1, 282, -1, 206, -1, -1, + 209, -1, -1, 212, 213, -1, 215, 294, 217, 5336, + 4914, 220, 370, 222, -1, 5342, 5343, -1, -1, 4923, + 2383, -1, -1, -1, 4928, 4929, -1, -1, 2391, 4933, + -1, 2394, -1, -1, 4938, 4939, 4940, -1, -1, -1, + -1, -1, -1, 2406, -1, 332, -1, 2597, 335, 336, + 4954, -1, -1, -1, -1, 2605, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4976, 3096, -1, 2625, -1, -1, 365, 4983, + -1, -1, -1, 5410, -1, 2635, 4241, -1, 2638, 5416, + 2640, 2641, -1, -1, 2644, -1, -1, -1, -1, -1, + 2650, -1, 2652, -1, 5008, 2655, -1, -1, -1, -1, + -1, -1, 470, -1, -1, 473, 474, 475, -1, 477, + 478, 479, 480, 481, 482, -1, -1, 4282, 3151, 487, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5043, + 5044, -1, -1, -1, -1, -1, 433, -1, -1, 4304, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5063, + -1, -1, 5066, -1, -1, 5069, -1, -1, 2718, -1, + -1, -1, -1, -1, -1, -1, 5080, -1, -1, -1, + 5084, -1, 5086, -1, 5088, -1, -1, -1, -1, -1, + 5517, 5095, -1, -1, -1, -1, 3219, -1, -1, -1, + -1, -1, -1, 5530, -1, -1, -1, -1, 24, -1, + 5114, -1, -1, -1, 30, -1, -1, 4372, -1, -1, + -1, -1, -1, -1, -1, 5552, 5553, -1, -1, -1, + -1, -1, -1, -1, -1, 5139, -1, 5141, -1, -1, + 3263, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2615, 2616, 3277, 3278, 72, -1, 2621, -1, + -1, -1, -1, -1, 3287, -1, -1, -1, -1, -1, + 3293, -1, 3295, 10, -1, -1, 13, -1, -1, -1, + 17, 18, 19, -1, -1, -1, -1, 5191, -1, -1, + -1, -1, -1, -1, -1, -1, 5200, 34, -1, -1, + -1, -1, -1, -1, -1, 42, -1, -1, -1, 5254, + 126, -1, 49, -1, -1, -1, -1, 133, 3341, 2682, + 136, -1, 5226, 5227, 5228, -1, -1, -1, -1, -1, + -1, 5235, 5236, -1, -1, 5239, -1, 74, -1, 4494, + -1, 5245, 24, -1, -1, -1, 162, -1, 30, -1, + 5254, -1, 3375, 3376, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5267, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5280, -1, -1, -1, + 196, -1, -1, -1, -1, -1, -1, -1, 4543, -1, + 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5320, -1, -1, -1, + -1, -1, 5326, 632, -1, -1, -1, -1, -1, -1, + 639, 640, 5336, -1, 643, -1, 645, 646, 5342, 5343, + 5344, 650, 2992, 259, 126, -1, -1, 263, 185, 24, + 5354, 133, 661, 190, 136, 30, -1, 273, -1, -1, + -1, -1, 10, -1, -1, 13, 282, -1, -1, 17, + 18, 19, -1, -1, -1, 212, 213, -1, 294, -1, + 162, 5385, -1, -1, -1, -1, 34, -1, -1, -1, + 227, 700, -1, 702, 42, -1, -1, 72, -1, -1, + -1, 49, -1, 712, -1, -1, 5410, -1, -1, -1, + -1, -1, 5416, -1, 196, -1, 332, -1, -1, 335, + 336, -1, 2885, -1, 2887, 3075, 74, 3077, -1, 266, + -1, -1, -1, -1, -1, 744, -1, -1, -1, 5443, + 5444, -1, 3565, 280, -1, -1, 283, 2910, 2911, 365, + 5454, 126, -1, -1, -1, 5459, -1, -1, 133, -1, + -1, 136, -1, -1, 5468, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, + -1, 263, -1, -1, -1, 5489, -1, 162, 58, -1, + -1, 273, -1, -1, -1, 5499, -1, -1, -1, -1, + 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 294, 5517, -1, -1, -1, 433, -1, -1, + 829, 196, 92, -1, -1, -1, 5530, -1, 5532, -1, + -1, -1, -1, 370, -1, -1, 10, 185, -1, 13, + -1, -1, 190, 17, 18, 19, 5550, -1, 5552, 5553, + 332, -1, -1, 335, 336, -1, 865, -1, -1, -1, + 34, -1, -1, -1, 212, 213, 3216, -1, 42, -1, + -1, -1, 3222, -1, -1, 49, 4831, -1, -1, 227, + -1, -1, 152, 365, 259, -1, -1, -1, 263, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, + 74, -1, -1, -1, -1, -1, -1, 282, -1, -1, + -1, -1, -1, -1, -1, 4870, -1, 187, 266, 294, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 938, + -1, -1, 280, 470, -1, 283, 473, 474, 475, -1, + 477, 478, 479, 480, 481, 482, -1, 3770, 485, -1, + 959, 433, -1, 223, -1, -1, -1, 332, -1, -1, + 335, 336, 971, -1, -1, -1, -1, 976, 4923, -1, + -1, -1, 3795, 4928, 4929, -1, -1, 986, -1, -1, + 3803, -1, 991, 3806, -1, 3808, -1, -1, -1, 259, + 365, 1000, -1, 263, -1, -1, 1005, 10, -1, 1008, + 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, + -1, 185, -1, -1, -1, -1, 190, -1, -1, -1, + -1, 34, 370, -1, 294, 295, -1, -1, 3851, 42, + -1, -1, -1, -1, -1, -1, 49, -1, 212, 213, + -1, 1050, -1, -1, 3867, -1, -1, -1, 3871, 3872, + -1, 3874, -1, 227, -1, -1, -1, -1, 433, -1, + -1, 74, 332, -1, -1, -1, 336, -1, -1, 3419, + 340, 3421, -1, 3423, -1, -1, -1, -1, -1, 349, + -1, -1, 3432, -1, -1, -1, -1, 357, -1, 5044, + -1, -1, 266, -1, -1, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 280, 377, -1, 283, + -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, + 390, -1, 470, 3473, 3287, 473, 474, 475, -1, 477, + 478, 479, 480, 481, 482, -1, -1, -1, -1, 487, + -1, -1, -1, -1, -1, -1, -1, -1, 3311, -1, + -1, 3974, -1, -1, 3977, -1, 1165, -1, 1167, -1, + 1169, -1, 1171, -1, 1173, 1174, 1175, -1, -1, -1, + -1, 1180, 185, -1, 444, -1, -1, 190, -1, -1, + -1, -1, 1191, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 370, 1206, -1, 212, + 213, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4047, 4048, 4049, -1, 4051, 4052, + 4053, 4054, 4055, -1, -1, -1, -1, 3400, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 266, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, -1, 280, -1, -1, + 283, -1, -1, -1, -1, 24, -1, -1, -1, -1, + -1, 30, 20, -1, 5239, -1, -1, -1, -1, -1, + -1, -1, 30, -1, 32, 33, 470, -1, -1, 473, + 474, 475, -1, 477, 478, 479, 480, 481, 482, -1, + 48, -1, -1, 487, -1, -1, -1, -1, 3481, 57, + -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, + -1, 69, -1, 71, 72, -1, -1, -1, -1, -1, + 78, 10, 80, -1, 13, -1, -1, -1, 17, 18, + 19, -1, -1, 91, -1, 93, -1, 370, 1367, -1, + 4183, -1, 4185, -1, -1, 34, -1, -1, -1, -1, + -1, -1, 110, 42, -1, 113, -1, 126, -1, -1, + 49, -1, -1, -1, 133, -1, -1, 136, -1, 127, + -1, 129, -1, -1, -1, 133, -1, -1, -1, -1, + -1, 139, -1, -1, -1, 74, -1, -1, -1, 147, + -1, 149, -1, 162, -1, -1, -1, -1, 156, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 172, -1, -1, -1, -1, 1448, + -1, -1, -1, -1, -1, -1, -1, 196, -1, -1, + -1, 189, -1, -1, -1, -1, -1, 470, -1, -1, + 473, 474, 475, -1, 477, 478, 479, 480, 481, 482, + -1, -1, -1, -1, 487, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 229, 230, -1, 200, 201, -1, 235, -1, -1, + -1, -1, 208, -1, 210, 211, -1, -1, -1, 247, + 259, 1520, -1, -1, 263, -1, 185, -1, 224, -1, + -1, 190, -1, -1, 273, -1, -1, 265, -1, -1, + -1, -1, -1, 282, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 212, 213, 294, -1, 4370, 4371, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 227, -1, + 4383, -1, 4385, 4386, -1, -1, 4389, -1, -1, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 332, 322, -1, 335, 336, -1, -1, + 328, 329, -1, 331, -1, -1, -1, 266, 336, -1, + -1, -1, -1, 341, -1, -1, 344, 3770, -1, -1, + -1, 280, -1, 351, 283, -1, 365, -1, -1, 357, + 358, -1, -1, -1, -1, -1, -1, 365, -1, -1, + 4453, 369, 3795, -1, -1, -1, -1, -1, -1, 3802, + -1, 379, -1, -1, -1, -1, -1, -1, -1, -1, + 3813, -1, -1, -1, -1, -1, 394, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4017, 4491, -1, + -1, 4021, -1, -1, -1, -1, 414, -1, -1, -1, + -1, -1, -1, -1, 433, -1, -1, 425, -1, -1, + -1, -1, -1, 431, -1, -1, -1, -1, 436, -1, + -1, 370, -1, 4526, -1, -1, -1, -1, -1, -1, + -1, 449, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3888, 3889, -1, -1, -1, + -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 486, -1, + -1, 489, -1, -1, -1, -1, -1, -1, 1767, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 470, -1, -1, 473, 474, 475, -1, 477, 478, + 479, 480, 481, 482, 3977, -1, -1, 10, 487, -1, + 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 34, -1, -1, -1, -1, -1, -1, -1, 42, + -1, -1, -1, -1, -1, -1, 49, 4680, -1, -1, + -1, -1, -1, -1, -1, -1, 4029, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 74, -1, -1, -1, 1894, -1, 1896, -1, 4239, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4725, -1, 1913, -1, 1915, -1, -1, -1, + -1, 4734, -1, -1, -1, -1, -1, -1, -1, -1, + 1929, -1, 1931, -1, 1933, -1, 1935, -1, 1937, 635, + -1, -1, 1941, 4283, 4284, 641, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 654, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 670, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 684, 685, + -1, -1, -1, -1, -1, 691, -1, 693, 694, -1, + -1, -1, 185, -1, -1, -1, -1, 190, -1, -1, + -1, 707, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 717, -1, -1, -1, -1, -1, -1, -1, 212, + 213, -1, -1, 4373, 4374, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 266, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, + 283, -1, -1, -1, -1, -1, 802, -1, -1, -1, + -1, -1, -1, 4266, -1, -1, -1, -1, -1, 4272, + -1, -1, -1, 4276, -1, -1, -1, -1, -1, -1, + 826, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4954, -1, 839, -1, 4958, -1, -1, -1, 4302, + 4303, -1, -1, -1, 4307, 4308, -1, -1, -1, 4499, + -1, -1, -1, 4503, 4504, -1, -1, -1, -1, -1, + -1, -1, -1, 2172, 2173, -1, -1, -1, -1, 4519, + -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, + -1, -1, 2191, 2192, -1, -1, -1, 2196, 2197, -1, + -1, -1, 2201, -1, -1, 10, -1, -1, 13, -1, + -1, -1, 17, 18, 19, -1, 2215, -1, -1, -1, + -1, -1, -1, 2222, -1, -1, -1, 2226, 2227, 34, + -1, 2230, 2231, -1, -1, -1, -1, 42, 2237, -1, + -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, + -1, -1, 948, 2252, -1, 2254, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, + 966, -1, -1, 2272, -1, -1, 972, -1, 2277, 975, + -1, -1, -1, -1, -1, -1, -1, 470, -1, -1, + 473, 474, 475, 2292, 477, 478, 479, 480, 481, 482, + -1, -1, 2301, -1, 487, 2304, -1, 2306, 2307, 2308, + -1, -1, -1, -1, 2313, 2314, -1, -1, -1, -1, + -1, -1, -1, -1, 2323, -1, -1, -1, 5141, 2328, + -1, -1, 5145, 2332, 5147, -1, -1, -1, 5151, 5152, + -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, + 2349, -1, 17, 18, 19, -1, 2355, 2356, -1, -1, + -1, -1, -1, 2362, -1, -1, -1, -1, -1, 34, + -1, -1, -1, 2372, 2373, -1, -1, 42, -1, 2378, + 185, -1, -1, -1, 49, 190, -1, -1, -1, -1, + -1, 2390, -1, -1, 2393, -1, -1, -1, -1, 2398, + -1, -1, -1, -1, -1, 2404, 2405, 212, 213, 74, + -1, 2410, -1, -1, 2413, -1, -1, -1, 2417, 2418, + 2419, 2420, 227, 2422, -1, -1, -1, -1, 1124, -1, + -1, -1, -1, -1, -1, -1, 2435, 2436, -1, 2438, + -1, -1, -1, -1, -1, -1, 1142, -1, -1, -1, + 2449, 2450, 2451, -1, -1, -1, -1, -1, -1, -1, + -1, 266, -1, -1, 1160, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 280, -1, -1, 283, -1, + -1, -1, 10, -1, -1, 13, 4826, -1, -1, 17, + 18, 19, 1188, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1199, -1, -1, 34, -1, -1, -1, + -1, -1, -1, 2512, 42, -1, -1, -1, -1, 1215, + 185, 49, -1, 1219, -1, 190, -1, 4680, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2540, -1, -1, -1, -1, 74, 212, 213, -1, + -1, -1, -1, -1, -1, -1, 4896, -1, -1, -1, + -1, -1, 227, -1, -1, 370, -1, -1, -1, -1, + -1, -1, 5385, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 266, -1, -1, -1, -1, -1, -1, -1, 4949, + -1, -1, -1, -1, -1, 280, -1, -1, 283, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1338, -1, -1, -1, -1, -1, -1, -1, + 1346, 1347, -1, -1, -1, 5468, -1, 185, -1, -1, + -1, -1, 190, -1, 1360, 470, -1, -1, 473, 474, + 475, -1, 477, 478, 479, 480, 481, 482, -1, -1, + -1, -1, 487, -1, 212, 213, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 227, + 10, -1, -1, 13, -1, 370, -1, 17, 18, 19, + -1, -1, -1, -1, -1, -1, -1, 1413, -1, 5532, + -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, + -1, -1, 42, -1, -1, -1, -1, 5550, 266, 49, + -1, -1, -1, 2742, -1, -1, -1, -1, -1, -1, + -1, -1, 280, -1, -1, 283, -1, -1, -1, -1, + -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4954, -1, -1, -1, 470, -1, -1, 473, 474, + 475, -1, 477, 478, 479, 480, 481, 482, -1, -1, + -1, -1, 487, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, + 13, -1, 370, -1, 17, 18, 19, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 192, 193, + -1, 34, 196, -1, -1, -1, -1, -1, -1, 42, + -1, -1, -1, -1, -1, 185, 49, -1, -1, -1, + 190, -1, 216, -1, -1, -1, -1, -1, -1, 223, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 74, 212, 213, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1610, -1, -1, 227, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 470, -1, -1, 473, 474, 475, -1, 477, + 478, 479, 480, 481, 482, -1, 266, -1, -1, 487, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 280, -1, -1, 283, -1, -1, -1, -1, 5131, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3004, -1, -1, -1, 3008, + -1, -1, 185, -1, -1, 3014, -1, 190, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5369, + -1, -1, -1, 3032, 3033, -1, -1, -1, 3037, 212, + 213, -1, -1, 3042, 3043, 3044, -1, -1, -1, -1, + -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, + 370, -1, 1758, 10, -1, -1, 13, -1, -1, -1, + 17, 18, 19, -1, -1, -1, -1, -1, -1, 3078, + 3079, 3080, 3081, -1, -1, -1, 1782, 34, -1, -1, + -1, -1, -1, 266, 1790, 42, -1, -1, -1, -1, + -1, -1, 49, -1, -1, -1, 1802, 280, -1, -1, + 283, -1, -1, -1, -1, -1, 3115, -1, 3117, 3118, + 3119, -1, -1, -1, -1, -1, -1, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 470, -1, -1, 473, 474, 475, -1, 477, 478, 479, + 480, 481, 482, -1, -1, -1, -1, 487, 1874, 1875, + -1, 1877, 1878, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1889, -1, 1891, 1892, 370, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1904, 1905, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1920, -1, -1, -1, -1, -1, + -1, -1, 3231, -1, -1, -1, -1, -1, 185, -1, + -1, 3240, -1, 190, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1952, -1, -1, 1955, + 1956, -1, -1, -1, -1, 212, 213, -1, -1, -1, + -1, -1, 3271, -1, -1, -1, -1, -1, -1, -1, + 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 624, -1, 626, -1, -1, 3294, 630, 470, -1, -1, + 473, 474, 475, -1, 477, 478, 479, 480, 481, 482, + 644, -1, -1, -1, 487, 5468, -1, 651, -1, 266, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 280, -1, -1, 283, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3346, -1, 2045, + -1, -1, 3351, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5532, + -1, -1, -1, -1, -1, -1, 3385, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5550, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2115, + -1, -1, -1, 370, -1, -1, 201, -1, -1, 3428, + -1, 3430, -1, -1, -1, 210, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, + -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, + 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, + -1, 3470, -1, -1, -1, 2171, -1, -1, -1, 202, + -1, 34, -1, -1, -1, -1, -1, -1, -1, 42, + -1, 214, -1, 2189, -1, -1, 49, -1, 2194, 2195, + -1, -1, 225, 2199, -1, -1, -1, -1, -1, -1, + -1, 2207, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 74, -1, 470, -1, -1, 473, 474, 475, 2225, + 477, 478, 479, 480, 481, 482, -1, -1, -1, -1, + 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2247, -1, -1, 2250, 2251, -1, 891, 892, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, + -1, -1, 13, -1, 2290, 2291, 17, 18, 19, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, + -1, 42, -1, -1, -1, 2321, 2322, -1, 49, 2325, + -1, -1, 185, -1, -1, -1, -1, 190, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2348, 74, 2350, -1, 990, -1, 2354, 212, + 213, -1, -1, -1, -1, 2361, -1, -1, -1, -1, + -1, -1, 2368, -1, 227, 2371, -1, -1, -1, -1, + -1, 2377, -1, -1, -1, 1019, 1020, -1, -1, -1, + -1, 3690, -1, 3692, -1, -1, -1, -1, -1, -1, + 3699, 2397, -1, -1, -1, -1, -1, 2403, -1, -1, + -1, 1045, 2408, 266, -1, 2411, 3715, -1, -1, -1, + -1, -1, -1, -1, -1, 2421, -1, 280, 3727, -1, + 283, -1, 3731, 10, -1, -1, 13, -1, 2434, -1, + 17, 18, 19, 2439, -1, -1, -1, -1, -1, 2445, + 3749, -1, -1, -1, -1, -1, -1, 34, -1, -1, + -1, 38, -1, -1, 185, 42, -1, -1, 3767, 190, + -1, -1, 49, 3772, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1119, 1120, -1, -1, -1, + -1, 212, 213, -1, -1, -1, -1, 74, 3797, -1, + -1, -1, 3801, -1, -1, -1, 227, -1, -1, -1, + 3809, 3810, 3811, 3812, -1, 2511, -1, 370, -1, 3818, + 3819, 3820, 3821, -1, -1, -1, 3825, 3826, -1, -1, + -1, -1, 3831, 3832, -1, 3834, 3835, 3836, 3837, 3838, + 3839, 3840, -1, -1, -1, 266, 123, -1, -1, -1, + -1, 3850, -1, -1, -1, 3854, 3855, 3856, 3857, 280, + 635, -1, 283, -1, -1, -1, 641, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 654, + -1, 3880, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 616, -1, 670, 2592, -1, -1, 622, + 3899, -1, -1, -1, -1, -1, -1, -1, 185, -1, + 685, -1, -1, 190, -1, -1, -1, 470, 693, -1, + 473, 474, 475, -1, 477, 478, 479, 480, 481, 482, + -1, -1, 707, -1, 487, 212, 213, -1, -1, -1, + -1, -1, 717, -1, -1, -1, -1, -1, -1, 370, + 227, -1, 2648, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, + -1, -1, -1, -1, 2690, -1, -1, -1, -1, -1, + 3999, -1, -1, 280, -1, -1, 283, -1, -1, -1, + -1, -1, 2708, -1, -1, -1, -1, -1, -1, -1, + 2716, -1, -1, -1, -1, -1, -1, 802, -1, -1, + 2726, -1, -1, 2729, -1, -1, 2732, 4036, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 470, + -1, 826, 473, 474, 475, -1, 477, 478, 479, 480, + 481, 482, -1, -1, 839, 10, 487, -1, 13, -1, + -1, -1, 17, 18, 19, -1, 799, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, + -1, -1, -1, 370, -1, 818, -1, 42, -1, -1, + -1, -1, -1, 2799, 49, -1, -1, -1, -1, 2805, + -1, -1, -1, -1, -1, -1, -1, 840, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, + -1, -1, -1, 1467, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 430, -1, -1, -1, -1, 1492, -1, + -1, -1, -1, 886, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 948, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2887, -1, 470, -1, -1, 473, 474, 475, -1, + 477, 478, 479, 480, 481, 482, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 161, -1, -1, -1, + -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, + 185, -1, -1, -1, -1, 190, -1, -1, -1, -1, + 4249, -1, -1, -1, 4253, 4254, 4255, 4256, -1, -1, + -1, 4260, 1596, 1597, 1598, 1599, -1, 212, 213, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2976, 2977, 227, -1, -1, -1, -1, -1, -1, 1012, + -1, -1, -1, -1, -1, 4294, 4295, 4296, 4297, 4298, + -1, 4300, 4301, -1, -1, -1, -1, 3003, -1, -1, + 3006, -1, -1, 4312, 4313, -1, -1, -1, 1041, 1042, + 1043, 266, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 280, -1, -1, 283, -1, + -1, -1, -1, 4342, -1, -1, -1, -1, -1, 1124, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1142, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1160, -1, -1, -1, -1, + -1, -1, -1, -1, 3090, 3091, 3092, -1, -1, -1, + -1, -1, -1, 1737, 1738, -1, -1, -1, -1, -1, + -1, -1, -1, 1188, -1, -1, -1, -1, 3114, -1, + -1, -1, -1, 1757, 1199, 370, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3134, -1, + 1215, -1, -1, -1, 1219, -1, -1, 4446, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3153, 1792, 1793, + 1794, 1795, -1, -1, 1187, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + -1, -1, 1205, 17, 18, 19, -1, -1, -1, -1, + -1, 1214, -1, -1, -1, -1, -1, -1, -1, -1, + 34, -1, 796, 797, -1, -1, -1, 4506, 42, -1, + -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 470, -1, -1, 473, 474, + 475, -1, 477, 478, 479, 480, 481, 482, -1, -1, + 74, -1, -1, 3239, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1338, -1, -1, -1, -1, -1, -1, + -1, 1346, 1347, -1, -1, -1, 1910, -1, -1, -1, + -1, -1, 1916, -1, -1, 1360, -1, -1, -1, -1, + 3286, -1, -1, -1, -1, -1, -1, 3293, -1, 3295, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3308, -1, 3310, -1, -1, -1, -1, 4618, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1352, + -1, -1, -1, -1, -1, -1, 3332, -1, 1413, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 185, 946, 947, -1, -1, 190, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1398, -1, -1, 212, 213, + 3376, -1, -1, 4682, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, + -1, -1, 4701, -1, -1, -1, -1, 4706, 4707, -1, + -1, -1, -1, -1, 2048, -1, -1, 4716, -1, -1, + -1, -1, -1, -1, 4723, -1, -1, -1, -1, -1, + -1, -1, 266, -1, -1, 3431, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 280, -1, -1, 283, + -1, -1, -1, 3449, -1, 10, -1, 1480, 13, -1, + 4759, -1, 17, 18, 19, -1, 1489, -1, -1, -1, + -1, -1, -1, 307, -1, 3471, -1, -1, 3474, 34, + 4779, -1, 4781, -1, -1, -1, -1, 42, -1, -1, + -1, -1, -1, -1, 49, -1, -1, 4796, 1521, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4816, -1, 74, + -1, 1544, -1, -1, 1547, 4824, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1610, 370, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, + 3556, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1600, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4889, 1614, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 160, -1, -1, 2242, 2243, + -1, 4910, -1, -1, -1, -1, -1, -1, -1, 2253, + -1, 2255, -1, 4922, -1, 2259, -1, -1, -1, -1, + 185, -1, -1, -1, -1, 190, 470, 1231, -1, 473, + 474, 475, -1, 477, 478, 479, 480, 481, 482, -1, + -1, -1, -1, -1, -1, -1, -1, 212, 213, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1262, -1, + -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1758, -1, -1, -1, -1, 4987, -1, + -1, -1, -1, -1, -1, -1, 1290, 1291, 1292, -1, + 1294, -1, 1725, -1, -1, -1, -1, 1782, -1, -1, + -1, 266, -1, -1, -1, 1790, -1, -1, 3714, -1, + 1314, -1, -1, -1, -1, 280, -1, 1802, 283, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, -1, 5051, 1776, -1, 2389, -1, -1, 2392, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3764, -1, + -1, -1, -1, 3769, -1, 3771, -1, -1, -1, -1, + -1, -1, 1805, -1, -1, -1, -1, -1, 1382, 1812, + -1, -1, 1386, 1387, -1, -1, -1, -1, 3794, -1, + -1, -1, 1877, 1878, -1, -1, -1, -1, -1, -1, + -1, -1, 5111, -1, -1, 370, 1891, -1, 3814, -1, + -1, -1, -1, -1, -1, -1, -1, 5126, -1, 1904, + 1905, -1, -1, -1, 3830, -1, -1, 3833, -1, -1, + -1, 2475, -1, -1, -1, 1920, -1, -1, -1, 2483, + -1, -1, 2486, -1, -1, -1, -1, -1, 2492, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2503, + -1, 5170, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5185, -1, -1, -1, + -1, -1, -1, -1, -1, 1918, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2544, -1, -1, -1, -1, 470, -1, -1, 473, 474, + 475, -1, 477, 478, 479, 480, 481, 482, -1, 3925, + 3926, -1, -1, -1, -1, 1958, 1959, 10, 2572, 3935, + 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, + -1, -1, 1975, -1, -1, -1, -1, -1, 3954, -1, + -1, 34, -1, -1, 37, -1, -1, 5266, -1, 42, + 2045, -1, -1, -1, -1, -1, 49, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2631, -1, 2633, + -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5310, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1625, 1626, 1627, -1, -1, 4032, -1, -1, -1, + 2115, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2075, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2085, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, + -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, + -1, 2114, -1, -1, -1, -1, 2171, -1, 34, 5398, + -1, -1, 2125, 2126, -1, -1, 42, 2741, -1, -1, + -1, -1, 185, 49, 2189, -1, -1, 190, -1, 2194, + 2195, -1, -1, -1, 2199, -1, -1, -1, -1, -1, + -1, -1, 2207, -1, -1, -1, 2159, -1, 74, 212, + 213, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2225, -1, -1, -1, 227, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 266, -1, 2270, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, + 283, -1, -1, -1, -1, 2290, 2291, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2321, 2322, -1, 185, + 2325, -1, -1, -1, 190, -1, -1, -1, -1, -1, + -1, -1, -1, 4259, -1, -1, -1, -1, 4264, -1, + -1, -1, -1, 2348, -1, 2350, 212, 213, -1, 2354, + 2303, -1, -1, -1, -1, -1, 2361, -1, -1, -1, + -1, 227, -1, 2368, -1, 2318, 2371, 370, -1, -1, + -1, -1, 2377, 4299, -1, -1, -1, -1, -1, -1, + -1, 10, -1, -1, 13, 4311, 2339, -1, 17, 18, + 19, -1, 2397, -1, -1, -1, -1, -1, 2403, -1, + 266, -1, -1, 2408, -1, 34, 2411, -1, 37, -1, + -1, -1, -1, 42, 280, 4341, 2421, 283, -1, -1, + 49, -1, -1, -1, -1, -1, -1, -1, -1, 2434, + -1, -1, -1, -1, 2439, 301, -1, -1, -1, -1, + 2445, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, -1, 3016, -1, 3018, 3019, 3020, -1, -1, -1, + -1, -1, 2415, 2416, -1, -1, -1, 470, -1, -1, + 473, 474, 475, 1997, 477, 478, 479, 480, 481, 482, + -1, -1, -1, -1, -1, 2009, -1, 2011, -1, 2013, + -1, -1, 2016, 2017, 2018, -1, -1, -1, -1, 2023, + -1, -1, 2026, -1, 370, -1, 2511, -1, -1, -1, + -1, -1, -1, -1, 4440, -1, -1, 2041, 2042, 2043, + 2044, -1, -1, -1, -1, 2049, -1, -1, -1, 2053, + -1, -1, 2056, -1, -1, 2059, 2060, 2061, 2062, 2063, + 2064, 2065, 2066, 2067, -1, 2069, -1, -1, -1, -1, + -1, -1, 2076, -1, 2078, -1, 185, -1, -1, -1, + -1, 190, -1, -1, -1, -1, -1, -1, -1, 2522, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 212, 213, -1, -1, 2592, -1, -1, + -1, -1, -1, -1, 4520, -1, -1, 2121, 227, -1, + -1, -1, -1, -1, 470, -1, -1, 473, 474, 475, + -1, 477, 478, 479, 480, 481, 482, -1, -1, -1, + -1, 2145, 2146, -1, -1, -1, -1, -1, -1, -1, + 680, -1, -1, -1, -1, -1, -1, 266, -1, -1, + -1, -1, -1, 2648, -1, -1, -1, -1, -1, -1, + -1, 280, 10, -1, 283, 13, 706, -1, -1, 17, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, + -1, -1, -1, -1, 42, 2690, -1, -1, -1, -1, + 10, 49, -1, 13, -1, 3259, -1, 17, 18, 19, + -1, -1, -1, 2708, 2228, -1, 4632, -1, 4634, -1, + -1, 2716, -1, -1, 34, -1, 74, 37, -1, -1, + -1, -1, 42, -1, -1, -1, -1, -1, -1, 49, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 370, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 74, 4681, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4691, -1, -1, -1, -1, + -1, -1, -1, 10, -1, 680, 13, -1, -1, -1, + 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2799, -1, -1, 34, -1, -1, + 2805, 706, -1, -1, 4730, 42, -1, -1, 166, 4735, + -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, + -1, -1, 190, -1, -1, -1, -1, 74, -1, -1, + -1, 470, -1, -1, 473, 474, 475, -1, 477, 478, + 479, 480, 481, 482, 212, 213, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 185, -1, -1, -1, 227, + 190, 3435, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2887, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 212, 213, -1, -1, 946, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 227, 266, -1, + -1, -1, 962, -1, -1, -1, -1, -1, -1, 2872, + -1, -1, 280, -1, -1, 283, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 987, -1, 2463, + 2464, 2465, 2895, -1, -1, 2469, 266, -1, 185, -1, + -1, -1, 1002, 190, -1, -1, -1, -1, -1, -1, + 280, -1, -1, 283, -1, -1, -1, -1, -1, -1, + -1, 2976, 2977, -1, -1, 212, 213, 2501, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4914, -1, + 227, -1, -1, -1, -1, -1, -1, -1, 3003, -1, + -1, 3006, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 370, -1, 4940, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4954, 266, + -1, -1, -1, -1, -1, -1, -1, 1087, -1, -1, + -1, -1, -1, 280, -1, -1, 283, -1, -1, -1, + 370, -1, -1, -1, -1, -1, -1, 962, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 987, -1, -1, 3090, 3091, 3092, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1002, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3114, + -1, -1, 470, -1, -1, 473, 474, 475, -1, 477, + 478, 479, 480, 481, 482, -1, -1, -1, -1, 3134, + -1, -1, -1, 370, -1, -1, -1, -1, -1, -1, + 3704, 3705, 3706, 3707, -1, -1, -1, 1197, 3153, -1, + 470, -1, -1, 473, 474, 475, -1, 477, 478, 479, + 480, 481, 482, -1, -1, 402, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3132, + -1, -1, 1087, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5139, -1, 5141, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2749, -1, -1, -1, -1, + 2754, -1, -1, 470, 3239, -1, 473, 474, 475, -1, + 477, 478, 479, 480, 481, 482, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2780, -1, -1, -1, + -1, 680, -1, -1, -1, 10, -1, 2791, 13, 2793, + 2794, -1, 17, 18, 19, -1, -1, -1, -1, -1, + 2804, 3286, -1, 2807, -1, 2809, -1, 706, 3293, 34, + 3295, -1, 1197, -1, -1, -1, -1, 42, -1, -1, + -1, -1, -1, 3308, 49, 3310, -1, -1, -1, -1, + 5236, -1, -1, -1, -1, -1, -1, -1, -1, 3883, + 2844, -1, 2846, -1, 2848, -1, -1, 3332, 5254, 74, + -1, -1, -1, -1, 3898, -1, -1, -1, -1, -1, + -1, 5267, -1, -1, -1, -1, 3299, 3300, 3301, -1, + -1, -1, -1, -1, 5280, -1, -1, 1407, -1, -1, + -1, -1, -1, 3316, -1, -1, -1, -1, -1, -1, + -1, 3376, -1, -1, -1, -1, -1, -1, -1, 2903, + -1, -1, -1, -1, -1, -1, 3339, -1, -1, -1, + -1, -1, -1, -1, 2918, -1, 3349, 3350, -1, -1, + -1, 3354, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 10, -1, -1, 13, -1, 5342, 5343, 17, 18, + 19, -1, -1, -1, 1474, -1, 3431, -1, -1, -1, + -1, -1, -1, -1, -1, 34, 1341, -1, 37, -1, + 185, -1, -1, 42, 3449, 190, -1, -1, -1, -1, + 49, -1, -1, -1, -1, -1, -1, -1, 2982, 5385, + -1, -1, -1, -1, -1, 1515, 3471, 212, 213, 3474, + -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1548, -1, + -1, -1, 1407, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3469, -1, -1, 3472, + -1, 266, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 280, -1, -1, 283, -1, + -1, -1, 5468, 962, -1, -1, -1, -1, -1, -1, + -1, 3556, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 987, 1474, + -1, -1, -1, -1, -1, 1625, 1626, 1627, -1, -1, + -1, -1, -1, 1002, -1, -1, 185, -1, -1, -1, + -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5532, -1, -1, -1, + 1515, -1, -1, 212, 213, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5550, 370, 5552, 5553, 227, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1548, -1, -1, -1, -1, -1, -1, + -1, -1, 3605, 3606, 3607, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 266, 1087, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1728, -1, + -1, 280, -1, -1, 283, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1745, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3714, + -1, -1, -1, 1763, -1, -1, -1, -1, -1, -1, + 3244, -1, -1, -1, -1, 470, 3250, -1, 473, 474, + 475, -1, 477, 478, 479, 480, 481, 482, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3764, + -1, -1, -1, -1, 3769, -1, 3771, -1, -1, 1819, + -1, 370, -1, -1, -1, -1, -1, -1, 1197, 680, + -1, -1, 1832, -1, -1, -1, -1, -1, 4352, 3794, + -1, -1, -1, -1, -1, 1845, -1, -1, -1, -1, + -1, -1, -1, 4367, -1, 706, -1, 1857, -1, 3814, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1728, -1, 3830, -1, -1, 3833, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1745, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1901, 1902, -1, -1, -1, -1, -1, 1763, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 470, -1, -1, 473, 474, 475, -1, 477, 478, + 479, 480, 481, 482, -1, 22, -1, -1, -1, -1, + 27, -1, -1, -1, -1, -1, 4460, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1819, -1, -1, -1, -1, -1, + 3925, 3926, -1, -1, -1, 62, -1, 1832, -1, -1, + 3935, -1, -1, -1, -1, -1, -1, -1, 75, -1, + 1845, -1, -1, 3896, -1, -1, -1, -1, -1, 3954, + -1, -1, 1857, 90, 3907, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3494, 108, -1, -1, -1, -1, -1, -1, -1, 3503, + -1, -1, -1, -1, -1, 3938, -1, 3511, 1407, 3513, + 2040, -1, -1, -1, 131, -1, 1901, 1902, -1, -1, + -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, + -1, -1, -1, -1, 151, -1, 3540, 3541, 3971, -1, + -1, -1, -1, -1, -1, -1, 163, 4032, 2078, -1, + -1, 168, -1, -1, 3558, -1, -1, -1, 175, -1, + -1, -1, 3566, -1, -1, 3569, -1, 3571, -1, -1, + -1, -1, -1, -1, -1, 1474, -1, 194, -1, 3583, + -1, 962, -1, -1, -1, -1, -1, 3591, 3592, 4022, + -1, -1, -1, -1, -1, -1, 4640, -1, 4642, -1, + -1, -1, -1, -1, -1, -1, 987, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1515, -1, -1, 3623, + -1, 1002, -1, 240, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3649, -1, -1, 2178, 1548, + -1, -1, 2182, 2183, 680, 2040, -1, -1, -1, -1, + -1, 3665, -1, 280, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 293, -1, -1, -1, + 706, -1, -1, -1, -1, -1, 303, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, -1, -1, + 317, -1, -1, -1, -1, -1, 1087, -1, -1, -1, + 4143, 4144, 4145, 4146, 2244, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 343, -1, 2258, 346, + -1, -1, -1, 350, -1, 352, -1, -1, -1, -1, + -1, -1, 359, -1, -1, 362, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4802, -1, + -1, -1, -1, -1, 381, -1, -1, -1, -1, 2299, + -1, 388, -1, -1, 4259, -1, -1, 394, -1, 4264, + 397, -1, -1, -1, 401, -1, -1, -1, -1, -1, + -1, -1, 409, 2178, 411, -1, -1, 2182, 2183, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 429, -1, 4299, -1, 1197, -1, -1, -1, + -1, -1, -1, -1, -1, 442, 4311, -1, -1, 1728, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1745, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4341, -1, -1, 2244, + -1, -1, -1, -1, 1763, -1, -1, -1, -1, -1, + -1, -1, -1, 2258, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4944, -1, 4946, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2299, -1, -1, -1, -1, -1, + 1819, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1832, -1, 2465, 962, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1845, -1, -1, -1, + -1, -1, -1, -1, -1, 4440, -1, -1, 1857, -1, + -1, 987, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2502, -1, -1, -1, 1002, -1, 3982, 3983, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1901, 1902, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1407, -1, -1, -1, + -1, -1, -1, -1, -1, 4520, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4057, 2584, -1, -1, 2587, -1, -1, + -1, 1087, -1, 4496, -1, 4069, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1474, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4110, 4111, -1, -1, + -1, -1, -1, 4117, 4118, -1, -1, 2502, 4122, -1, + -1, -1, -1, -1, 4128, -1, -1, 4131, 4132, -1, + 680, -1, 4136, -1, 1515, -1, 5180, 22, 4142, -1, + -1, 2040, -1, -1, -1, -1, -1, 4632, -1, 4634, + -1, -1, -1, -1, 39, -1, 706, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1548, -1, -1, + -1, 1197, -1, -1, -1, -1, 2706, 62, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 75, -1, 4196, 2723, -1, -1, 4681, -1, -1, 2584, + -1, 86, 2587, -1, -1, 90, -1, -1, 2738, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4223, + -1, -1, -1, 108, -1, -1, -1, -1, -1, 114, + -1, -1, -1, -1, -1, -1, -1, -1, 5282, -1, + -1, -1, -1, -1, -1, 4730, 131, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, + -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 163, 2178, + -1, -1, -1, 2182, 2183, -1, 171, -1, -1, -1, + 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4738, -1, -1, -1, 194, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4753, 2706, -1, 4327, -1, 4758, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5379, -1, -1, 2723, -1, + -1, -1, -1, -1, -1, 2244, 231, 1728, -1, -1, + -1, 4784, -1, 2738, -1, 240, -1, -1, -1, 2258, + -1, -1, -1, -1, 1745, -1, -1, 5411, 5412, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1407, 1763, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 280, -1, 4401, 283, -1, + 2299, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 962, -1, -1, -1, -1, -1, 303, -1, + -1, 2951, -1, -1, 2954, -1, 2956, -1, -1, 4914, + -1, 2961, 317, -1, -1, -1, -1, 987, 1819, 324, + -1, -1, -1, -1, -1, -1, -1, -1, 1474, -1, + -1, 1832, 1002, -1, -1, 4940, -1, -1, 343, -1, + -1, -1, -1, -1, 1845, -1, -1, 352, -1, 4954, + 5514, -1, 4905, -1, 359, -1, 1857, 362, -1, -1, + 3010, -1, -1, -1, -1, -1, -1, -1, -1, 1515, + -1, -1, -1, -1, -1, -1, 381, -1, -1, 3029, + -1, -1, -1, 388, -1, -1, -1, -1, -1, 394, + -1, -1, 397, 398, -1, 400, 401, -1, -1, -1, + 1901, 1902, 1548, -1, 3054, -1, 411, -1, -1, -1, + -1, 416, -1, -1, -1, -1, -1, 1087, 423, -1, + -1, 426, -1, -1, 429, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 442, -1, -1, + -1, -1, -1, -1, 4568, 4569, 2951, -1, 4572, 2954, + -1, 2956, 5005, -1, -1, -1, 2961, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3124, -1, 3126, -1, -1, -1, + -1, -1, -1, 2502, -1, 4609, 4610, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4627, -1, 3010, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3029, -1, -1, 1197, -1, -1, + -1, -1, -1, -1, 5139, -1, 5141, -1, -1, 2040, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3054, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2584, -1, 3217, 2587, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1728, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3244, -1, -1, -1, -1, 1745, + 3250, -1, -1, -1, -1, -1, -1, 680, 3258, -1, + -1, -1, -1, -1, -1, -1, 680, 1763, -1, 3124, + -1, 3126, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5236, -1, 706, -1, -1, -1, 3287, -1, -1, + -1, -1, 706, -1, -1, -1, -1, -1, -1, 5254, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1819, -1, 5280, -1, 2178, -1, -1, + -1, 2182, 2183, -1, -1, -1, 1832, 2706, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1845, + -1, -1, -1, -1, 2723, -1, 3356, -1, -1, 4833, + -1, 1857, 3217, -1, -1, -1, -1, -1, -1, 2738, + -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, + -1, -1, -1, -1, -1, -1, 4860, 1407, -1, -1, + -1, 3391, -1, 2244, -1, -1, -1, -1, -1, -1, + 4874, -1, -1, 3258, -1, 1901, 1902, 2258, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, 27, -1, -1, -1, + 5385, -1, 3287, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2299, -1, + -1, -1, -1, -1, 1474, -1, -1, -1, -1, 4933, + -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 86, -1, -1, -1, 90, + -1, -1, -1, -1, -1, 1515, -1, 3497, -1, -1, + -1, 3356, 4976, -1, -1, -1, -1, 108, -1, -1, + -1, -1, -1, 5468, -1, -1, -1, -1, -1, -1, + 3520, -1, 3377, -1, -1, -1, -1, -1, 1548, -1, + 131, -1, -1, -1, -1, -1, 3391, -1, -1, 962, + -1, 142, -1, -1, 2040, 3545, -1, -1, 962, -1, + 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 163, -1, 987, -1, -1, 168, -1, -1, + -1, -1, -1, 987, -1, -1, -1, 5532, -1, 1002, + -1, 3581, 2951, -1, -1, 2954, -1, 2956, 1002, -1, + -1, -1, 2961, 194, -1, 5550, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5088, -1, -1, -1, 219, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, + 5114, 3010, 3497, -1, -1, -1, -1, -1, -1, -1, + -1, 2502, -1, -1, -1, -1, -1, -1, -1, -1, + 3029, -1, -1, -1, 1087, 3520, -1, -1, -1, -1, + -1, 3671, -1, 1087, -1, -1, -1, -1, -1, 280, + -1, -1, 2178, -1, -1, 3054, 2182, 2183, -1, -1, + 3545, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 303, -1, -1, -1, -1, -1, 1728, -1, + -1, -1, 313, 314, -1, -1, 317, 5191, -1, -1, + -1, -1, -1, -1, -1, 1745, 3581, -1, -1, -1, + -1, -1, -1, 2584, -1, -1, 2587, -1, -1, -1, + -1, -1, 343, 1763, -1, 346, -1, -1, 2244, 350, + -1, 352, 5226, 5227, 5228, 3124, -1, 3126, 359, -1, + -1, 362, 2258, -1, -1, -1, -1, -1, -1, -1, + 3770, 5245, -1, -1, 1197, -1, -1, -1, -1, -1, + 381, -1, -1, 1197, -1, -1, -1, 388, -1, -1, + -1, -1, -1, 394, -1, 3795, 397, -1, -1, 1819, + 401, -1, -1, 2299, -1, -1, -1, -1, 409, -1, + 411, -1, 1832, -1, -1, 416, 3671, -1, -1, -1, + -1, -1, -1, -1, -1, 1845, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1857, -1, -1, + -1, 442, -1, -1, -1, -1, -1, -1, 3217, -1, + -1, -1, 5326, -1, -1, 2706, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5344, -1, 2723, -1, -1, -1, -1, -1, -1, -1, + -1, 1901, 1902, -1, -1, -1, -1, 2738, -1, 3258, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3770, -1, -1, 3287, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3929, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3795, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3977, -1, -1, + 5454, 3981, -1, -1, 1407, -1, -1, 3356, -1, -1, + -1, -1, -1, 1407, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2502, -1, 3377, -1, + -1, -1, -1, -1, -1, 5489, -1, -1, -1, -1, + 2040, -1, 3391, -1, -1, 5499, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1474, -1, -1, -1, -1, -1, -1, -1, -1, + 1474, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3929, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2584, -1, + -1, 2587, 1515, -1, -1, -1, -1, -1, -1, -1, + 2951, 1515, -1, 2954, -1, 2956, -1, -1, -1, -1, + 2961, -1, -1, 4113, -1, -1, -1, -1, -1, -1, + -1, -1, 3977, 4123, -1, 1548, 3981, -1, 3497, -1, + -1, -1, -1, -1, 1548, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3520, -1, -1, -1, -1, -1, -1, 2178, 3010, + -1, -1, 2182, 2183, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3545, -1, 3029, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3054, -1, -1, -1, -1, -1, -1, + 2706, -1, 3581, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 27, -1, 2244, -1, -1, 2723, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2258, -1, + -1, 4241, 2738, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4113, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4123, -1, + 75, -1, -1, 3124, -1, 3126, -1, -1, -1, 2299, + -1, -1, 4282, -1, -1, 90, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3671, 108, 4304, 1728, -1, -1, -1, 114, + -1, -1, -1, -1, 1728, -1, -1, -1, -1, -1, + -1, -1, 1745, -1, -1, -1, 131, -1, -1, -1, + -1, 1745, -1, -1, -1, -1, -1, 142, -1, -1, + 1763, -1, -1, -1, -1, -1, 151, -1, -1, 1763, + -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, + -1, -1, -1, 168, -1, -1, 3217, -1, -1, -1, + 175, -1, 4372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4241, -1, -1, 194, + -1, -1, -1, -1, -1, -1, 1819, -1, -1, -1, + -1, 3770, -1, -1, -1, 1819, -1, 3258, -1, 1832, + -1, -1, -1, -1, 219, -1, -1, -1, 1832, -1, + -1, -1, 1845, -1, -1, -1, 3795, 4282, -1, -1, + -1, 1845, -1, -1, 1857, 240, 3287, -1, -1, -1, + -1, -1, -1, 1857, -1, -1, -1, -1, -1, 4304, + -1, -1, -1, -1, -1, 2951, -1, -1, 2954, -1, + 2956, -1, -1, -1, -1, 2961, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 280, -1, -1, 1901, 1902, + -1, -1, 2502, -1, -1, -1, -1, 1901, 1902, -1, + -1, -1, 4492, -1, 4494, -1, -1, -1, 303, -1, + -1, -1, -1, -1, -1, 3356, -1, -1, 313, 314, + -1, -1, 317, -1, 3010, -1, -1, 4372, -1, -1, + -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, + -1, -1, -1, 3029, -1, -1, -1, -1, 343, -1, + 3391, 346, -1, 4543, -1, 350, -1, 352, -1, -1, + -1, -1, -1, -1, 359, -1, -1, 362, 3054, -1, + 3929, -1, -1, -1, 2584, -1, -1, 2587, -1, -1, + -1, -1, -1, -1, -1, -1, 381, -1, -1, -1, + -1, -1, -1, 388, -1, -1, -1, -1, 393, 394, + -1, -1, 397, -1, -1, -1, 401, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 411, -1, 3977, -1, + -1, 416, 3981, -1, -1, -1, -1, 2040, -1, -1, + -1, -1, -1, -1, 429, -1, 2040, -1, 3124, -1, + 3126, -1, -1, -1, -1, -1, -1, 442, -1, 4494, + -1, -1, -1, -1, -1, -1, 3497, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4680, -1, -1, -1, -1, -1, 2706, -1, 4543, -1, + -1, -1, -1, -1, 3545, -1, -1, -1, -1, -1, + -1, -1, -1, 2723, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2738, -1, + -1, 3217, -1, -1, -1, -1, -1, -1, -1, -1, + 3581, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4113, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4123, 2178, -1, -1, -1, 2182, + 2183, -1, 3258, -1, 2178, -1, -1, -1, 2182, 2183, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3287, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4806, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3671, 2244, -1, -1, -1, 4680, -1, -1, -1, -1, + 2244, 4831, -1, -1, -1, 2258, -1, -1, -1, -1, + -1, -1, -1, -1, 2258, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3356, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4870, -1, 4241, -1, -1, -1, 2299, -1, -1, -1, + -1, 3377, -1, -1, -1, 2299, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3391, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4282, -1, -1, -1, -1, -1, 3770, + -1, -1, -1, 4923, -1, -1, -1, -1, 4928, 4929, + -1, 2951, -1, -1, 2954, 4304, 2956, -1, -1, -1, + -1, 2961, -1, -1, 3795, -1, -1, -1, -1, -1, + -1, 4806, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4831, -1, -1, -1, + -1, -1, -1, 1306, -1, -1, -1, -1, -1, -1, + 3010, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3497, -1, 4372, -1, -1, -1, -1, -1, 3029, + -1, -1, -1, -1, -1, 4870, -1, -1, -1, -1, + -1, -1, -1, -1, 3520, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3054, -1, -1, -1, -1, -1, + -1, 1364, -1, 5043, 5044, -1, -1, -1, -1, 3545, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4923, -1, + -1, -1, -1, 4928, 4929, -1, -1, -1, 3929, 2502, + -1, -1, -1, -1, -1, 3581, -1, -1, 2502, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3124, -1, 3126, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4494, 3977, -1, -1, -1, + 3981, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2584, -1, -1, 2587, -1, -1, -1, -1, -1, + 2584, -1, -1, 2587, 4543, 3671, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5044, + -1, -1, -1, -1, -1, -1, -1, 3217, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -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, 5239, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4113, -1, -1, -1, -1, 3287, -1, -1, + -1, -1, 4123, -1, 3770, -1, -1, -1, -1, -1, + -1, -1, -1, 2706, -1, -1, -1, -1, -1, -1, + -1, -1, 2706, -1, -1, -1, -1, -1, -1, 3795, + 2723, -1, -1, -1, -1, -1, -1, -1, 1631, 2723, + -1, 4680, 1635, -1, -1, 2738, -1, -1, -1, -1, + -1, -1, -1, -1, 2738, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3356, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3391, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5239, -1, -1, -1, -1, -1, + 4241, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4282, -1, 3929, -1, -1, -1, 4806, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4304, -1, -1, -1, -1, -1, -1, + -1, -1, 4831, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3497, -1, -1, + -1, 3977, -1, -1, -1, 3981, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3520, 4870, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4372, -1, -1, -1, 3545, -1, -1, 2951, -1, + -1, 2954, -1, 2956, -1, -1, -1, 2951, 2961, -1, + 2954, -1, 2956, -1, -1, -1, -1, 2961, -1, -1, + -1, -1, -1, -1, 4923, -1, -1, -1, -1, 4928, + 4929, 3581, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3010, -1, -1, + -1, -1, -1, -1, -1, -1, 3010, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3029, -1, -1, -1, + -1, -1, -1, -1, -1, 3029, -1, 4113, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4123, -1, -1, + -1, 3054, -1, -1, -1, -1, -1, -1, -1, -1, + 3054, -1, -1, 4494, -1, -1, -1, -1, -1, -1, + -1, 3671, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1995, -1, -1, 5044, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2010, -1, -1, + -1, 2014, 4543, -1, -1, -1, -1, -1, -1, -1, + -1, 3124, -1, 3126, -1, 2028, 2029, 2030, -1, 2032, + 3124, -1, 3126, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4241, -1, -1, -1, -1, + 3770, 2074, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3795, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4282, -1, -1, -1, + -1, -1, -1, -1, 3217, -1, -1, -1, -1, -1, + -1, -1, -1, 3217, -1, -1, -1, -1, 4304, 2132, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2144, -1, -1, -1, -1, 2149, -1, -1, 4680, + -1, -1, -1, -1, -1, 3258, -1, -1, -1, -1, + -1, -1, -1, -1, 3258, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3287, -1, -1, -1, -1, -1, + 5239, -1, -1, 3287, -1, -1, 4372, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3929, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3356, -1, -1, -1, -1, -1, -1, + -1, -1, 3356, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3377, 4806, -1, 3977, -1, -1, + -1, 3981, -1, 3377, -1, -1, -1, -1, 3391, -1, + -1, -1, -1, -1, -1, -1, -1, 3391, -1, -1, + 4831, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4494, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4870, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4543, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4923, -1, 3497, -1, -1, 4928, 4929, -1, + -1, -1, -1, 3497, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4113, -1, -1, -1, 3520, -1, -1, + -1, -1, -1, 4123, -1, -1, 3520, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3545, -1, -1, -1, -1, -1, -1, -1, + -1, 3545, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3581, -1, + -1, -1, -1, -1, -1, -1, -1, 3581, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4680, -1, -1, -1, -1, -1, + -1, -1, -1, 5044, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4241, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3671, -1, + -1, -1, -1, -1, -1, -1, -1, 3671, -1, -1, + -1, -1, 4282, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4304, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4806, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4831, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3770, -1, -1, + -1, -1, 4372, -1, -1, -1, 3770, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3795, -1, 4870, -1, -1, -1, -1, -1, + -1, 3795, -1, -1, -1, -1, -1, -1, 5239, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4923, -1, 2752, + -1, -1, 4928, 4929, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2772, + 2773, -1, 2775, -1, -1, 2778, 2779, -1, 2781, -1, + 2783, -1, -1, -1, 2787, -1, -1, 2790, -1, -1, + -1, -1, 2795, -1, 4494, -1, -1, -1, 2801, -1, + -1, -1, -1, 2806, -1, -1, -1, -1, -1, -1, + 2813, 2814, 2815, 2816, -1, -1, -1, 2820, 2821, -1, + 2823, -1, -1, -1, -1, -1, 3929, -1, -1, -1, + -1, -1, -1, -1, -1, 3929, -1, -1, 2841, -1, + 2843, -1, -1, 4543, -1, -1, -1, 2850, 2851, 2852, + 2853, 2854, 2855, 2856, 2857, 2858, 2859, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5044, -1, + -1, -1, -1, -1, 3977, -1, -1, -1, 3981, -1, + -1, -1, -1, 3977, -1, -1, -1, 3981, -1, -1, + -1, -1, -1, 2896, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4680, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2997, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4113, -1, -1, -1, -1, -1, -1, -1, -1, 4113, + 4123, -1, -1, -1, -1, -1, -1, -1, -1, 4123, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5239, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4806, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4831, -1, -1, -1, -1, -1, -1, 4241, -1, + -1, -1, -1, -1, -1, -1, -1, 4241, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4870, -1, -1, -1, -1, -1, -1, -1, -1, 4282, + -1, -1, -1, -1, -1, -1, -1, -1, 4282, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4304, -1, -1, -1, -1, -1, -1, -1, -1, + 4304, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4923, -1, -1, -1, -1, 4928, 4929, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3248, 3249, -1, -1, -1, + 3253, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4372, + -1, -1, -1, -1, -1, -1, -1, -1, 4372, 3282, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5044, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4494, -1, -1, -1, -1, -1, -1, -1, -1, + 4494, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4543, -1, -1, -1, -1, -1, -1, -1, -1, 4543, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3493, -1, -1, -1, -1, -1, 3499, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3517, 3518, -1, -1, 3521, 3522, + 3523, 3524, -1, -1, 3527, 3528, 3529, 3530, 3531, 3532, + 3533, 3534, 3535, 3536, 3537, -1, -1, -1, -1, 5239, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3559, -1, -1, 3562, + -1, 3564, -1, -1, 3567, 3568, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4680, -1, -1, + -1, -1, 3585, 3586, 3587, 3588, 4680, 3590, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3680, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4806, -1, -1, -1, -1, -1, -1, + -1, -1, 4806, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4831, -1, + -1, -1, -1, -1, -1, -1, -1, 4831, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4870, -1, -1, + -1, -1, -1, -1, -1, -1, 4870, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4923, -1, -1, -1, -1, 4928, 4929, -1, -1, 4923, + -1, -1, -1, -1, 4928, 4929, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5044, -1, -1, -1, -1, -1, -1, -1, -1, + 5044, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4058, -1, -1, -1, 4062, + -1, 4064, 4065, -1, -1, -1, -1, -1, 4071, 4072, + 4073, 4074, -1, -1, -1, -1, 4079, 4080, 4081, 4082, + 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4116, -1, -1, 4119, -1, 4121, -1, + -1, -1, -1, 4126, -1, -1, 4129, 4130, -1, -1, + 4133, 4134, -1, -1, -1, -1, 5239, -1, -1, -1, + -1, -1, -1, -1, -1, 5239, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4180, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4195, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4208, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4404, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4489, 4490, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4532, + -1, -1, -1, -1, -1, 4538, 4539, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4556, -1, 4558, -1, -1, -1, 4562, + 4563, 4564, -1, -1, 4567, -1, -1, 4570, 4571, -1, + -1, -1, 4575, -1, -1, -1, 4579, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4636, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4702, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4740, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4829, 4830, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4844, 4845, 4846, -1, -1, -1, -1, -1, -1, + -1, 4854, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4881, 4882, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4893, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5056, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5069, -1, -1, 5072, + -1, -1, -1, 5076, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5125, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5162, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5233, -1, 5235, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5319, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5347, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5408, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5443, 5444, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5495, 5496, -1, -1, -1, 5500, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, + 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, 5527, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, 128, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, + -1, -1, 477, 478, 479, -1, -1, -1, -1, -1, + -1, 486, 487, 3, -1, 5, 6, -1, 8, 9, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, 36, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 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, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, -1, 472, -1, -1, -1, -1, 477, 478, -1, + -1, -1, -1, -1, -1, -1, 486, 487, 3, -1, + 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, + -1, -1, 477, 478, -1, -1, -1, -1, -1, -1, + -1, 486, 487, 3, -1, 5, 6, -1, 8, 9, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, 36, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, -1, -1, -1, -1, -1, -1, 477, 478, -1, + -1, -1, -1, -1, -1, -1, 486, 487, 3, -1, + 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 3, -1, -1, -1, + -1, -1, 477, 478, -1, -1, -1, -1, -1, -1, + -1, 486, 487, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + 37, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + 167, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, 215, 216, + 217, 218, 219, 220, -1, -1, 223, 224, 225, 226, + -1, -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, -1, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 487, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, 45, 46, 47, 48, + -1, 50, 51, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, -1, -1, 75, -1, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, -1, + -1, -1, 101, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, -1, + 149, 150, 151, 152, -1, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, 165, -1, 167, 168, + 169, 170, 171, -1, 173, -1, -1, -1, 177, 178, + -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, -1, + 199, 200, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, -1, -1, 223, -1, 225, 226, 227, -1, + 229, 230, 231, -1, -1, 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, -1, -1, 262, -1, 264, 265, 266, 267, -1, + -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, 288, + 289, 290, -1, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, -1, 305, -1, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, 342, 343, 344, 345, 346, 347, -1, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + -1, 390, -1, 392, 393, -1, 395, 396, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, -1, 411, -1, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, + 439, 440, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 467, 468, + 469, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, 487, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, -1, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, -1, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, -1, -1, -1, 101, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, -1, 149, 150, 151, 152, -1, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, -1, -1, + -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, -1, 225, + 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, -1, 262, -1, 264, 265, + 266, 267, -1, -1, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, -1, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, -1, 305, + -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, -1, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, -1, 411, -1, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, + -1, 467, 468, 469, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, 487, -1, 36, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 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, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, -1, + 423, 424, 425, 426, 427, 428, 429, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, -1, 472, + -1, -1, -1, -1, 477, 478, -1, -1, -1, 3, + -1, 5, 6, 486, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, 36, -1, -1, 39, 40, -1, 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, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, 222, 223, + 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, -1, 423, + 424, 425, 426, 427, 428, 429, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, -1, -1, -1, + -1, -1, -1, 477, 478, -1, -1, -1, 3, -1, + 5, 6, 486, 8, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, + -1, -1, 477, 478, -1, -1, -1, -1, -1, 484, + 485, 486, 3, -1, 5, 6, -1, 8, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, 36, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, -1, 423, 424, 425, 426, 427, 428, 429, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + -1, -1, -1, -1, -1, -1, 477, 478, 479, -1, + -1, 3, -1, 5, 6, 486, 8, 9, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, 36, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + -1, 423, 424, 425, 426, 427, 428, 429, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, -1, + -1, -1, -1, -1, -1, 477, 478, -1, -1, -1, + 3, -1, 5, 6, 486, 8, 9, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, 36, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, -1, + 423, 424, 425, 426, 427, 428, 429, -1, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, -1, -1, + -1, -1, -1, -1, 477, 478, -1, -1, -1, 3, + -1, 5, 6, 486, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, 36, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, -1, 423, + 424, 425, 426, 427, 428, 429, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, -1, -1, -1, + -1, -1, -1, 477, 478, -1, -1, -1, 3, -1, + 5, 6, 486, 8, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, + -1, -1, 477, 478, -1, -1, -1, 3, -1, 5, + 6, 486, 8, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + 36, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, 224, 225, + 226, 227, -1, 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, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, + 426, 427, 428, 429, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, + -1, 477, 478, -1, -1, -1, 3, -1, 5, 6, + 486, 8, 9, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, 36, + -1, -1, 39, 40, -1, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, 75, -1, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, 165, -1, + 167, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, -1, -1, 223, 224, 225, 226, + 227, -1, 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, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, 396, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, + 427, 428, 429, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, 440, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, + 477, 478, -1, -1, -1, 3, -1, 5, 6, 486, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, 36, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, + -1, 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, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, + 428, 429, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, -1, -1, -1, -1, -1, -1, 477, + 478, -1, -1, -1, 3, -1, 5, 6, 486, 8, + 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, + 39, 40, -1, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, 75, -1, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, 165, -1, 167, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, 200, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, -1, -1, 223, 224, 225, 226, 227, -1, + 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, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, + 429, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, 440, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, -1, -1, -1, -1, -1, -1, 477, 478, + -1, -1, -1, 3, -1, 5, 6, 486, 8, 9, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, 36, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, -1, -1, -1, -1, -1, -1, 477, 478, -1, + -1, -1, 3, -1, 5, 6, 486, 8, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, 36, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, -1, 423, 424, 425, 426, 427, 428, 429, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + -1, -1, -1, -1, -1, -1, 477, 478, -1, -1, + -1, 3, -1, 5, 6, 486, 8, 9, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, 36, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + -1, 423, 424, 425, 426, 427, 428, 429, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, -1, + -1, -1, -1, -1, -1, 477, 478, -1, -1, -1, + 3, -1, 5, 6, 486, 8, 9, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, 36, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 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, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, -1, + 423, 424, 425, 426, 427, 428, 429, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, -1, -1, + -1, -1, -1, -1, 477, 478, -1, -1, -1, 3, + -1, 5, 6, 486, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, 36, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + 224, 225, 226, 227, -1, 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, -1, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, 429, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, -1, -1, -1, -1, + -1, -1, -1, 477, 478, -1, -1, -1, 3, -1, + 5, 6, 486, 8, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, -1, 267, 268, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, + -1, -1, 477, 478, -1, -1, -1, 3, -1, 5, + 6, 486, 8, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + 36, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, 224, 225, + 226, 227, -1, 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, -1, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, 429, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, -1, -1, -1, -1, -1, -1, + -1, 477, 478, 3, -1, 5, 6, -1, 8, 9, + 486, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, 36, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, 429, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + -1, -1, -1, -1, -1, -1, -1, 477, 478, -1, + -1, -1, 3, -1, 5, 6, 486, 8, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, 36, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, 429, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, -1, + -1, -1, -1, -1, -1, -1, 477, 478, 3, -1, + 5, 6, -1, 8, 9, 486, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 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, -1, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, 5, 6, -1, + 8, 9, -1, 11, 12, -1, -1, -1, -1, -1, + -1, 486, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, 36, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, + -1, 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, -1, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, 429, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, 5, 6, -1, 8, 9, -1, + 11, 12, -1, -1, -1, -1, -1, -1, 486, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, 36, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, 224, 225, 226, 227, -1, 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, -1, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, 429, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, 486, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, 36, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, -1, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, -1, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + 224, 225, 226, -1, -1, 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, -1, 267, 268, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, -1, 423, + 424, 425, 426, 427, 428, 429, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, 477, 478, -1, -1, -1, -1, -1, + -1, -1, 486, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, 75, -1, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, 165, -1, + 167, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, -1, 223, 224, 225, 226, + 227, -1, 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, -1, 264, 265, 266, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, 279, 280, 281, 282, -1, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 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, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, 429, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, 440, 441, 442, 443, 444, -1, -1, + 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, 472, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 486, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, 62, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, -1, 223, 224, 225, 226, 227, -1, 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, -1, 264, 265, 266, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, 429, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 486, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 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, + -1, 264, 265, 266, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, 429, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 486, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, 224, 225, + 226, 227, -1, 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, -1, 264, 265, + 266, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, 429, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 486, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, 75, -1, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, 165, -1, 167, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, 200, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, -1, -1, 223, 224, 225, 226, 227, -1, + 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, -1, 264, 265, 266, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + 429, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, 440, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, 5, 6, -1, -1, -1, -1, 11, + -1, -1, -1, -1, -1, -1, -1, 486, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, -1, -1, -1, 101, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, 224, 225, 226, 227, -1, 229, 230, 231, + -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, 278, -1, 280, 281, + 282, -1, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, 477, 478, 479, -1, -1, + -1, -1, -1, -1, 486, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, 32, 33, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, -1, -1, -1, 101, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, + 265, 266, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, 472, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 486, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + -1, -1, -1, 101, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, + -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 486, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, 394, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 486, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 486, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 486, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 486, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, -1, -1, -1, + 3, -1, 5, 6, -1, -1, -1, 10, 11, -1, + -1, -1, -1, 486, 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, -1, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, 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, -1, 149, 150, 151, 152, + -1, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, -1, 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, -1, 262, + 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, -1, 288, 289, 290, -1, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, -1, 305, -1, 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, -1, 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, -1, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, 411, -1, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, + 473, 474, 475, -1, 477, 478, 479, 480, 481, 482, + 3, -1, 5, 6, -1, -1, -1, 10, 11, -1, + -1, -1, -1, -1, 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, -1, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, 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, -1, 149, 150, 151, 152, + -1, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, -1, 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, -1, 262, + 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, -1, 288, 289, 290, -1, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, -1, 305, -1, 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, -1, 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, -1, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, -1, 411, -1, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, + 473, 474, 475, 3, 477, 478, 479, 480, 481, 482, + 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + -1, -1, -1, 473, 474, 475, 3, 477, 478, 479, + 480, 481, 482, 10, -1, -1, -1, -1, -1, -1, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, -1, -1, -1, 473, 474, 475, 3, + 477, 478, 479, 480, 481, 482, 10, -1, -1, -1, + -1, -1, -1, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, -1, -1, -1, 473, + 474, 475, 3, 477, 478, 479, 480, 481, 482, 10, + -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, -1, + -1, -1, 473, 474, 475, 3, 477, 478, 479, 480, + 481, 482, 10, -1, -1, -1, -1, -1, -1, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, -1, -1, -1, 473, 474, 475, 3, 477, + 478, 479, 480, 481, 482, 10, -1, -1, -1, -1, + -1, -1, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, -1, -1, -1, 473, 474, + 475, 3, 477, 478, 479, 480, 481, 482, 10, -1, + -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, 473, 474, 475, -1, 477, 478, 479, 480, 481, + 482, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, 479, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, 479, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, 479, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, -1, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, -1, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, -1, -1, -1, 101, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + -1, -1, -1, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + -1, 225, 226, 227, -1, 229, 230, 231, -1, -1, + 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, -1, -1, 262, -1, + 264, 265, 266, 267, -1, -1, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + 284, 285, 286, 287, 288, 289, 290, -1, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + -1, 305, -1, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, -1, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, -1, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, -1, 411, -1, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, -1, -1, -1, -1, -1, -1, -1, 3, + -1, -1, -1, 467, 468, 469, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 479, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, -1, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, -1, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, -1, -1, -1, 101, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + -1, -1, -1, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + -1, 225, 226, 227, -1, 229, 230, 231, -1, -1, + 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, -1, -1, 262, -1, + 264, 265, 266, 267, -1, -1, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + 284, 285, 286, 287, 288, 289, 290, -1, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + -1, 305, -1, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, -1, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, -1, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, -1, 411, -1, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, -1, -1, -1, -1, -1, -1, -1, 3, + -1, 5, 6, 467, 468, 469, -1, 11, -1, -1, + -1, -1, -1, -1, -1, 479, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, -1, -1, -1, 101, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + 224, 225, 226, 227, -1, 229, 230, 231, -1, -1, + 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, -1, + 264, 265, 266, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, 278, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, -1, 3, -1, 5, + 6, -1, -1, 477, 478, 11, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, -1, -1, -1, 101, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, 224, 225, + 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, + 266, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, 278, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, -1, 3, -1, 5, 6, -1, + -1, 477, 478, 11, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + -1, -1, -1, 101, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, + -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + 278, -1, 280, 281, 282, -1, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, -1, 3, -1, -1, 6, -1, -1, 477, + 478, 11, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, 101, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 229, + 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, 278, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + -1, 3, -1, -1, -1, -1, -1, 477, 478, 11, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, -1, 3, + -1, 5, 6, -1, -1, 477, 478, 11, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 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, + -1, 264, 265, 266, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, 429, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, -1, -1, -1, 101, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, 224, 225, + 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, + 266, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, 278, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, 75, -1, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, -1, + -1, -1, 101, -1, -1, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, 165, -1, 167, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, 200, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, -1, -1, 223, 224, 225, 226, 227, -1, + 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, 440, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, -1, -1, -1, 101, + -1, -1, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, 224, 225, 226, 227, -1, 229, 230, 231, + -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, -1, -1, -1, 101, -1, -1, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, + 265, 266, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, 429, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + -1, -1, -1, 101, -1, -1, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, 174, 175, 176, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, + -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, -1, -1, -1, + 101, -1, -1, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, 224, 225, 226, 227, -1, 229, 230, + 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, -1, -1, -1, 101, -1, -1, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + 224, 225, 226, 227, -1, 229, 230, 231, -1, -1, + 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, -1, + 264, 265, 266, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, 75, -1, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, -1, -1, -1, 101, -1, -1, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, 165, -1, + 167, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, -1, -1, 223, 224, 225, 226, + 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, 396, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, 440, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, 101, -1, -1, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 229, + 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, -1, -1, -1, 101, -1, + -1, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 229, 230, 231, -1, + -1, 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, + -1, 264, 265, 266, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, 32, 33, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, -1, -1, -1, 101, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, 224, 225, + 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, + 266, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, 6, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, 75, -1, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, -1, + -1, -1, 101, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, 165, -1, 167, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, 200, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, -1, -1, 223, 224, 225, 226, 227, -1, + 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, 440, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, 6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, -1, -1, -1, 101, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, 224, 225, 226, 227, -1, 229, 230, 231, + -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, -1, -1, -1, 101, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, 224, + 225, 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, + 265, 266, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + -1, -1, -1, 101, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, + -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, -1, -1, -1, + 101, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, 224, 225, 226, 227, -1, 229, 230, + 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, -1, -1, -1, 101, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + 224, 225, 226, 227, -1, 229, 230, 231, -1, -1, + 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, -1, + 264, 265, 266, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, 75, -1, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, -1, -1, -1, 101, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, 165, -1, + 167, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, -1, -1, 223, 224, 225, 226, + 227, -1, 229, 230, 231, -1, -1, 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, -1, 264, 265, 266, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, 396, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, 440, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, 101, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, 224, 225, 226, 227, -1, 229, + 230, 231, -1, -1, 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, -1, 264, 265, 266, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, -1, -1, -1, 101, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, 224, 225, 226, 227, -1, 229, 230, 231, -1, + -1, 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, + -1, 264, 265, 266, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, -1, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, 163, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, 163, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, 227, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, 93, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + 172, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 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, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, 93, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, 172, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 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, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, 163, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, 93, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 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, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, 163, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 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, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, 429, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, 429, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, 279, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, 279, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, 6, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, 37, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + 37, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, 37, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, -1, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, -1, 46, 47, 48, 49, 50, -1, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, -1, -1, -1, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, -1, -1, -1, 168, 169, 170, 171, + -1, 173, 174, -1, 176, 177, 178, -1, 180, 181, + 182, 183, 184, -1, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + -1, -1, 214, -1, 216, 217, 218, 219, 220, -1, + -1, 223, 224, -1, 226, -1, -1, 229, 230, 231, + -1, -1, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, -1, 264, 265, -1, 267, -1, 269, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, -1, 289, -1, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + -1, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, + 392, 393, -1, 395, -1, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, 436, 437, -1, 439, -1, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, -1, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, -1, 69, 70, 71, 72, 73, -1, + -1, -1, 77, 78, 79, 80, 81, -1, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, -1, 162, -1, 164, + -1, -1, -1, 168, 169, 170, 171, -1, 173, 174, + -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, + -1, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, -1, 201, 202, 203, 204, + 205, 206, 207, -1, 209, -1, 211, -1, -1, 214, + -1, 216, 217, 218, 219, 220, -1, -1, 223, 224, + -1, 226, -1, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, -1, 264, + 265, -1, 267, -1, 269, 270, 271, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, 287, -1, 289, -1, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, -1, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, -1, 392, 393, -1, + 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, + 405, -1, -1, 408, 409, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, 436, 437, -1, 439, -1, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, -1, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, 73, -1, -1, -1, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, -1, -1, -1, + 168, 169, 170, 171, -1, 173, 174, -1, 176, 177, + 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, -1, 201, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, -1, -1, 214, -1, 216, 217, + 218, 219, 220, -1, -1, 223, 224, -1, 226, -1, + -1, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, + -1, 269, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, 287, + -1, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, -1, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, 369, -1, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, -1, 392, 393, -1, 395, -1, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, + -1, 439, -1, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + -1, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, -1, -1, -1, 77, 78, 79, 80, + 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, -1, -1, -1, 168, 169, 170, + 171, -1, 173, 174, -1, 176, 177, 178, -1, 180, + 181, 182, 183, 184, -1, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, -1, + 201, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, -1, -1, 214, -1, 216, 217, 218, 219, 220, + -1, -1, 223, 224, -1, 226, -1, -1, 229, 230, + 231, -1, -1, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, -1, 264, 265, -1, 267, -1, 269, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, 287, -1, 289, -1, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, -1, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + -1, 392, 393, -1, 395, -1, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, 410, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, 436, 437, -1, 439, -1, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, -1, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + -1, -1, -1, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, -1, -1, -1, 168, 169, 170, 171, -1, 173, + 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, + 184, -1, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, -1, -1, + 214, -1, 216, 217, 218, 219, 220, -1, -1, 223, + 224, -1, 226, -1, -1, 229, 230, 231, -1, -1, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, -1, + 264, 265, -1, 267, -1, 269, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, 287, -1, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, -1, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, + -1, 395, -1, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, 436, 437, -1, 439, -1, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, -1, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, -1, -1, -1, + 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, -1, -1, + -1, 168, 169, 170, 171, -1, 173, 174, -1, 176, + 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, -1, 201, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, -1, -1, 214, -1, 216, + 217, 218, 219, 220, -1, -1, 223, 224, -1, 226, + -1, -1, 229, 230, 231, -1, -1, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, -1, 264, 265, -1, + 267, -1, 269, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + 287, -1, 289, -1, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, -1, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, -1, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, -1, 392, 393, -1, 395, -1, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, + 437, -1, 439, -1, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, 73, -1, -1, -1, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, -1, -1, -1, 168, 169, + 170, 171, -1, 173, 174, -1, 176, 177, 178, -1, + 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + -1, 201, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, -1, -1, 214, -1, 216, 217, 218, 219, + 220, -1, -1, 223, 224, -1, 226, -1, -1, 229, + 230, 231, -1, -1, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, -1, 264, 265, -1, 267, -1, 269, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, 287, -1, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, -1, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + -1, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, -1, 392, 393, -1, 395, -1, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, 436, 437, -1, 439, + -1, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, -1, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, -1, -1, -1, 77, 78, 79, 80, 81, -1, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, -1, 162, + -1, 164, -1, -1, -1, 168, 169, 170, 171, -1, + 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, + 183, 184, -1, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, -1, 201, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, -1, + -1, 214, -1, 216, 217, 218, 219, 220, -1, -1, + 223, 224, -1, 226, -1, -1, 229, 230, 231, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + -1, 264, 265, -1, 267, -1, 269, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, 287, -1, 289, -1, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, -1, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, + 393, -1, 395, -1, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, 436, 437, -1, 439, -1, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, -1, + 46, 47, 48, 49, 50, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, 73, -1, -1, + -1, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, -1, + -1, -1, 168, 169, 170, 171, -1, 173, 174, -1, + 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, -1, 201, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, -1, -1, 214, -1, + 216, 217, 218, 219, 220, -1, -1, 223, 224, -1, + 226, -1, -1, 229, 230, 231, -1, -1, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, -1, 264, 265, + -1, 267, -1, 269, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, 287, -1, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, -1, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, -1, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, -1, 392, 393, -1, 395, + -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + 436, 437, -1, 439, -1, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, 177, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, -1, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, -1, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, -1, -1, -1, 101, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, -1, 149, 150, 151, + 152, -1, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, -1, -1, -1, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, -1, 225, 226, 227, -1, 229, 230, 231, + -1, -1, 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, -1, -1, + 262, -1, 264, 265, 266, 267, -1, -1, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, 287, 288, 289, 290, -1, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, -1, 305, -1, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, -1, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, -1, 390, -1, + 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, -1, 411, + -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 467, 468, 469, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, -1, -1, -1, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, -1, 176, -1, 178, + -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, -1, 201, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, -1, -1, 214, -1, 216, 217, 218, + 219, 220, -1, -1, 223, 224, -1, 226, -1, -1, + 229, 230, 231, -1, -1, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, -1, 264, 265, -1, 267, -1, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, 287, -1, + 289, -1, 291, 292, 293, 294, 295, 296, 297, -1, + 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + -1, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, -1, 343, 344, 345, 346, 347, 348, + -1, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, -1, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, -1, 392, 393, -1, 395, -1, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, 436, 437, -1, + 439, -1, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, + 42, 43, 44, 45, 46, 47, 48, -1, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, -1, -1, 75, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, -1, -1, -1, 101, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, -1, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 127, -1, -1, 130, 131, + 132, 133, 134, -1, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, 147, -1, 149, 150, 151, + 152, -1, -1, 155, -1, 157, 158, 159, 160, -1, + 162, -1, 164, 165, -1, 167, 168, 169, 170, 171, + -1, 173, -1, -1, -1, 177, 178, -1, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, + 192, 193, 194, 195, 196, 197, -1, 199, 200, -1, + 202, 203, 204, 205, 206, 207, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, + -1, 223, -1, 225, 226, 227, -1, 229, 230, 231, + -1, -1, 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, -1, -1, + 262, -1, 264, 265, 266, 267, 268, -1, 270, 271, + 272, 273, 274, -1, 276, 277, -1, -1, 280, 281, + 282, -1, -1, 285, 286, -1, 288, 289, 290, -1, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, -1, 305, -1, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, -1, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, + 342, 343, 344, 345, 346, 347, -1, 349, 350, 351, + 352, 353, 354, 355, 356, 357, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, -1, 390, -1, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + -1, 403, 404, 405, -1, -1, 408, 409, -1, 411, + -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, + -1, -1, 424, 425, 426, 427, 428, -1, -1, 431, + 432, 433, 434, 435, -1, 437, -1, 439, 440, 441, + 442, 443, 444, -1, -1, 447, -1, -1, 450, 451, + 452, 453, 454, 455, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 467, 468, 469, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + 39, 40, -1, 42, 43, 44, 45, 46, 47, 48, + -1, 50, 51, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, -1, -1, 75, -1, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, -1, + -1, -1, 101, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, -1, 115, -1, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 127, -1, + -1, 130, 131, 132, 133, 134, -1, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, 147, -1, + 149, 150, 151, 152, -1, -1, 155, -1, 157, 158, + 159, 160, -1, 162, -1, 164, 165, -1, 167, 168, + 169, 170, 171, -1, 173, -1, -1, -1, 177, 178, + -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, -1, 191, 192, 193, 194, 195, 196, 197, -1, + 199, 200, -1, 202, 203, 204, 205, 206, 207, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, -1, -1, 223, -1, 225, 226, 227, -1, + 229, 230, 231, -1, -1, 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, -1, 262, -1, 264, 265, 266, 267, -1, + -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, + -1, 280, 281, 282, -1, -1, 285, 286, -1, 288, + 289, 290, -1, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, -1, 305, -1, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + -1, 340, 341, 342, 343, 344, 345, 346, 347, -1, + 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, + 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + -1, 390, -1, 392, 393, -1, 395, 396, 397, 398, + 399, 400, 401, -1, 403, 404, 405, -1, -1, 408, + 409, -1, 411, -1, -1, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 424, 425, 426, 427, 428, + -1, -1, 431, 432, 433, 434, 435, -1, 437, -1, + 439, 440, 441, 442, 443, 444, -1, -1, 447, -1, + -1, 450, 451, 452, 453, 454, 455, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 467, 468, + 469, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, 40, -1, 42, 43, 44, 45, + 46, 47, 48, -1, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, -1, 69, 70, 71, 72, -1, -1, 75, + -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, -1, -1, -1, 101, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + -1, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 127, -1, -1, 130, 131, 132, 133, 134, -1, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, 147, -1, 149, 150, 151, 152, -1, -1, 155, + -1, 157, 158, 159, 160, -1, 162, -1, 164, 165, + -1, 167, 168, 169, 170, 171, -1, 173, -1, -1, + -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, + 196, 197, -1, 199, 200, -1, 202, 203, 204, 205, + 206, 207, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, -1, -1, 223, -1, 225, + 226, 227, -1, 229, 230, 231, -1, -1, 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, -1, 262, -1, 264, 265, + 266, 267, -1, -1, 270, 271, 272, 273, 274, -1, + 276, 277, -1, -1, 280, 281, 282, -1, -1, 285, + 286, -1, 288, 289, 290, -1, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, -1, 305, + -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, + 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, + 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, -1, 390, -1, 392, 393, -1, 395, + 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, + -1, -1, 408, 409, -1, 411, -1, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 424, 425, + 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, + -1, 437, -1, 439, 440, 441, 442, 443, 444, -1, + -1, 447, -1, -1, 450, 451, 452, 453, 454, 455, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 467, 468, 469, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, + 43, 44, 45, 46, 47, 48, -1, 50, 51, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + -1, -1, 75, -1, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, -1, -1, -1, 101, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, -1, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 127, -1, -1, 130, 131, 132, + 133, 134, -1, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, 147, -1, 149, 150, 151, 152, + -1, -1, 155, -1, 157, 158, 159, 160, 161, 162, + -1, 164, 165, -1, 167, 168, 169, 170, 171, -1, + 173, -1, -1, -1, 177, 178, -1, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, + 193, 194, 195, 196, 197, -1, 199, 200, -1, 202, + 203, 204, 205, 206, 207, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, -1, -1, + 223, -1, 225, 226, 227, -1, 229, 230, 231, -1, + -1, 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, -1, -1, 262, + -1, 264, 265, 266, 267, -1, -1, 270, 271, 272, + 273, 274, -1, 276, 277, -1, -1, 280, 281, 282, + -1, -1, 285, 286, -1, 288, 289, 290, -1, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, + 303, -1, 305, -1, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, -1, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, + 343, 344, 345, 346, 347, -1, 349, 350, 351, 352, + 353, 354, 355, 356, 357, -1, 359, 360, 361, 362, + 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, -1, 390, -1, 392, + 393, -1, 395, 396, 397, 398, 399, 400, 401, -1, + 403, 404, 405, -1, -1, 408, 409, -1, 411, -1, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, 424, 425, 426, 427, 428, -1, -1, 431, 432, + 433, 434, 435, -1, 437, -1, 439, 440, 441, 442, + 443, 444, -1, -1, 447, -1, -1, 450, 451, 452, + 453, 454, 455, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + 40, -1, 42, 43, 44, 45, 46, 47, 48, -1, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, 63, 64, 65, 66, 67, -1, 69, + 70, 71, 72, -1, -1, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, 101, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, -1, 115, -1, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, 127, -1, -1, + 130, 131, 132, 133, 134, -1, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, 147, -1, 149, + 150, 151, 152, -1, -1, 155, -1, 157, 158, 159, + 160, -1, 162, -1, 164, 165, -1, 167, 168, 169, + 170, 171, -1, 173, -1, -1, -1, 177, 178, -1, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, 199, + 200, -1, 202, 203, 204, 205, 206, 207, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, -1, -1, 223, -1, 225, 226, 227, -1, 229, + 230, 231, -1, -1, 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, + -1, -1, 262, -1, 264, 265, 266, 267, -1, -1, + 270, 271, 272, 273, 274, -1, 276, 277, -1, -1, + 280, 281, 282, -1, -1, 285, 286, -1, 288, 289, + 290, -1, 292, 293, 294, 295, 296, 297, 298, 299, + 300, -1, 302, 303, -1, 305, -1, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, -1, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, + 340, 341, 342, 343, 344, 345, 346, 347, -1, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -1, 359, + 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, -1, + 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, + 400, 401, -1, 403, 404, 405, -1, -1, 408, 409, + -1, 411, -1, -1, 414, 415, 416, 417, 418, 419, + 420, 421, -1, -1, 424, 425, 426, 427, 428, -1, + -1, 431, 432, 433, 434, 435, -1, 437, -1, 439, + 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + 450, 451, 452, 453, 454, 455, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 467, 468, 469, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, 39, 40, -1, 42, 43, 44, 45, 46, + 47, 48, -1, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, -1, -1, 75, -1, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, -1, -1, -1, 101, -1, -1, -1, 105, 106, + 107, 108, 109, 110, 111, 112, 113, -1, 115, -1, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 127, -1, -1, 130, 131, 132, 133, 134, -1, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + 147, -1, 149, 150, 151, 152, -1, -1, 155, -1, + 157, 158, 159, 160, -1, 162, -1, 164, 165, -1, + 167, 168, 169, 170, 171, -1, 173, -1, -1, -1, + 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, + 197, -1, 199, 200, -1, 202, 203, 204, 205, 206, + 207, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, -1, -1, 223, -1, 225, 226, + 227, -1, 229, 230, 231, -1, -1, 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, -1, -1, 262, -1, 264, 265, 266, + 267, -1, -1, 270, 271, 272, 273, 274, -1, 276, + 277, -1, -1, 280, 281, 282, -1, -1, 285, 286, + -1, 288, 289, 290, -1, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, -1, 305, -1, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, + 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, + 357, -1, 359, 360, 361, 362, 363, -1, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, -1, 390, -1, 392, 393, -1, 395, 396, + 397, 398, 399, 400, 401, -1, 403, 404, 405, -1, + -1, 408, 409, -1, 411, -1, -1, 414, 415, 416, + 417, 418, 419, 420, 421, -1, -1, 424, 425, 426, + 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, + 437, -1, 439, 440, 441, 442, 443, 444, -1, -1, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 467, 468, 469, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, 40, -1, 42, 43, + 44, 45, 46, 47, 48, -1, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, -1, + -1, 75, -1, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, -1, -1, -1, 101, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 115, -1, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 127, -1, -1, 130, 131, 132, 133, + 134, -1, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, + -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, + 164, 165, -1, 167, 168, 169, 170, 171, -1, 173, + -1, -1, -1, 177, 178, -1, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, + 194, 195, 196, 197, -1, 199, 200, -1, 202, 203, + 204, 205, 206, 207, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, -1, -1, 223, + -1, 225, 226, 227, -1, 229, 230, 231, -1, -1, + 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, -1, -1, 262, -1, + 264, 265, 266, 267, -1, -1, 270, 271, 272, 273, + 274, -1, 276, 277, -1, -1, 280, 281, 282, -1, + -1, 285, 286, -1, 288, 289, 290, -1, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + -1, 305, -1, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, + 344, 345, 346, 347, -1, 349, 350, 351, 352, 353, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, -1, 390, -1, 392, 393, + -1, 395, 396, 397, 398, 399, 400, 401, -1, 403, + 404, 405, -1, -1, 408, 409, -1, 411, -1, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + 424, 425, 426, 427, 428, -1, -1, 431, 432, 433, + 434, 435, -1, 437, -1, 439, 440, 441, 442, 443, + 444, -1, -1, 447, -1, -1, 450, 451, 452, 453, + 454, 455, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 467, 468, 469, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, -1, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, -1, -1, 75, -1, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, -1, -1, -1, + 101, -1, -1, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 113, -1, 115, -1, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, -1, -1, 130, + 131, 132, 133, 134, -1, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, 147, -1, 149, 150, + 151, 152, -1, -1, 155, -1, 157, 158, 159, 160, + -1, 162, -1, 164, 165, -1, 167, 168, 169, 170, + 171, -1, 173, -1, -1, -1, 177, 178, -1, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, + 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, + -1, 202, 203, 204, 205, 206, 207, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + -1, -1, 223, -1, 225, 226, 227, -1, 229, 230, + 231, -1, -1, 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, -1, + -1, 262, -1, 264, 265, 266, 267, -1, -1, 270, + 271, 272, 273, 274, -1, 276, 277, -1, -1, 280, + 281, 282, -1, -1, 285, 286, -1, 288, 289, 290, + -1, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, -1, 305, -1, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, -1, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, + 341, 342, 343, 344, 345, 346, 347, -1, 349, 350, + 351, 352, 353, 354, 355, 356, 357, -1, 359, 360, + 361, 362, 363, -1, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, -1, 390, + -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, + 401, -1, 403, 404, 405, -1, -1, 408, 409, -1, + 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, + 421, -1, -1, 424, 425, 426, 427, 428, -1, -1, + 431, 432, 433, 434, 435, -1, 437, -1, 439, 440, + 441, 442, 443, 444, -1, -1, 447, -1, -1, 450, + 451, 452, 453, 454, 455, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 467, 468, 469, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, 40, -1, 42, 43, 44, 45, 46, 47, + 48, -1, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + -1, 69, 70, 71, 72, -1, -1, 75, -1, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + -1, -1, -1, 101, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, -1, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + -1, -1, 130, 131, 132, 133, 134, -1, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, 147, + -1, 149, 150, 151, 152, -1, -1, 155, -1, 157, + 158, 159, 160, -1, 162, -1, 164, 165, -1, 167, + 168, 169, 170, 171, -1, 173, -1, -1, -1, 177, + 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, + -1, 199, 200, -1, 202, 203, 204, 205, 206, 207, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, -1, -1, 223, -1, 225, 226, 227, + -1, 229, 230, 231, -1, -1, 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, -1, -1, 262, -1, 264, 265, 266, 267, + -1, -1, 270, 271, 272, 273, 274, -1, 276, 277, + -1, -1, 280, 281, 282, -1, -1, 285, 286, -1, + 288, 289, 290, -1, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, -1, 305, -1, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, + -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, -1, 365, 366, -1, + 368, 369, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, -1, 390, -1, 392, 393, -1, 395, 396, 397, + 398, 399, 400, 401, -1, 403, 404, 405, -1, -1, + 408, 409, -1, 411, -1, -1, 414, 415, 416, 417, + 418, 419, 420, 421, -1, -1, 424, 425, 426, 427, + 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, + -1, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, 450, 451, 452, 453, 454, 455, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 467, + 468, 469, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, -1, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, 39, 40, -1, 42, 43, 44, + 45, 46, 47, 48, -1, -1, 51, -1, -1, -1, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + -1, -1, 67, -1, 69, 70, 71, 72, -1, -1, + 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, -1, -1, -1, 101, -1, -1, -1, + 105, 106, 107, 108, 109, 110, -1, -1, 113, -1, + 115, -1, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 127, -1, -1, 130, 131, 132, 133, 134, + -1, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, 147, -1, 149, 150, 151, 152, -1, -1, + 155, -1, 157, 158, -1, 160, -1, 162, -1, 164, + 165, -1, 167, 168, 169, 170, 171, -1, 173, -1, + -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, + 195, 196, 197, -1, 199, 200, -1, 202, 203, 204, + 205, -1, -1, -1, -1, -1, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, -1, -1, 223, -1, + 225, 226, 227, -1, 229, 230, 231, -1, -1, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, -1, 251, -1, 253, 254, + 255, 256, 257, 258, 259, -1, -1, 262, -1, 264, + 265, 266, 267, -1, -1, 270, -1, 272, 273, 274, + -1, 276, 277, -1, -1, 280, 281, 282, -1, -1, + 285, 286, -1, 288, 289, 290, -1, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, -1, + 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, + 325, -1, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, + 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, + 355, 356, 357, -1, 359, 360, 361, 362, 363, -1, + 365, 366, -1, 368, 369, 370, 371, 372, -1, 374, + -1, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, -1, 390, -1, 392, 393, -1, + 395, 396, 397, 398, 399, 400, 401, -1, 403, -1, + -1, -1, -1, 408, 409, -1, 411, -1, -1, 414, + 415, 416, 417, 418, 419, 420, 421, -1, -1, 424, + 425, 426, 427, 428, -1, -1, 431, 432, 433, 434, + 435, -1, -1, -1, 439, 440, 441, 442, 443, 444, + -1, -1, 447, -1, -1, 450, 451, 452, 453, 454, + 455, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 467, 468, 469 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 20, 30, 32, 33, 48, 57, 69, 71, 72, + 78, 80, 91, 93, 110, 113, 127, 129, 133, 139, + 147, 149, 156, 172, 189, 229, 230, 235, 247, 265, + 308, 322, 328, 329, 331, 336, 341, 344, 351, 357, + 358, 365, 369, 379, 394, 414, 425, 431, 436, 449, + 472, 486, 493, 494, 495, 496, 497, 503, 504, 506, + 507, 508, 509, 511, 515, 527, 532, 533, 536, 537, + 538, 557, 560, 561, 576, 620, 621, 622, 625, 628, + 629, 630, 638, 644, 646, 648, 649, 652, 655, 656, + 660, 669, 673, 674, 675, 676, 679, 681, 682, 683, + 684, 692, 694, 714, 718, 720, 721, 731, 733, 740, + 741, 744, 745, 746, 747, 748, 756, 758, 762, 767, + 771, 772, 780, 781, 784, 789, 803, 830, 833, 834, + 835, 840, 843, 845, 847, 849, 850, 855, 856, 859, + 861, 862, 866, 867, 868, 871, 872, 875, 876, 877, + 884, 886, 887, 888, 894, 896, 897, 903, 904, 905, + 908, 909, 910, 911, 913, 914, 916, 917, 919, 920, + 922, 934, 940, 943, 945, 946, 955, 957, 962, 967, + 971, 972, 973, 974, 975, 976, 980, 1015, 408, 452, + 889, 27, 75, 90, 108, 114, 131, 142, 151, 163, + 168, 175, 194, 219, 240, 280, 303, 313, 314, 317, + 343, 346, 350, 352, 359, 362, 381, 388, 393, 394, + 397, 401, 411, 416, 429, 442, 645, 889, 3, 20, + 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, + 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, + 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, + 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, + 101, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 115, 117, 118, 119, 120, 121, 122, 124, 125, 126, + 127, 130, 131, 132, 133, 134, 136, 137, 138, 140, + 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 155, 157, 158, 159, 160, 162, 164, 165, + 167, 168, 169, 170, 171, 173, 174, 176, 177, 178, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 209, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 223, 224, 225, + 226, 227, 229, 230, 231, 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, 264, 265, 266, 267, 269, 270, + 271, 272, 273, 274, 276, 277, 280, 281, 282, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 302, 303, 304, 305, 306, + 307, 308, 309, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 359, 360, + 361, 362, 363, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 392, 393, + 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, + 408, 409, 410, 411, 412, 414, 415, 416, 417, 418, + 419, 420, 421, 424, 425, 426, 427, 428, 431, 432, + 433, 434, 435, 436, 437, 439, 440, 441, 442, 443, + 444, 447, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 1074, 1149, 1157, 1158, 1161, 1162, 1163, 3, + 28, 968, 1143, 1157, 1161, 440, 927, 278, 309, 889, + 51, 486, 568, 22, 39, 62, 75, 86, 108, 114, + 131, 142, 151, 163, 171, 175, 231, 280, 283, 303, + 317, 343, 352, 362, 381, 388, 397, 398, 400, 401, + 411, 416, 423, 426, 429, 577, 627, 736, 790, 804, + 28, 308, 1143, 968, 28, 302, 360, 398, 400, 6, + 218, 841, 842, 1152, 22, 27, 62, 75, 90, 108, + 131, 142, 151, 163, 168, 175, 194, 240, 280, 293, + 303, 314, 317, 343, 346, 350, 352, 359, 362, 381, + 388, 394, 397, 401, 409, 411, 416, 429, 442, 645, + 749, 750, 751, 889, 1143, 93, 440, 486, 622, 625, + 628, 922, 935, 943, 946, 955, 962, 967, 971, 11, + 21, 28, 46, 158, 164, 166, 190, 220, 254, 311, + 330, 477, 478, 768, 769, 968, 1151, 1153, 28, 93, + 326, 358, 773, 774, 775, 1157, 163, 1157, 1148, 1152, + 394, 983, 768, 1157, 408, 1143, 293, 240, 108, 194, + 352, 393, 394, 486, 851, 852, 351, 1157, 28, 363, + 404, 408, 519, 528, 529, 1157, 25, 172, 773, 774, + 309, 889, 1157, 217, 28, 128, 985, 986, 63, 87, + 231, 249, 343, 352, 363, 404, 408, 455, 516, 517, + 518, 519, 28, 363, 404, 408, 519, 408, 279, 1026, + 1141, 1157, 983, 479, 1157, 167, 486, 928, 486, 324, + 977, 978, 1143, 977, 972, 973, 976, 0, 489, 486, + 927, 143, 208, 284, 422, 987, 988, 972, 974, 975, + 119, 204, 428, 490, 34, 893, 820, 1149, 753, 1157, + 753, 1144, 1157, 312, 753, 411, 1143, 107, 394, 808, + 1149, 1157, 1163, 3, 104, 364, 1154, 1155, 1159, 1161, + 1162, 1163, 28, 184, 1141, 272, 442, 10, 17, 18, + 19, 70, 155, 473, 474, 475, 477, 478, 479, 480, + 481, 482, 837, 839, 1104, 1105, 1157, 184, 1143, 808, + 1143, 28, 1154, 1155, 808, 1143, 1143, 184, 1141, 1143, + 184, 753, 1143, 336, 365, 28, 184, 1026, 1143, 355, + 1143, 753, 28, 238, 1154, 1155, 184, 1141, 218, 116, + 214, 263, 320, 890, 891, 892, 486, 484, 488, 1132, + 1134, 1141, 1147, 1157, 22, 27, 62, 75, 76, 86, + 90, 108, 131, 142, 151, 163, 168, 194, 219, 240, + 280, 303, 314, 317, 343, 346, 350, 352, 359, 362, + 381, 388, 394, 397, 401, 409, 411, 416, 442, 645, + 759, 760, 1152, 893, 942, 946, 955, 962, 971, 1141, + 242, 753, 486, 184, 753, 411, 1144, 753, 411, 184, + 1143, 107, 394, 398, 400, 1154, 1155, 398, 400, 70, + 155, 837, 334, 1143, 1143, 1154, 184, 512, 1157, 184, + 1143, 184, 753, 1143, 1143, 355, 1143, 753, 238, 1154, + 324, 359, 394, 442, 240, 90, 194, 27, 168, 314, + 350, 409, 415, 639, 28, 1143, 969, 526, 1152, 1159, + 842, 242, 184, 820, 821, 184, 846, 184, 1144, 3, + 50, 52, 53, 65, 66, 111, 112, 132, 159, 184, + 206, 207, 209, 250, 252, 271, 321, 367, 373, 404, + 405, 437, 755, 1048, 1050, 1052, 1054, 1056, 1058, 1059, + 1060, 1062, 1063, 1064, 1066, 1067, 1158, 1161, 411, 107, + 394, 184, 807, 808, 184, 1155, 1156, 82, 442, 70, + 155, 184, 838, 839, 55, 184, 807, 184, 1156, 184, + 807, 184, 1143, 184, 1143, 355, 846, 184, 755, 184, + 238, 1156, 218, 184, 752, 753, 184, 1142, 1143, 184, + 1143, 893, 486, 944, 577, 935, 436, 922, 936, 937, + 938, 1159, 927, 1153, 769, 770, 28, 770, 1153, 770, + 28, 770, 1153, 770, 770, 770, 1153, 1151, 1151, 968, + 770, 312, 486, 486, 597, 597, 597, 278, 406, 490, + 597, 352, 1026, 1027, 490, 885, 1152, 486, 941, 55, + 442, 440, 853, 854, 82, 791, 791, 1157, 45, 469, + 214, 488, 281, 281, 278, 166, 1152, 406, 893, 161, + 763, 278, 5, 8, 9, 10, 12, 36, 50, 52, + 53, 61, 62, 65, 66, 73, 75, 98, 99, 100, + 101, 102, 103, 104, 111, 112, 114, 148, 153, 154, + 159, 174, 176, 206, 207, 209, 224, 232, 233, 250, + 252, 261, 263, 268, 269, 271, 280, 291, 304, 321, + 348, 364, 373, 389, 404, 405, 410, 412, 413, 423, + 429, 437, 457, 458, 459, 460, 462, 463, 464, 465, + 470, 477, 478, 479, 486, 972, 1051, 1054, 1057, 1058, + 1059, 1061, 1062, 1063, 1066, 1067, 1071, 1073, 1074, 1075, + 1077, 1100, 1101, 1102, 1106, 1126, 1131, 1138, 1139, 1149, + 1150, 1151, 1152, 1157, 1137, 1138, 1152, 28, 534, 1140, + 1141, 363, 516, 114, 525, 1152, 526, 1152, 45, 67, + 516, 469, 374, 891, 281, 166, 406, 475, 45, 469, + 214, 892, 486, 1141, 479, 1134, 1027, 921, 922, 923, + 924, 1159, 165, 929, 1071, 1109, 977, 490, 486, 930, + 487, 487, 495, 921, 931, 932, 933, 1141, 28, 128, + 984, 984, 55, 984, 156, 161, 228, 275, 991, 993, + 994, 1009, 1011, 1012, 1013, 987, 988, 166, 210, 1026, + 1028, 486, 64, 259, 294, 332, 365, 486, 818, 294, + 328, 332, 365, 488, 754, 294, 332, 365, 3, 85, + 137, 234, 294, 332, 365, 397, 399, 449, 527, 530, + 898, 899, 900, 901, 785, 24, 133, 294, 332, 365, + 433, 543, 1143, 24, 133, 365, 428, 510, 453, 184, + 1026, 58, 92, 152, 187, 223, 259, 263, 294, 295, + 332, 340, 349, 357, 365, 377, 386, 390, 444, 527, + 531, 823, 831, 860, 486, 805, 1134, 332, 510, 190, + 148, 24, 30, 43, 72, 126, 133, 136, 162, 196, + 259, 263, 273, 282, 294, 332, 335, 336, 365, 433, + 539, 541, 542, 663, 860, 5, 477, 478, 636, 1153, + 28, 184, 1141, 753, 753, 486, 836, 294, 365, 488, + 148, 278, 294, 332, 365, 831, 860, 24, 133, 294, + 332, 365, 190, 505, 332, 449, 472, 498, 505, 294, + 332, 365, 831, 860, 278, 294, 332, 148, 37, 56, + 106, 193, 241, 244, 259, 293, 332, 337, 359, 365, + 379, 539, 633, 634, 294, 332, 441, 663, 671, 148, + 294, 332, 365, 85, 126, 136, 294, 328, 332, 365, + 529, 517, 519, 190, 148, 43, 124, 259, 332, 365, + 539, 540, 294, 332, 336, 365, 83, 125, 296, 399, + 278, 24, 30, 133, 294, 332, 365, 558, 559, 505, + 161, 332, 498, 505, 148, 332, 365, 539, 1143, 226, + 116, 279, 454, 490, 890, 28, 128, 438, 479, 487, + 813, 1071, 1110, 1111, 1158, 1071, 1133, 3, 28, 32, + 33, 34, 35, 36, 37, 38, 41, 54, 61, 62, + 68, 74, 76, 86, 93, 98, 99, 100, 102, 103, + 104, 114, 116, 123, 128, 129, 135, 139, 143, 154, + 156, 161, 163, 166, 172, 175, 179, 190, 198, 208, + 210, 221, 222, 228, 232, 233, 263, 268, 275, 278, + 279, 283, 284, 301, 310, 326, 339, 358, 364, 375, + 391, 394, 402, 406, 407, 413, 422, 423, 429, 430, + 438, 445, 446, 448, 449, 479, 1146, 1160, 1161, 1162, + 1163, 1164, 1132, 430, 918, 278, 242, 820, 486, 1143, + 1048, 411, 107, 394, 808, 272, 442, 70, 155, 839, + 1143, 808, 808, 1143, 355, 161, 1143, 1048, 218, 753, + 1143, 487, 597, 1143, 68, 1048, 263, 166, 486, 722, + 1143, 498, 37, 912, 1143, 263, 498, 453, 184, 1141, + 498, 753, 753, 722, 426, 577, 278, 161, 869, 870, + 498, 263, 45, 513, 263, 416, 670, 263, 930, 85, + 294, 647, 83, 125, 296, 399, 26, 47, 205, 695, + 37, 722, 161, 184, 498, 442, 184, 1141, 184, 623, + 1141, 1141, 442, 753, 791, 1149, 1149, 1149, 1143, 161, + 645, 51, 105, 203, 259, 354, 148, 59, 338, 490, + 544, 148, 486, 148, 498, 439, 1065, 1065, 1065, 486, + 1053, 1053, 306, 486, 1055, 148, 65, 66, 1065, 1053, + 1050, 451, 472, 486, 1068, 486, 1068, 490, 544, 36, + 1049, 486, 109, 182, 243, 246, 356, 467, 486, 1069, + 1070, 754, 1053, 453, 148, 490, 544, 148, 490, 184, + 752, 184, 753, 184, 753, 148, 490, 544, 1156, 148, + 544, 148, 148, 544, 148, 544, 148, 83, 125, 296, + 399, 161, 148, 544, 148, 161, 184, 184, 526, 148, + 490, 544, 148, 490, 544, 148, 278, 1109, 394, 487, + 490, 154, 278, 413, 523, 526, 636, 939, 935, 770, + 968, 770, 968, 770, 968, 770, 968, 770, 968, 968, + 968, 770, 968, 486, 598, 599, 1157, 598, 28, 108, + 131, 163, 168, 218, 219, 314, 346, 352, 359, 394, + 397, 416, 776, 1140, 1156, 775, 1143, 190, 490, 958, + 1152, 1048, 1112, 37, 1156, 791, 487, 490, 1141, 1143, + 226, 1157, 161, 161, 776, 1156, 351, 1157, 526, 278, + 486, 1135, 484, 972, 1113, 1071, 1130, 486, 486, 161, + 486, 486, 972, 486, 486, 486, 486, 486, 486, 486, + 1071, 486, 486, 486, 486, 486, 486, 486, 486, 972, + 486, 486, 486, 486, 486, 486, 486, 486, 1071, 1071, + 1071, 972, 1071, 1109, 1134, 1152, 486, 1152, 3, 10, + 13, 17, 18, 19, 34, 37, 42, 49, 74, 185, + 190, 212, 213, 227, 266, 280, 283, 370, 470, 473, + 474, 475, 477, 478, 479, 480, 481, 482, 1104, 1106, + 1108, 450, 1087, 290, 1071, 210, 490, 981, 486, 1152, + 1134, 981, 117, 186, 535, 490, 67, 114, 526, 37, + 3, 114, 231, 524, 636, 1067, 1152, 1152, 88, 130, + 1083, 97, 114, 520, 521, 523, 636, 114, 520, 226, + 1141, 89, 337, 757, 487, 490, 523, 636, 925, 927, + 487, 490, 978, 1142, 37, 487, 490, 930, 974, 974, + 989, 990, 1071, 974, 158, 254, 1000, 216, 259, 320, + 368, 428, 28, 995, 1071, 477, 478, 996, 997, 1071, + 1073, 1009, 1010, 994, 993, 991, 992, 161, 1012, 273, + 1014, 991, 1009, 1028, 947, 1141, 37, 1157, 365, 1109, + 64, 406, 406, 352, 190, 201, 284, 287, 367, 438, + 479, 811, 812, 813, 815, 817, 819, 1048, 1158, 406, + 441, 406, 352, 1146, 488, 406, 406, 352, 228, 406, + 406, 397, 516, 294, 898, 900, 475, 902, 161, 172, + 190, 341, 786, 787, 68, 86, 144, 163, 310, 423, + 594, 595, 86, 114, 263, 406, 86, 406, 114, 263, + 352, 86, 126, 136, 294, 332, 719, 352, 653, 22, + 27, 62, 75, 90, 131, 142, 163, 168, 240, 280, + 314, 346, 352, 359, 362, 394, 401, 409, 416, 442, + 645, 1143, 148, 332, 365, 539, 278, 636, 357, 223, + 406, 1157, 406, 268, 636, 118, 211, 352, 363, 408, + 518, 753, 338, 365, 823, 832, 122, 487, 806, 811, + 406, 429, 397, 1141, 76, 144, 184, 584, 594, 1157, + 76, 86, 857, 298, 278, 348, 350, 411, 86, 857, + 31, 335, 348, 350, 411, 348, 1141, 162, 196, 273, + 753, 486, 406, 406, 183, 486, 548, 237, 397, 426, + 451, 548, 86, 490, 122, 5, 5, 294, 190, 148, + 332, 365, 539, 860, 430, 430, 260, 1048, 406, 352, + 486, 837, 1143, 1141, 406, 406, 352, 832, 122, 394, + 394, 406, 406, 394, 722, 108, 365, 530, 406, 500, + 530, 406, 406, 352, 832, 122, 1141, 406, 406, 1141, + 1050, 636, 55, 635, 636, 636, 106, 241, 244, 55, + 406, 498, 248, 352, 498, 259, 634, 406, 406, 268, + 1152, 663, 753, 406, 406, 352, 381, 1152, 406, 317, + 406, 317, 722, 397, 1026, 298, 298, 86, 406, 857, + 352, 406, 406, 548, 548, 753, 753, 753, 753, 1141, + 44, 435, 44, 44, 406, 44, 406, 435, 352, 486, + 490, 530, 429, 680, 1155, 406, 500, 530, 1141, 406, + 857, 352, 294, 332, 320, 333, 361, 522, 890, 1110, + 1110, 1111, 487, 15, 16, 490, 987, 988, 485, 491, + 1147, 1157, 1141, 212, 1048, 278, 212, 453, 212, 636, + 753, 753, 212, 278, 212, 212, 278, 83, 125, 296, + 399, 1048, 278, 212, 212, 212, 406, 166, 406, 562, + 416, 486, 37, 148, 753, 723, 724, 1160, 26, 898, + 1048, 278, 148, 650, 1143, 263, 298, 486, 499, 736, + 430, 324, 442, 1141, 28, 394, 449, 827, 499, 148, + 1155, 93, 172, 514, 576, 629, 694, 771, 789, 894, + 148, 1152, 671, 672, 148, 278, 1152, 1155, 234, 753, + 753, 753, 753, 273, 119, 204, 414, 428, 696, 697, + 140, 319, 486, 680, 263, 499, 1141, 263, 631, 633, + 263, 37, 273, 298, 486, 597, 597, 184, 626, 1141, + 161, 184, 792, 1147, 486, 726, 818, 486, 809, 809, + 37, 1048, 218, 449, 451, 970, 354, 821, 820, 1048, + 1144, 486, 486, 1109, 1151, 755, 1065, 1065, 36, 1049, + 404, 404, 1151, 1151, 1048, 484, 484, 1151, 406, 406, + 406, 486, 406, 1151, 1053, 807, 808, 1156, 1155, 148, + 544, 148, 430, 148, 430, 838, 839, 544, 807, 1156, + 807, 1143, 1143, 1048, 755, 1156, 680, 148, 148, 544, + 752, 753, 1142, 1143, 1143, 753, 487, 184, 1141, 935, + 937, 968, 968, 968, 968, 968, 968, 598, 487, 490, + 487, 169, 315, 347, 360, 395, 1142, 752, 107, 362, + 807, 1142, 272, 807, 807, 1142, 1140, 1140, 1142, 752, + 406, 449, 782, 143, 228, 677, 678, 22, 146, 348, + 368, 959, 1026, 267, 960, 487, 490, 942, 406, 1141, + 851, 852, 854, 774, 773, 774, 166, 173, 783, 1157, + 27, 76, 108, 131, 142, 163, 168, 219, 240, 314, + 317, 343, 346, 352, 359, 388, 394, 397, 416, 442, + 645, 764, 765, 1109, 1132, 485, 1109, 1113, 1114, 445, + 1127, 1128, 1071, 1109, 486, 1151, 1151, 3, 109, 182, + 243, 246, 356, 467, 1115, 1116, 1152, 1109, 1109, 1109, + 1151, 1151, 1071, 1071, 837, 1071, 1118, 348, 477, 478, + 486, 1072, 1073, 1106, 1120, 487, 1109, 1071, 1109, 1121, + 1071, 54, 166, 222, 407, 1071, 1109, 1124, 1109, 248, + 1073, 1071, 1081, 1082, 1083, 248, 1071, 1083, 487, 490, + 1151, 1069, 1048, 1071, 1071, 1071, 1071, 1160, 404, 41, + 391, 1136, 753, 1071, 486, 972, 1125, 128, 130, 154, + 255, 256, 257, 258, 262, 263, 268, 273, 413, 424, + 1117, 1071, 486, 1071, 406, 49, 185, 190, 227, 370, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 28, 35, 375, 1103, 175, 157, 1088, 348, 486, 1100, + 171, 231, 394, 398, 400, 426, 982, 1141, 1139, 166, + 1016, 1110, 1016, 1141, 408, 486, 1152, 490, 487, 183, + 183, 544, 933, 923, 922, 926, 1071, 487, 240, 263, + 979, 933, 931, 490, 38, 123, 430, 801, 348, 349, + 477, 478, 997, 999, 1073, 368, 216, 279, 490, 5, + 998, 1151, 998, 348, 349, 999, 1140, 267, 372, 961, + 1010, 992, 430, 956, 114, 292, 486, 948, 971, 37, + 1157, 486, 963, 964, 965, 1157, 487, 1155, 1143, 1143, + 287, 55, 1158, 487, 813, 815, 812, 815, 1158, 284, + 487, 490, 754, 1155, 1143, 1143, 1146, 1155, 1143, 1143, + 1155, 1144, 1143, 114, 523, 1153, 343, 429, 773, 352, + 172, 773, 486, 1143, 430, 793, 216, 216, 430, 486, + 619, 184, 1143, 268, 1155, 1143, 1143, 1071, 268, 1143, + 1143, 31, 335, 406, 406, 1143, 406, 654, 242, 820, + 486, 753, 753, 1048, 411, 107, 394, 808, 442, 70, + 155, 839, 808, 808, 1143, 753, 1143, 753, 355, 161, + 1048, 753, 218, 178, 259, 294, 332, 434, 657, 658, + 659, 1026, 406, 857, 352, 268, 118, 211, 1155, 1143, + 278, 1143, 278, 487, 490, 1154, 1156, 1143, 332, 539, + 184, 584, 263, 1048, 1143, 1151, 1157, 1141, 1143, 226, + 1143, 28, 429, 1143, 184, 1143, 184, 1157, 350, 411, + 350, 411, 226, 1143, 28, 429, 1143, 226, 348, 1141, + 24, 133, 365, 664, 665, 666, 667, 1160, 1155, 1143, + 114, 167, 264, 430, 547, 550, 551, 1160, 1143, 72, + 276, 1143, 542, 278, 406, 397, 1141, 406, 857, 352, + 122, 1145, 1157, 1145, 490, 487, 490, 1155, 1143, 863, + 864, 1160, 278, 332, 406, 688, 1155, 1143, 1143, 278, + 1027, 1027, 1155, 1143, 1027, 1144, 1154, 3, 85, 138, + 196, 300, 421, 429, 432, 501, 1155, 1143, 1143, 278, + 332, 1155, 1143, 332, 365, 539, 633, 636, 753, 1143, + 636, 753, 1143, 636, 1155, 1143, 365, 1155, 1143, 1143, + 1153, 1155, 827, 1143, 873, 874, 1160, 1143, 332, 365, + 539, 540, 1141, 1141, 1143, 1143, 1143, 1143, 1155, 1143, + 24, 30, 133, 294, 332, 365, 294, 332, 365, 722, + 332, 365, 332, 365, 332, 860, 1040, 1157, 184, 732, + 1157, 184, 1157, 1155, 1143, 1143, 1152, 1143, 863, 24, + 559, 362, 1154, 332, 365, 539, 1143, 1143, 1143, 406, + 406, 81, 420, 320, 490, 987, 987, 987, 1071, 1071, + 438, 1111, 487, 1071, 1133, 268, 761, 1152, 37, 131, + 753, 761, 761, 212, 430, 430, 761, 753, 761, 761, + 753, 218, 753, 761, 761, 761, 316, 563, 563, 194, + 394, 693, 1071, 1048, 753, 487, 490, 475, 696, 586, + 1160, 1143, 59, 166, 352, 441, 651, 658, 659, 148, + 273, 227, 578, 580, 582, 584, 591, 594, 25, 190, + 343, 392, 501, 502, 161, 1145, 442, 1141, 37, 689, + 395, 1027, 722, 512, 1157, 513, 283, 577, 1143, 163, + 753, 1109, 317, 1152, 722, 722, 722, 722, 273, 278, + 283, 486, 722, 1038, 1039, 1040, 362, 148, 486, 148, + 148, 147, 971, 753, 273, 578, 1157, 430, 614, 449, + 549, 263, 37, 597, 1152, 263, 278, 3, 727, 728, + 722, 487, 810, 811, 816, 37, 218, 340, 409, 448, + 822, 823, 824, 822, 278, 218, 526, 181, 181, 161, + 544, 37, 498, 162, 906, 907, 1109, 487, 487, 544, + 484, 469, 469, 487, 487, 1151, 485, 1151, 487, 182, + 243, 1070, 243, 1070, 1070, 1151, 246, 487, 544, 752, + 753, 1145, 753, 1145, 544, 544, 544, 544, 218, 544, + 362, 161, 526, 544, 544, 278, 544, 263, 487, 599, + 190, 190, 190, 190, 190, 453, 1142, 636, 637, 175, + 777, 778, 1155, 25, 783, 406, 486, 166, 146, 368, + 146, 368, 348, 428, 245, 1048, 1155, 449, 624, 791, + 791, 166, 278, 777, 55, 544, 820, 1048, 411, 394, + 808, 272, 442, 808, 808, 1048, 218, 753, 1143, 487, + 485, 485, 490, 1071, 135, 1128, 1129, 37, 487, 1071, + 487, 487, 487, 166, 487, 487, 487, 487, 487, 487, + 490, 490, 487, 301, 1119, 487, 486, 1072, 1072, 1109, + 13, 17, 18, 19, 190, 212, 280, 473, 474, 475, + 477, 478, 479, 480, 481, 482, 1106, 1072, 487, 487, + 161, 166, 1122, 1123, 487, 37, 1124, 1109, 1124, 1124, + 166, 487, 487, 1160, 299, 1085, 37, 487, 490, 1071, + 1160, 490, 1071, 1135, 1071, 487, 469, 1072, 1072, 141, + 1109, 166, 128, 130, 154, 262, 268, 273, 413, 424, + 1117, 486, 262, 141, 837, 1071, 391, 1136, 1071, 1125, + 1071, 406, 486, 972, 486, 486, 289, 1092, 486, 1109, + 398, 400, 398, 400, 1141, 983, 983, 983, 221, 349, + 466, 486, 972, 1017, 1018, 1019, 1026, 1031, 1041, 1074, + 1076, 1077, 1157, 446, 1036, 987, 1036, 891, 1151, 1069, + 521, 933, 240, 486, 990, 280, 1104, 1107, 471, 802, + 5, 1151, 999, 279, 449, 428, 996, 236, 1017, 446, + 1037, 436, 393, 429, 949, 950, 951, 1157, 278, 952, + 1157, 965, 966, 490, 1016, 475, 1135, 819, 754, 815, + 815, 55, 817, 481, 1156, 1156, 278, 1142, 281, 278, + 1071, 595, 1145, 486, 486, 486, 619, 194, 598, 712, + 148, 544, 406, 1155, 1143, 526, 1143, 1048, 1143, 453, + 753, 753, 753, 753, 83, 125, 296, 399, 1048, 1143, + 640, 1143, 178, 434, 406, 406, 640, 657, 663, 332, + 365, 539, 1143, 1143, 1143, 202, 268, 151, 811, 293, + 365, 406, 263, 148, 282, 661, 712, 365, 24, 133, + 336, 337, 365, 543, 552, 553, 663, 858, 357, 148, + 544, 148, 544, 1143, 1143, 1143, 1143, 357, 357, 226, + 666, 667, 666, 487, 490, 668, 1152, 194, 487, 490, + 475, 488, 151, 1155, 1143, 332, 365, 539, 1143, 1143, + 1143, 278, 294, 332, 365, 24, 133, 294, 332, 365, + 1048, 260, 1048, 487, 490, 475, 1141, 406, 1156, 430, + 685, 151, 228, 300, 268, 1152, 300, 1156, 427, 151, + 406, 406, 352, 381, 490, 827, 293, 365, 86, 406, + 857, 352, 114, 161, 554, 406, 406, 238, 238, 238, + 406, 406, 352, 406, 406, 352, 406, 352, 406, 352, + 406, 122, 544, 1048, 263, 1152, 365, 858, 148, 544, + 406, 406, 487, 1143, 406, 857, 352, 406, 1155, 1143, + 487, 487, 487, 1111, 485, 1048, 753, 212, 761, 1145, + 1145, 212, 212, 1143, 212, 382, 383, 564, 1152, 564, + 178, 487, 487, 166, 722, 724, 260, 280, 477, 478, + 636, 725, 815, 1107, 1152, 1164, 278, 68, 74, 86, + 114, 116, 170, 198, 263, 268, 310, 326, 423, 587, + 588, 590, 147, 445, 498, 526, 1143, 526, 661, 1141, + 1141, 1141, 487, 490, 1156, 175, 343, 1156, 1151, 416, + 1141, 597, 3, 161, 690, 45, 513, 334, 394, 670, + 107, 930, 166, 873, 549, 598, 1141, 697, 729, 730, + 1152, 487, 490, 1143, 161, 598, 1141, 623, 1141, 1143, + 624, 486, 579, 1141, 487, 1145, 449, 451, 615, 548, + 37, 148, 971, 614, 406, 148, 1026, 475, 487, 490, + 487, 490, 114, 475, 825, 1152, 526, 394, 814, 815, + 161, 826, 824, 119, 204, 358, 428, 882, 1143, 178, + 971, 1048, 486, 487, 490, 487, 1151, 1068, 1068, 485, + 485, 487, 544, 430, 544, 430, 544, 1143, 1143, 680, + 544, 753, 148, 352, 352, 352, 352, 352, 1142, 490, + 1155, 449, 490, 779, 281, 1027, 362, 146, 146, 107, + 259, 1141, 1143, 1156, 776, 544, 1155, 212, 212, 212, + 636, 212, 212, 212, 212, 212, 1113, 402, 1071, 139, + 1048, 487, 1071, 1117, 1071, 1071, 1122, 487, 1109, 490, + 1048, 1072, 1072, 1072, 1072, 128, 130, 263, 273, 1072, + 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1071, + 1071, 1123, 1122, 1048, 487, 487, 487, 1109, 487, 490, + 55, 1073, 1086, 487, 1160, 1082, 307, 387, 1084, 487, + 490, 441, 1078, 37, 487, 1152, 1071, 34, 34, 1071, + 487, 1071, 166, 486, 262, 1112, 1071, 487, 141, 1072, + 1072, 141, 141, 1071, 1071, 988, 446, 486, 1093, 1157, + 487, 1109, 490, 983, 983, 983, 983, 1141, 1141, 1141, + 972, 1031, 1041, 166, 486, 972, 1018, 1019, 37, 1020, + 1021, 1157, 490, 94, 167, 200, 215, 225, 251, 342, + 1023, 1021, 37, 1020, 1022, 1157, 1021, 472, 1035, 1134, + 1071, 175, 1001, 487, 1001, 487, 942, 486, 802, 158, + 220, 279, 449, 403, 97, 1071, 339, 954, 435, 487, + 490, 1135, 84, 954, 487, 490, 964, 1037, 1071, 487, + 481, 819, 416, 169, 347, 353, 360, 395, 417, 788, + 161, 788, 487, 486, 602, 603, 796, 1076, 1157, 598, + 598, 712, 1147, 487, 116, 198, 259, 263, 713, 1143, + 1143, 37, 1143, 430, 430, 753, 753, 753, 753, 218, + 754, 1155, 1143, 406, 857, 352, 406, 202, 1143, 55, + 397, 1143, 148, 584, 486, 586, 381, 170, 150, 183, + 263, 548, 498, 107, 170, 263, 381, 384, 548, 634, + 365, 553, 416, 1143, 1157, 357, 665, 1143, 551, 725, + 1160, 1143, 293, 365, 406, 857, 352, 406, 151, 406, + 406, 352, 168, 280, 384, 734, 735, 168, 280, 742, + 743, 406, 406, 352, 487, 487, 487, 864, 260, 636, + 815, 865, 1107, 1152, 1164, 332, 1143, 486, 449, 686, + 1143, 1153, 1152, 1152, 1152, 1143, 1143, 1143, 1143, 1153, + 874, 55, 397, 1143, 1143, 1143, 1143, 436, 1143, 1143, + 161, 161, 334, 161, 184, 1155, 1143, 1143, 1155, 1143, + 1143, 1143, 1143, 1143, 1143, 1143, 278, 74, 545, 148, + 26, 47, 416, 1157, 1143, 1152, 663, 1143, 1143, 1143, + 1143, 987, 487, 212, 761, 212, 212, 761, 761, 212, + 761, 498, 430, 569, 570, 640, 712, 449, 451, 753, + 1141, 486, 753, 1143, 1072, 31, 55, 589, 117, 186, + 116, 268, 216, 1141, 827, 168, 314, 708, 715, 716, + 1157, 650, 298, 486, 579, 592, 197, 609, 582, 1156, + 1156, 1048, 486, 549, 28, 119, 204, 358, 428, 691, + 406, 687, 1155, 184, 1141, 672, 453, 278, 1017, 827, + 327, 698, 487, 490, 1040, 661, 680, 487, 631, 37, + 273, 298, 486, 944, 581, 583, 585, 594, 1157, 298, + 610, 611, 579, 609, 548, 276, 278, 616, 971, 626, + 624, 549, 1152, 1147, 793, 725, 3, 728, 816, 1071, + 1071, 490, 486, 822, 416, 490, 406, 486, 640, 487, + 906, 907, 485, 1145, 1145, 544, 362, 544, 1142, 1142, + 1142, 1142, 1142, 636, 172, 778, 487, 1143, 107, 783, + 166, 268, 766, 1152, 766, 766, 212, 766, 766, 766, + 766, 766, 1071, 487, 487, 487, 1123, 487, 1071, 166, + 128, 130, 273, 486, 487, 456, 1080, 1109, 325, 435, + 55, 1086, 1073, 447, 447, 487, 1071, 259, 1071, 490, + 1079, 1050, 1071, 1071, 1071, 1112, 487, 1071, 34, 34, + 1071, 1071, 141, 487, 487, 1071, 1094, 1157, 487, 1071, + 1141, 1141, 1141, 1141, 1021, 1022, 1021, 486, 461, 1073, + 487, 1157, 486, 1018, 215, 288, 1024, 1018, 1024, 215, + 1023, 1024, 215, 396, 1029, 486, 1157, 486, 285, 55, + 179, 1008, 1152, 1008, 1152, 487, 837, 403, 273, 1138, + 971, 292, 971, 951, 278, 486, 953, 475, 965, 954, + 416, 487, 406, 773, 166, 712, 1071, 487, 490, 449, + 74, 795, 799, 795, 487, 487, 191, 600, 117, 186, + 196, 116, 432, 544, 1048, 1145, 1145, 1143, 1143, 1143, + 1143, 1143, 1156, 1143, 584, 662, 666, 1153, 589, 184, + 184, 268, 636, 589, 268, 1153, 1157, 1048, 544, 544, + 475, 55, 397, 1143, 1143, 1143, 1143, 1143, 1155, 1143, + 1143, 1151, 1151, 1048, 490, 1151, 1151, 490, 1155, 1143, + 1143, 406, 1071, 68, 1156, 1143, 406, 406, 166, 190, + 449, 1142, 1142, 753, 1142, 148, 151, 753, 1152, 1152, + 1048, 544, 544, 406, 487, 212, 761, 761, 761, 761, + 486, 565, 566, 498, 121, 168, 201, 168, 166, 711, + 1071, 263, 588, 114, 37, 827, 597, 430, 618, 1149, + 34, 147, 190, 273, 578, 554, 145, 192, 486, 362, + 430, 598, 37, 1156, 685, 513, 263, 486, 163, 1143, + 1109, 253, 277, 699, 700, 701, 161, 704, 1152, 362, + 549, 147, 971, 753, 273, 578, 624, 487, 490, 449, + 586, 55, 614, 554, 610, 80, 397, 617, 449, 895, + 37, 617, 166, 278, 486, 1152, 813, 828, 829, 1158, + 1048, 161, 1141, 166, 406, 848, 199, 641, 544, 487, + 544, 544, 1143, 281, 210, 544, 777, 766, 487, 1072, + 166, 486, 1112, 486, 487, 490, 487, 1086, 487, 435, + 378, 487, 487, 487, 1071, 1071, 1071, 487, 298, 1095, + 487, 1032, 1033, 1076, 486, 1085, 1020, 486, 1142, 1018, + 278, 430, 1025, 1018, 215, 1018, 1149, 1039, 486, 1039, + 1157, 96, 176, 345, 486, 1002, 1003, 1004, 1005, 1006, + 1007, 1071, 1071, 448, 1089, 1089, 487, 968, 949, 86, + 794, 796, 129, 1071, 777, 278, 777, 487, 600, 603, + 280, 837, 753, 753, 800, 326, 600, 486, 827, 487, + 406, 365, 960, 487, 490, 37, 148, 148, 545, 725, + 1156, 1143, 406, 486, 808, 837, 839, 735, 486, 486, + 743, 1143, 487, 486, 365, 960, 1143, 1143, 486, 486, + 486, 449, 472, 915, 334, 915, 915, 161, 1143, 545, + 1143, 761, 571, 572, 1160, 51, 95, 120, 137, 141, + 162, 165, 180, 268, 318, 567, 565, 1152, 808, 37, + 844, 844, 1141, 712, 487, 183, 486, 618, 239, 601, + 194, 486, 716, 708, 486, 1141, 487, 362, 28, 79, + 87, 115, 170, 183, 195, 381, 384, 593, 593, 1140, + 1143, 1145, 487, 971, 686, 148, 107, 661, 166, 700, + 348, 394, 702, 134, 705, 445, 707, 1143, 37, 1143, + 624, 579, 1141, 487, 583, 282, 1157, 615, 610, 614, + 119, 133, 307, 1143, 60, 68, 231, 971, 753, 1026, + 794, 815, 487, 490, 416, 1036, 376, 376, 487, 640, + 259, 434, 642, 643, 1143, 544, 1072, 1112, 487, 1081, + 1109, 259, 468, 55, 987, 487, 490, 37, 1034, 114, + 1046, 1047, 1072, 77, 1142, 487, 1071, 486, 1018, 1025, + 486, 487, 1039, 487, 486, 366, 486, 487, 490, 1090, + 1091, 1157, 435, 1143, 487, 490, 264, 428, 779, 788, + 544, 795, 827, 486, 548, 801, 1141, 827, 598, 618, + 1143, 397, 666, 183, 430, 546, 365, 960, 1143, 1112, + 161, 738, 738, 1112, 1112, 1071, 397, 1109, 1109, 555, + 556, 1159, 752, 753, 752, 753, 1142, 544, 487, 490, + 479, 486, 523, 573, 636, 912, 1152, 912, 263, 268, + 318, 912, 912, 1036, 844, 40, 188, 161, 259, 596, + 486, 632, 1071, 167, 297, 371, 278, 605, 606, 607, + 397, 487, 1149, 6, 717, 579, 609, 1143, 487, 661, + 155, 737, 549, 895, 1141, 453, 1017, 912, 348, 380, + 706, 486, 147, 661, 971, 944, 610, 579, 609, 586, + 486, 616, 614, 615, 349, 349, 68, 281, 68, 624, + 793, 487, 822, 828, 1048, 129, 449, 449, 434, 640, + 661, 487, 487, 487, 435, 1109, 177, 319, 349, 1096, + 1035, 1032, 486, 1072, 487, 490, 37, 1042, 1043, 1157, + 487, 1142, 1109, 487, 1109, 486, 1109, 1003, 490, 37, + 971, 1036, 796, 365, 166, 618, 837, 801, 802, 597, + 618, 487, 712, 1143, 632, 1071, 397, 487, 284, 355, + 323, 739, 739, 487, 487, 487, 1143, 487, 487, 487, + 490, 1151, 915, 572, 523, 574, 575, 1152, 1152, 268, + 598, 479, 598, 1152, 1152, 134, 196, 633, 487, 119, + 428, 278, 607, 278, 606, 1143, 486, 487, 490, 554, + 362, 661, 753, 37, 37, 486, 1143, 703, 1157, 1071, + 708, 895, 624, 614, 554, 610, 486, 612, 613, 1076, + 1157, 617, 615, 616, 281, 281, 486, 191, 797, 29, + 205, 883, 168, 168, 49, 97, 419, 1071, 1097, 1098, + 1097, 1097, 487, 1039, 490, 1047, 1160, 487, 490, 161, + 1048, 487, 487, 487, 1002, 487, 1091, 1093, 963, 777, + 446, 604, 487, 802, 601, 712, 960, 1143, 808, 55, + 960, 406, 555, 753, 487, 490, 598, 348, 487, 385, + 59, 259, 338, 365, 608, 608, 487, 6, 362, 1143, + 734, 971, 661, 487, 1149, 615, 610, 614, 1071, 487, + 490, 799, 799, 616, 617, 794, 486, 549, 264, 486, + 878, 880, 884, 946, 955, 962, 971, 808, 808, 1098, + 348, 160, 305, 160, 305, 144, 1099, 1099, 1099, 487, + 1073, 1043, 285, 3, 114, 263, 268, 1044, 1045, 333, + 1030, 487, 1036, 544, 486, 712, 605, 960, 753, 486, + 575, 707, 23, 114, 268, 1143, 661, 895, 486, 616, + 614, 615, 487, 613, 753, 800, 800, 617, 487, 796, + 798, 617, 879, 880, 881, 972, 973, 490, 490, 34, + 97, 175, 259, 403, 1085, 1072, 1072, 268, 1045, 486, + 1071, 712, 1109, 147, 661, 5, 709, 710, 1151, 1152, + 1160, 617, 615, 616, 799, 797, 487, 490, 1036, 487, + 489, 406, 166, 1098, 348, 286, 77, 1071, 487, 487, + 708, 487, 490, 616, 617, 800, 549, 796, 881, 376, + 376, 1042, 487, 1149, 710, 617, 617, 449, 449, 487, + 486, 1036, 168, 168, 709, 808, 808, 487 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 492, 493, 494, 494, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 496, 497, 498, 498, 498, 499, 499, 500, 500, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 502, + 502, 502, 502, 502, 502, 503, 504, 504, 505, 505, + 506, 506, 506, 506, 507, 507, 507, 507, 507, 507, + 508, 509, 510, 510, 511, 511, 511, 511, 512, 512, + 513, 513, 514, 514, 514, 514, 514, 514, 515, 515, + 515, 516, 516, 516, 517, 517, 517, 517, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 519, + 519, 520, 520, 521, 521, 522, 522, 522, 522, 523, + 523, 523, 523, 524, 524, 524, 524, 524, 524, 524, + 525, 525, 525, 526, 526, 527, 528, 528, 528, 528, + 529, 529, 530, 530, 531, 531, 532, 532, 532, 532, + 532, 533, 534, 534, 535, 535, 536, 537, 537, 537, + 537, 537, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 539, 539, 540, 540, 541, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 543, 543, 544, 544, 544, 545, + 545, 546, 546, 547, 547, 547, 547, 548, 549, 549, + 550, 550, 551, 551, 551, 551, 552, 552, 553, 553, + 553, 553, 554, 554, 554, 554, 555, 556, 556, 557, + 558, 558, 559, 559, 559, 559, 560, 560, 561, 561, + 562, 562, 563, 563, 564, 564, 564, 565, 565, 566, + 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 568, 568, 569, 569, 570, 570, + 571, 571, 572, 573, 573, 573, 573, 573, 574, 574, + 575, 576, 576, 576, 576, 576, 576, 577, 577, 577, + 577, 577, 577, 577, 577, 578, 578, 579, 579, 580, + 580, 581, 581, 582, 582, 582, 583, 583, 584, 585, + 585, 586, 586, 587, 587, 587, 587, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 589, 589, 590, 590, + 590, 590, 591, 592, 592, 592, 593, 593, 593, 593, + 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, + 595, 595, 595, 595, 596, 596, 597, 597, 598, 598, + 599, 600, 600, 601, 601, 601, 601, 602, 602, 603, + 603, 604, 604, 605, 605, 605, 605, 605, 606, 607, + 608, 608, 608, 608, 608, 609, 609, 610, 610, 611, + 612, 612, 613, 613, 613, 614, 614, 615, 615, 615, + 616, 616, 616, 616, 617, 617, 618, 618, 619, 620, + 620, 621, 621, 622, 622, 623, 624, 624, 624, 625, + 625, 626, 627, 627, 628, 629, 629, 630, 630, 631, + 631, 632, 632, 633, 633, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, + 635, 636, 636, 636, 636, 637, 637, 638, 638, 639, + 639, 640, 640, 641, 641, 642, 642, 643, 643, 644, + 644, 645, 645, 646, 647, 647, 648, 648, 649, 649, + 650, 650, 651, 651, 651, 651, 652, 653, 653, 654, + 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, 656, 657, + 657, 657, 657, 658, 658, 659, 659, 660, 660, 661, + 661, 662, 662, 663, 664, 664, 665, 665, 665, 665, + 666, 667, 668, 669, 669, 670, 670, 671, 671, 672, + 672, 673, 673, 673, 674, 674, 674, 674, 675, 675, + 676, 677, 677, 678, 678, 679, 679, 680, 680, 681, + 681, 682, 683, 684, 685, 685, 686, 686, 687, 687, + 688, 688, 689, 689, 690, 690, 691, 691, 691, 691, + 691, 692, 693, 693, 694, 694, 695, 695, 695, 696, + 696, 697, 697, 697, 697, 697, 698, 698, 699, 699, + 700, 701, 701, 702, 702, 703, 704, 704, 705, 705, + 706, 706, 707, 707, 708, 708, 709, 709, 709, 710, + 710, 710, 710, 711, 711, 712, 712, 713, 713, 713, + 713, 713, 713, 714, 714, 715, 715, 716, 717, 717, + 718, 719, 719, 719, 719, 720, 721, 721, 721, 721, + 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, + 721, 721, 722, 723, 723, 724, 724, 725, 725, 725, + 725, 725, 725, 726, 727, 727, 728, 729, 729, 730, + 730, 731, 731, 731, 731, 732, 732, 733, 734, 734, + 735, 735, 735, 735, 735, 736, 736, 737, 737, 738, + 738, 738, 739, 739, 740, 741, 741, 742, 742, 743, + 743, 744, 744, 745, 745, 746, 747, 748, 748, 748, + 748, 748, 748, 748, 748, 748, 748, 748, 748, 749, + 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, + 749, 749, 750, 750, 750, 750, 750, 750, 750, 751, + 751, 751, 752, 752, 753, 753, 754, 754, 755, 755, + 756, 757, 757, 757, 758, 758, 758, 758, 758, 758, + 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, + 758, 758, 758, 759, 759, 759, 759, 759, 759, 759, + 759, 759, 759, 759, 759, 759, 759, 760, 760, 760, + 760, 760, 760, 760, 760, 760, 760, 760, 760, 761, + 761, 762, 762, 762, 762, 762, 762, 762, 762, 762, + 763, 763, 764, 764, 764, 764, 764, 764, 765, 765, + 765, 765, 765, 765, 765, 765, 766, 766, 767, 767, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 769, 769, 770, 770, + 771, 772, 772, 773, 773, 773, 773, 773, 774, 774, + 775, 775, 775, 775, 776, 776, 776, 776, 776, 776, + 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 776, 776, 776, 777, 777, 778, 778, 779, 779, + 780, 781, 781, 782, 782, 783, 783, 784, 785, 785, + 786, 786, 786, 787, 787, 787, 788, 788, 788, 788, + 788, 788, 789, 789, 790, 790, 791, 791, 792, 792, + 793, 793, 794, 794, 795, 795, 796, 796, 796, 797, + 797, 798, 798, 799, 799, 800, 800, 801, 801, 801, + 802, 802, 802, 803, 803, 803, 803, 804, 804, 805, + 805, 806, 806, 807, 807, 808, 808, 808, 808, 809, + 809, 810, 810, 811, 811, 811, 811, 811, 812, 812, + 812, 812, 812, 813, 814, 815, 815, 815, 816, 816, + 816, 817, 818, 818, 818, 818, 819, 819, 820, 821, + 821, 822, 822, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, + 824, 824, 824, 824, 824, 825, 825, 826, 826, 827, + 827, 828, 829, 829, 830, 830, 830, 831, 831, 832, + 832, 833, 833, 833, 833, 833, 833, 834, 834, 835, + 835, 836, 836, 836, 836, 837, 837, 838, 838, 839, + 840, 841, 841, 842, 842, 843, 843, 843, 844, 844, + 844, 845, 846, 846, 847, 848, 848, 848, 848, 849, + 850, 850, 850, 850, 851, 851, 852, 852, 852, 853, + 853, 854, 855, 855, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 857, + 857, 858, 858, 859, 859, 859, 859, 859, 859, 860, + 860, 861, 861, 861, 861, 861, 861, 861, 861, 861, + 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, + 861, 861, 861, 861, 861, 861, 861, 861, 862, 863, + 863, 864, 864, 865, 865, 865, 865, 865, 866, 867, + 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 868, 869, 869, 870, 870, 871, 871, + 871, 871, 872, 873, 873, 874, 875, 875, 875, 875, + 875, 875, 876, 876, 877, 878, 878, 878, 879, 879, + 880, 880, 880, 880, 880, 881, 881, 882, 882, 882, + 882, 883, 883, 883, 884, 885, 885, 886, 887, 887, + 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, + 888, 888, 888, 888, 889, 889, 889, 890, 890, 890, + 890, 890, 891, 891, 891, 892, 892, 893, 893, 893, + 894, 894, 894, 894, 895, 895, 895, 895, 896, 897, + 898, 898, 899, 899, 900, 900, 900, 901, 901, 901, + 901, 901, 901, 901, 902, 902, 903, 903, 903, 904, + 905, 905, 905, 905, 906, 906, 907, 908, 909, 909, + 910, 911, 911, 911, 911, 911, 911, 911, 912, 912, + 913, 914, 914, 914, 914, 914, 914, 915, 915, 916, + 917, 917, 917, 918, 918, 919, 919, 920, 920, 921, + 921, 922, 922, 923, 924, 924, 925, 925, 925, 926, + 926, 927, 927, 928, 928, 929, 929, 930, 930, 931, + 932, 932, 933, 933, 934, 934, 934, 934, 935, 935, + 935, 935, 935, 935, 935, 935, 935, 936, 936, 937, + 938, 938, 939, 939, 939, 940, 941, 941, 942, 942, + 942, 942, 943, 943, 943, 944, 944, 945, 945, 945, + 945, 946, 947, 947, 948, 948, 948, 948, 948, 949, + 949, 950, 950, 951, 952, 952, 952, 953, 953, 953, + 954, 954, 955, 956, 956, 957, 958, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 960, 960, 961, 961, + 961, 962, 963, 963, 964, 964, 965, 966, 966, 967, + 968, 969, 969, 969, 969, 969, 970, 970, 970, 971, + 971, 972, 972, 973, 973, 973, 973, 973, 973, 973, + 973, 974, 974, 975, 975, 975, 975, 975, 975, 975, + 976, 976, 976, 977, 977, 978, 979, 979, 979, 980, + 980, 981, 981, 982, 982, 982, 982, 982, 982, 982, + 982, 982, 983, 983, 984, 984, 984, 985, 985, 986, + 986, 987, 987, 988, 989, 989, 990, 990, 991, 991, + 991, 991, 992, 992, 993, 993, 993, 993, 993, 993, + 994, 994, 995, 995, 996, 997, 997, 997, 998, 998, + 999, 999, 1000, 1000, 1001, 1001, 1002, 1002, 1003, 1003, + 1003, 1003, 1003, 1004, 1005, 1006, 1007, 1008, 1008, 1009, + 1009, 1010, 1010, 1011, 1011, 1012, 1013, 1013, 1013, 1013, + 1014, 1014, 1015, 1015, 1016, 1016, 1017, 1017, 1018, 1018, + 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1019, 1019, + 1019, 1019, 1019, 1019, 1020, 1020, 1020, 1020, 1021, 1021, + 1022, 1022, 1022, 1022, 1022, 1023, 1023, 1023, 1023, 1024, + 1024, 1025, 1025, 1026, 1026, 1026, 1026, 1027, 1027, 1028, + 1028, 1028, 1029, 1030, 1030, 1031, 1031, 1032, 1033, 1033, + 1034, 1034, 1035, 1035, 1036, 1036, 1037, 1037, 1037, 1038, + 1038, 1039, 1039, 1040, 1041, 1041, 1042, 1042, 1043, 1043, + 1043, 1044, 1044, 1045, 1045, 1045, 1045, 1046, 1046, 1047, + 1047, 1048, 1048, 1048, 1048, 1048, 1048, 1049, 1049, 1049, + 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1051, 1051, 1051, + 1051, 1052, 1052, 1053, 1053, 1054, 1054, 1054, 1054, 1054, + 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1055, 1056, 1056, + 1057, 1057, 1058, 1059, 1060, 1060, 1061, 1061, 1062, 1063, + 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1065, 1066, 1066, + 1066, 1066, 1067, 1068, 1068, 1068, 1069, 1069, 1069, 1069, + 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, + 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, + 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, + 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, + 1072, 1072, 1072, 1072, 1072, 1073, 1073, 1073, 1073, 1073, + 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1074, + 1074, 1074, 1074, 1074, 1074, 1074, 1075, 1075, 1076, 1076, + 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, + 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, + 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, + 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, + 1077, 1077, 1077, 1077, 1078, 1078, 1079, 1079, 1079, 1079, + 1080, 1081, 1081, 1082, 1082, 1083, 1083, 1084, 1084, 1084, + 1085, 1085, 1085, 1085, 1086, 1086, 1087, 1087, 1088, 1088, + 1089, 1089, 1090, 1090, 1091, 1092, 1092, 1092, 1093, 1094, + 1094, 1095, 1095, 1096, 1096, 1096, 1096, 1097, 1097, 1098, + 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1100, + 1100, 1100, 1101, 1101, 1102, 1103, 1103, 1103, 1104, 1104, + 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, + 1105, 1105, 1106, 1106, 1107, 1107, 1108, 1108, 1108, 1108, + 1108, 1108, 1109, 1109, 1110, 1110, 1111, 1111, 1111, 1112, + 1112, 1113, 1113, 1113, 1114, 1114, 1115, 1115, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, + 1118, 1118, 1119, 1120, 1120, 1121, 1121, 1121, 1121, 1121, + 1121, 1122, 1123, 1124, 1124, 1124, 1125, 1125, 1126, 1127, + 1127, 1128, 1129, 1129, 1130, 1130, 1131, 1131, 1132, 1132, + 1132, 1132, 1133, 1133, 1134, 1134, 1135, 1135, 1136, 1136, + 1137, 1137, 1138, 1138, 1139, 1139, 1139, 1139, 1140, 1140, + 1141, 1141, 1142, 1142, 1143, 1144, 1145, 1146, 1147, 1148, + 1149, 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, + 1150, 1150, 1150, 1150, 1150, 1151, 1152, 1153, 1153, 1153, + 1154, 1155, 1155, 1155, 1156, 1156, 1157, 1157, 1157, 1158, + 1158, 1158, 1159, 1159, 1159, 1159, 1160, 1160, 1160, 1160, + 1160, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, + 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, + 1163, 1163, 1163, 1163, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164 +}; + + /* YYR2[YYN] -- Number of symbols on the 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, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 2, 5, 1, 1, 0, 2, 0, 2, 0, + 2, 2, 3, 3, 1, 3, 3, 2, 1, 1, + 2, 2, 2, 3, 3, 5, 5, 5, 0, 3, + 5, 5, 5, 5, 3, 5, 3, 5, 3, 5, + 5, 6, 1, 1, 6, 4, 9, 7, 1, 0, + 2, 0, 1, 1, 1, 1, 1, 1, 2, 3, + 3, 2, 5, 1, 3, 3, 3, 3, 1, 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, 5, 1, 1, 1, + 1, 1, 0, 1, 1, 2, 1, 2, 3, 2, + 1, 1, 2, 1, 2, 1, 2, 3, 4, 3, + 2, 4, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 4, 6, 4, 6, 10, 13, 4, 6, + 4, 10, 13, 4, 6, 4, 6, 5, 7, 11, + 14, 1, 3, 4, 3, 3, 2, 5, 3, 6, + 4, 6, 6, 5, 7, 6, 6, 5, 5, 6, + 9, 4, 5, 7, 6, 4, 8, 4, 2, 4, + 3, 6, 4, 3, 3, 3, 2, 2, 3, 4, + 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, + 2, 3, 2, 2, 3, 3, 2, 2, 3, 4, + 4, 4, 5, 1, 3, 2, 1, 1, 0, 2, + 0, 2, 0, 1, 1, 1, 3, 3, 2, 0, + 1, 3, 3, 1, 5, 3, 1, 2, 1, 3, + 2, 3, 6, 6, 10, 1, 2, 1, 3, 4, + 1, 3, 4, 6, 4, 8, 2, 2, 11, 9, + 1, 1, 1, 0, 1, 1, 1, 1, 3, 2, + 0, 1, 1, 3, 3, 1, 1, 3, 3, 3, + 3, 4, 3, 2, 1, 0, 3, 0, 1, 0, + 1, 3, 2, 1, 1, 1, 3, 0, 1, 3, + 1, 13, 16, 12, 15, 14, 17, 1, 1, 2, + 2, 2, 2, 1, 0, 1, 0, 3, 0, 1, + 3, 1, 3, 1, 1, 1, 1, 1, 4, 2, + 4, 2, 0, 3, 1, 1, 2, 2, 1, 3, + 4, 5, 2, 5, 7, 5, 1, 2, 1, 2, + 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 5, 8, 3, + 9, 4, 10, 11, 2, 0, 3, 0, 1, 3, + 1, 4, 0, 2, 2, 2, 0, 1, 3, 3, + 6, 4, 0, 1, 1, 2, 2, 0, 3, 3, + 2, 1, 1, 2, 2, 4, 0, 1, 0, 6, + 1, 3, 3, 3, 5, 2, 0, 2, 2, 0, + 3, 4, 4, 0, 2, 0, 4, 0, 3, 8, + 11, 6, 8, 7, 10, 6, 2, 3, 0, 8, + 11, 5, 1, 0, 6, 5, 8, 4, 6, 1, + 0, 3, 0, 1, 2, 2, 2, 1, 2, 3, + 2, 2, 2, 2, 3, 3, 3, 1, 3, 1, + 0, 1, 2, 2, 1, 1, 3, 6, 10, 1, + 0, 1, 2, 2, 0, 2, 2, 1, 0, 5, + 7, 1, 0, 7, 2, 0, 3, 5, 5, 8, + 2, 0, 2, 2, 2, 1, 5, 2, 0, 2, + 7, 6, 10, 6, 6, 6, 6, 7, 6, 9, + 9, 6, 6, 6, 7, 6, 8, 8, 8, 8, + 6, 6, 7, 7, 8, 6, 9, 6, 7, 2, + 2, 2, 2, 1, 2, 1, 0, 7, 6, 4, + 0, 1, 3, 4, 1, 3, 1, 2, 2, 2, + 2, 1, 1, 10, 13, 2, 0, 2, 2, 1, + 0, 5, 4, 4, 11, 14, 12, 15, 5, 7, + 11, 2, 1, 4, 0, 8, 11, 1, 1, 7, + 9, 8, 10, 8, 4, 0, 5, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 1, 1, 1, 1, + 1, 8, 1, 1, 16, 20, 1, 1, 2, 1, + 3, 1, 1, 1, 3, 1, 2, 0, 1, 2, + 4, 1, 1, 1, 1, 1, 3, 0, 1, 0, + 1, 1, 4, 0, 1, 1, 1, 3, 0, 1, + 1, 1, 1, 2, 0, 0, 2, 2, 1, 2, + 2, 2, 2, 11, 13, 1, 3, 5, 1, 3, + 5, 1, 2, 2, 1, 8, 6, 5, 4, 4, + 3, 7, 8, 6, 6, 6, 6, 6, 4, 7, + 5, 8, 3, 1, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 3, 3, 1, 0, 1, + 3, 7, 9, 9, 8, 3, 0, 13, 1, 3, + 5, 5, 3, 6, 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, 6, + 4, 6, 8, 4, 6, 4, 6, 5, 7, 1, + 1, 1, 2, 1, 2, 1, 1, 1, 3, 3, + 3, 3, 2, 2, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 2, 2, 3, 1, 3, + 5, 2, 2, 0, 6, 6, 6, 6, 6, 6, + 6, 8, 9, 8, 6, 6, 8, 9, 8, 9, + 9, 7, 10, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 2, 3, 3, 3, 3, 2, 1, 2, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 8, 8, 8, 8, 8, 8, 9, 8, 8, + 2, 0, 1, 2, 1, 1, 1, 2, 1, 2, + 2, 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, 2, 2, 3, 2, 2, 2, 5, + 5, 5, 5, 5, 1, 3, 1, 2, 3, 0, + 6, 6, 9, 3, 0, 3, 0, 5, 2, 0, + 3, 3, 3, 7, 7, 10, 1, 1, 1, 1, + 1, 1, 15, 18, 1, 0, 1, 0, 1, 0, + 2, 0, 1, 3, 4, 5, 2, 2, 4, 4, + 0, 1, 3, 2, 0, 1, 0, 1, 1, 0, + 2, 2, 0, 8, 11, 6, 6, 2, 0, 3, + 2, 1, 3, 1, 3, 2, 1, 1, 2, 3, + 2, 1, 3, 3, 3, 2, 2, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 4, 5, 1, 3, + 3, 1, 3, 3, 5, 6, 1, 3, 2, 1, + 3, 1, 2, 4, 5, 1, 1, 1, 1, 3, + 3, 2, 2, 1, 2, 2, 2, 2, 1, 2, + 2, 2, 2, 1, 1, 1, 3, 3, 5, 2, + 0, 2, 1, 3, 5, 5, 5, 1, 2, 1, + 0, 4, 6, 4, 6, 4, 6, 4, 6, 4, + 6, 3, 5, 5, 5, 1, 3, 1, 3, 2, + 2, 1, 2, 1, 2, 11, 10, 10, 2, 2, + 0, 9, 2, 0, 10, 11, 11, 5, 5, 8, + 4, 4, 7, 7, 1, 1, 1, 1, 1, 1, + 3, 1, 5, 5, 6, 6, 6, 6, 6, 8, + 8, 6, 6, 7, 9, 9, 8, 10, 6, 6, + 6, 6, 6, 6, 6, 8, 6, 8, 6, 8, + 7, 9, 6, 8, 7, 9, 8, 10, 8, 10, + 9, 11, 8, 10, 9, 11, 8, 8, 7, 6, + 6, 6, 6, 8, 8, 8, 8, 6, 9, 1, + 0, 2, 0, 8, 8, 8, 10, 9, 8, 1, + 0, 6, 6, 6, 6, 6, 6, 6, 9, 9, + 6, 6, 6, 8, 6, 8, 8, 8, 8, 6, + 8, 6, 8, 7, 9, 7, 9, 6, 7, 1, + 3, 3, 3, 1, 1, 1, 1, 1, 7, 6, + 6, 6, 6, 6, 6, 7, 7, 6, 9, 9, + 6, 6, 6, 6, 6, 6, 8, 8, 8, 6, + 7, 6, 6, 5, 1, 0, 3, 3, 5, 6, + 6, 6, 8, 1, 3, 1, 5, 5, 6, 7, + 4, 4, 4, 6, 13, 1, 1, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 0, 3, 2, 0, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 2, 3, 2, 5, + 4, 3, 3, 3, 1, 1, 0, 3, 2, 2, + 1, 2, 1, 3, 2, 1, 0, 2, 3, 0, + 9, 11, 12, 14, 3, 4, 4, 0, 2, 5, + 1, 0, 1, 2, 3, 3, 3, 1, 2, 1, + 1, 1, 1, 1, 1, 0, 5, 4, 6, 4, + 3, 5, 7, 9, 1, 3, 1, 5, 4, 4, + 6, 4, 6, 6, 5, 7, 9, 6, 1, 0, + 6, 11, 11, 11, 13, 9, 11, 1, 1, 10, + 4, 2, 5, 2, 0, 6, 5, 3, 5, 1, + 3, 1, 1, 2, 1, 1, 1, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 3, 0, 2, + 1, 3, 1, 0, 2, 4, 3, 5, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 1, 1, 1, 0, 5, 3, 0, 1, 1, + 1, 1, 3, 9, 12, 3, 0, 2, 3, 2, + 3, 7, 1, 3, 1, 4, 4, 7, 2, 1, + 1, 1, 3, 2, 8, 5, 0, 4, 3, 0, + 2, 0, 7, 2, 0, 5, 3, 0, 2, 2, + 2, 3, 1, 3, 1, 2, 1, 0, 1, 2, + 0, 8, 1, 3, 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, 9, 1, 2, 4, 4, 4, + 2, 2, 3, 1, 3, 7, 1, 2, 0, 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, 6, 4, 5, + 2, 3, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 1, 1, 3, 0, 1, 3, 1, 1, + 1, 1, 1, 2, 4, 4, 5, 2, 0, 1, + 3, 1, 0, 1, 2, 3, 2, 4, 2, 3, + 2, 0, 4, 5, 2, 0, 1, 3, 2, 3, + 2, 3, 2, 3, 2, 3, 1, 4, 3, 4, + 5, 4, 5, 4, 5, 2, 4, 1, 1, 0, + 1, 4, 5, 4, 0, 2, 2, 2, 1, 1, + 0, 4, 2, 1, 2, 2, 4, 1, 3, 1, + 2, 3, 6, 4, 0, 2, 6, 2, 1, 3, + 4, 0, 2, 0, 2, 0, 2, 4, 0, 1, + 0, 1, 3, 3, 7, 12, 1, 3, 2, 3, + 3, 1, 2, 2, 2, 2, 1, 1, 3, 3, + 2, 2, 3, 5, 6, 2, 3, 3, 4, 0, + 1, 1, 1, 1, 1, 2, 4, 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, 4, 1, + 2, 2, 1, 3, 3, 2, 1, 0, 5, 2, + 5, 2, 1, 3, 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, 3, 3, + 3, 2, 2, 3, 3, 2, 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, 3, 4, 4, 5, 1, + 1, 3, 2, 2, 3, 3, 3, 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, 1, 4, 3, + 5, 6, 8, 6, 6, 4, 4, 1, 1, 1, + 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, + 1, 1, 1, 1, 1, 1, 6, 4, 4, 6, + 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, 3, 3, 4, 2, 2, 5, 0, 5, 0, + 2, 0, 1, 3, 3, 2, 2, 0, 6, 1, + 0, 3, 0, 3, 3, 3, 0, 1, 4, 2, + 2, 2, 2, 2, 3, 2, 2, 3, 0, 4, + 3, 5, 4, 3, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 1, 4, 1, 4, 1, 2, + 1, 2, 1, 3, 1, 3, 1, 3, 3, 1, + 3, 3, 3, 2, 1, 3, 3, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 4, 3, 2, 3, 0, 3, 3, 2, 2, 1, + 0, 2, 2, 3, 2, 1, 1, 3, 5, 1, + 2, 4, 2, 0, 1, 0, 1, 2, 2, 2, + 3, 5, 1, 0, 1, 2, 0, 2, 1, 0, + 1, 0, 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, 6, 2, + 3, 5, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 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, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1 +}; + + +#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 + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) + +/* Error token number */ +#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). */ + +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (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 (0) +#endif + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + + +/* 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 + +/* Print *YYLOCP on YYO. Private, do not rely on its existence. */ + +YY_ATTRIBUTE_UNUSED +static int +yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) +{ + int res = 0; + int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; + if (0 <= yylocp->first_line) + { + res += YYFPRINTF (yyo, "%d", yylocp->first_line); + if (0 <= yylocp->first_column) + res += YYFPRINTF (yyo, ".%d", yylocp->first_column); + } + if (0 <= yylocp->last_line) + { + if (yylocp->first_line < yylocp->last_line) + { + res += YYFPRINTF (yyo, "-%d", yylocp->last_line); + if (0 <= end_col) + res += YYFPRINTF (yyo, ".%d", end_col); + } + else if (0 <= end_col && yylocp->first_column < end_col) + res += YYFPRINTF (yyo, "-%d", end_col); + } + return res; + } + +# define YY_LOCATION_PRINT(File, Loc) \ + yy_location_print_ (File, &(Loc)) + +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +# 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 (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) +{ + FILE *yyoutput = yyo; + YYUSE (yyoutput); + YYUSE (yylocationp); + YYUSE (yyscanner); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); +# endif + YYUSE (yytype); +} + + +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ + +static void +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) +{ + YYFPRINTF (yyo, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + YY_LOCATION_PRINT (yyo, *yylocationp); + YYFPRINTF (yyo, ": "); + yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, yyscanner); + YYFPRINTF (yyo, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + 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 (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) +{ + unsigned long yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + 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, + yystos[yyssp[yyi + 1 - yynrhs]], + &yyvsp[(yyi + 1) - (yynrhs)] + , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, yylsp, Rule, yyscanner); \ +} while (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. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + 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. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + 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; + else + goto append; + + append: + 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 (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + 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 yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + default: /* Avoid compiler warnings. */ + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* 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 = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) +{ + YYUSE (yyvaluep); + YYUSE (yylocationp); + YYUSE (yyscanner); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (core_yyscan_t yyscanner) +{ +/* The lookahead symbol. */ +int yychar; + + +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + +/* Location data for the lookahead symbol. */ +static YYLTYPE yyloc_default +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL + = { 1, 1, 1, 1 } +# endif +; +YYLTYPE yylloc = yyloc_default; + + /* 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 through 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 = 0; + /* 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; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yylsp = yyls = yylsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + yylsp[0] = yylloc; + 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++; + + +/*--------------------------------------------------------------------. +| yynewstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + *yyssp = (yytype_int16) yystate; + + if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + +# if defined 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); + yyss = yyss1; + yyvs = yyvs1; + yyls = yyls1; + } +# else /* defined YYSTACK_RELOCATE */ + /* 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 + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + yylsp = yyls + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + + 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 (yypact_value_is_default (yyn)) + 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 (&yylval, &yylloc, yyscanner); + } + + 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 (yytable_value_is_error (yyn)) + 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; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + *++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); + yyerror_range[1] = yyloc; + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 805 "gram.y" /* yacc.c:1652 */ + { + pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list); + } +#line 25879 "gram.c" /* yacc.c:1652 */ + break; + + case 3: +#line 821 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[-2].list) != NIL) + { + /* update length of previous stmt */ + updateRawStmtEnd(llast_node(RawStmt, (yyvsp[-2].list)), (yylsp[-1])); + } + if ((yyvsp[0].node) != NULL) + (yyval.list) = lappend((yyvsp[-2].list), makeRawStmt((yyvsp[0].node), (yylsp[-1]) + 1)); + else + (yyval.list) = (yyvsp[-2].list); + } +#line 25895 "gram.c" /* yacc.c:1652 */ + break; + + case 4: +#line 833 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[0].node) != NULL) + (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), 0)); + else + (yyval.list) = NIL; + } +#line 25906 "gram.c" /* yacc.c:1652 */ + break; + + case 130: +#line 968 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 25912 "gram.c" /* yacc.c:1652 */ + break; + + case 131: +#line 978 "gram.y" /* yacc.c:1652 */ + { + CallStmt *n = makeNode(CallStmt); + n->funccall = castNode(FuncCall, (yyvsp[0].node)); + (yyval.node) = (Node *)n; + } +#line 25922 "gram.c" /* yacc.c:1652 */ + break; + + case 132: +#line 993 "gram.y" /* yacc.c:1652 */ + { + CreateRoleStmt *n = makeNode(CreateRoleStmt); + n->stmt_type = ROLESTMT_ROLE; + n->role = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 25934 "gram.c" /* yacc.c:1652 */ + break; + + case 133: +#line 1003 "gram.y" /* yacc.c:1652 */ + {} +#line 25940 "gram.c" /* yacc.c:1652 */ + break; + + case 134: +#line 1004 "gram.y" /* yacc.c:1652 */ + {} +#line 25946 "gram.c" /* yacc.c:1652 */ + break; + + case 135: +#line 1005 "gram.y" /* yacc.c:1652 */ + {} +#line 25952 "gram.c" /* yacc.c:1652 */ + break; + + case 136: +#line 1014 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 25958 "gram.c" /* yacc.c:1652 */ + break; + + case 137: +#line 1015 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 25964 "gram.c" /* yacc.c:1652 */ + break; + + case 138: +#line 1019 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 25970 "gram.c" /* yacc.c:1652 */ + break; + + case 139: +#line 1020 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 25976 "gram.c" /* yacc.c:1652 */ + break; + + case 140: +#line 1025 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("password", + (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 25985 "gram.c" /* yacc.c:1652 */ + break; + + case 141: +#line 1030 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1])); + } +#line 25993 "gram.c" /* yacc.c:1652 */ + break; + + case 142: +#line 1034 "gram.y" /* yacc.c:1652 */ + { + /* + * These days, passwords are always stored in encrypted + * form, so there is no difference between PASSWORD and + * ENCRYPTED PASSWORD. + */ + (yyval.defelt) = makeDefElem("password", + (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 26007 "gram.c" /* yacc.c:1652 */ + break; + + case 143: +#line 1044 "gram.y" /* yacc.c:1652 */ + { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("UNENCRYPTED PASSWORD is no longer supported"), + errhint("Remove UNENCRYPTED to store the password in encrypted form instead."), + parser_errposition((yylsp[-2])))); + } +#line 26019 "gram.c" /* yacc.c:1652 */ + break; + + case 144: +#line 1052 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(true), (yylsp[0])); + } +#line 26027 "gram.c" /* yacc.c:1652 */ + break; + + case 145: +#line 1056 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); + } +#line 26035 "gram.c" /* yacc.c:1652 */ + break; + + case 146: +#line 1060 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 26043 "gram.c" /* yacc.c:1652 */ + break; + + case 147: +#line 1065 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); + } +#line 26051 "gram.c" /* yacc.c:1652 */ + break; + + case 148: +#line 1069 "gram.y" /* yacc.c:1652 */ + { + /* + * 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[0].str), "superuser") == 0) + (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(true), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "nosuperuser") == 0) + (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(false), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "createrole") == 0) + (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(true), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "nocreaterole") == 0) + (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(false), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "replication") == 0) + (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(true), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "noreplication") == 0) + (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(false), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "createdb") == 0) + (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(true), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "nocreatedb") == 0) + (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(false), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "login") == 0) + (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(true), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "nologin") == 0) + (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(false), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "bypassrls") == 0) + (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(true), (yylsp[0])); + else if (strcmp((yyvsp[0].str), "nobypassrls") == 0) + (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(false), (yylsp[0])); + else if (strcmp((yyvsp[0].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), (yylsp[0])); + } + else + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)), + parser_errposition((yylsp[0])))); + } +#line 26100 "gram.c" /* yacc.c:1652 */ + break; + + case 149: +#line 1116 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = (yyvsp[0].defelt); } +#line 26106 "gram.c" /* yacc.c:1652 */ + break; + + case 150: +#line 1119 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); + } +#line 26114 "gram.c" /* yacc.c:1652 */ + break; + + case 151: +#line 1123 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[0].list), (yylsp[-1])); + } +#line 26122 "gram.c" /* yacc.c:1652 */ + break; + + case 152: +#line 1127 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); + } +#line 26130 "gram.c" /* yacc.c:1652 */ + break; + + case 153: +#line 1131 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 26138 "gram.c" /* yacc.c:1652 */ + break; + + case 154: +#line 1135 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 26146 "gram.c" /* yacc.c:1652 */ + break; + + case 155: +#line 1149 "gram.y" /* yacc.c:1652 */ + { + CreateRoleStmt *n = makeNode(CreateRoleStmt); + n->stmt_type = ROLESTMT_USER; + n->role = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26158 "gram.c" /* yacc.c:1652 */ + break; + + case 156: +#line 1167 "gram.y" /* yacc.c:1652 */ + { + AlterRoleStmt *n = makeNode(AlterRoleStmt); + n->role = (yyvsp[-2].rolespec); + n->action = +1; /* add, if there are members */ + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26170 "gram.c" /* yacc.c:1652 */ + break; + + case 157: +#line 1175 "gram.y" /* yacc.c:1652 */ + { + AlterRoleStmt *n = makeNode(AlterRoleStmt); + n->role = (yyvsp[-2].rolespec); + n->action = +1; /* add, if there are members */ + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26182 "gram.c" /* yacc.c:1652 */ + break; + + case 158: +#line 1185 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 26188 "gram.c" /* yacc.c:1652 */ + break; + + case 159: +#line 1186 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26194 "gram.c" /* yacc.c:1652 */ + break; + + case 160: +#line 1191 "gram.y" /* yacc.c:1652 */ + { + AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); + n->role = (yyvsp[-2].rolespec); + n->database = (yyvsp[-1].str); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 26206 "gram.c" /* yacc.c:1652 */ + break; + + case 161: +#line 1199 "gram.y" /* yacc.c:1652 */ + { + AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); + n->role = NULL; + n->database = (yyvsp[-1].str); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 26218 "gram.c" /* yacc.c:1652 */ + break; + + case 162: +#line 1207 "gram.y" /* yacc.c:1652 */ + { + AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); + n->role = (yyvsp[-2].rolespec); + n->database = (yyvsp[-1].str); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 26230 "gram.c" /* yacc.c:1652 */ + break; + + case 163: +#line 1215 "gram.y" /* yacc.c:1652 */ + { + AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); + n->role = NULL; + n->database = (yyvsp[-1].str); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 26242 "gram.c" /* yacc.c:1652 */ + break; + + case 164: +#line 1236 "gram.y" /* yacc.c:1652 */ + { + DropRoleStmt *n = makeNode(DropRoleStmt); + n->missing_ok = false; + n->roles = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26253 "gram.c" /* yacc.c:1652 */ + break; + + case 165: +#line 1243 "gram.y" /* yacc.c:1652 */ + { + DropRoleStmt *n = makeNode(DropRoleStmt); + n->missing_ok = true; + n->roles = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26264 "gram.c" /* yacc.c:1652 */ + break; + + case 166: +#line 1250 "gram.y" /* yacc.c:1652 */ + { + DropRoleStmt *n = makeNode(DropRoleStmt); + n->missing_ok = false; + n->roles = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26275 "gram.c" /* yacc.c:1652 */ + break; + + case 167: +#line 1257 "gram.y" /* yacc.c:1652 */ + { + DropRoleStmt *n = makeNode(DropRoleStmt); + n->roles = (yyvsp[0].list); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 26286 "gram.c" /* yacc.c:1652 */ + break; + + case 168: +#line 1264 "gram.y" /* yacc.c:1652 */ + { + DropRoleStmt *n = makeNode(DropRoleStmt); + n->missing_ok = false; + n->roles = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26297 "gram.c" /* yacc.c:1652 */ + break; + + case 169: +#line 1271 "gram.y" /* yacc.c:1652 */ + { + DropRoleStmt *n = makeNode(DropRoleStmt); + n->missing_ok = true; + n->roles = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26308 "gram.c" /* yacc.c:1652 */ + break; + + case 170: +#line 1288 "gram.y" /* yacc.c:1652 */ + { + CreateRoleStmt *n = makeNode(CreateRoleStmt); + n->stmt_type = ROLESTMT_GROUP; + n->role = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 26320 "gram.c" /* yacc.c:1652 */ + break; + + case 171: +#line 1306 "gram.y" /* yacc.c:1652 */ + { + AlterRoleStmt *n = makeNode(AlterRoleStmt); + n->role = (yyvsp[-3].rolespec); + n->action = (yyvsp[-2].ival); + n->options = list_make1(makeDefElem("rolemembers", + (Node *)(yyvsp[0].list), (yylsp[0]))); + (yyval.node) = (Node *)n; + } +#line 26333 "gram.c" /* yacc.c:1652 */ + break; + + case 172: +#line 1316 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = +1; } +#line 26339 "gram.c" /* yacc.c:1652 */ + break; + + case 173: +#line 1317 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = -1; } +#line 26345 "gram.c" /* yacc.c:1652 */ + break; + + case 174: +#line 1329 "gram.y" /* yacc.c:1652 */ + { + CreateSchemaStmt *n = makeNode(CreateSchemaStmt); + /* One can omit the schema name or the authorization id. */ + n->schemaname = (yyvsp[-3].str); + n->authrole = (yyvsp[-1].rolespec); + n->schemaElts = (yyvsp[0].list); + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 26359 "gram.c" /* yacc.c:1652 */ + break; + + case 175: +#line 1339 "gram.y" /* yacc.c:1652 */ + { + CreateSchemaStmt *n = makeNode(CreateSchemaStmt); + /* ...but not both */ + n->schemaname = (yyvsp[-1].str); + n->authrole = NULL; + n->schemaElts = (yyvsp[0].list); + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 26373 "gram.c" /* yacc.c:1652 */ + break; + + case 176: +#line 1349 "gram.y" /* yacc.c:1652 */ + { + CreateSchemaStmt *n = makeNode(CreateSchemaStmt); + /* schema name can be omitted here, too */ + n->schemaname = (yyvsp[-3].str); + n->authrole = (yyvsp[-1].rolespec); + if ((yyvsp[0].list) != NIL) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), + parser_errposition((yylsp[0])))); + n->schemaElts = (yyvsp[0].list); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 26392 "gram.c" /* yacc.c:1652 */ + break; + + case 177: +#line 1364 "gram.y" /* yacc.c:1652 */ + { + CreateSchemaStmt *n = makeNode(CreateSchemaStmt); + /* ...but not here */ + n->schemaname = (yyvsp[-1].str); + n->authrole = NULL; + if ((yyvsp[0].list) != NIL) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), + parser_errposition((yylsp[0])))); + n->schemaElts = (yyvsp[0].list); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 26411 "gram.c" /* yacc.c:1652 */ + break; + + case 178: +#line 1381 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26417 "gram.c" /* yacc.c:1652 */ + break; + + case 179: +#line 1382 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 26423 "gram.c" /* yacc.c:1652 */ + break; + + case 180: +#line 1387 "gram.y" /* yacc.c:1652 */ + { + if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ + (yyloc) = (yylsp[0]); + (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); + } +#line 26433 "gram.c" /* yacc.c:1652 */ + break; + + case 181: +#line 1393 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 26439 "gram.c" /* yacc.c:1652 */ + break; + + case 188: +#line 1421 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = (yyvsp[0].vsetstmt); + n->is_local = false; + (yyval.node) = (Node *) n; + } +#line 26449 "gram.c" /* yacc.c:1652 */ + break; + + case 189: +#line 1427 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = (yyvsp[0].vsetstmt); + n->is_local = true; + (yyval.node) = (Node *) n; + } +#line 26459 "gram.c" /* yacc.c:1652 */ + break; + + case 190: +#line 1433 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = (yyvsp[0].vsetstmt); + n->is_local = false; + (yyval.node) = (Node *) n; + } +#line 26469 "gram.c" /* yacc.c:1652 */ + break; + + case 191: +#line 1442 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_MULTI; + n->name = "TRANSACTION"; + n->args = (yyvsp[0].list); + (yyval.vsetstmt) = n; + } +#line 26481 "gram.c" /* yacc.c:1652 */ + break; + + case 192: +#line 1450 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_MULTI; + n->name = "SESSION CHARACTERISTICS"; + n->args = (yyvsp[0].list); + (yyval.vsetstmt) = n; + } +#line 26493 "gram.c" /* yacc.c:1652 */ + break; + + case 194: +#line 1462 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (yyvsp[-2].str); + n->args = (yyvsp[0].list); + (yyval.vsetstmt) = n; + } +#line 26505 "gram.c" /* yacc.c:1652 */ + break; + + case 195: +#line 1470 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (yyvsp[-2].str); + n->args = (yyvsp[0].list); + (yyval.vsetstmt) = n; + } +#line 26517 "gram.c" /* yacc.c:1652 */ + break; + + case 196: +#line 1478 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = (yyvsp[-2].str); + (yyval.vsetstmt) = n; + } +#line 26528 "gram.c" /* yacc.c:1652 */ + break; + + case 197: +#line 1485 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = (yyvsp[-2].str); + (yyval.vsetstmt) = n; + } +#line 26539 "gram.c" /* yacc.c:1652 */ + break; + + case 198: +#line 1494 "gram.y" /* yacc.c:1652 */ + {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} +#line 26545 "gram.c" /* yacc.c:1652 */ + break; + + case 199: +#line 1496 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_CURRENT; + n->name = (yyvsp[-2].str); + (yyval.vsetstmt) = n; + } +#line 26556 "gram.c" /* yacc.c:1652 */ + break; + + case 200: +#line 1504 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = "timezone"; + if ((yyvsp[0].node) != NULL) + n->args = list_make1((yyvsp[0].node)); + else + n->kind = VAR_SET_DEFAULT; + (yyval.vsetstmt) = n; + } +#line 26571 "gram.c" /* yacc.c:1652 */ + break; + + case 201: +#line 1515 "gram.y" /* yacc.c:1652 */ + { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("current database cannot be changed"), + parser_errposition((yylsp[0])))); + (yyval.vsetstmt) = NULL; /*not reached*/ + } +#line 26583 "gram.c" /* yacc.c:1652 */ + break; + + case 202: +#line 1523 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = "search_path"; + n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); + (yyval.vsetstmt) = n; + } +#line 26595 "gram.c" /* yacc.c:1652 */ + break; + + case 203: +#line 1531 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = "client_encoding"; + if ((yyvsp[0].str) != NULL) + n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); + else + n->kind = VAR_SET_DEFAULT; + (yyval.vsetstmt) = n; + } +#line 26610 "gram.c" /* yacc.c:1652 */ + break; + + case 204: +#line 1542 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = "role"; + n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); + (yyval.vsetstmt) = n; + } +#line 26622 "gram.c" /* yacc.c:1652 */ + break; + + case 205: +#line 1550 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = "session_authorization"; + n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); + (yyval.vsetstmt) = n; + } +#line 26634 "gram.c" /* yacc.c:1652 */ + break; + + case 206: +#line 1558 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = "session_authorization"; + (yyval.vsetstmt) = n; + } +#line 26645 "gram.c" /* yacc.c:1652 */ + break; + + case 207: +#line 1565 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = "xmloption"; + n->args = list_make1(makeStringConst((yyvsp[0].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[0]))); + (yyval.vsetstmt) = n; + } +#line 26657 "gram.c" /* yacc.c:1652 */ + break; + + case 208: +#line 1574 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_SET_MULTI; + n->name = "TRANSACTION SNAPSHOT"; + n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); + (yyval.vsetstmt) = n; + } +#line 26669 "gram.c" /* yacc.c:1652 */ + break; + + case 209: +#line 1583 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26675 "gram.c" /* yacc.c:1652 */ + break; + + case 210: +#line 1585 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } +#line 26681 "gram.c" /* yacc.c:1652 */ + break; + + case 211: +#line 1588 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 26687 "gram.c" /* yacc.c:1652 */ + break; + + case 212: +#line 1589 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 26693 "gram.c" /* yacc.c:1652 */ + break; + + case 213: +#line 1593 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } +#line 26699 "gram.c" /* yacc.c:1652 */ + break; + + case 214: +#line 1595 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } +#line 26705 "gram.c" /* yacc.c:1652 */ + break; + + case 215: +#line 1598 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "read uncommitted"; } +#line 26711 "gram.c" /* yacc.c:1652 */ + break; + + case 216: +#line 1599 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "read committed"; } +#line 26717 "gram.c" /* yacc.c:1652 */ + break; + + case 217: +#line 1600 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "repeatable read"; } +#line 26723 "gram.c" /* yacc.c:1652 */ + break; + + case 218: +#line 1601 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "serializable"; } +#line 26729 "gram.c" /* yacc.c:1652 */ + break; + + case 219: +#line 1605 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "true"; } +#line 26735 "gram.c" /* yacc.c:1652 */ + break; + + case 220: +#line 1606 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "false"; } +#line 26741 "gram.c" /* yacc.c:1652 */ + break; + + case 221: +#line 1607 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "on"; } +#line 26747 "gram.c" /* yacc.c:1652 */ + break; + + case 222: +#line 1613 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26753 "gram.c" /* yacc.c:1652 */ + break; + + case 223: +#line 1626 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 26761 "gram.c" /* yacc.c:1652 */ + break; + + case 224: +#line 1630 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 26769 "gram.c" /* yacc.c:1652 */ + break; + + case 225: +#line 1634 "gram.y" /* yacc.c:1652 */ + { + TypeName *t = (yyvsp[-2].typnam); + if ((yyvsp[0].list) != NIL) + { + A_Const *n = (A_Const *) linitial((yyvsp[0].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[0])))); + } + t->typmods = (yyvsp[0].list); + (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); + } +#line 26788 "gram.c" /* yacc.c:1652 */ + break; + + case 226: +#line 1649 "gram.y" /* yacc.c:1652 */ + { + TypeName *t = (yyvsp[-4].typnam); + t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 26799 "gram.c" /* yacc.c:1652 */ + break; + + case 227: +#line 1655 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } +#line 26805 "gram.c" /* yacc.c:1652 */ + break; + + case 228: +#line 1656 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 26811 "gram.c" /* yacc.c:1652 */ + break; + + case 229: +#line 1657 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 26817 "gram.c" /* yacc.c:1652 */ + break; + + case 230: +#line 1661 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26823 "gram.c" /* yacc.c:1652 */ + break; + + case 231: +#line 1662 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 26829 "gram.c" /* yacc.c:1652 */ + break; + + case 232: +#line 1663 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 26835 "gram.c" /* yacc.c:1652 */ + break; + + case 233: +#line 1667 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26841 "gram.c" /* yacc.c:1652 */ + break; + + case 234: +#line 1668 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 26847 "gram.c" /* yacc.c:1652 */ + break; + + case 235: +#line 1672 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); } +#line 26853 "gram.c" /* yacc.c:1652 */ + break; + + case 236: +#line 1676 "gram.y" /* yacc.c:1652 */ + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 26859 "gram.c" /* yacc.c:1652 */ + break; + + case 237: +#line 1678 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_RESET; + n->name = "timezone"; + (yyval.vsetstmt) = n; + } +#line 26870 "gram.c" /* yacc.c:1652 */ + break; + + case 238: +#line 1685 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_RESET; + n->name = "transaction_isolation"; + (yyval.vsetstmt) = n; + } +#line 26881 "gram.c" /* yacc.c:1652 */ + break; + + case 239: +#line 1692 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_RESET; + n->name = "session_authorization"; + (yyval.vsetstmt) = n; + } +#line 26892 "gram.c" /* yacc.c:1652 */ + break; + + case 240: +#line 1702 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_RESET; + n->name = (yyvsp[0].str); + (yyval.vsetstmt) = n; + } +#line 26903 "gram.c" /* yacc.c:1652 */ + break; + + case 241: +#line 1709 "gram.y" /* yacc.c:1652 */ + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->kind = VAR_RESET_ALL; + (yyval.vsetstmt) = n; + } +#line 26913 "gram.c" /* yacc.c:1652 */ + break; + + case 242: +#line 1718 "gram.y" /* yacc.c:1652 */ + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 26919 "gram.c" /* yacc.c:1652 */ + break; + + case 243: +#line 1719 "gram.y" /* yacc.c:1652 */ + { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } +#line 26925 "gram.c" /* yacc.c:1652 */ + break; + + case 244: +#line 1724 "gram.y" /* yacc.c:1652 */ + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 26931 "gram.c" /* yacc.c:1652 */ + break; + + case 245: +#line 1725 "gram.y" /* yacc.c:1652 */ + { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } +#line 26937 "gram.c" /* yacc.c:1652 */ + break; + + case 246: +#line 1731 "gram.y" /* yacc.c:1652 */ + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 26947 "gram.c" /* yacc.c:1652 */ + break; + + case 247: +#line 1737 "gram.y" /* yacc.c:1652 */ + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "timezone"; + (yyval.node) = (Node *) n; + } +#line 26957 "gram.c" /* yacc.c:1652 */ + break; + + case 248: +#line 1743 "gram.y" /* yacc.c:1652 */ + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "transaction_isolation"; + (yyval.node) = (Node *) n; + } +#line 26967 "gram.c" /* yacc.c:1652 */ + break; + + case 249: +#line 1749 "gram.y" /* yacc.c:1652 */ + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "session_authorization"; + (yyval.node) = (Node *) n; + } +#line 26977 "gram.c" /* yacc.c:1652 */ + break; + + case 250: +#line 1755 "gram.y" /* yacc.c:1652 */ + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "all"; + (yyval.node) = (Node *) n; + } +#line 26987 "gram.c" /* yacc.c:1652 */ + break; + + case 251: +#line 1765 "gram.y" /* yacc.c:1652 */ + { + ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); + n->constraints = (yyvsp[-1].list); + n->deferred = (yyvsp[0].boolean); + (yyval.node) = (Node *) n; + } +#line 26998 "gram.c" /* yacc.c:1652 */ + break; + + case 252: +#line 1774 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 27004 "gram.c" /* yacc.c:1652 */ + break; + + case 253: +#line 1775 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 27010 "gram.c" /* yacc.c:1652 */ + break; + + case 254: +#line 1779 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 27016 "gram.c" /* yacc.c:1652 */ + break; + + case 255: +#line 1780 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 27022 "gram.c" /* yacc.c:1652 */ + break; + + case 256: +#line 1789 "gram.y" /* yacc.c:1652 */ + { + CheckPointStmt *n = makeNode(CheckPointStmt); + (yyval.node) = (Node *)n; + } +#line 27031 "gram.c" /* yacc.c:1652 */ + break; + + case 257: +#line 1804 "gram.y" /* yacc.c:1652 */ + { + DiscardStmt *n = makeNode(DiscardStmt); + n->target = DISCARD_ALL; + (yyval.node) = (Node *) n; + } +#line 27041 "gram.c" /* yacc.c:1652 */ + break; + + case 258: +#line 1810 "gram.y" /* yacc.c:1652 */ + { + DiscardStmt *n = makeNode(DiscardStmt); + n->target = DISCARD_TEMP; + (yyval.node) = (Node *) n; + } +#line 27051 "gram.c" /* yacc.c:1652 */ + break; + + case 259: +#line 1816 "gram.y" /* yacc.c:1652 */ + { + DiscardStmt *n = makeNode(DiscardStmt); + n->target = DISCARD_TEMP; + (yyval.node) = (Node *) n; + } +#line 27061 "gram.c" /* yacc.c:1652 */ + break; + + case 260: +#line 1822 "gram.y" /* yacc.c:1652 */ + { + DiscardStmt *n = makeNode(DiscardStmt); + n->target = DISCARD_PLANS; + (yyval.node) = (Node *) n; + } +#line 27071 "gram.c" /* yacc.c:1652 */ + break; + + case 261: +#line 1828 "gram.y" /* yacc.c:1652 */ + { + DiscardStmt *n = makeNode(DiscardStmt); + n->target = DISCARD_SEQUENCES; + (yyval.node) = (Node *) n; + } +#line 27081 "gram.c" /* yacc.c:1652 */ + break; + + case 262: +#line 1847 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_TABLE; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27094 "gram.c" /* yacc.c:1652 */ + break; + + case 263: +#line 1856 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_TABLE; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27107 "gram.c" /* yacc.c:1652 */ + break; + + case 264: +#line 1865 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = list_make1((yyvsp[0].node)); + n->relkind = OBJECT_TABLE; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27120 "gram.c" /* yacc.c:1652 */ + break; + + case 265: +#line 1874 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = list_make1((yyvsp[0].node)); + n->relkind = OBJECT_TABLE; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27133 "gram.c" /* yacc.c:1652 */ + break; + + case 266: +#line 1883 "gram.y" /* yacc.c:1652 */ + { + AlterTableMoveAllStmt *n = + makeNode(AlterTableMoveAllStmt); + n->orig_tablespacename = (yyvsp[-4].str); + n->objtype = OBJECT_TABLE; + n->roles = NIL; + n->new_tablespacename = (yyvsp[-1].str); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 27148 "gram.c" /* yacc.c:1652 */ + break; + + case 267: +#line 1894 "gram.y" /* yacc.c:1652 */ + { + AlterTableMoveAllStmt *n = + makeNode(AlterTableMoveAllStmt); + n->orig_tablespacename = (yyvsp[-7].str); + n->objtype = OBJECT_TABLE; + n->roles = (yyvsp[-4].list); + n->new_tablespacename = (yyvsp[-1].str); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 27163 "gram.c" /* yacc.c:1652 */ + break; + + case 268: +#line 1905 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_INDEX; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27176 "gram.c" /* yacc.c:1652 */ + break; + + case 269: +#line 1914 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_INDEX; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27189 "gram.c" /* yacc.c:1652 */ + break; + + case 270: +#line 1923 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = list_make1((yyvsp[0].node)); + n->relkind = OBJECT_INDEX; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27202 "gram.c" /* yacc.c:1652 */ + break; + + case 271: +#line 1932 "gram.y" /* yacc.c:1652 */ + { + AlterTableMoveAllStmt *n = + makeNode(AlterTableMoveAllStmt); + n->orig_tablespacename = (yyvsp[-4].str); + n->objtype = OBJECT_INDEX; + n->roles = NIL; + n->new_tablespacename = (yyvsp[-1].str); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 27217 "gram.c" /* yacc.c:1652 */ + break; + + case 272: +#line 1943 "gram.y" /* yacc.c:1652 */ + { + AlterTableMoveAllStmt *n = + makeNode(AlterTableMoveAllStmt); + n->orig_tablespacename = (yyvsp[-7].str); + n->objtype = OBJECT_INDEX; + n->roles = (yyvsp[-4].list); + n->new_tablespacename = (yyvsp[-1].str); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 27232 "gram.c" /* yacc.c:1652 */ + break; + + case 273: +#line 1954 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_SEQUENCE; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27245 "gram.c" /* yacc.c:1652 */ + break; + + case 274: +#line 1963 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_SEQUENCE; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27258 "gram.c" /* yacc.c:1652 */ + break; + + case 275: +#line 1972 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_VIEW; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27271 "gram.c" /* yacc.c:1652 */ + break; + + case 276: +#line 1981 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_VIEW; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27284 "gram.c" /* yacc.c:1652 */ + break; + + case 277: +#line 1990 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_MATVIEW; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27297 "gram.c" /* yacc.c:1652 */ + break; + + case 278: +#line 1999 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_MATVIEW; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27310 "gram.c" /* yacc.c:1652 */ + break; + + case 279: +#line 2008 "gram.y" /* yacc.c:1652 */ + { + AlterTableMoveAllStmt *n = + makeNode(AlterTableMoveAllStmt); + n->orig_tablespacename = (yyvsp[-4].str); + n->objtype = OBJECT_MATVIEW; + n->roles = NIL; + n->new_tablespacename = (yyvsp[-1].str); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 27325 "gram.c" /* yacc.c:1652 */ + break; + + case 280: +#line 2019 "gram.y" /* yacc.c:1652 */ + { + AlterTableMoveAllStmt *n = + makeNode(AlterTableMoveAllStmt); + n->orig_tablespacename = (yyvsp[-7].str); + n->objtype = OBJECT_MATVIEW; + n->roles = (yyvsp[-4].list); + n->new_tablespacename = (yyvsp[-1].str); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 27340 "gram.c" /* yacc.c:1652 */ + break; + + case 281: +#line 2032 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 27346 "gram.c" /* yacc.c:1652 */ + break; + + case 282: +#line 2033 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 27352 "gram.c" /* yacc.c:1652 */ + break; + + case 283: +#line 2039 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + PartitionCmd *cmd = makeNode(PartitionCmd); + + n->subtype = AT_AttachPartition; + cmd->name = (yyvsp[-1].range); + cmd->bound = (yyvsp[0].partboundspec); + n->def = (Node *) cmd; + + (yyval.node) = (Node *) n; + } +#line 27368 "gram.c" /* yacc.c:1652 */ + break; + + case 284: +#line 2052 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + PartitionCmd *cmd = makeNode(PartitionCmd); + + n->subtype = AT_DetachPartition; + cmd->name = (yyvsp[0].range); + cmd->bound = NULL; + n->def = (Node *) cmd; + + (yyval.node) = (Node *) n; + } +#line 27384 "gram.c" /* yacc.c:1652 */ + break; + + case 285: +#line 2068 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + PartitionCmd *cmd = makeNode(PartitionCmd); + + n->subtype = AT_AttachPartition; + cmd->name = (yyvsp[0].range); + cmd->bound = NULL; + n->def = (Node *) cmd; + + (yyval.node) = (Node *) n; + } +#line 27400 "gram.c" /* yacc.c:1652 */ + break; + + case 286: +#line 2084 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27412 "gram.c" /* yacc.c:1652 */ + break; + + case 287: +#line 2093 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27424 "gram.c" /* yacc.c:1652 */ + break; + + case 288: +#line 2102 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27436 "gram.c" /* yacc.c:1652 */ + break; + + case 289: +#line 2111 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27448 "gram.c" /* yacc.c:1652 */ + break; + + case 290: +#line 2120 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ColumnDefault; + n->name = (yyvsp[-1].str); + n->def = (yyvsp[0].node); + (yyval.node) = (Node *)n; + } +#line 27460 "gram.c" /* yacc.c:1652 */ + break; + + case 291: +#line 2129 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropNotNull; + n->name = (yyvsp[-3].str); + (yyval.node) = (Node *)n; + } +#line 27471 "gram.c" /* yacc.c:1652 */ + break; + + case 292: +#line 2137 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetNotNull; + n->name = (yyvsp[-3].str); + (yyval.node) = (Node *)n; + } +#line 27482 "gram.c" /* yacc.c:1652 */ + break; + + case 293: +#line 2145 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropExpression; + n->name = (yyvsp[-2].str); + (yyval.node) = (Node *)n; + } +#line 27493 "gram.c" /* yacc.c:1652 */ + break; + + case 294: +#line 2153 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropExpression; + n->name = (yyvsp[-4].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27505 "gram.c" /* yacc.c:1652 */ + break; + + case 295: +#line 2162 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetStatistics; + n->name = (yyvsp[-3].str); + n->def = (Node *) makeInteger((yyvsp[0].ival)); + (yyval.node) = (Node *)n; + } +#line 27517 "gram.c" /* yacc.c:1652 */ + break; + + case 296: +#line 2171 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + + if ((yyvsp[-3].ival) <= 0 || (yyvsp[-3].ival) > PG_INT16_MAX) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("column number must be in range from 1 to %d", PG_INT16_MAX), + parser_errposition((yylsp[-3])))); + + n->subtype = AT_SetStatistics; + n->num = (int16) (yyvsp[-3].ival); + n->def = (Node *) makeInteger((yyvsp[0].ival)); + (yyval.node) = (Node *)n; + } +#line 27536 "gram.c" /* yacc.c:1652 */ + break; + + case 297: +#line 2187 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetOptions; + n->name = (yyvsp[-2].str); + n->def = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 27548 "gram.c" /* yacc.c:1652 */ + break; + + case 298: +#line 2196 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ResetOptions; + n->name = (yyvsp[-2].str); + n->def = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 27560 "gram.c" /* yacc.c:1652 */ + break; + + case 299: +#line 2205 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetStorage; + n->name = (yyvsp[-3].str); + n->def = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 27572 "gram.c" /* yacc.c:1652 */ + break; + + case 300: +#line 2214 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + Constraint *c = makeNode(Constraint); + + c->contype = CONSTR_IDENTITY; + c->generated_when = (yyvsp[-3].ival); + c->options = (yyvsp[0].list); + c->location = (yylsp[-4]); + + n->subtype = AT_AddIdentity; + n->name = (yyvsp[-6].str); + n->def = (Node *) c; + + (yyval.node) = (Node *)n; + } +#line 27592 "gram.c" /* yacc.c:1652 */ + break; + + case 301: +#line 2231 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetIdentity; + n->name = (yyvsp[-1].str); + n->def = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 27604 "gram.c" /* yacc.c:1652 */ + break; + + case 302: +#line 2240 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropIdentity; + n->name = (yyvsp[-2].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27616 "gram.c" /* yacc.c:1652 */ + break; + + case 303: +#line 2249 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropIdentity; + n->name = (yyvsp[-4].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27628 "gram.c" /* yacc.c:1652 */ + break; + + case 304: +#line 2258 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropColumn; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27641 "gram.c" /* yacc.c:1652 */ + break; + + case 305: +#line 2268 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropColumn; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27654 "gram.c" /* yacc.c:1652 */ + break; + + case 306: +#line 2281 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + ColumnDef *def = makeNode(ColumnDef); + n->subtype = AT_AlterColumnType; + n->name = (yyvsp[-5].str); + n->def = (Node *) def; + /* We only use these fields of the ColumnDef node */ + def->typeName = (yyvsp[-2].typnam); + def->collClause = (CollateClause *) (yyvsp[-1].node); + def->raw_default = (yyvsp[0].node); + def->location = (yylsp[-5]); + (yyval.node) = (Node *)n; + } +#line 27672 "gram.c" /* yacc.c:1652 */ + break; + + case 307: +#line 2296 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AlterColumnGenericOptions; + n->name = (yyvsp[-1].str); + n->def = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 27684 "gram.c" /* yacc.c:1652 */ + break; + + case 308: +#line 2305 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddConstraint; + n->def = (yyvsp[0].node); + (yyval.node) = (Node *)n; + } +#line 27695 "gram.c" /* yacc.c:1652 */ + break; + + case 309: +#line 2313 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + Constraint *c = makeNode(Constraint); + n->subtype = AT_AlterConstraint; + n->def = (Node *) c; + c->contype = CONSTR_FOREIGN; /* others not supported, yet */ + c->conname = (yyvsp[-1].str); + processCASbits((yyvsp[0].ival), (yylsp[0]), "ALTER CONSTRAINT statement", + &c->deferrable, + &c->initdeferred, + NULL, NULL, yyscanner); + (yyval.node) = (Node *)n; + } +#line 27713 "gram.c" /* yacc.c:1652 */ + break; + + case 310: +#line 2328 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ValidateConstraint; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27724 "gram.c" /* yacc.c:1652 */ + break; + + case 311: +#line 2336 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropConstraint; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 27737 "gram.c" /* yacc.c:1652 */ + break; + + case 312: +#line 2346 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropConstraint; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 27750 "gram.c" /* yacc.c:1652 */ + break; + + case 313: +#line 2356 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropOids; + (yyval.node) = (Node *)n; + } +#line 27760 "gram.c" /* yacc.c:1652 */ + break; + + case 314: +#line 2363 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ClusterOn; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27771 "gram.c" /* yacc.c:1652 */ + break; + + case 315: +#line 2371 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropCluster; + n->name = NULL; + (yyval.node) = (Node *)n; + } +#line 27782 "gram.c" /* yacc.c:1652 */ + break; + + case 316: +#line 2379 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetLogged; + (yyval.node) = (Node *)n; + } +#line 27792 "gram.c" /* yacc.c:1652 */ + break; + + case 317: +#line 2386 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetUnLogged; + (yyval.node) = (Node *)n; + } +#line 27802 "gram.c" /* yacc.c:1652 */ + break; + + case 318: +#line 2393 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableTrig; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27813 "gram.c" /* yacc.c:1652 */ + break; + + case 319: +#line 2401 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableAlwaysTrig; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27824 "gram.c" /* yacc.c:1652 */ + break; + + case 320: +#line 2409 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableReplicaTrig; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27835 "gram.c" /* yacc.c:1652 */ + break; + + case 321: +#line 2417 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableTrigAll; + (yyval.node) = (Node *)n; + } +#line 27845 "gram.c" /* yacc.c:1652 */ + break; + + case 322: +#line 2424 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableTrigUser; + (yyval.node) = (Node *)n; + } +#line 27855 "gram.c" /* yacc.c:1652 */ + break; + + case 323: +#line 2431 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DisableTrig; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27866 "gram.c" /* yacc.c:1652 */ + break; + + case 324: +#line 2439 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DisableTrigAll; + (yyval.node) = (Node *)n; + } +#line 27876 "gram.c" /* yacc.c:1652 */ + break; + + case 325: +#line 2446 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DisableTrigUser; + (yyval.node) = (Node *)n; + } +#line 27886 "gram.c" /* yacc.c:1652 */ + break; + + case 326: +#line 2453 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableRule; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27897 "gram.c" /* yacc.c:1652 */ + break; + + case 327: +#line 2461 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableAlwaysRule; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27908 "gram.c" /* yacc.c:1652 */ + break; + + case 328: +#line 2469 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableReplicaRule; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27919 "gram.c" /* yacc.c:1652 */ + break; + + case 329: +#line 2477 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DisableRule; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27930 "gram.c" /* yacc.c:1652 */ + break; + + case 330: +#line 2485 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddInherit; + n->def = (Node *) (yyvsp[0].range); + (yyval.node) = (Node *)n; + } +#line 27941 "gram.c" /* yacc.c:1652 */ + break; + + case 331: +#line 2493 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropInherit; + n->def = (Node *) (yyvsp[0].range); + (yyval.node) = (Node *)n; + } +#line 27952 "gram.c" /* yacc.c:1652 */ + break; + + case 332: +#line 2501 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + TypeName *def = makeTypeNameFromNameList((yyvsp[0].list)); + def->location = (yylsp[0]); + n->subtype = AT_AddOf; + n->def = (Node *) def; + (yyval.node) = (Node *)n; + } +#line 27965 "gram.c" /* yacc.c:1652 */ + break; + + case 333: +#line 2511 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropOf; + (yyval.node) = (Node *)n; + } +#line 27975 "gram.c" /* yacc.c:1652 */ + break; + + case 334: +#line 2518 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ChangeOwner; + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 27986 "gram.c" /* yacc.c:1652 */ + break; + + case 335: +#line 2526 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetTableSpace; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 27997 "gram.c" /* yacc.c:1652 */ + break; + + case 336: +#line 2534 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_SetRelOptions; + n->def = (Node *)(yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 28008 "gram.c" /* yacc.c:1652 */ + break; + + case 337: +#line 2542 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ResetRelOptions; + n->def = (Node *)(yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 28019 "gram.c" /* yacc.c:1652 */ + break; + + case 338: +#line 2550 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ReplicaIdentity; + n->def = (yyvsp[0].node); + (yyval.node) = (Node *)n; + } +#line 28030 "gram.c" /* yacc.c:1652 */ + break; + + case 339: +#line 2558 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_EnableRowSecurity; + (yyval.node) = (Node *)n; + } +#line 28040 "gram.c" /* yacc.c:1652 */ + break; + + case 340: +#line 2565 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DisableRowSecurity; + (yyval.node) = (Node *)n; + } +#line 28050 "gram.c" /* yacc.c:1652 */ + break; + + case 341: +#line 2572 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_ForceRowSecurity; + (yyval.node) = (Node *)n; + } +#line 28060 "gram.c" /* yacc.c:1652 */ + break; + + case 342: +#line 2579 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_NoForceRowSecurity; + (yyval.node) = (Node *)n; + } +#line 28070 "gram.c" /* yacc.c:1652 */ + break; + + case 343: +#line 2585 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_GenericOptions; + n->def = (Node *)(yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 28081 "gram.c" /* yacc.c:1652 */ + break; + + case 344: +#line 2594 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 28087 "gram.c" /* yacc.c:1652 */ + break; + + case 345: +#line 2595 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 28093 "gram.c" /* yacc.c:1652 */ + break; + + case 346: +#line 2599 "gram.y" /* yacc.c:1652 */ + { (yyval.dbehavior) = DROP_CASCADE; } +#line 28099 "gram.c" /* yacc.c:1652 */ + break; + + case 347: +#line 2600 "gram.y" /* yacc.c:1652 */ + { (yyval.dbehavior) = DROP_RESTRICT; } +#line 28105 "gram.c" /* yacc.c:1652 */ + break; + + case 348: +#line 2601 "gram.y" /* yacc.c:1652 */ + { (yyval.dbehavior) = DROP_RESTRICT; /* default */ } +#line 28111 "gram.c" /* yacc.c:1652 */ + break; + + case 349: +#line 2606 "gram.y" /* yacc.c:1652 */ + { + CollateClause *n = makeNode(CollateClause); + n->arg = NULL; + n->collname = (yyvsp[0].list); + n->location = (yylsp[-1]); + (yyval.node) = (Node *) n; + } +#line 28123 "gram.c" /* yacc.c:1652 */ + break; + + case 350: +#line 2613 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 28129 "gram.c" /* yacc.c:1652 */ + break; + + case 351: +#line 2617 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 28135 "gram.c" /* yacc.c:1652 */ + break; + + case 352: +#line 2618 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 28141 "gram.c" /* yacc.c:1652 */ + break; + + case 353: +#line 2623 "gram.y" /* yacc.c:1652 */ + { + ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); + n->identity_type = REPLICA_IDENTITY_NOTHING; + n->name = NULL; + (yyval.node) = (Node *) n; + } +#line 28152 "gram.c" /* yacc.c:1652 */ + break; + + case 354: +#line 2630 "gram.y" /* yacc.c:1652 */ + { + ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); + n->identity_type = REPLICA_IDENTITY_FULL; + n->name = NULL; + (yyval.node) = (Node *) n; + } +#line 28163 "gram.c" /* yacc.c:1652 */ + break; + + case 355: +#line 2637 "gram.y" /* yacc.c:1652 */ + { + ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); + n->identity_type = REPLICA_IDENTITY_DEFAULT; + n->name = NULL; + (yyval.node) = (Node *) n; + } +#line 28174 "gram.c" /* yacc.c:1652 */ + break; + + case 356: +#line 2644 "gram.y" /* yacc.c:1652 */ + { + ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); + n->identity_type = REPLICA_IDENTITY_INDEX; + n->name = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 28185 "gram.c" /* yacc.c:1652 */ + break; + + case 357: +#line 2653 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 28191 "gram.c" /* yacc.c:1652 */ + break; + + case 358: +#line 2656 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 28197 "gram.c" /* yacc.c:1652 */ + break; + + case 359: +#line 2657 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 28203 "gram.c" /* yacc.c:1652 */ + break; + + case 360: +#line 2661 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 28209 "gram.c" /* yacc.c:1652 */ + break; + + case 361: +#line 2662 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 28215 "gram.c" /* yacc.c:1652 */ + break; + + case 362: +#line 2668 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); + } +#line 28223 "gram.c" /* yacc.c:1652 */ + break; + + case 363: +#line 2672 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); + } +#line 28231 "gram.c" /* yacc.c:1652 */ + break; + + case 364: +#line 2676 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node), + DEFELEM_UNSPEC, (yylsp[-4])); + } +#line 28240 "gram.c" /* yacc.c:1652 */ + break; + + case 365: +#line 2681 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2])); + } +#line 28248 "gram.c" /* yacc.c:1652 */ + break; + + case 366: +#line 2688 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 28254 "gram.c" /* yacc.c:1652 */ + break; + + case 367: +#line 2690 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 28260 "gram.c" /* yacc.c:1652 */ + break; + + case 368: +#line 2695 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); + } +#line 28268 "gram.c" /* yacc.c:1652 */ + break; + + case 369: +#line 2699 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); + } +#line 28276 "gram.c" /* yacc.c:1652 */ + break; + + case 370: +#line 2703 "gram.y" /* yacc.c:1652 */ + { + if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 || + strcmp((yyvsp[0].defelt)->defname, "restart") == 0 || + strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("sequence option \"%s\" not supported here", (yyvsp[0].defelt)->defname), + parser_errposition((yylsp[0])))); + (yyval.defelt) = (yyvsp[0].defelt); + } +#line 28291 "gram.c" /* yacc.c:1652 */ + break; + + case 371: +#line 2714 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2])); + } +#line 28299 "gram.c" /* yacc.c:1652 */ + break; + + case 372: +#line 2722 "gram.y" /* yacc.c:1652 */ + { + ListCell *lc; + PartitionBoundSpec *n = makeNode(PartitionBoundSpec); + + n->strategy = PARTITION_STRATEGY_HASH; + n->modulus = n->remainder = -1; + + foreach (lc, (yyvsp[-1].list)) + { + DefElem *opt = lfirst_node(DefElem, lc); + + if (strcmp(opt->defname, "modulus") == 0) + { + if (n->modulus != -1) + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("modulus for hash partition provided more than once"), + parser_errposition(opt->location))); + n->modulus = defGetInt32(opt); + } + else if (strcmp(opt->defname, "remainder") == 0) + { + if (n->remainder != -1) + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("remainder for hash partition provided more than once"), + parser_errposition(opt->location))); + n->remainder = defGetInt32(opt); + } + else + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized hash partition bound specification \"%s\"", + opt->defname), + parser_errposition(opt->location))); + } + + if (n->modulus == -1) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("modulus for hash partition must be specified"))); + if (n->remainder == -1) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("remainder for hash partition must be specified"))); + + n->location = (yylsp[-3]); + + (yyval.partboundspec) = n; + } +#line 28354 "gram.c" /* yacc.c:1652 */ + break; + + case 373: +#line 2775 "gram.y" /* yacc.c:1652 */ + { + PartitionBoundSpec *n = makeNode(PartitionBoundSpec); + + n->strategy = PARTITION_STRATEGY_LIST; + n->is_default = false; + n->listdatums = (yyvsp[-1].list); + n->location = (yylsp[-3]); + + (yyval.partboundspec) = n; + } +#line 28369 "gram.c" /* yacc.c:1652 */ + break; + + case 374: +#line 2788 "gram.y" /* yacc.c:1652 */ + { + PartitionBoundSpec *n = makeNode(PartitionBoundSpec); + + n->strategy = PARTITION_STRATEGY_RANGE; + n->is_default = false; + n->lowerdatums = (yyvsp[-5].list); + n->upperdatums = (yyvsp[-1].list); + n->location = (yylsp[-7]); + + (yyval.partboundspec) = n; + } +#line 28385 "gram.c" /* yacc.c:1652 */ + break; + + case 375: +#line 2802 "gram.y" /* yacc.c:1652 */ + { + PartitionBoundSpec *n = makeNode(PartitionBoundSpec); + + n->is_default = true; + n->location = (yylsp[0]); + + (yyval.partboundspec) = n; + } +#line 28398 "gram.c" /* yacc.c:1652 */ + break; + + case 376: +#line 2814 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); + } +#line 28406 "gram.c" /* yacc.c:1652 */ + break; + + case 377: +#line 2821 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 28414 "gram.c" /* yacc.c:1652 */ + break; + + case 378: +#line 2825 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 28422 "gram.c" /* yacc.c:1652 */ + break; + + case 379: +#line 2839 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + + /* can't use qualified_name, sigh */ + n->relation = makeRangeVarFromAnyName((yyvsp[-1].list), (yylsp[-1]), yyscanner); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_TYPE; + (yyval.node) = (Node *)n; + } +#line 28436 "gram.c" /* yacc.c:1652 */ + break; + + case 380: +#line 2851 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 28442 "gram.c" /* yacc.c:1652 */ + break; + + case 381: +#line 2852 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 28448 "gram.c" /* yacc.c:1652 */ + break; + + case 382: +#line 2858 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = (yyvsp[-1].node); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 28460 "gram.c" /* yacc.c:1652 */ + break; + + case 383: +#line 2867 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropColumn; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 28473 "gram.c" /* yacc.c:1652 */ + break; + + case 384: +#line 2877 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_DropColumn; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 28486 "gram.c" /* yacc.c:1652 */ + break; + + case 385: +#line 2887 "gram.y" /* yacc.c:1652 */ + { + AlterTableCmd *n = makeNode(AlterTableCmd); + ColumnDef *def = makeNode(ColumnDef); + n->subtype = AT_AlterColumnType; + n->name = (yyvsp[-5].str); + n->def = (Node *) def; + n->behavior = (yyvsp[0].dbehavior); + /* We only use these fields of the ColumnDef node */ + def->typeName = (yyvsp[-2].typnam); + def->collClause = (CollateClause *) (yyvsp[-1].node); + def->raw_default = NULL; + def->location = (yylsp[-5]); + (yyval.node) = (Node *)n; + } +#line 28505 "gram.c" /* yacc.c:1652 */ + break; + + case 386: +#line 2913 "gram.y" /* yacc.c:1652 */ + { + ClosePortalStmt *n = makeNode(ClosePortalStmt); + n->portalname = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 28515 "gram.c" /* yacc.c:1652 */ + break; + + case 387: +#line 2919 "gram.y" /* yacc.c:1652 */ + { + ClosePortalStmt *n = makeNode(ClosePortalStmt); + n->portalname = NULL; + (yyval.node) = (Node *)n; + } +#line 28525 "gram.c" /* yacc.c:1652 */ + break; + + case 388: +#line 2954 "gram.y" /* yacc.c:1652 */ + { + CopyStmt *n = makeNode(CopyStmt); + n->relation = (yyvsp[-8].range); + n->query = NULL; + n->attlist = (yyvsp[-7].list); + n->is_from = (yyvsp[-6].boolean); + n->is_program = (yyvsp[-5].boolean); + n->filename = (yyvsp[-4].str); + n->whereClause = (yyvsp[0].node); + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("STDIN/STDOUT not allowed with PROGRAM"), + parser_errposition((yylsp[-3])))); + + if (!n->is_from && n->whereClause != NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("WHERE clause not allowed with COPY TO"), + parser_errposition((yylsp[0])))); + + n->options = NIL; + /* Concatenate user-supplied flags */ + if ((yyvsp[-9].defelt)) + n->options = lappend(n->options, (yyvsp[-9].defelt)); + if ((yyvsp[-3].defelt)) + n->options = lappend(n->options, (yyvsp[-3].defelt)); + if ((yyvsp[-1].list)) + n->options = list_concat(n->options, (yyvsp[-1].list)); + (yyval.node) = (Node *)n; + } +#line 28562 "gram.c" /* yacc.c:1652 */ + break; + + case 389: +#line 2987 "gram.y" /* yacc.c:1652 */ + { + CopyStmt *n = makeNode(CopyStmt); + n->relation = NULL; + n->query = (yyvsp[-6].node); + n->attlist = NIL; + n->is_from = false; + n->is_program = (yyvsp[-3].boolean); + n->filename = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("STDIN/STDOUT not allowed with PROGRAM"), + parser_errposition((yylsp[-4])))); + + (yyval.node) = (Node *)n; + } +#line 28585 "gram.c" /* yacc.c:1652 */ + break; + + case 390: +#line 3008 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 28591 "gram.c" /* yacc.c:1652 */ + break; + + case 391: +#line 3009 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 28597 "gram.c" /* yacc.c:1652 */ + break; + + case 392: +#line 3013 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 28603 "gram.c" /* yacc.c:1652 */ + break; + + case 393: +#line 3014 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 28609 "gram.c" /* yacc.c:1652 */ + break; + + case 394: +#line 3023 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 28615 "gram.c" /* yacc.c:1652 */ + break; + + case 395: +#line 3024 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 28621 "gram.c" /* yacc.c:1652 */ + break; + + case 396: +#line 3025 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 28627 "gram.c" /* yacc.c:1652 */ + break; + + case 397: +#line 3028 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 28633 "gram.c" /* yacc.c:1652 */ + break; + + case 398: +#line 3029 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 28639 "gram.c" /* yacc.c:1652 */ + break; + + case 399: +#line 3034 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 28645 "gram.c" /* yacc.c:1652 */ + break; + + case 400: +#line 3035 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 28651 "gram.c" /* yacc.c:1652 */ + break; + + case 401: +#line 3040 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); + } +#line 28659 "gram.c" /* yacc.c:1652 */ + break; + + case 402: +#line 3044 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("freeze", (Node *)makeInteger(true), (yylsp[0])); + } +#line 28667 "gram.c" /* yacc.c:1652 */ + break; + + case 403: +#line 3048 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 28675 "gram.c" /* yacc.c:1652 */ + break; + + case 404: +#line 3052 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 28683 "gram.c" /* yacc.c:1652 */ + break; + + case 405: +#line 3056 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("format", (Node *)makeString("csv"), (yylsp[0])); + } +#line 28691 "gram.c" /* yacc.c:1652 */ + break; + + case 406: +#line 3060 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("header", (Node *)makeInteger(true), (yylsp[0])); + } +#line 28699 "gram.c" /* yacc.c:1652 */ + break; + + case 407: +#line 3064 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 28707 "gram.c" /* yacc.c:1652 */ + break; + + case 408: +#line 3068 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 28715 "gram.c" /* yacc.c:1652 */ + break; + + case 409: +#line 3072 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 28723 "gram.c" /* yacc.c:1652 */ + break; + + case 410: +#line 3076 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star), (yylsp[-2])); + } +#line 28731 "gram.c" /* yacc.c:1652 */ + break; + + case 411: +#line 3080 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[0].list), (yylsp[-3])); + } +#line 28739 "gram.c" /* yacc.c:1652 */ + break; + + case 412: +#line 3084 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("force_null", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 28747 "gram.c" /* yacc.c:1652 */ + break; + + case 413: +#line 3088 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 28755 "gram.c" /* yacc.c:1652 */ + break; + + case 414: +#line 3097 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); + } +#line 28763 "gram.c" /* yacc.c:1652 */ + break; + + case 415: +#line 3100 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = NULL; } +#line 28769 "gram.c" /* yacc.c:1652 */ + break; + + case 416: +#line 3105 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 28777 "gram.c" /* yacc.c:1652 */ + break; + + case 417: +#line 3108 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = NULL; } +#line 28783 "gram.c" /* yacc.c:1652 */ + break; + + case 418: +#line 3112 "gram.y" /* yacc.c:1652 */ + {} +#line 28789 "gram.c" /* yacc.c:1652 */ + break; + + case 419: +#line 3113 "gram.y" /* yacc.c:1652 */ + {} +#line 28795 "gram.c" /* yacc.c:1652 */ + break; + + case 420: +#line 3119 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 28803 "gram.c" /* yacc.c:1652 */ + break; + + case 421: +#line 3123 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 28811 "gram.c" /* yacc.c:1652 */ + break; + + case 422: +#line 3130 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 28819 "gram.c" /* yacc.c:1652 */ + break; + + case 423: +#line 3136 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 28825 "gram.c" /* yacc.c:1652 */ + break; + + case 424: +#line 3137 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[0].value); } +#line 28831 "gram.c" /* yacc.c:1652 */ + break; + + case 425: +#line 3138 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeNode(A_Star); } +#line 28837 "gram.c" /* yacc.c:1652 */ + break; + + case 426: +#line 3139 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[-1].list); } +#line 28843 "gram.c" /* yacc.c:1652 */ + break; + + case 427: +#line 3140 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 28849 "gram.c" /* yacc.c:1652 */ + break; + + case 428: +#line 3145 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 28857 "gram.c" /* yacc.c:1652 */ + break; + + case 429: +#line 3149 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 28865 "gram.c" /* yacc.c:1652 */ + break; + + case 430: +#line 3156 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 28871 "gram.c" /* yacc.c:1652 */ + break; + + case 431: +#line 3170 "gram.y" /* yacc.c:1652 */ + { + CreateStmt *n = makeNode(CreateStmt); + (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival); + n->relation = (yyvsp[-9].range); + n->tableElts = (yyvsp[-7].list); + n->inhRelations = (yyvsp[-5].list); + n->partspec = (yyvsp[-4].partspec); + n->ofTypename = NULL; + n->constraints = NIL; + n->accessMethod = (yyvsp[-3].str); + n->options = (yyvsp[-2].list); + n->oncommit = (yyvsp[-1].oncommit); + n->tablespacename = (yyvsp[0].str); + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 28892 "gram.c" /* yacc.c:1652 */ + break; + + case 432: +#line 3189 "gram.y" /* yacc.c:1652 */ + { + CreateStmt *n = makeNode(CreateStmt); + (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival); + n->relation = (yyvsp[-9].range); + n->tableElts = (yyvsp[-7].list); + n->inhRelations = (yyvsp[-5].list); + n->partspec = (yyvsp[-4].partspec); + n->ofTypename = NULL; + n->constraints = NIL; + n->accessMethod = (yyvsp[-3].str); + n->options = (yyvsp[-2].list); + n->oncommit = (yyvsp[-1].oncommit); + n->tablespacename = (yyvsp[0].str); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 28913 "gram.c" /* yacc.c:1652 */ + break; + + case 433: +#line 3208 "gram.y" /* yacc.c:1652 */ + { + CreateStmt *n = makeNode(CreateStmt); + (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival); + n->relation = (yyvsp[-8].range); + n->tableElts = (yyvsp[-5].list); + n->inhRelations = NIL; + n->partspec = (yyvsp[-4].partspec); + n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list)); + n->ofTypename->location = (yylsp[-6]); + n->constraints = NIL; + n->accessMethod = (yyvsp[-3].str); + n->options = (yyvsp[-2].list); + n->oncommit = (yyvsp[-1].oncommit); + n->tablespacename = (yyvsp[0].str); + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 28935 "gram.c" /* yacc.c:1652 */ + break; + + case 434: +#line 3228 "gram.y" /* yacc.c:1652 */ + { + CreateStmt *n = makeNode(CreateStmt); + (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival); + n->relation = (yyvsp[-8].range); + n->tableElts = (yyvsp[-5].list); + n->inhRelations = NIL; + n->partspec = (yyvsp[-4].partspec); + n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list)); + n->ofTypename->location = (yylsp[-6]); + n->constraints = NIL; + n->accessMethod = (yyvsp[-3].str); + n->options = (yyvsp[-2].list); + n->oncommit = (yyvsp[-1].oncommit); + n->tablespacename = (yyvsp[0].str); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 28957 "gram.c" /* yacc.c:1652 */ + break; + + case 435: +#line 3248 "gram.y" /* yacc.c:1652 */ + { + CreateStmt *n = makeNode(CreateStmt); + (yyvsp[-10].range)->relpersistence = (yyvsp[-12].ival); + n->relation = (yyvsp[-10].range); + n->tableElts = (yyvsp[-6].list); + n->inhRelations = list_make1((yyvsp[-7].range)); + n->partbound = (yyvsp[-5].partboundspec); + n->partspec = (yyvsp[-4].partspec); + n->ofTypename = NULL; + n->constraints = NIL; + n->accessMethod = (yyvsp[-3].str); + n->options = (yyvsp[-2].list); + n->oncommit = (yyvsp[-1].oncommit); + n->tablespacename = (yyvsp[0].str); + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 28979 "gram.c" /* yacc.c:1652 */ + break; + + case 436: +#line 3268 "gram.y" /* yacc.c:1652 */ + { + CreateStmt *n = makeNode(CreateStmt); + (yyvsp[-10].range)->relpersistence = (yyvsp[-15].ival); + n->relation = (yyvsp[-10].range); + n->tableElts = (yyvsp[-6].list); + n->inhRelations = list_make1((yyvsp[-7].range)); + n->partbound = (yyvsp[-5].partboundspec); + n->partspec = (yyvsp[-4].partspec); + n->ofTypename = NULL; + n->constraints = NIL; + n->accessMethod = (yyvsp[-3].str); + n->options = (yyvsp[-2].list); + n->oncommit = (yyvsp[-1].oncommit); + n->tablespacename = (yyvsp[0].str); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 29001 "gram.c" /* yacc.c:1652 */ + break; + + case 437: +#line 3298 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29007 "gram.c" /* yacc.c:1652 */ + break; + + case 438: +#line 3299 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29013 "gram.c" /* yacc.c:1652 */ + break; + + case 439: +#line 3300 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29019 "gram.c" /* yacc.c:1652 */ + break; + + case 440: +#line 3301 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29025 "gram.c" /* yacc.c:1652 */ + break; + + case 441: +#line 3303 "gram.y" /* yacc.c:1652 */ + { + ereport(WARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-1])))); + (yyval.ival) = RELPERSISTENCE_TEMP; + } +#line 29036 "gram.c" /* yacc.c:1652 */ + break; + + case 442: +#line 3310 "gram.y" /* yacc.c:1652 */ + { + ereport(WARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-1])))); + (yyval.ival) = RELPERSISTENCE_TEMP; + } +#line 29047 "gram.c" /* yacc.c:1652 */ + break; + + case 443: +#line 3316 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } +#line 29053 "gram.c" /* yacc.c:1652 */ + break; + + case 444: +#line 3317 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_PERMANENT; } +#line 29059 "gram.c" /* yacc.c:1652 */ + break; + + case 445: +#line 3321 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 29065 "gram.c" /* yacc.c:1652 */ + break; + + case 446: +#line 3322 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 29071 "gram.c" /* yacc.c:1652 */ + break; + + case 447: +#line 3326 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 29077 "gram.c" /* yacc.c:1652 */ + break; + + case 448: +#line 3327 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 29083 "gram.c" /* yacc.c:1652 */ + break; + + case 449: +#line 3332 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 29091 "gram.c" /* yacc.c:1652 */ + break; + + case 450: +#line 3336 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 29099 "gram.c" /* yacc.c:1652 */ + break; + + case 451: +#line 3343 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 29107 "gram.c" /* yacc.c:1652 */ + break; + + case 452: +#line 3347 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 29115 "gram.c" /* yacc.c:1652 */ + break; + + case 453: +#line 3353 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29121 "gram.c" /* yacc.c:1652 */ + break; + + case 454: +#line 3354 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29127 "gram.c" /* yacc.c:1652 */ + break; + + case 455: +#line 3355 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29133 "gram.c" /* yacc.c:1652 */ + break; + + case 456: +#line 3359 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29139 "gram.c" /* yacc.c:1652 */ + break; + + case 457: +#line 3360 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29145 "gram.c" /* yacc.c:1652 */ + break; + + case 458: +#line 3364 "gram.y" /* yacc.c:1652 */ + { + ColumnDef *n = makeNode(ColumnDef); + n->colname = (yyvsp[-3].str); + n->typeName = (yyvsp[-2].typnam); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collOid = InvalidOid; + n->fdwoptions = (yyvsp[-1].list); + SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, + yyscanner); + n->location = (yylsp[-3]); + (yyval.node) = (Node *)n; + } +#line 29168 "gram.c" /* yacc.c:1652 */ + break; + + case 459: +#line 3385 "gram.y" /* yacc.c:1652 */ + { + ColumnDef *n = makeNode(ColumnDef); + n->colname = (yyvsp[-1].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[0].list), &n->constraints, &n->collClause, + yyscanner); + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 29190 "gram.c" /* yacc.c:1652 */ + break; + + case 460: +#line 3403 "gram.y" /* yacc.c:1652 */ + { + ColumnDef *n = makeNode(ColumnDef); + n->colname = (yyvsp[-3].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[0].list), &n->constraints, &n->collClause, + yyscanner); + n->location = (yylsp[-3]); + (yyval.node) = (Node *)n; + } +#line 29212 "gram.c" /* yacc.c:1652 */ + break; + + case 461: +#line 3423 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 29218 "gram.c" /* yacc.c:1652 */ + break; + + case 462: +#line 3424 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 29224 "gram.c" /* yacc.c:1652 */ + break; + + case 463: +#line 3429 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = castNode(Constraint, (yyvsp[0].node)); + n->conname = (yyvsp[-1].str); + n->location = (yylsp[-2]); + (yyval.node) = (Node *) n; + } +#line 29235 "gram.c" /* yacc.c:1652 */ + break; + + case 464: +#line 3435 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29241 "gram.c" /* yacc.c:1652 */ + break; + + case 465: +#line 3436 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29247 "gram.c" /* yacc.c:1652 */ + break; + + case 466: +#line 3438 "gram.y" /* yacc.c:1652 */ + { + /* + * 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[0].list); + n->location = (yylsp[-1]); + (yyval.node) = (Node *) n; + } +#line 29264 "gram.c" /* yacc.c:1652 */ + break; + + case 467: +#line 3469 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_NOTNULL; + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 29275 "gram.c" /* yacc.c:1652 */ + break; + + case 468: +#line 3476 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_NULL; + n->location = (yylsp[0]); + (yyval.node) = (Node *)n; + } +#line 29286 "gram.c" /* yacc.c:1652 */ + break; + + case 469: +#line 3483 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_UNIQUE; + n->location = (yylsp[-2]); + n->keys = NULL; + n->options = (yyvsp[-1].list); + n->indexname = NULL; + n->indexspace = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 29301 "gram.c" /* yacc.c:1652 */ + break; + + case 470: +#line 3494 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_PRIMARY; + n->location = (yylsp[-3]); + n->keys = NULL; + n->options = (yyvsp[-1].list); + n->indexname = NULL; + n->indexspace = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 29316 "gram.c" /* yacc.c:1652 */ + break; + + case 471: +#line 3505 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_CHECK; + n->location = (yylsp[-4]); + n->is_no_inherit = (yyvsp[0].boolean); + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + n->skip_validation = false; + n->initially_valid = true; + (yyval.node) = (Node *)n; + } +#line 29332 "gram.c" /* yacc.c:1652 */ + break; + + case 472: +#line 3517 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_DEFAULT; + n->location = (yylsp[-1]); + n->raw_expr = (yyvsp[0].node); + n->cooked_expr = NULL; + (yyval.node) = (Node *)n; + } +#line 29345 "gram.c" /* yacc.c:1652 */ + break; + + case 473: +#line 3526 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_IDENTITY; + n->generated_when = (yyvsp[-3].ival); + n->options = (yyvsp[0].list); + n->location = (yylsp[-4]); + (yyval.node) = (Node *)n; + } +#line 29358 "gram.c" /* yacc.c:1652 */ + break; + + case 474: +#line 3535 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_GENERATED; + n->generated_when = (yyvsp[-5].ival); + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + n->location = (yylsp[-6]); + + /* + * Can't do this in the grammar because of shift/reduce + * conflicts. (IDENTITY allows both ALWAYS and BY + * DEFAULT, but generated columns only allow ALWAYS.) We + * can also give a more useful error message and location. + */ + if ((yyvsp[-5].ival) != ATTRIBUTE_IDENTITY_ALWAYS) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("for a generated column, GENERATED ALWAYS must be specified"), + parser_errposition((yylsp[-5])))); + + (yyval.node) = (Node *)n; + } +#line 29385 "gram.c" /* yacc.c:1652 */ + break; + + case 475: +#line 3558 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_FOREIGN; + n->location = (yylsp[-4]); + n->pktable = (yyvsp[-3].range); + n->fk_attrs = NIL; + n->pk_attrs = (yyvsp[-2].list); + n->fk_matchtype = (yyvsp[-1].ival); + n->fk_upd_action = (char) ((yyvsp[0].ival) >> 8); + n->fk_del_action = (char) ((yyvsp[0].ival) & 0xFF); + n->skip_validation = false; + n->initially_valid = true; + (yyval.node) = (Node *)n; + } +#line 29404 "gram.c" /* yacc.c:1652 */ + break; + + case 476: +#line 3575 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; } +#line 29410 "gram.c" /* yacc.c:1652 */ + break; + + case 477: +#line 3576 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } +#line 29416 "gram.c" /* yacc.c:1652 */ + break; + + case 478: +#line 3596 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_ATTR_DEFERRABLE; + n->location = (yylsp[0]); + (yyval.node) = (Node *)n; + } +#line 29427 "gram.c" /* yacc.c:1652 */ + break; + + case 479: +#line 3603 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_ATTR_NOT_DEFERRABLE; + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 29438 "gram.c" /* yacc.c:1652 */ + break; + + case 480: +#line 3610 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_ATTR_DEFERRED; + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 29449 "gram.c" /* yacc.c:1652 */ + break; + + case 481: +#line 3617 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_ATTR_IMMEDIATE; + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 29460 "gram.c" /* yacc.c:1652 */ + break; + + case 482: +#line 3628 "gram.y" /* yacc.c:1652 */ + { + TableLikeClause *n = makeNode(TableLikeClause); + n->relation = (yyvsp[-1].range); + n->options = (yyvsp[0].ival); + n->relationOid = InvalidOid; + (yyval.node) = (Node *)n; + } +#line 29472 "gram.c" /* yacc.c:1652 */ + break; + + case 483: +#line 3638 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } +#line 29478 "gram.c" /* yacc.c:1652 */ + break; + + case 484: +#line 3639 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } +#line 29484 "gram.c" /* yacc.c:1652 */ + break; + + case 485: +#line 3640 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 29490 "gram.c" /* yacc.c:1652 */ + break; + + case 486: +#line 3644 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; } +#line 29496 "gram.c" /* yacc.c:1652 */ + break; + + case 487: +#line 3645 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; } +#line 29502 "gram.c" /* yacc.c:1652 */ + break; + + case 488: +#line 3646 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; } +#line 29508 "gram.c" /* yacc.c:1652 */ + break; + + case 489: +#line 3647 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; } +#line 29514 "gram.c" /* yacc.c:1652 */ + break; + + case 490: +#line 3648 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; } +#line 29520 "gram.c" /* yacc.c:1652 */ + break; + + case 491: +#line 3649 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; } +#line 29526 "gram.c" /* yacc.c:1652 */ + break; + + case 492: +#line 3650 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; } +#line 29532 "gram.c" /* yacc.c:1652 */ + break; + + case 493: +#line 3651 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; } +#line 29538 "gram.c" /* yacc.c:1652 */ + break; + + case 494: +#line 3652 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CREATE_TABLE_LIKE_ALL; } +#line 29544 "gram.c" /* yacc.c:1652 */ + break; + + case 495: +#line 3662 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = castNode(Constraint, (yyvsp[0].node)); + n->conname = (yyvsp[-1].str); + n->location = (yylsp[-2]); + (yyval.node) = (Node *) n; + } +#line 29555 "gram.c" /* yacc.c:1652 */ + break; + + case 496: +#line 3668 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 29561 "gram.c" /* yacc.c:1652 */ + break; + + case 497: +#line 3673 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_CHECK; + n->location = (yylsp[-4]); + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK", + NULL, NULL, &n->skip_validation, + &n->is_no_inherit, yyscanner); + n->initially_valid = !n->skip_validation; + (yyval.node) = (Node *)n; + } +#line 29578 "gram.c" /* yacc.c:1652 */ + break; + + case 498: +#line 3687 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_UNIQUE; + n->location = (yylsp[-7]); + n->keys = (yyvsp[-5].list); + n->including = (yyvsp[-3].list); + n->options = (yyvsp[-2].list); + n->indexname = NULL; + n->indexspace = (yyvsp[-1].str); + processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (Node *)n; + } +#line 29597 "gram.c" /* yacc.c:1652 */ + break; + + case 499: +#line 3702 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_UNIQUE; + n->location = (yylsp[-2]); + n->keys = NIL; + n->including = NIL; + n->options = NIL; + n->indexname = (yyvsp[-1].str); + n->indexspace = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (Node *)n; + } +#line 29616 "gram.c" /* yacc.c:1652 */ + break; + + case 500: +#line 3718 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_PRIMARY; + n->location = (yylsp[-8]); + n->keys = (yyvsp[-5].list); + n->including = (yyvsp[-3].list); + n->options = (yyvsp[-2].list); + n->indexname = NULL; + n->indexspace = (yyvsp[-1].str); + processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (Node *)n; + } +#line 29635 "gram.c" /* yacc.c:1652 */ + break; + + case 501: +#line 3733 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_PRIMARY; + n->location = (yylsp[-3]); + n->keys = NIL; + n->including = NIL; + n->options = NIL; + n->indexname = (yyvsp[-1].str); + n->indexspace = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (Node *)n; + } +#line 29654 "gram.c" /* yacc.c:1652 */ + break; + + case 502: +#line 3750 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_EXCLUSION; + n->location = (yylsp[-9]); + n->access_method = (yyvsp[-8].str); + n->exclusions = (yyvsp[-6].list); + n->including = (yyvsp[-4].list); + n->options = (yyvsp[-3].list); + n->indexname = NULL; + n->indexspace = (yyvsp[-2].str); + n->where_clause = (yyvsp[-1].node); + processCASbits((yyvsp[0].ival), (yylsp[0]), "EXCLUDE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (Node *)n; + } +#line 29675 "gram.c" /* yacc.c:1652 */ + break; + + case 503: +#line 3768 "gram.y" /* yacc.c:1652 */ + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_FOREIGN; + n->location = (yylsp[-10]); + n->pktable = (yyvsp[-4].range); + n->fk_attrs = (yyvsp[-7].list); + n->pk_attrs = (yyvsp[-3].list); + n->fk_matchtype = (yyvsp[-2].ival); + n->fk_upd_action = (char) ((yyvsp[-1].ival) >> 8); + n->fk_del_action = (char) ((yyvsp[-1].ival) & 0xFF); + processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY", + &n->deferrable, &n->initdeferred, + &n->skip_validation, NULL, + yyscanner); + n->initially_valid = !n->skip_validation; + (yyval.node) = (Node *)n; + } +#line 29697 "gram.c" /* yacc.c:1652 */ + break; + + case 504: +#line 3787 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 29703 "gram.c" /* yacc.c:1652 */ + break; + + case 505: +#line 3788 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 29709 "gram.c" /* yacc.c:1652 */ + break; + + case 506: +#line 3792 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 29715 "gram.c" /* yacc.c:1652 */ + break; + + case 507: +#line 3793 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 29721 "gram.c" /* yacc.c:1652 */ + break; + + case 508: +#line 3797 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 29727 "gram.c" /* yacc.c:1652 */ + break; + + case 509: +#line 3798 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 29733 "gram.c" /* yacc.c:1652 */ + break; + + case 510: +#line 3802 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeString((yyvsp[0].str)); + } +#line 29741 "gram.c" /* yacc.c:1652 */ + break; + + case 511: +#line 3807 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 29747 "gram.c" /* yacc.c:1652 */ + break; + + case 512: +#line 3808 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 29753 "gram.c" /* yacc.c:1652 */ + break; + + case 513: +#line 3812 "gram.y" /* yacc.c:1652 */ + { + (yyval.ival) = FKCONSTR_MATCH_FULL; + } +#line 29761 "gram.c" /* yacc.c:1652 */ + break; + + case 514: +#line 3816 "gram.y" /* yacc.c:1652 */ + { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("MATCH PARTIAL not yet implemented"), + parser_errposition((yylsp[-1])))); + (yyval.ival) = FKCONSTR_MATCH_PARTIAL; + } +#line 29773 "gram.c" /* yacc.c:1652 */ + break; + + case 515: +#line 3824 "gram.y" /* yacc.c:1652 */ + { + (yyval.ival) = FKCONSTR_MATCH_SIMPLE; + } +#line 29781 "gram.c" /* yacc.c:1652 */ + break; + + case 516: +#line 3828 "gram.y" /* yacc.c:1652 */ + { + (yyval.ival) = FKCONSTR_MATCH_SIMPLE; + } +#line 29789 "gram.c" /* yacc.c:1652 */ + break; + + case 517: +#line 3834 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 29795 "gram.c" /* yacc.c:1652 */ + break; + + case 518: +#line 3836 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 29801 "gram.c" /* yacc.c:1652 */ + break; + + case 519: +#line 3840 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list)); + } +#line 29809 "gram.c" /* yacc.c:1652 */ + break; + + case 520: +#line 3845 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list)); + } +#line 29817 "gram.c" /* yacc.c:1652 */ + break; + + case 521: +#line 3851 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 29823 "gram.c" /* yacc.c:1652 */ + break; + + case 522: +#line 3852 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 29829 "gram.c" /* yacc.c:1652 */ + break; + + case 523: +#line 3863 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ((yyvsp[0].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } +#line 29835 "gram.c" /* yacc.c:1652 */ + break; + + case 524: +#line 3865 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } +#line 29841 "gram.c" /* yacc.c:1652 */ + break; + + case 525: +#line 3867 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } +#line 29847 "gram.c" /* yacc.c:1652 */ + break; + + case 526: +#line 3869 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } +#line 29853 "gram.c" /* yacc.c:1652 */ + break; + + case 527: +#line 3871 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } +#line 29859 "gram.c" /* yacc.c:1652 */ + break; + + case 528: +#line 3874 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 29865 "gram.c" /* yacc.c:1652 */ + break; + + case 529: +#line 3877 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 29871 "gram.c" /* yacc.c:1652 */ + break; + + case 530: +#line 3881 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FKCONSTR_ACTION_NOACTION; } +#line 29877 "gram.c" /* yacc.c:1652 */ + break; + + case 531: +#line 3882 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; } +#line 29883 "gram.c" /* yacc.c:1652 */ + break; + + case 532: +#line 3883 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FKCONSTR_ACTION_CASCADE; } +#line 29889 "gram.c" /* yacc.c:1652 */ + break; + + case 533: +#line 3884 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FKCONSTR_ACTION_SETNULL; } +#line 29895 "gram.c" /* yacc.c:1652 */ + break; + + case 534: +#line 3885 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; } +#line 29901 "gram.c" /* yacc.c:1652 */ + break; + + case 535: +#line 3888 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 29907 "gram.c" /* yacc.c:1652 */ + break; + + case 536: +#line 3889 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 29913 "gram.c" /* yacc.c:1652 */ + break; + + case 537: +#line 3893 "gram.y" /* yacc.c:1652 */ + { (yyval.partspec) = (yyvsp[0].partspec); } +#line 29919 "gram.c" /* yacc.c:1652 */ + break; + + case 538: +#line 3894 "gram.y" /* yacc.c:1652 */ + { (yyval.partspec) = NULL; } +#line 29925 "gram.c" /* yacc.c:1652 */ + break; + + case 539: +#line 3898 "gram.y" /* yacc.c:1652 */ + { + PartitionSpec *n = makeNode(PartitionSpec); + + n->strategy = (yyvsp[-3].str); + n->partParams = (yyvsp[-1].list); + n->location = (yylsp[-5]); + + (yyval.partspec) = n; + } +#line 29939 "gram.c" /* yacc.c:1652 */ + break; + + case 540: +#line 3909 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].partelem)); } +#line 29945 "gram.c" /* yacc.c:1652 */ + break; + + case 541: +#line 3910 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); } +#line 29951 "gram.c" /* yacc.c:1652 */ + break; + + case 542: +#line 3914 "gram.y" /* yacc.c:1652 */ + { + PartitionElem *n = makeNode(PartitionElem); + + n->name = (yyvsp[-2].str); + n->expr = NULL; + n->collation = (yyvsp[-1].list); + n->opclass = (yyvsp[0].list); + n->location = (yylsp[-2]); + (yyval.partelem) = n; + } +#line 29966 "gram.c" /* yacc.c:1652 */ + break; + + case 543: +#line 3925 "gram.y" /* yacc.c:1652 */ + { + PartitionElem *n = makeNode(PartitionElem); + + n->name = NULL; + n->expr = (yyvsp[-2].node); + n->collation = (yyvsp[-1].list); + n->opclass = (yyvsp[0].list); + n->location = (yylsp[-2]); + (yyval.partelem) = n; + } +#line 29981 "gram.c" /* yacc.c:1652 */ + break; + + case 544: +#line 3936 "gram.y" /* yacc.c:1652 */ + { + PartitionElem *n = makeNode(PartitionElem); + + n->name = NULL; + n->expr = (yyvsp[-3].node); + n->collation = (yyvsp[-1].list); + n->opclass = (yyvsp[0].list); + n->location = (yylsp[-4]); + (yyval.partelem) = n; + } +#line 29996 "gram.c" /* yacc.c:1652 */ + break; + + case 545: +#line 3949 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 30002 "gram.c" /* yacc.c:1652 */ + break; + + case 546: +#line 3950 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 30008 "gram.c" /* yacc.c:1652 */ + break; + + case 547: +#line 3955 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 30014 "gram.c" /* yacc.c:1652 */ + break; + + case 548: +#line 3956 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30020 "gram.c" /* yacc.c:1652 */ + break; + + case 549: +#line 3957 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30026 "gram.c" /* yacc.c:1652 */ + break; + + case 550: +#line 3960 "gram.y" /* yacc.c:1652 */ + { (yyval.oncommit) = ONCOMMIT_DROP; } +#line 30032 "gram.c" /* yacc.c:1652 */ + break; + + case 551: +#line 3961 "gram.y" /* yacc.c:1652 */ + { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; } +#line 30038 "gram.c" /* yacc.c:1652 */ + break; + + case 552: +#line 3962 "gram.y" /* yacc.c:1652 */ + { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; } +#line 30044 "gram.c" /* yacc.c:1652 */ + break; + + case 553: +#line 3963 "gram.y" /* yacc.c:1652 */ + { (yyval.oncommit) = ONCOMMIT_NOOP; } +#line 30050 "gram.c" /* yacc.c:1652 */ + break; + + case 554: +#line 3966 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 30056 "gram.c" /* yacc.c:1652 */ + break; + + case 555: +#line 3967 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 30062 "gram.c" /* yacc.c:1652 */ + break; + + case 556: +#line 3970 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 30068 "gram.c" /* yacc.c:1652 */ + break; + + case 557: +#line 3971 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 30074 "gram.c" /* yacc.c:1652 */ + break; + + case 558: +#line 3974 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 30080 "gram.c" /* yacc.c:1652 */ + break; + + case 559: +#line 3994 "gram.y" /* yacc.c:1652 */ + { + CreateStatsStmt *n = makeNode(CreateStatsStmt); + n->defnames = (yyvsp[-5].list); + n->stat_types = (yyvsp[-4].list); + n->exprs = (yyvsp[-2].list); + n->relations = (yyvsp[0].list); + n->stxcomment = NULL; + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 30095 "gram.c" /* yacc.c:1652 */ + break; + + case 560: +#line 4006 "gram.y" /* yacc.c:1652 */ + { + CreateStatsStmt *n = makeNode(CreateStatsStmt); + n->defnames = (yyvsp[-5].list); + n->stat_types = (yyvsp[-4].list); + n->exprs = (yyvsp[-2].list); + n->relations = (yyvsp[0].list); + n->stxcomment = NULL; + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 30110 "gram.c" /* yacc.c:1652 */ + break; + + case 561: +#line 4029 "gram.y" /* yacc.c:1652 */ + { + AlterStatsStmt *n = makeNode(AlterStatsStmt); + n->defnames = (yyvsp[-3].list); + n->missing_ok = false; + n->stxstattarget = (yyvsp[0].ival); + (yyval.node) = (Node *)n; + } +#line 30122 "gram.c" /* yacc.c:1652 */ + break; + + case 562: +#line 4037 "gram.y" /* yacc.c:1652 */ + { + AlterStatsStmt *n = makeNode(AlterStatsStmt); + n->defnames = (yyvsp[-3].list); + n->missing_ok = true; + n->stxstattarget = (yyvsp[0].ival); + (yyval.node) = (Node *)n; + } +#line 30134 "gram.c" /* yacc.c:1652 */ + break; + + case 563: +#line 4058 "gram.y" /* yacc.c:1652 */ + { + CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = OBJECT_TABLE; + ctas->is_select_into = false; + ctas->if_not_exists = false; + /* cram additional flags into the IntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) ctas; + } +#line 30151 "gram.c" /* yacc.c:1652 */ + break; + + case 564: +#line 4071 "gram.y" /* yacc.c:1652 */ + { + CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = OBJECT_TABLE; + ctas->is_select_into = false; + ctas->if_not_exists = true; + /* cram additional flags into the IntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-8].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) ctas; + } +#line 30168 "gram.c" /* yacc.c:1652 */ + break; + + case 565: +#line 4088 "gram.y" /* yacc.c:1652 */ + { + (yyval.into) = makeNode(IntoClause); + (yyval.into)->rel = (yyvsp[-5].range); + (yyval.into)->colNames = (yyvsp[-4].list); + (yyval.into)->accessMethod = (yyvsp[-3].str); + (yyval.into)->options = (yyvsp[-2].list); + (yyval.into)->onCommit = (yyvsp[-1].oncommit); + (yyval.into)->tableSpaceName = (yyvsp[0].str); + (yyval.into)->viewQuery = NULL; + (yyval.into)->skipData = false; /* might get changed later */ + } +#line 30184 "gram.c" /* yacc.c:1652 */ + break; + + case 566: +#line 4102 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 30190 "gram.c" /* yacc.c:1652 */ + break; + + case 567: +#line 4103 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 30196 "gram.c" /* yacc.c:1652 */ + break; + + case 568: +#line 4104 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 30202 "gram.c" /* yacc.c:1652 */ + break; + + case 569: +#line 4117 "gram.y" /* yacc.c:1652 */ + { + CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = OBJECT_MATVIEW; + ctas->is_select_into = false; + ctas->if_not_exists = false; + /* cram additional flags into the IntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-6].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) ctas; + } +#line 30219 "gram.c" /* yacc.c:1652 */ + break; + + case 570: +#line 4130 "gram.y" /* yacc.c:1652 */ + { + CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = OBJECT_MATVIEW; + ctas->is_select_into = false; + ctas->if_not_exists = true; + /* cram additional flags into the IntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-9].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) ctas; + } +#line 30236 "gram.c" /* yacc.c:1652 */ + break; + + case 571: +#line 4146 "gram.y" /* yacc.c:1652 */ + { + (yyval.into) = makeNode(IntoClause); + (yyval.into)->rel = (yyvsp[-4].range); + (yyval.into)->colNames = (yyvsp[-3].list); + (yyval.into)->accessMethod = (yyvsp[-2].str); + (yyval.into)->options = (yyvsp[-1].list); + (yyval.into)->onCommit = ONCOMMIT_NOOP; + (yyval.into)->tableSpaceName = (yyvsp[0].str); + (yyval.into)->viewQuery = NULL; /* filled at analysis time */ + (yyval.into)->skipData = false; /* might get changed later */ + } +#line 30252 "gram.c" /* yacc.c:1652 */ + break; + + case 572: +#line 4159 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } +#line 30258 "gram.c" /* yacc.c:1652 */ + break; + + case 573: +#line 4160 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RELPERSISTENCE_PERMANENT; } +#line 30264 "gram.c" /* yacc.c:1652 */ + break; + + case 574: +#line 4173 "gram.y" /* yacc.c:1652 */ + { + RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt); + n->concurrent = (yyvsp[-2].boolean); + n->relation = (yyvsp[-1].range); + n->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) n; + } +#line 30276 "gram.c" /* yacc.c:1652 */ + break; + + case 575: +#line 4193 "gram.y" /* yacc.c:1652 */ + { + CreateSeqStmt *n = makeNode(CreateSeqStmt); + (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->ownerId = InvalidOid; + n->if_not_exists = false; + (yyval.node) = (Node *)n; + } +#line 30290 "gram.c" /* yacc.c:1652 */ + break; + + case 576: +#line 4203 "gram.y" /* yacc.c:1652 */ + { + CreateSeqStmt *n = makeNode(CreateSeqStmt); + (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->ownerId = InvalidOid; + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 30304 "gram.c" /* yacc.c:1652 */ + break; + + case 577: +#line 4216 "gram.y" /* yacc.c:1652 */ + { + AlterSeqStmt *n = makeNode(AlterSeqStmt); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 30316 "gram.c" /* yacc.c:1652 */ + break; + + case 578: +#line 4224 "gram.y" /* yacc.c:1652 */ + { + AlterSeqStmt *n = makeNode(AlterSeqStmt); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 30328 "gram.c" /* yacc.c:1652 */ + break; + + case 579: +#line 4234 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 30334 "gram.c" /* yacc.c:1652 */ + break; + + case 580: +#line 4235 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30340 "gram.c" /* yacc.c:1652 */ + break; + + case 581: +#line 4238 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 30346 "gram.c" /* yacc.c:1652 */ + break; + + case 582: +#line 4239 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30352 "gram.c" /* yacc.c:1652 */ + break; + + case 583: +#line 4242 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 30358 "gram.c" /* yacc.c:1652 */ + break; + + case 584: +#line 4243 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 30364 "gram.c" /* yacc.c:1652 */ + break; + + case 585: +#line 4247 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].typnam), (yylsp[-1])); + } +#line 30372 "gram.c" /* yacc.c:1652 */ + break; + + case 586: +#line 4251 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[0].value), (yylsp[-1])); + } +#line 30380 "gram.c" /* yacc.c:1652 */ + break; + + case 587: +#line 4255 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(true), (yylsp[0])); + } +#line 30388 "gram.c" /* yacc.c:1652 */ + break; + + case 588: +#line 4259 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(false), (yylsp[-1])); + } +#line 30396 "gram.c" /* yacc.c:1652 */ + break; + + case 589: +#line 4263 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[0].value), (yylsp[-2])); + } +#line 30404 "gram.c" /* yacc.c:1652 */ + break; + + case 590: +#line 4267 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); + } +#line 30412 "gram.c" /* yacc.c:1652 */ + break; + + case 591: +#line 4271 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); + } +#line 30420 "gram.c" /* yacc.c:1652 */ + break; + + case 592: +#line 4275 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1])); + } +#line 30428 "gram.c" /* yacc.c:1652 */ + break; + + case 593: +#line 4279 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1])); + } +#line 30436 "gram.c" /* yacc.c:1652 */ + break; + + case 594: +#line 4283 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 30444 "gram.c" /* yacc.c:1652 */ + break; + + case 595: +#line 4287 "gram.y" /* yacc.c:1652 */ + { + /* not documented, only used by pg_dump */ + (yyval.defelt) = makeDefElem("sequence_name", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 30453 "gram.c" /* yacc.c:1652 */ + break; + + case 596: +#line 4292 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[0].value), (yylsp[-2])); + } +#line 30461 "gram.c" /* yacc.c:1652 */ + break; + + case 597: +#line 4296 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); + } +#line 30469 "gram.c" /* yacc.c:1652 */ + break; + + case 598: +#line 4300 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); + } +#line 30477 "gram.c" /* yacc.c:1652 */ + break; + + case 599: +#line 4305 "gram.y" /* yacc.c:1652 */ + {} +#line 30483 "gram.c" /* yacc.c:1652 */ + break; + + case 600: +#line 4306 "gram.y" /* yacc.c:1652 */ + {} +#line 30489 "gram.c" /* yacc.c:1652 */ + break; + + case 601: +#line 4310 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeFloat((yyvsp[0].str)); } +#line 30495 "gram.c" /* yacc.c:1652 */ + break; + + case 602: +#line 4311 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeFloat((yyvsp[0].str)); } +#line 30501 "gram.c" /* yacc.c:1652 */ + break; + + case 603: +#line 4313 "gram.y" /* yacc.c:1652 */ + { + (yyval.value) = makeFloat((yyvsp[0].str)); + doNegateFloat((yyval.value)); + } +#line 30510 "gram.c" /* yacc.c:1652 */ + break; + + case 604: +#line 4317 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeInteger((yyvsp[0].ival)); } +#line 30516 "gram.c" /* yacc.c:1652 */ + break; + + case 605: +#line 4320 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].value)); } +#line 30522 "gram.c" /* yacc.c:1652 */ + break; + + case 606: +#line 4321 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } +#line 30528 "gram.c" /* yacc.c:1652 */ + break; + + case 607: +#line 4334 "gram.y" /* yacc.c:1652 */ + { + /* + * We now interpret parameterless CREATE LANGUAGE as + * CREATE EXTENSION. "OR REPLACE" is silently translated + * to "IF NOT EXISTS", which isn't quite the same, but + * seems more useful than throwing an error. We just + * ignore TRUSTED, as the previous code would have too. + */ + CreateExtensionStmt *n = makeNode(CreateExtensionStmt); + n->if_not_exists = (yyvsp[-4].boolean); + n->extname = (yyvsp[0].str); + n->options = NIL; + (yyval.node) = (Node *)n; + } +#line 30547 "gram.c" /* yacc.c:1652 */ + break; + + case 608: +#line 4350 "gram.y" /* yacc.c:1652 */ + { + CreatePLangStmt *n = makeNode(CreatePLangStmt); + n->replace = (yyvsp[-8].boolean); + n->plname = (yyvsp[-4].str); + n->plhandler = (yyvsp[-2].list); + n->plinline = (yyvsp[-1].list); + n->plvalidator = (yyvsp[0].list); + n->pltrusted = (yyvsp[-7].boolean); + (yyval.node) = (Node *)n; + } +#line 30562 "gram.c" /* yacc.c:1652 */ + break; + + case 609: +#line 4363 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 30568 "gram.c" /* yacc.c:1652 */ + break; + + case 610: +#line 4364 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 30574 "gram.c" /* yacc.c:1652 */ + break; + + case 611: +#line 4372 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 30580 "gram.c" /* yacc.c:1652 */ + break; + + case 612: +#line 4373 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } +#line 30586 "gram.c" /* yacc.c:1652 */ + break; + + case 613: +#line 4377 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 30592 "gram.c" /* yacc.c:1652 */ + break; + + case 614: +#line 4378 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30598 "gram.c" /* yacc.c:1652 */ + break; + + case 615: +#line 4382 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 30604 "gram.c" /* yacc.c:1652 */ + break; + + case 616: +#line 4383 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30610 "gram.c" /* yacc.c:1652 */ + break; + + case 617: +#line 4387 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 30616 "gram.c" /* yacc.c:1652 */ + break; + + case 618: +#line 4388 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30622 "gram.c" /* yacc.c:1652 */ + break; + + case 619: +#line 4393 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_LANGUAGE; + n->objects = list_make1(makeString((yyvsp[-1].str))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 30636 "gram.c" /* yacc.c:1652 */ + break; + + case 620: +#line 4403 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_LANGUAGE; + n->objects = list_make1(makeString((yyvsp[-1].str))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 30650 "gram.c" /* yacc.c:1652 */ + break; + + case 621: +#line 4415 "gram.y" /* yacc.c:1652 */ + {} +#line 30656 "gram.c" /* yacc.c:1652 */ + break; + + case 622: +#line 4416 "gram.y" /* yacc.c:1652 */ + {} +#line 30662 "gram.c" /* yacc.c:1652 */ + break; + + case 623: +#line 4427 "gram.y" /* yacc.c:1652 */ + { + CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); + n->tablespacename = (yyvsp[-4].str); + n->owner = (yyvsp[-3].rolespec); + n->location = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 30675 "gram.c" /* yacc.c:1652 */ + break; + + case 624: +#line 4437 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 30681 "gram.c" /* yacc.c:1652 */ + break; + + case 625: +#line 4438 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = NULL; } +#line 30687 "gram.c" /* yacc.c:1652 */ + break; + + case 626: +#line 4452 "gram.y" /* yacc.c:1652 */ + { + DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); + n->tablespacename = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *) n; + } +#line 30698 "gram.c" /* yacc.c:1652 */ + break; + + case 627: +#line 4459 "gram.y" /* yacc.c:1652 */ + { + DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); + n->tablespacename = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *) n; + } +#line 30709 "gram.c" /* yacc.c:1652 */ + break; + + case 628: +#line 4476 "gram.y" /* yacc.c:1652 */ + { + CreateExtensionStmt *n = makeNode(CreateExtensionStmt); + n->extname = (yyvsp[-2].str); + n->if_not_exists = false; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 30721 "gram.c" /* yacc.c:1652 */ + break; + + case 629: +#line 4484 "gram.y" /* yacc.c:1652 */ + { + CreateExtensionStmt *n = makeNode(CreateExtensionStmt); + n->extname = (yyvsp[-2].str); + n->if_not_exists = true; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 30733 "gram.c" /* yacc.c:1652 */ + break; + + case 630: +#line 4495 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 30739 "gram.c" /* yacc.c:1652 */ + break; + + case 631: +#line 4497 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30745 "gram.c" /* yacc.c:1652 */ + break; + + case 632: +#line 4502 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 30753 "gram.c" /* yacc.c:1652 */ + break; + + case 633: +#line 4506 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 30761 "gram.c" /* yacc.c:1652 */ + break; + + case 634: +#line 4510 "gram.y" /* yacc.c:1652 */ + { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("CREATE EXTENSION ... FROM is no longer supported"), + parser_errposition((yylsp[-1])))); + } +#line 30772 "gram.c" /* yacc.c:1652 */ + break; + + case 635: +#line 4517 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("cascade", (Node *)makeInteger(true), (yylsp[0])); + } +#line 30780 "gram.c" /* yacc.c:1652 */ + break; + + case 636: +#line 4529 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionStmt *n = makeNode(AlterExtensionStmt); + n->extname = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 30791 "gram.c" /* yacc.c:1652 */ + break; + + case 637: +#line 4539 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 30797 "gram.c" /* yacc.c:1652 */ + break; + + case 638: +#line 4541 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 30803 "gram.c" /* yacc.c:1652 */ + break; + + case 639: +#line 4546 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 30811 "gram.c" /* yacc.c:1652 */ + break; + + case 640: +#line 4559 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-4].str); + n->action = (yyvsp[-3].ival); + n->objtype = OBJECT_ACCESS_METHOD; + n->object = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 30824 "gram.c" /* yacc.c:1652 */ + break; + + case 641: +#line 4568 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_AGGREGATE; + n->object = (Node *) (yyvsp[0].objwithargs); + (yyval.node) = (Node *)n; + } +#line 30837 "gram.c" /* yacc.c:1652 */ + break; + + case 642: +#line 4577 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-7].str); + n->action = (yyvsp[-6].ival); + n->objtype = OBJECT_CAST; + n->object = (Node *) list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); + (yyval.node) = (Node *) n; + } +#line 30850 "gram.c" /* yacc.c:1652 */ + break; + + case 643: +#line 4586 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_COLLATION; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 30863 "gram.c" /* yacc.c:1652 */ + break; + + case 644: +#line 4595 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_CONVERSION; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 30876 "gram.c" /* yacc.c:1652 */ + break; + + case 645: +#line 4604 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_DOMAIN; + n->object = (Node *) (yyvsp[0].typnam); + (yyval.node) = (Node *)n; + } +#line 30889 "gram.c" /* yacc.c:1652 */ + break; + + case 646: +#line 4613 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[0].objwithargs); + (yyval.node) = (Node *)n; + } +#line 30902 "gram.c" /* yacc.c:1652 */ + break; + + case 647: +#line 4622 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-4].str); + n->action = (yyvsp[-3].ival); + n->objtype = OBJECT_LANGUAGE; + n->object = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 30915 "gram.c" /* yacc.c:1652 */ + break; + + case 648: +#line 4631 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_OPERATOR; + n->object = (Node *) (yyvsp[0].objwithargs); + (yyval.node) = (Node *)n; + } +#line 30928 "gram.c" /* yacc.c:1652 */ + break; + + case 649: +#line 4640 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-6].str); + n->action = (yyvsp[-5].ival); + n->objtype = OBJECT_OPCLASS; + n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); + (yyval.node) = (Node *)n; + } +#line 30941 "gram.c" /* yacc.c:1652 */ + break; + + case 650: +#line 4649 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-6].str); + n->action = (yyvsp[-5].ival); + n->objtype = OBJECT_OPFAMILY; + n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); + (yyval.node) = (Node *)n; + } +#line 30954 "gram.c" /* yacc.c:1652 */ + break; + + case 651: +#line 4658 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[0].objwithargs); + (yyval.node) = (Node *)n; + } +#line 30967 "gram.c" /* yacc.c:1652 */ + break; + + case 652: +#line 4667 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[0].objwithargs); + (yyval.node) = (Node *)n; + } +#line 30980 "gram.c" /* yacc.c:1652 */ + break; + + case 653: +#line 4676 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_SCHEMA; + n->object = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 30993 "gram.c" /* yacc.c:1652 */ + break; + + case 654: +#line 4685 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-4].str); + n->action = (yyvsp[-3].ival); + n->objtype = OBJECT_EVENT_TRIGGER; + n->object = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 31006 "gram.c" /* yacc.c:1652 */ + break; + + case 655: +#line 4694 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_TABLE; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31019 "gram.c" /* yacc.c:1652 */ + break; + + case 656: +#line 4703 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-5].str); + n->action = (yyvsp[-4].ival); + n->objtype = OBJECT_TSPARSER; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31032 "gram.c" /* yacc.c:1652 */ + break; + + case 657: +#line 4712 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-5].str); + n->action = (yyvsp[-4].ival); + n->objtype = OBJECT_TSDICTIONARY; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31045 "gram.c" /* yacc.c:1652 */ + break; + + case 658: +#line 4721 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-5].str); + n->action = (yyvsp[-4].ival); + n->objtype = OBJECT_TSTEMPLATE; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31058 "gram.c" /* yacc.c:1652 */ + break; + + case 659: +#line 4730 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-5].str); + n->action = (yyvsp[-4].ival); + n->objtype = OBJECT_TSCONFIGURATION; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31071 "gram.c" /* yacc.c:1652 */ + break; + + case 660: +#line 4739 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_SEQUENCE; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31084 "gram.c" /* yacc.c:1652 */ + break; + + case 661: +#line 4748 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_VIEW; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31097 "gram.c" /* yacc.c:1652 */ + break; + + case 662: +#line 4757 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-4].str); + n->action = (yyvsp[-3].ival); + n->objtype = OBJECT_MATVIEW; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31110 "gram.c" /* yacc.c:1652 */ + break; + + case 663: +#line 4766 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-4].str); + n->action = (yyvsp[-3].ival); + n->objtype = OBJECT_FOREIGN_TABLE; + n->object = (Node *) (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 31123 "gram.c" /* yacc.c:1652 */ + break; + + case 664: +#line 4775 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-5].str); + n->action = (yyvsp[-4].ival); + n->objtype = OBJECT_FDW; + n->object = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 31136 "gram.c" /* yacc.c:1652 */ + break; + + case 665: +#line 4784 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_FOREIGN_SERVER; + n->object = (Node *) makeString((yyvsp[0].str)); + (yyval.node) = (Node *)n; + } +#line 31149 "gram.c" /* yacc.c:1652 */ + break; + + case 666: +#line 4793 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-6].str); + n->action = (yyvsp[-5].ival); + n->objtype = OBJECT_TRANSFORM; + n->object = (Node *) list_make2((yyvsp[-2].typnam), makeString((yyvsp[0].str))); + (yyval.node) = (Node *)n; + } +#line 31162 "gram.c" /* yacc.c:1652 */ + break; + + case 667: +#line 4802 "gram.y" /* yacc.c:1652 */ + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = (yyvsp[-3].str); + n->action = (yyvsp[-2].ival); + n->objtype = OBJECT_TYPE; + n->object = (Node *) (yyvsp[0].typnam); + (yyval.node) = (Node *)n; + } +#line 31175 "gram.c" /* yacc.c:1652 */ + break; + + case 668: +#line 4820 "gram.y" /* yacc.c:1652 */ + { + CreateFdwStmt *n = makeNode(CreateFdwStmt); + n->fdwname = (yyvsp[-2].str); + n->func_options = (yyvsp[-1].list); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31187 "gram.c" /* yacc.c:1652 */ + break; + + case 669: +#line 4830 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[0].list), (yylsp[-1])); } +#line 31193 "gram.c" /* yacc.c:1652 */ + break; + + case 670: +#line 4831 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); } +#line 31199 "gram.c" /* yacc.c:1652 */ + break; + + case 671: +#line 4832 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[0].list), (yylsp[-1])); } +#line 31205 "gram.c" /* yacc.c:1652 */ + break; + + case 672: +#line 4833 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); } +#line 31211 "gram.c" /* yacc.c:1652 */ + break; + + case 673: +#line 4837 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 31217 "gram.c" /* yacc.c:1652 */ + break; + + case 674: +#line 4838 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 31223 "gram.c" /* yacc.c:1652 */ + break; + + case 675: +#line 4842 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 31229 "gram.c" /* yacc.c:1652 */ + break; + + case 676: +#line 4843 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 31235 "gram.c" /* yacc.c:1652 */ + break; + + case 677: +#line 4854 "gram.y" /* yacc.c:1652 */ + { + AlterFdwStmt *n = makeNode(AlterFdwStmt); + n->fdwname = (yyvsp[-2].str); + n->func_options = (yyvsp[-1].list); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31247 "gram.c" /* yacc.c:1652 */ + break; + + case 678: +#line 4862 "gram.y" /* yacc.c:1652 */ + { + AlterFdwStmt *n = makeNode(AlterFdwStmt); + n->fdwname = (yyvsp[-1].str); + n->func_options = (yyvsp[0].list); + n->options = NIL; + (yyval.node) = (Node *) n; + } +#line 31259 "gram.c" /* yacc.c:1652 */ + break; + + case 679: +#line 4873 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 31265 "gram.c" /* yacc.c:1652 */ + break; + + case 680: +#line 4874 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 31271 "gram.c" /* yacc.c:1652 */ + break; + + case 681: +#line 4879 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 31279 "gram.c" /* yacc.c:1652 */ + break; + + case 682: +#line 4883 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 31287 "gram.c" /* yacc.c:1652 */ + break; + + case 683: +#line 4890 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 31293 "gram.c" /* yacc.c:1652 */ + break; + + case 684: +#line 4895 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 31301 "gram.c" /* yacc.c:1652 */ + break; + + case 685: +#line 4899 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 31309 "gram.c" /* yacc.c:1652 */ + break; + + case 686: +#line 4906 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = (yyvsp[0].defelt); + } +#line 31317 "gram.c" /* yacc.c:1652 */ + break; + + case 687: +#line 4910 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = (yyvsp[0].defelt); + (yyval.defelt)->defaction = DEFELEM_SET; + } +#line 31326 "gram.c" /* yacc.c:1652 */ + break; + + case 688: +#line 4915 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = (yyvsp[0].defelt); + (yyval.defelt)->defaction = DEFELEM_ADD; + } +#line 31335 "gram.c" /* yacc.c:1652 */ + break; + + case 689: +#line 4920 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0])); + } +#line 31343 "gram.c" /* yacc.c:1652 */ + break; + + case 690: +#line 4927 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 31351 "gram.c" /* yacc.c:1652 */ + break; + + case 691: +#line 4933 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 31357 "gram.c" /* yacc.c:1652 */ + break; + + case 692: +#line 4938 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 31363 "gram.c" /* yacc.c:1652 */ + break; + + case 693: +#line 4950 "gram.y" /* yacc.c:1652 */ + { + CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); + n->servername = (yyvsp[-7].str); + n->servertype = (yyvsp[-6].str); + n->version = (yyvsp[-5].str); + n->fdwname = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + n->if_not_exists = false; + (yyval.node) = (Node *) n; + } +#line 31378 "gram.c" /* yacc.c:1652 */ + break; + + case 694: +#line 4962 "gram.y" /* yacc.c:1652 */ + { + CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); + n->servername = (yyvsp[-7].str); + n->servertype = (yyvsp[-6].str); + n->version = (yyvsp[-5].str); + n->fdwname = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + n->if_not_exists = true; + (yyval.node) = (Node *) n; + } +#line 31393 "gram.c" /* yacc.c:1652 */ + break; + + case 695: +#line 4975 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 31399 "gram.c" /* yacc.c:1652 */ + break; + + case 696: +#line 4976 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 31405 "gram.c" /* yacc.c:1652 */ + break; + + case 697: +#line 4981 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 31411 "gram.c" /* yacc.c:1652 */ + break; + + case 698: +#line 4982 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 31417 "gram.c" /* yacc.c:1652 */ + break; + + case 699: +#line 4986 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 31423 "gram.c" /* yacc.c:1652 */ + break; + + case 700: +#line 4987 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 31429 "gram.c" /* yacc.c:1652 */ + break; + + case 701: +#line 4998 "gram.y" /* yacc.c:1652 */ + { + AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); + n->servername = (yyvsp[-2].str); + n->version = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + n->has_version = true; + (yyval.node) = (Node *) n; + } +#line 31442 "gram.c" /* yacc.c:1652 */ + break; + + case 702: +#line 5007 "gram.y" /* yacc.c:1652 */ + { + AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); + n->servername = (yyvsp[-1].str); + n->version = (yyvsp[0].str); + n->has_version = true; + (yyval.node) = (Node *) n; + } +#line 31454 "gram.c" /* yacc.c:1652 */ + break; + + case 703: +#line 5015 "gram.y" /* yacc.c:1652 */ + { + AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31465 "gram.c" /* yacc.c:1652 */ + break; + + case 704: +#line 5034 "gram.y" /* yacc.c:1652 */ + { + CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); + (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; + n->base.relation = (yyvsp[-7].range); + n->base.tableElts = (yyvsp[-5].list); + n->base.inhRelations = (yyvsp[-3].list); + n->base.ofTypename = NULL; + n->base.constraints = NIL; + n->base.options = NIL; + n->base.oncommit = ONCOMMIT_NOOP; + n->base.tablespacename = NULL; + n->base.if_not_exists = false; + /* FDW-specific data */ + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31487 "gram.c" /* yacc.c:1652 */ + break; + + case 705: +#line 5054 "gram.y" /* yacc.c:1652 */ + { + CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); + (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; + n->base.relation = (yyvsp[-7].range); + n->base.tableElts = (yyvsp[-5].list); + n->base.inhRelations = (yyvsp[-3].list); + n->base.ofTypename = NULL; + n->base.constraints = NIL; + n->base.options = NIL; + n->base.oncommit = ONCOMMIT_NOOP; + n->base.tablespacename = NULL; + n->base.if_not_exists = true; + /* FDW-specific data */ + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31509 "gram.c" /* yacc.c:1652 */ + break; + + case 706: +#line 5074 "gram.y" /* yacc.c:1652 */ + { + CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); + (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; + n->base.relation = (yyvsp[-8].range); + n->base.inhRelations = list_make1((yyvsp[-5].range)); + n->base.tableElts = (yyvsp[-4].list); + n->base.partbound = (yyvsp[-3].partboundspec); + n->base.ofTypename = NULL; + n->base.constraints = NIL; + n->base.options = NIL; + n->base.oncommit = ONCOMMIT_NOOP; + n->base.tablespacename = NULL; + n->base.if_not_exists = false; + /* FDW-specific data */ + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31532 "gram.c" /* yacc.c:1652 */ + break; + + case 707: +#line 5095 "gram.y" /* yacc.c:1652 */ + { + CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); + (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; + n->base.relation = (yyvsp[-8].range); + n->base.inhRelations = list_make1((yyvsp[-5].range)); + n->base.tableElts = (yyvsp[-4].list); + n->base.partbound = (yyvsp[-3].partboundspec); + n->base.ofTypename = NULL; + n->base.constraints = NIL; + n->base.options = NIL; + n->base.oncommit = ONCOMMIT_NOOP; + n->base.tablespacename = NULL; + n->base.if_not_exists = true; + /* FDW-specific data */ + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31555 "gram.c" /* yacc.c:1652 */ + break; + + case 708: +#line 5124 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_FOREIGN_TABLE; + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 31568 "gram.c" /* yacc.c:1652 */ + break; + + case 709: +#line 5133 "gram.y" /* yacc.c:1652 */ + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = OBJECT_FOREIGN_TABLE; + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 31581 "gram.c" /* yacc.c:1652 */ + break; + + case 710: +#line 5155 "gram.y" /* yacc.c:1652 */ + { + ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt); + n->server_name = (yyvsp[-3].str); + n->remote_schema = (yyvsp[-7].str); + n->local_schema = (yyvsp[-1].str); + n->list_type = (yyvsp[-6].importqual)->type; + n->table_list = (yyvsp[-6].importqual)->table_names; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31596 "gram.c" /* yacc.c:1652 */ + break; + + case 711: +#line 5168 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; } +#line 31602 "gram.c" /* yacc.c:1652 */ + break; + + case 712: +#line 5169 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; } +#line 31608 "gram.c" /* yacc.c:1652 */ + break; + + case 713: +#line 5174 "gram.y" /* yacc.c:1652 */ + { + ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); + n->type = (yyvsp[-3].ival); + n->table_names = (yyvsp[-1].list); + (yyval.importqual) = n; + } +#line 31619 "gram.c" /* yacc.c:1652 */ + break; + + case 714: +#line 5181 "gram.y" /* yacc.c:1652 */ + { + ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); + n->type = FDW_IMPORT_SCHEMA_ALL; + n->table_names = NIL; + (yyval.importqual) = n; + } +#line 31630 "gram.c" /* yacc.c:1652 */ + break; + + case 715: +#line 5197 "gram.y" /* yacc.c:1652 */ + { + CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); + n->user = (yyvsp[-3].rolespec); + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + n->if_not_exists = false; + (yyval.node) = (Node *) n; + } +#line 31643 "gram.c" /* yacc.c:1652 */ + break; + + case 716: +#line 5206 "gram.y" /* yacc.c:1652 */ + { + CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); + n->user = (yyvsp[-3].rolespec); + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + n->if_not_exists = true; + (yyval.node) = (Node *) n; + } +#line 31656 "gram.c" /* yacc.c:1652 */ + break; + + case 717: +#line 5217 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 31662 "gram.c" /* yacc.c:1652 */ + break; + + case 718: +#line 5218 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } +#line 31668 "gram.c" /* yacc.c:1652 */ + break; + + case 719: +#line 5231 "gram.y" /* yacc.c:1652 */ + { + DropUserMappingStmt *n = makeNode(DropUserMappingStmt); + n->user = (yyvsp[-2].rolespec); + n->servername = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *) n; + } +#line 31680 "gram.c" /* yacc.c:1652 */ + break; + + case 720: +#line 5239 "gram.y" /* yacc.c:1652 */ + { + DropUserMappingStmt *n = makeNode(DropUserMappingStmt); + n->user = (yyvsp[-2].rolespec); + n->servername = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *) n; + } +#line 31692 "gram.c" /* yacc.c:1652 */ + break; + + case 721: +#line 5256 "gram.y" /* yacc.c:1652 */ + { + AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); + n->user = (yyvsp[-3].rolespec); + n->servername = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 31704 "gram.c" /* yacc.c:1652 */ + break; + + case 722: +#line 5282 "gram.y" /* yacc.c:1652 */ + { + CreatePolicyStmt *n = makeNode(CreatePolicyStmt); + n->policy_name = (yyvsp[-7].str); + n->table = (yyvsp[-5].range); + n->permissive = (yyvsp[-4].boolean); + n->cmd_name = (yyvsp[-3].str); + n->roles = (yyvsp[-2].list); + n->qual = (yyvsp[-1].node); + n->with_check = (yyvsp[0].node); + (yyval.node) = (Node *) n; + } +#line 31720 "gram.c" /* yacc.c:1652 */ + break; + + case 723: +#line 5298 "gram.y" /* yacc.c:1652 */ + { + AlterPolicyStmt *n = makeNode(AlterPolicyStmt); + n->policy_name = (yyvsp[-5].str); + n->table = (yyvsp[-3].range); + n->roles = (yyvsp[-2].list); + n->qual = (yyvsp[-1].node); + n->with_check = (yyvsp[0].node); + (yyval.node) = (Node *) n; + } +#line 31734 "gram.c" /* yacc.c:1652 */ + break; + + case 724: +#line 5310 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 31740 "gram.c" /* yacc.c:1652 */ + break; + + case 725: +#line 5311 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 31746 "gram.c" /* yacc.c:1652 */ + break; + + case 726: +#line 5315 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 31752 "gram.c" /* yacc.c:1652 */ + break; + + case 727: +#line 5316 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 31758 "gram.c" /* yacc.c:1652 */ + break; + + case 728: +#line 5320 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 31764 "gram.c" /* yacc.c:1652 */ + break; + + case 729: +#line 5321 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); } +#line 31770 "gram.c" /* yacc.c:1652 */ + break; + + case 730: +#line 5325 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 31776 "gram.c" /* yacc.c:1652 */ + break; + + case 731: +#line 5326 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NULL; } +#line 31782 "gram.c" /* yacc.c:1652 */ + break; + + case 732: +#line 5331 "gram.y" /* yacc.c:1652 */ + { + if (strcmp((yyvsp[0].str), "permissive") == 0) + (yyval.boolean) = true; + else if (strcmp((yyvsp[0].str), "restrictive") == 0) + (yyval.boolean) = false; + else + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized row security option \"%s\"", (yyvsp[0].str)), + errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."), + parser_errposition((yylsp[0])))); + + } +#line 31800 "gram.c" /* yacc.c:1652 */ + break; + + case 733: +#line 5344 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 31806 "gram.c" /* yacc.c:1652 */ + break; + + case 734: +#line 5348 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 31812 "gram.c" /* yacc.c:1652 */ + break; + + case 735: +#line 5349 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "all"; } +#line 31818 "gram.c" /* yacc.c:1652 */ + break; + + case 736: +#line 5353 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "all"; } +#line 31824 "gram.c" /* yacc.c:1652 */ + break; + + case 737: +#line 5354 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "select"; } +#line 31830 "gram.c" /* yacc.c:1652 */ + break; + + case 738: +#line 5355 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "insert"; } +#line 31836 "gram.c" /* yacc.c:1652 */ + break; + + case 739: +#line 5356 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "update"; } +#line 31842 "gram.c" /* yacc.c:1652 */ + break; + + case 740: +#line 5357 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "delete"; } +#line 31848 "gram.c" /* yacc.c:1652 */ + break; + + case 741: +#line 5368 "gram.y" /* yacc.c:1652 */ + { + CreateAmStmt *n = makeNode(CreateAmStmt); + n->amname = (yyvsp[-4].str); + n->handler_name = (yyvsp[0].list); + n->amtype = (yyvsp[-2].chr); + (yyval.node) = (Node *) n; + } +#line 31860 "gram.c" /* yacc.c:1652 */ + break; + + case 742: +#line 5378 "gram.y" /* yacc.c:1652 */ + { (yyval.chr) = AMTYPE_INDEX; } +#line 31866 "gram.c" /* yacc.c:1652 */ + break; + + case 743: +#line 5379 "gram.y" /* yacc.c:1652 */ + { (yyval.chr) = AMTYPE_TABLE; } +#line 31872 "gram.c" /* yacc.c:1652 */ + break; + + case 744: +#line 5393 "gram.y" /* yacc.c:1652 */ + { + CreateTrigStmt *n = makeNode(CreateTrigStmt); + n->trigname = (yyvsp[-13].str); + n->relation = (yyvsp[-9].range); + n->funcname = (yyvsp[-3].list); + n->args = (yyvsp[-1].list); + n->row = (yyvsp[-7].boolean); + n->timing = (yyvsp[-12].ival); + n->events = intVal(linitial((yyvsp[-11].list))); + n->columns = (List *) lsecond((yyvsp[-11].list)); + n->whenClause = (yyvsp[-6].node); + n->transitionRels = (yyvsp[-8].list); + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->constrrel = NULL; + (yyval.node) = (Node *)n; + } +#line 31895 "gram.c" /* yacc.c:1652 */ + break; + + case 745: +#line 5415 "gram.y" /* yacc.c:1652 */ + { + CreateTrigStmt *n = makeNode(CreateTrigStmt); + n->trigname = (yyvsp[-16].str); + n->relation = (yyvsp[-12].range); + n->funcname = (yyvsp[-3].list); + n->args = (yyvsp[-1].list); + n->row = true; + n->timing = TRIGGER_TYPE_AFTER; + n->events = intVal(linitial((yyvsp[-14].list))); + n->columns = (List *) lsecond((yyvsp[-14].list)); + n->whenClause = (yyvsp[-6].node); + n->transitionRels = NIL; + n->isconstraint = true; + processCASbits((yyvsp[-10].ival), (yylsp[-10]), "TRIGGER", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + n->constrrel = (yyvsp[-11].range); + (yyval.node) = (Node *)n; + } +#line 31919 "gram.c" /* yacc.c:1652 */ + break; + + case 746: +#line 5437 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = TRIGGER_TYPE_BEFORE; } +#line 31925 "gram.c" /* yacc.c:1652 */ + break; + + case 747: +#line 5438 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = TRIGGER_TYPE_AFTER; } +#line 31931 "gram.c" /* yacc.c:1652 */ + break; + + case 748: +#line 5439 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = TRIGGER_TYPE_INSTEAD; } +#line 31937 "gram.c" /* yacc.c:1652 */ + break; + + case 749: +#line 5444 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 31943 "gram.c" /* yacc.c:1652 */ + break; + + case 750: +#line 5446 "gram.y" /* yacc.c:1652 */ + { + int events1 = intVal(linitial((yyvsp[-2].list))); + int events2 = intVal(linitial((yyvsp[0].list))); + List *columns1 = (List *) lsecond((yyvsp[-2].list)); + List *columns2 = (List *) lsecond((yyvsp[0].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)); + } +#line 31966 "gram.c" /* yacc.c:1652 */ + break; + + case 751: +#line 5468 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); } +#line 31972 "gram.c" /* yacc.c:1652 */ + break; + + case 752: +#line 5470 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); } +#line 31978 "gram.c" /* yacc.c:1652 */ + break; + + case 753: +#line 5472 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); } +#line 31984 "gram.c" /* yacc.c:1652 */ + break; + + case 754: +#line 5474 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); } +#line 31990 "gram.c" /* yacc.c:1652 */ + break; + + case 755: +#line 5476 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); } +#line 31996 "gram.c" /* yacc.c:1652 */ + break; + + case 756: +#line 5480 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 32002 "gram.c" /* yacc.c:1652 */ + break; + + case 757: +#line 5481 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 32008 "gram.c" /* yacc.c:1652 */ + break; + + case 758: +#line 5485 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 32014 "gram.c" /* yacc.c:1652 */ + break; + + case 759: +#line 5486 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 32020 "gram.c" /* yacc.c:1652 */ + break; + + case 760: +#line 5491 "gram.y" /* yacc.c:1652 */ + { + TriggerTransition *n = makeNode(TriggerTransition); + n->name = (yyvsp[0].str); + n->isNew = (yyvsp[-3].boolean); + n->isTable = (yyvsp[-2].boolean); + (yyval.node) = (Node *)n; + } +#line 32032 "gram.c" /* yacc.c:1652 */ + break; + + case 761: +#line 5501 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 32038 "gram.c" /* yacc.c:1652 */ + break; + + case 762: +#line 5502 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 32044 "gram.c" /* yacc.c:1652 */ + break; + + case 763: +#line 5506 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 32050 "gram.c" /* yacc.c:1652 */ + break; + + case 764: +#line 5515 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 32056 "gram.c" /* yacc.c:1652 */ + break; + + case 765: +#line 5519 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 32062 "gram.c" /* yacc.c:1652 */ + break; + + case 766: +#line 5524 "gram.y" /* yacc.c:1652 */ + { + (yyval.boolean) = (yyvsp[0].boolean); + } +#line 32070 "gram.c" /* yacc.c:1652 */ + break; + + case 767: +#line 5528 "gram.y" /* yacc.c:1652 */ + { + /* + * If ROW/STATEMENT not specified, default to + * STATEMENT, per SQL + */ + (yyval.boolean) = false; + } +#line 32082 "gram.c" /* yacc.c:1652 */ + break; + + case 768: +#line 5538 "gram.y" /* yacc.c:1652 */ + {} +#line 32088 "gram.c" /* yacc.c:1652 */ + break; + + case 769: +#line 5539 "gram.y" /* yacc.c:1652 */ + {} +#line 32094 "gram.c" /* yacc.c:1652 */ + break; + + case 770: +#line 5543 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 32100 "gram.c" /* yacc.c:1652 */ + break; + + case 771: +#line 5544 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 32106 "gram.c" /* yacc.c:1652 */ + break; + + case 772: +#line 5548 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 32112 "gram.c" /* yacc.c:1652 */ + break; + + case 773: +#line 5549 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 32118 "gram.c" /* yacc.c:1652 */ + break; + + case 776: +#line 5558 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].value)); } +#line 32124 "gram.c" /* yacc.c:1652 */ + break; + + case 777: +#line 5559 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } +#line 32130 "gram.c" /* yacc.c:1652 */ + break; + + case 778: +#line 5560 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 32136 "gram.c" /* yacc.c:1652 */ + break; + + case 779: +#line 5565 "gram.y" /* yacc.c:1652 */ + { + (yyval.value) = makeString(psprintf("%d", (yyvsp[0].ival))); + } +#line 32144 "gram.c" /* yacc.c:1652 */ + break; + + case 780: +#line 5568 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 32150 "gram.c" /* yacc.c:1652 */ + break; + + case 781: +#line 5569 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 32156 "gram.c" /* yacc.c:1652 */ + break; + + case 782: +#line 5570 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 32162 "gram.c" /* yacc.c:1652 */ + break; + + case 783: +#line 5574 "gram.y" /* yacc.c:1652 */ + { (yyval.range) = (yyvsp[0].range); } +#line 32168 "gram.c" /* yacc.c:1652 */ + break; + + case 784: +#line 5575 "gram.y" /* yacc.c:1652 */ + { (yyval.range) = NULL; } +#line 32174 "gram.c" /* yacc.c:1652 */ + break; + + case 785: +#line 5580 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 32180 "gram.c" /* yacc.c:1652 */ + break; + + case 786: +#line 5582 "gram.y" /* yacc.c:1652 */ + { + /* + * 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].ival) | (yyvsp[0].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[0])))); + /* 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[0])))); + (yyval.ival) = newspec; + } +#line 32208 "gram.c" /* yacc.c:1652 */ + break; + + case 787: +#line 5608 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CAS_NOT_DEFERRABLE; } +#line 32214 "gram.c" /* yacc.c:1652 */ + break; + + case 788: +#line 5609 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CAS_DEFERRABLE; } +#line 32220 "gram.c" /* yacc.c:1652 */ + break; + + case 789: +#line 5610 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } +#line 32226 "gram.c" /* yacc.c:1652 */ + break; + + case 790: +#line 5611 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CAS_INITIALLY_DEFERRED; } +#line 32232 "gram.c" /* yacc.c:1652 */ + break; + + case 791: +#line 5612 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CAS_NOT_VALID; } +#line 32238 "gram.c" /* yacc.c:1652 */ + break; + + case 792: +#line 5613 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CAS_NO_INHERIT; } +#line 32244 "gram.c" /* yacc.c:1652 */ + break; + + case 793: +#line 5628 "gram.y" /* yacc.c:1652 */ + { + CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); + n->trigname = (yyvsp[-7].str); + n->eventname = (yyvsp[-5].str); + n->whenclause = NULL; + n->funcname = (yyvsp[-2].list); + (yyval.node) = (Node *)n; + } +#line 32257 "gram.c" /* yacc.c:1652 */ + break; + + case 794: +#line 5639 "gram.y" /* yacc.c:1652 */ + { + CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); + n->trigname = (yyvsp[-9].str); + n->eventname = (yyvsp[-7].str); + n->whenclause = (yyvsp[-5].list); + n->funcname = (yyvsp[-2].list); + (yyval.node) = (Node *)n; + } +#line 32270 "gram.c" /* yacc.c:1652 */ + break; + + case 795: +#line 5651 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 32276 "gram.c" /* yacc.c:1652 */ + break; + + case 796: +#line 5653 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 32282 "gram.c" /* yacc.c:1652 */ + break; + + case 797: +#line 5658 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); } +#line 32288 "gram.c" /* yacc.c:1652 */ + break; + + case 798: +#line 5663 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 32294 "gram.c" /* yacc.c:1652 */ + break; + + case 799: +#line 5665 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 32300 "gram.c" /* yacc.c:1652 */ + break; + + case 800: +#line 5670 "gram.y" /* yacc.c:1652 */ + { + AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); + n->trigname = (yyvsp[-1].str); + n->tgenabled = (yyvsp[0].chr); + (yyval.node) = (Node *) n; + } +#line 32311 "gram.c" /* yacc.c:1652 */ + break; + + case 801: +#line 5679 "gram.y" /* yacc.c:1652 */ + { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; } +#line 32317 "gram.c" /* yacc.c:1652 */ + break; + + case 802: +#line 5680 "gram.y" /* yacc.c:1652 */ + { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; } +#line 32323 "gram.c" /* yacc.c:1652 */ + break; + + case 803: +#line 5681 "gram.y" /* yacc.c:1652 */ + { (yyval.chr) = TRIGGER_FIRES_ALWAYS; } +#line 32329 "gram.c" /* yacc.c:1652 */ + break; + + case 804: +#line 5682 "gram.y" /* yacc.c:1652 */ + { (yyval.chr) = TRIGGER_DISABLED; } +#line 32335 "gram.c" /* yacc.c:1652 */ + break; + + case 805: +#line 5694 "gram.y" /* yacc.c:1652 */ + { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("CREATE ASSERTION is not yet implemented"))); + + (yyval.node) = NULL; + } +#line 32347 "gram.c" /* yacc.c:1652 */ + break; + + case 806: +#line 5713 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_AGGREGATE; + n->oldstyle = false; + n->replace = (yyvsp[-4].boolean); + n->defnames = (yyvsp[-2].list); + n->args = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32362 "gram.c" /* yacc.c:1652 */ + break; + + case 807: +#line 5724 "gram.y" /* yacc.c:1652 */ + { + /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_AGGREGATE; + n->oldstyle = true; + n->replace = (yyvsp[-3].boolean); + n->defnames = (yyvsp[-1].list); + n->args = NIL; + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32378 "gram.c" /* yacc.c:1652 */ + break; + + case 808: +#line 5736 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_OPERATOR; + n->oldstyle = false; + n->defnames = (yyvsp[-1].list); + n->args = NIL; + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32392 "gram.c" /* yacc.c:1652 */ + break; + + case 809: +#line 5746 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_TYPE; + n->oldstyle = false; + n->defnames = (yyvsp[-1].list); + n->args = NIL; + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32406 "gram.c" /* yacc.c:1652 */ + break; + + case 810: +#line 5756 "gram.y" /* yacc.c:1652 */ + { + /* Shell type (identified by lack of definition) */ + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_TYPE; + n->oldstyle = false; + n->defnames = (yyvsp[0].list); + n->args = NIL; + n->definition = NIL; + (yyval.node) = (Node *)n; + } +#line 32421 "gram.c" /* yacc.c:1652 */ + break; + + case 811: +#line 5767 "gram.y" /* yacc.c:1652 */ + { + CompositeTypeStmt *n = makeNode(CompositeTypeStmt); + + /* can't use qualified_name, sigh */ + n->typevar = makeRangeVarFromAnyName((yyvsp[-4].list), (yylsp[-4]), yyscanner); + n->coldeflist = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 32434 "gram.c" /* yacc.c:1652 */ + break; + + case 812: +#line 5776 "gram.y" /* yacc.c:1652 */ + { + CreateEnumStmt *n = makeNode(CreateEnumStmt); + n->typeName = (yyvsp[-5].list); + n->vals = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 32445 "gram.c" /* yacc.c:1652 */ + break; + + case 813: +#line 5783 "gram.y" /* yacc.c:1652 */ + { + CreateRangeStmt *n = makeNode(CreateRangeStmt); + n->typeName = (yyvsp[-3].list); + n->params = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32456 "gram.c" /* yacc.c:1652 */ + break; + + case 814: +#line 5790 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_TSPARSER; + n->args = NIL; + n->defnames = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32469 "gram.c" /* yacc.c:1652 */ + break; + + case 815: +#line 5799 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_TSDICTIONARY; + n->args = NIL; + n->defnames = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32482 "gram.c" /* yacc.c:1652 */ + break; + + case 816: +#line 5808 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_TSTEMPLATE; + n->args = NIL; + n->defnames = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32495 "gram.c" /* yacc.c:1652 */ + break; + + case 817: +#line 5817 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_TSCONFIGURATION; + n->args = NIL; + n->defnames = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32508 "gram.c" /* yacc.c:1652 */ + break; + + case 818: +#line 5826 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_COLLATION; + n->args = NIL; + n->defnames = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 32521 "gram.c" /* yacc.c:1652 */ + break; + + case 819: +#line 5835 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_COLLATION; + n->args = NIL; + n->defnames = (yyvsp[-1].list); + n->definition = (yyvsp[0].list); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 32535 "gram.c" /* yacc.c:1652 */ + break; + + case 820: +#line 5845 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_COLLATION; + n->args = NIL; + n->defnames = (yyvsp[-2].list); + n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); + (yyval.node) = (Node *)n; + } +#line 32548 "gram.c" /* yacc.c:1652 */ + break; + + case 821: +#line 5854 "gram.y" /* yacc.c:1652 */ + { + DefineStmt *n = makeNode(DefineStmt); + n->kind = OBJECT_COLLATION; + n->args = NIL; + n->defnames = (yyvsp[-2].list); + n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); + n->if_not_exists = true; + (yyval.node) = (Node *)n; + } +#line 32562 "gram.c" /* yacc.c:1652 */ + break; + + case 822: +#line 5865 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 32568 "gram.c" /* yacc.c:1652 */ + break; + + case 823: +#line 5868 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 32574 "gram.c" /* yacc.c:1652 */ + break; + + case 824: +#line 5869 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 32580 "gram.c" /* yacc.c:1652 */ + break; + + case 825: +#line 5873 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); + } +#line 32588 "gram.c" /* yacc.c:1652 */ + break; + + case 826: +#line 5877 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); + } +#line 32596 "gram.c" /* yacc.c:1652 */ + break; + + case 827: +#line 5883 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[0].typnam); } +#line 32602 "gram.c" /* yacc.c:1652 */ + break; + + case 828: +#line 5884 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 32608 "gram.c" /* yacc.c:1652 */ + break; + + case 829: +#line 5885 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[0].list); } +#line 32614 "gram.c" /* yacc.c:1652 */ + break; + + case 830: +#line 5886 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[0].value); } +#line 32620 "gram.c" /* yacc.c:1652 */ + break; + + case 831: +#line 5887 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } +#line 32626 "gram.c" /* yacc.c:1652 */ + break; + + case 832: +#line 5888 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 32632 "gram.c" /* yacc.c:1652 */ + break; + + case 833: +#line 5891 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 32638 "gram.c" /* yacc.c:1652 */ + break; + + case 834: +#line 5894 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 32644 "gram.c" /* yacc.c:1652 */ + break; + + case 835: +#line 5895 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 32650 "gram.c" /* yacc.c:1652 */ + break; + + case 836: +#line 5904 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)(yyvsp[0].node), (yylsp[-2])); + } +#line 32658 "gram.c" /* yacc.c:1652 */ + break; + + case 837: +#line 5910 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 32664 "gram.c" /* yacc.c:1652 */ + break; + + case 838: +#line 5911 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 32670 "gram.c" /* yacc.c:1652 */ + break; + + case 839: +#line 5915 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 32676 "gram.c" /* yacc.c:1652 */ + break; + + case 840: +#line 5917 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 32682 "gram.c" /* yacc.c:1652 */ + break; + + case 841: +#line 5928 "gram.y" /* yacc.c:1652 */ + { + AlterEnumStmt *n = makeNode(AlterEnumStmt); + n->typeName = (yyvsp[-4].list); + n->oldVal = NULL; + n->newVal = (yyvsp[0].str); + n->newValNeighbor = NULL; + n->newValIsAfter = true; + n->skipIfNewValExists = (yyvsp[-1].boolean); + (yyval.node) = (Node *) n; + } +#line 32697 "gram.c" /* yacc.c:1652 */ + break; + + case 842: +#line 5939 "gram.y" /* yacc.c:1652 */ + { + AlterEnumStmt *n = makeNode(AlterEnumStmt); + n->typeName = (yyvsp[-6].list); + n->oldVal = NULL; + n->newVal = (yyvsp[-2].str); + n->newValNeighbor = (yyvsp[0].str); + n->newValIsAfter = false; + n->skipIfNewValExists = (yyvsp[-3].boolean); + (yyval.node) = (Node *) n; + } +#line 32712 "gram.c" /* yacc.c:1652 */ + break; + + case 843: +#line 5950 "gram.y" /* yacc.c:1652 */ + { + AlterEnumStmt *n = makeNode(AlterEnumStmt); + n->typeName = (yyvsp[-6].list); + n->oldVal = NULL; + n->newVal = (yyvsp[-2].str); + n->newValNeighbor = (yyvsp[0].str); + n->newValIsAfter = true; + n->skipIfNewValExists = (yyvsp[-3].boolean); + (yyval.node) = (Node *) n; + } +#line 32727 "gram.c" /* yacc.c:1652 */ + break; + + case 844: +#line 5961 "gram.y" /* yacc.c:1652 */ + { + AlterEnumStmt *n = makeNode(AlterEnumStmt); + n->typeName = (yyvsp[-5].list); + n->oldVal = (yyvsp[-2].str); + n->newVal = (yyvsp[0].str); + n->newValNeighbor = NULL; + n->newValIsAfter = false; + n->skipIfNewValExists = false; + (yyval.node) = (Node *) n; + } +#line 32742 "gram.c" /* yacc.c:1652 */ + break; + + case 845: +#line 5973 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 32748 "gram.c" /* yacc.c:1652 */ + break; + + case 846: +#line 5974 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 32754 "gram.c" /* yacc.c:1652 */ + break; + + case 847: +#line 5992 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassStmt *n = makeNode(CreateOpClassStmt); + n->opclassname = (yyvsp[-9].list); + n->isDefault = (yyvsp[-8].boolean); + n->datatype = (yyvsp[-5].typnam); + n->amname = (yyvsp[-3].str); + n->opfamilyname = (yyvsp[-2].list); + n->items = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 32769 "gram.c" /* yacc.c:1652 */ + break; + + case 848: +#line 6005 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 32775 "gram.c" /* yacc.c:1652 */ + break; + + case 849: +#line 6006 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 32781 "gram.c" /* yacc.c:1652 */ + break; + + case 850: +#line 6011 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + ObjectWithArgs *owa = makeNode(ObjectWithArgs); + owa->objname = (yyvsp[-2].list); + owa->objargs = NIL; + n->itemtype = OPCLASS_ITEM_OPERATOR; + n->name = owa; + n->number = (yyvsp[-3].ival); + n->order_family = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 32797 "gram.c" /* yacc.c:1652 */ + break; + + case 851: +#line 6024 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + n->itemtype = OPCLASS_ITEM_OPERATOR; + n->name = (yyvsp[-2].objwithargs); + n->number = (yyvsp[-3].ival); + n->order_family = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 32810 "gram.c" /* yacc.c:1652 */ + break; + + case 852: +#line 6033 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + n->itemtype = OPCLASS_ITEM_FUNCTION; + n->name = (yyvsp[0].objwithargs); + n->number = (yyvsp[-1].ival); + (yyval.node) = (Node *) n; + } +#line 32822 "gram.c" /* yacc.c:1652 */ + break; + + case 853: +#line 6041 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + n->itemtype = OPCLASS_ITEM_FUNCTION; + n->name = (yyvsp[0].objwithargs); + n->number = (yyvsp[-4].ival); + n->class_args = (yyvsp[-2].list); + (yyval.node) = (Node *) n; + } +#line 32835 "gram.c" /* yacc.c:1652 */ + break; + + case 854: +#line 6050 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + n->itemtype = OPCLASS_ITEM_STORAGETYPE; + n->storedtype = (yyvsp[0].typnam); + (yyval.node) = (Node *) n; + } +#line 32846 "gram.c" /* yacc.c:1652 */ + break; + + case 855: +#line 6058 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 32852 "gram.c" /* yacc.c:1652 */ + break; + + case 856: +#line 6059 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 32858 "gram.c" /* yacc.c:1652 */ + break; + + case 857: +#line 6062 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 32864 "gram.c" /* yacc.c:1652 */ + break; + + case 858: +#line 6063 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 32870 "gram.c" /* yacc.c:1652 */ + break; + + case 859: +#line 6066 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 32876 "gram.c" /* yacc.c:1652 */ + break; + + case 860: +#line 6067 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 32882 "gram.c" /* yacc.c:1652 */ + break; + + case 861: +#line 6068 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 32888 "gram.c" /* yacc.c:1652 */ + break; + + case 862: +#line 6072 "gram.y" /* yacc.c:1652 */ + { + /* + * 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[0])))); + (yyval.boolean) = true; + } +#line 32906 "gram.c" /* yacc.c:1652 */ + break; + + case 863: +#line 6085 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 32912 "gram.c" /* yacc.c:1652 */ + break; + + case 864: +#line 6091 "gram.y" /* yacc.c:1652 */ + { + CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); + n->opfamilyname = (yyvsp[-2].list); + n->amname = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 32923 "gram.c" /* yacc.c:1652 */ + break; + + case 865: +#line 6101 "gram.y" /* yacc.c:1652 */ + { + AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); + n->opfamilyname = (yyvsp[-4].list); + n->amname = (yyvsp[-2].str); + n->isDrop = false; + n->items = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 32936 "gram.c" /* yacc.c:1652 */ + break; + + case 866: +#line 6110 "gram.y" /* yacc.c:1652 */ + { + AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); + n->opfamilyname = (yyvsp[-4].list); + n->amname = (yyvsp[-2].str); + n->isDrop = true; + n->items = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 32949 "gram.c" /* yacc.c:1652 */ + break; + + case 867: +#line 6121 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 32955 "gram.c" /* yacc.c:1652 */ + break; + + case 868: +#line 6122 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 32961 "gram.c" /* yacc.c:1652 */ + break; + + case 869: +#line 6127 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + n->itemtype = OPCLASS_ITEM_OPERATOR; + n->number = (yyvsp[-3].ival); + n->class_args = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 32973 "gram.c" /* yacc.c:1652 */ + break; + + case 870: +#line 6135 "gram.y" /* yacc.c:1652 */ + { + CreateOpClassItem *n = makeNode(CreateOpClassItem); + n->itemtype = OPCLASS_ITEM_FUNCTION; + n->number = (yyvsp[-3].ival); + n->class_args = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 32985 "gram.c" /* yacc.c:1652 */ + break; + + case 871: +#line 6147 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); + n->removeType = OBJECT_OPCLASS; + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 32999 "gram.c" /* yacc.c:1652 */ + break; + + case 872: +#line 6157 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); + n->removeType = OBJECT_OPCLASS; + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33013 "gram.c" /* yacc.c:1652 */ + break; + + case 873: +#line 6170 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); + n->removeType = OBJECT_OPFAMILY; + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33027 "gram.c" /* yacc.c:1652 */ + break; + + case 874: +#line 6180 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); + n->removeType = OBJECT_OPFAMILY; + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33041 "gram.c" /* yacc.c:1652 */ + break; + + case 875: +#line 6202 "gram.y" /* yacc.c:1652 */ + { + DropOwnedStmt *n = makeNode(DropOwnedStmt); + n->roles = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 33052 "gram.c" /* yacc.c:1652 */ + break; + + case 876: +#line 6212 "gram.y" /* yacc.c:1652 */ + { + ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); + n->roles = (yyvsp[-2].list); + n->newrole = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 33063 "gram.c" /* yacc.c:1652 */ + break; + + case 877: +#line 6230 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = (yyvsp[-4].objtype); + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 33077 "gram.c" /* yacc.c:1652 */ + break; + + case 878: +#line 6240 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = (yyvsp[-2].objtype); + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 33091 "gram.c" /* yacc.c:1652 */ + break; + + case 879: +#line 6250 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = (yyvsp[-4].objtype); + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 33105 "gram.c" /* yacc.c:1652 */ + break; + + case 880: +#line 6260 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = (yyvsp[-2].objtype); + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 33119 "gram.c" /* yacc.c:1652 */ + break; + + case 881: +#line 6270 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = (yyvsp[-4].objtype); + n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33133 "gram.c" /* yacc.c:1652 */ + break; + + case 882: +#line 6280 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = (yyvsp[-6].objtype); + n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33147 "gram.c" /* yacc.c:1652 */ + break; + + case 883: +#line 6290 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_TYPE; + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33161 "gram.c" /* yacc.c:1652 */ + break; + + case 884: +#line 6300 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_TYPE; + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33175 "gram.c" /* yacc.c:1652 */ + break; + + case 885: +#line 6310 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_DOMAIN; + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33189 "gram.c" /* yacc.c:1652 */ + break; + + case 886: +#line 6320 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_DOMAIN; + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (Node *) n; + } +#line 33203 "gram.c" /* yacc.c:1652 */ + break; + + case 887: +#line 6330 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_INDEX; + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = true; + (yyval.node) = (Node *)n; + } +#line 33217 "gram.c" /* yacc.c:1652 */ + break; + + case 888: +#line 6340 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_INDEX; + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = true; + (yyval.node) = (Node *)n; + } +#line 33231 "gram.c" /* yacc.c:1652 */ + break; + + case 889: +#line 6353 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TABLE; } +#line 33237 "gram.c" /* yacc.c:1652 */ + break; + + case 890: +#line 6354 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SEQUENCE; } +#line 33243 "gram.c" /* yacc.c:1652 */ + break; + + case 891: +#line 6355 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_VIEW; } +#line 33249 "gram.c" /* yacc.c:1652 */ + break; + + case 892: +#line 6356 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_MATVIEW; } +#line 33255 "gram.c" /* yacc.c:1652 */ + break; + + case 893: +#line 6357 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_INDEX; } +#line 33261 "gram.c" /* yacc.c:1652 */ + break; + + case 894: +#line 6358 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } +#line 33267 "gram.c" /* yacc.c:1652 */ + break; + + case 895: +#line 6359 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_COLLATION; } +#line 33273 "gram.c" /* yacc.c:1652 */ + break; + + case 896: +#line 6360 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_CONVERSION; } +#line 33279 "gram.c" /* yacc.c:1652 */ + break; + + case 897: +#line 6361 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_STATISTIC_EXT; } +#line 33285 "gram.c" /* yacc.c:1652 */ + break; + + case 898: +#line 6362 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSPARSER; } +#line 33291 "gram.c" /* yacc.c:1652 */ + break; + + case 899: +#line 6363 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSDICTIONARY; } +#line 33297 "gram.c" /* yacc.c:1652 */ + break; + + case 900: +#line 6364 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSTEMPLATE; } +#line 33303 "gram.c" /* yacc.c:1652 */ + break; + + case 901: +#line 6365 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSCONFIGURATION; } +#line 33309 "gram.c" /* yacc.c:1652 */ + break; + + case 902: +#line 6370 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_ACCESS_METHOD; } +#line 33315 "gram.c" /* yacc.c:1652 */ + break; + + case 903: +#line 6371 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } +#line 33321 "gram.c" /* yacc.c:1652 */ + break; + + case 904: +#line 6372 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_EXTENSION; } +#line 33327 "gram.c" /* yacc.c:1652 */ + break; + + case 905: +#line 6373 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FDW; } +#line 33333 "gram.c" /* yacc.c:1652 */ + break; + + case 906: +#line 6374 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_PUBLICATION; } +#line 33339 "gram.c" /* yacc.c:1652 */ + break; + + case 907: +#line 6375 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SCHEMA; } +#line 33345 "gram.c" /* yacc.c:1652 */ + break; + + case 908: +#line 6376 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } +#line 33351 "gram.c" /* yacc.c:1652 */ + break; + + case 909: +#line 6381 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_POLICY; } +#line 33357 "gram.c" /* yacc.c:1652 */ + break; + + case 910: +#line 6382 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_RULE; } +#line 33363 "gram.c" /* yacc.c:1652 */ + break; + + case 911: +#line 6383 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TRIGGER; } +#line 33369 "gram.c" /* yacc.c:1652 */ + break; + + case 912: +#line 6387 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 33375 "gram.c" /* yacc.c:1652 */ + break; + + case 913: +#line 6388 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 33381 "gram.c" /* yacc.c:1652 */ + break; + + case 914: +#line 6391 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 33387 "gram.c" /* yacc.c:1652 */ + break; + + case 915: +#line 6392 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } +#line 33393 "gram.c" /* yacc.c:1652 */ + break; + + case 916: +#line 6396 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 33399 "gram.c" /* yacc.c:1652 */ + break; + + case 917: +#line 6398 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 33405 "gram.c" /* yacc.c:1652 */ + break; + + case 918: +#line 6402 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 33411 "gram.c" /* yacc.c:1652 */ + break; + + case 919: +#line 6403 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } +#line 33417 "gram.c" /* yacc.c:1652 */ + break; + + case 920: +#line 6415 "gram.y" /* yacc.c:1652 */ + { + TruncateStmt *n = makeNode(TruncateStmt); + n->relations = (yyvsp[-2].list); + n->restart_seqs = (yyvsp[-1].boolean); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 33429 "gram.c" /* yacc.c:1652 */ + break; + + case 921: +#line 6425 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 33435 "gram.c" /* yacc.c:1652 */ + break; + + case 922: +#line 6426 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 33441 "gram.c" /* yacc.c:1652 */ + break; + + case 923: +#line 6427 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 33447 "gram.c" /* yacc.c:1652 */ + break; + + case 924: +#line 6462 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = (yyvsp[-3].objtype); + n->object = (Node *) (yyvsp[-2].list); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33459 "gram.c" /* yacc.c:1652 */ + break; + + case 925: +#line 6470 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = (yyvsp[-3].objtype); + n->object = (Node *) makeString((yyvsp[-2].str)); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33471 "gram.c" /* yacc.c:1652 */ + break; + + case 926: +#line 6478 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_TYPE; + n->object = (Node *) (yyvsp[-2].typnam); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33483 "gram.c" /* yacc.c:1652 */ + break; + + case 927: +#line 6486 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_DOMAIN; + n->object = (Node *) (yyvsp[-2].typnam); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33495 "gram.c" /* yacc.c:1652 */ + break; + + case 928: +#line 6494 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_AGGREGATE; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33507 "gram.c" /* yacc.c:1652 */ + break; + + case 929: +#line 6502 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33519 "gram.c" /* yacc.c:1652 */ + break; + + case 930: +#line 6510 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_OPERATOR; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33531 "gram.c" /* yacc.c:1652 */ + break; + + case 931: +#line 6518 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_TABCONSTRAINT; + n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33543 "gram.c" /* yacc.c:1652 */ + break; + + case 932: +#line 6526 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_DOMCONSTRAINT; + /* + * should use Typename not any_name in the production, but + * there's a shift/reduce conflict if we do that, so fix it + * up here. + */ + n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[-2].list)), makeString((yyvsp[-5].str))); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33560 "gram.c" /* yacc.c:1652 */ + break; + + case 933: +#line 6539 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_POLICY; + n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33572 "gram.c" /* yacc.c:1652 */ + break; + + case 934: +#line 6547 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33584 "gram.c" /* yacc.c:1652 */ + break; + + case 935: +#line 6555 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33596 "gram.c" /* yacc.c:1652 */ + break; + + case 936: +#line 6563 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_RULE; + n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33608 "gram.c" /* yacc.c:1652 */ + break; + + case 937: +#line 6571 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_TRANSFORM; + n->object = (Node *) list_make2((yyvsp[-4].typnam), makeString((yyvsp[-2].str))); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33620 "gram.c" /* yacc.c:1652 */ + break; + + case 938: +#line 6579 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_TRIGGER; + n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33632 "gram.c" /* yacc.c:1652 */ + break; + + case 939: +#line 6587 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_OPCLASS; + n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33644 "gram.c" /* yacc.c:1652 */ + break; + + case 940: +#line 6595 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_OPFAMILY; + n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33656 "gram.c" /* yacc.c:1652 */ + break; + + case 941: +#line 6603 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_LARGEOBJECT; + n->object = (Node *) (yyvsp[-2].value); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33668 "gram.c" /* yacc.c:1652 */ + break; + + case 942: +#line 6611 "gram.y" /* yacc.c:1652 */ + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = OBJECT_CAST; + n->object = (Node *) list_make2((yyvsp[-5].typnam), (yyvsp[-3].typnam)); + n->comment = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33680 "gram.c" /* yacc.c:1652 */ + break; + + case 943: +#line 6622 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_COLUMN; } +#line 33686 "gram.c" /* yacc.c:1652 */ + break; + + case 944: +#line 6623 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_INDEX; } +#line 33692 "gram.c" /* yacc.c:1652 */ + break; + + case 945: +#line 6624 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SEQUENCE; } +#line 33698 "gram.c" /* yacc.c:1652 */ + break; + + case 946: +#line 6625 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_STATISTIC_EXT; } +#line 33704 "gram.c" /* yacc.c:1652 */ + break; + + case 947: +#line 6626 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TABLE; } +#line 33710 "gram.c" /* yacc.c:1652 */ + break; + + case 948: +#line 6627 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_VIEW; } +#line 33716 "gram.c" /* yacc.c:1652 */ + break; + + case 949: +#line 6628 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_MATVIEW; } +#line 33722 "gram.c" /* yacc.c:1652 */ + break; + + case 950: +#line 6629 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_COLLATION; } +#line 33728 "gram.c" /* yacc.c:1652 */ + break; + + case 951: +#line 6630 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_CONVERSION; } +#line 33734 "gram.c" /* yacc.c:1652 */ + break; + + case 952: +#line 6631 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } +#line 33740 "gram.c" /* yacc.c:1652 */ + break; + + case 953: +#line 6632 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSCONFIGURATION; } +#line 33746 "gram.c" /* yacc.c:1652 */ + break; + + case 954: +#line 6633 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSDICTIONARY; } +#line 33752 "gram.c" /* yacc.c:1652 */ + break; + + case 955: +#line 6634 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSPARSER; } +#line 33758 "gram.c" /* yacc.c:1652 */ + break; + + case 956: +#line 6635 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TSTEMPLATE; } +#line 33764 "gram.c" /* yacc.c:1652 */ + break; + + case 957: +#line 6640 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_ACCESS_METHOD; } +#line 33770 "gram.c" /* yacc.c:1652 */ + break; + + case 958: +#line 6641 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_DATABASE; } +#line 33776 "gram.c" /* yacc.c:1652 */ + break; + + case 959: +#line 6642 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } +#line 33782 "gram.c" /* yacc.c:1652 */ + break; + + case 960: +#line 6643 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_EXTENSION; } +#line 33788 "gram.c" /* yacc.c:1652 */ + break; + + case 961: +#line 6644 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FDW; } +#line 33794 "gram.c" /* yacc.c:1652 */ + break; + + case 962: +#line 6645 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_LANGUAGE; } +#line 33800 "gram.c" /* yacc.c:1652 */ + break; + + case 963: +#line 6646 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_PUBLICATION; } +#line 33806 "gram.c" /* yacc.c:1652 */ + break; + + case 964: +#line 6647 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_ROLE; } +#line 33812 "gram.c" /* yacc.c:1652 */ + break; + + case 965: +#line 6648 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SCHEMA; } +#line 33818 "gram.c" /* yacc.c:1652 */ + break; + + case 966: +#line 6649 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } +#line 33824 "gram.c" /* yacc.c:1652 */ + break; + + case 967: +#line 6650 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SUBSCRIPTION; } +#line 33830 "gram.c" /* yacc.c:1652 */ + break; + + case 968: +#line 6651 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TABLESPACE; } +#line 33836 "gram.c" /* yacc.c:1652 */ + break; + + case 969: +#line 6655 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 33842 "gram.c" /* yacc.c:1652 */ + break; + + case 970: +#line 6656 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 33848 "gram.c" /* yacc.c:1652 */ + break; + + case 971: +#line 6672 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = (yyvsp[-3].objtype); + n->object = (Node *) (yyvsp[-2].list); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33861 "gram.c" /* yacc.c:1652 */ + break; + + case 972: +#line 6682 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = (yyvsp[-3].objtype); + n->object = (Node *) makeString((yyvsp[-2].str)); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33874 "gram.c" /* yacc.c:1652 */ + break; + + case 973: +#line 6692 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = OBJECT_TYPE; + n->object = (Node *) (yyvsp[-2].typnam); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33887 "gram.c" /* yacc.c:1652 */ + break; + + case 974: +#line 6702 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = OBJECT_DOMAIN; + n->object = (Node *) (yyvsp[-2].typnam); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33900 "gram.c" /* yacc.c:1652 */ + break; + + case 975: +#line 6712 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = OBJECT_AGGREGATE; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33913 "gram.c" /* yacc.c:1652 */ + break; + + case 976: +#line 6722 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33926 "gram.c" /* yacc.c:1652 */ + break; + + case 977: +#line 6732 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-6].str); + n->objtype = OBJECT_LARGEOBJECT; + n->object = (Node *) (yyvsp[-2].value); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33939 "gram.c" /* yacc.c:1652 */ + break; + + case 978: +#line 6742 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33952 "gram.c" /* yacc.c:1652 */ + break; + + case 979: +#line 6752 "gram.y" /* yacc.c:1652 */ + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = (yyvsp[-5].str); + n->objtype = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[-2].objwithargs); + n->label = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 33965 "gram.c" /* yacc.c:1652 */ + break; + + case 980: +#line 6762 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 33971 "gram.c" /* yacc.c:1652 */ + break; + + case 981: +#line 6763 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 33977 "gram.c" /* yacc.c:1652 */ + break; + + case 982: +#line 6768 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_COLUMN; } +#line 33983 "gram.c" /* yacc.c:1652 */ + break; + + case 983: +#line 6769 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } +#line 33989 "gram.c" /* yacc.c:1652 */ + break; + + case 984: +#line 6770 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SEQUENCE; } +#line 33995 "gram.c" /* yacc.c:1652 */ + break; + + case 985: +#line 6771 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TABLE; } +#line 34001 "gram.c" /* yacc.c:1652 */ + break; + + case 986: +#line 6772 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_VIEW; } +#line 34007 "gram.c" /* yacc.c:1652 */ + break; + + case 987: +#line 6773 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_MATVIEW; } +#line 34013 "gram.c" /* yacc.c:1652 */ + break; + + case 988: +#line 6778 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_DATABASE; } +#line 34019 "gram.c" /* yacc.c:1652 */ + break; + + case 989: +#line 6779 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } +#line 34025 "gram.c" /* yacc.c:1652 */ + break; + + case 990: +#line 6780 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_LANGUAGE; } +#line 34031 "gram.c" /* yacc.c:1652 */ + break; + + case 991: +#line 6781 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_PUBLICATION; } +#line 34037 "gram.c" /* yacc.c:1652 */ + break; + + case 992: +#line 6782 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_ROLE; } +#line 34043 "gram.c" /* yacc.c:1652 */ + break; + + case 993: +#line 6783 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SCHEMA; } +#line 34049 "gram.c" /* yacc.c:1652 */ + break; + + case 994: +#line 6784 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_SUBSCRIPTION; } +#line 34055 "gram.c" /* yacc.c:1652 */ + break; + + case 995: +#line 6785 "gram.y" /* yacc.c:1652 */ + { (yyval.objtype) = OBJECT_TABLESPACE; } +#line 34061 "gram.c" /* yacc.c:1652 */ + break; + + case 996: +#line 6788 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 34067 "gram.c" /* yacc.c:1652 */ + break; + + case 997: +#line 6789 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 34073 "gram.c" /* yacc.c:1652 */ + break; + + case 998: +#line 6800 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = (FetchStmt *) (yyvsp[0].node); + n->ismove = false; + (yyval.node) = (Node *)n; + } +#line 34083 "gram.c" /* yacc.c:1652 */ + break; + + case 999: +#line 6806 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = (FetchStmt *) (yyvsp[0].node); + n->ismove = true; + (yyval.node) = (Node *)n; + } +#line 34093 "gram.c" /* yacc.c:1652 */ + break; + + case 1000: +#line 6814 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34105 "gram.c" /* yacc.c:1652 */ + break; + + case 1001: +#line 6822 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34117 "gram.c" /* yacc.c:1652 */ + break; + + case 1002: +#line 6830 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34129 "gram.c" /* yacc.c:1652 */ + break; + + case 1003: +#line 6838 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_BACKWARD; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34141 "gram.c" /* yacc.c:1652 */ + break; + + case 1004: +#line 6846 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_ABSOLUTE; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34153 "gram.c" /* yacc.c:1652 */ + break; + + case 1005: +#line 6854 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_ABSOLUTE; + n->howMany = -1; + (yyval.node) = (Node *)n; + } +#line 34165 "gram.c" /* yacc.c:1652 */ + break; + + case 1006: +#line 6862 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_ABSOLUTE; + n->howMany = (yyvsp[-2].ival); + (yyval.node) = (Node *)n; + } +#line 34177 "gram.c" /* yacc.c:1652 */ + break; + + case 1007: +#line 6870 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_RELATIVE; + n->howMany = (yyvsp[-2].ival); + (yyval.node) = (Node *)n; + } +#line 34189 "gram.c" /* yacc.c:1652 */ + break; + + case 1008: +#line 6878 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = (yyvsp[-2].ival); + (yyval.node) = (Node *)n; + } +#line 34201 "gram.c" /* yacc.c:1652 */ + break; + + case 1009: +#line 6886 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = FETCH_ALL; + (yyval.node) = (Node *)n; + } +#line 34213 "gram.c" /* yacc.c:1652 */ + break; + + case 1010: +#line 6894 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34225 "gram.c" /* yacc.c:1652 */ + break; + + case 1011: +#line 6902 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = (yyvsp[-2].ival); + (yyval.node) = (Node *)n; + } +#line 34237 "gram.c" /* yacc.c:1652 */ + break; + + case 1012: +#line 6910 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_FORWARD; + n->howMany = FETCH_ALL; + (yyval.node) = (Node *)n; + } +#line 34249 "gram.c" /* yacc.c:1652 */ + break; + + case 1013: +#line 6918 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_BACKWARD; + n->howMany = 1; + (yyval.node) = (Node *)n; + } +#line 34261 "gram.c" /* yacc.c:1652 */ + break; + + case 1014: +#line 6926 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_BACKWARD; + n->howMany = (yyvsp[-2].ival); + (yyval.node) = (Node *)n; + } +#line 34273 "gram.c" /* yacc.c:1652 */ + break; + + case 1015: +#line 6934 "gram.y" /* yacc.c:1652 */ + { + FetchStmt *n = makeNode(FetchStmt); + n->portalname = (yyvsp[0].str); + n->direction = FETCH_BACKWARD; + n->howMany = FETCH_ALL; + (yyval.node) = (Node *)n; + } +#line 34285 "gram.c" /* yacc.c:1652 */ + break; + + case 1016: +#line 6943 "gram.y" /* yacc.c:1652 */ + {} +#line 34291 "gram.c" /* yacc.c:1652 */ + break; + + case 1017: +#line 6944 "gram.y" /* yacc.c:1652 */ + {} +#line 34297 "gram.c" /* yacc.c:1652 */ + break; + + case 1018: +#line 6947 "gram.y" /* yacc.c:1652 */ + {} +#line 34303 "gram.c" /* yacc.c:1652 */ + break; + + case 1019: +#line 6948 "gram.y" /* yacc.c:1652 */ + {} +#line 34309 "gram.c" /* yacc.c:1652 */ + break; + + case 1020: +#line 6960 "gram.y" /* yacc.c:1652 */ + { + GrantStmt *n = makeNode(GrantStmt); + n->is_grant = true; + n->privileges = (yyvsp[-5].list); + n->targtype = ((yyvsp[-3].privtarget))->targtype; + n->objtype = ((yyvsp[-3].privtarget))->objtype; + n->objects = ((yyvsp[-3].privtarget))->objs; + n->grantees = (yyvsp[-1].list); + n->grant_option = (yyvsp[0].boolean); + (yyval.node) = (Node*)n; + } +#line 34325 "gram.c" /* yacc.c:1652 */ + break; + + case 1021: +#line 6976 "gram.y" /* yacc.c:1652 */ + { + GrantStmt *n = makeNode(GrantStmt); + n->is_grant = false; + n->grant_option = false; + n->privileges = (yyvsp[-5].list); + n->targtype = ((yyvsp[-3].privtarget))->targtype; + n->objtype = ((yyvsp[-3].privtarget))->objtype; + n->objects = ((yyvsp[-3].privtarget))->objs; + n->grantees = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 34342 "gram.c" /* yacc.c:1652 */ + break; + + case 1022: +#line 6990 "gram.y" /* yacc.c:1652 */ + { + GrantStmt *n = makeNode(GrantStmt); + n->is_grant = false; + n->grant_option = true; + n->privileges = (yyvsp[-5].list); + n->targtype = ((yyvsp[-3].privtarget))->targtype; + n->objtype = ((yyvsp[-3].privtarget))->objtype; + n->objects = ((yyvsp[-3].privtarget))->objs; + n->grantees = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 34359 "gram.c" /* yacc.c:1652 */ + break; + + case 1023: +#line 7015 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 34365 "gram.c" /* yacc.c:1652 */ + break; + + case 1024: +#line 7017 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 34371 "gram.c" /* yacc.c:1652 */ + break; + + case 1025: +#line 7019 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 34377 "gram.c" /* yacc.c:1652 */ + break; + + case 1026: +#line 7021 "gram.y" /* yacc.c:1652 */ + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = NULL; + n->cols = (yyvsp[-1].list); + (yyval.list) = list_make1(n); + } +#line 34388 "gram.c" /* yacc.c:1652 */ + break; + + case 1027: +#line 7028 "gram.y" /* yacc.c:1652 */ + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = NULL; + n->cols = (yyvsp[-1].list); + (yyval.list) = list_make1(n); + } +#line 34399 "gram.c" /* yacc.c:1652 */ + break; + + case 1028: +#line 7036 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].accesspriv)); } +#line 34405 "gram.c" /* yacc.c:1652 */ + break; + + case 1029: +#line 7037 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); } +#line 34411 "gram.c" /* yacc.c:1652 */ + break; + + case 1030: +#line 7041 "gram.y" /* yacc.c:1652 */ + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = pstrdup((yyvsp[-1].keyword)); + n->cols = (yyvsp[0].list); + (yyval.accesspriv) = n; + } +#line 34422 "gram.c" /* yacc.c:1652 */ + break; + + case 1031: +#line 7048 "gram.y" /* yacc.c:1652 */ + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = pstrdup((yyvsp[-1].keyword)); + n->cols = (yyvsp[0].list); + (yyval.accesspriv) = n; + } +#line 34433 "gram.c" /* yacc.c:1652 */ + break; + + case 1032: +#line 7055 "gram.y" /* yacc.c:1652 */ + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = pstrdup((yyvsp[-1].keyword)); + n->cols = (yyvsp[0].list); + (yyval.accesspriv) = n; + } +#line 34444 "gram.c" /* yacc.c:1652 */ + break; + + case 1033: +#line 7062 "gram.y" /* yacc.c:1652 */ + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = (yyvsp[-1].str); + n->cols = (yyvsp[0].list); + (yyval.accesspriv) = n; + } +#line 34455 "gram.c" /* yacc.c:1652 */ + break; + + case 1034: +#line 7076 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_TABLE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34467 "gram.c" /* yacc.c:1652 */ + break; + + case 1035: +#line 7084 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_TABLE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34479 "gram.c" /* yacc.c:1652 */ + break; + + case 1036: +#line 7092 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_SEQUENCE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34491 "gram.c" /* yacc.c:1652 */ + break; + + case 1037: +#line 7100 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_FDW; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34503 "gram.c" /* yacc.c:1652 */ + break; + + case 1038: +#line 7108 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_FOREIGN_SERVER; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34515 "gram.c" /* yacc.c:1652 */ + break; + + case 1039: +#line 7116 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_FUNCTION; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34527 "gram.c" /* yacc.c:1652 */ + break; + + case 1040: +#line 7124 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_PROCEDURE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34539 "gram.c" /* yacc.c:1652 */ + break; + + case 1041: +#line 7132 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_ROUTINE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34551 "gram.c" /* yacc.c:1652 */ + break; + + case 1042: +#line 7140 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_DATABASE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34563 "gram.c" /* yacc.c:1652 */ + break; + + case 1043: +#line 7148 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_DOMAIN; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34575 "gram.c" /* yacc.c:1652 */ + break; + + case 1044: +#line 7156 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_LANGUAGE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34587 "gram.c" /* yacc.c:1652 */ + break; + + case 1045: +#line 7164 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_LARGEOBJECT; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34599 "gram.c" /* yacc.c:1652 */ + break; + + case 1046: +#line 7172 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_SCHEMA; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34611 "gram.c" /* yacc.c:1652 */ + break; + + case 1047: +#line 7180 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_TABLESPACE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34623 "gram.c" /* yacc.c:1652 */ + break; + + case 1048: +#line 7188 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = OBJECT_TYPE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34635 "gram.c" /* yacc.c:1652 */ + break; + + case 1049: +#line 7196 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_ALL_IN_SCHEMA; + n->objtype = OBJECT_TABLE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34647 "gram.c" /* yacc.c:1652 */ + break; + + case 1050: +#line 7204 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_ALL_IN_SCHEMA; + n->objtype = OBJECT_SEQUENCE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34659 "gram.c" /* yacc.c:1652 */ + break; + + case 1051: +#line 7212 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_ALL_IN_SCHEMA; + n->objtype = OBJECT_FUNCTION; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34671 "gram.c" /* yacc.c:1652 */ + break; + + case 1052: +#line 7220 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_ALL_IN_SCHEMA; + n->objtype = OBJECT_PROCEDURE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34683 "gram.c" /* yacc.c:1652 */ + break; + + case 1053: +#line 7228 "gram.y" /* yacc.c:1652 */ + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_ALL_IN_SCHEMA; + n->objtype = OBJECT_ROUTINE; + n->objs = (yyvsp[0].list); + (yyval.privtarget) = n; + } +#line 34695 "gram.c" /* yacc.c:1652 */ + break; + + case 1054: +#line 7239 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].rolespec)); } +#line 34701 "gram.c" /* yacc.c:1652 */ + break; + + case 1055: +#line 7240 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } +#line 34707 "gram.c" /* yacc.c:1652 */ + break; + + case 1056: +#line 7244 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 34713 "gram.c" /* yacc.c:1652 */ + break; + + case 1057: +#line 7245 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 34719 "gram.c" /* yacc.c:1652 */ + break; + + case 1058: +#line 7250 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 34725 "gram.c" /* yacc.c:1652 */ + break; + + case 1059: +#line 7251 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 34731 "gram.c" /* yacc.c:1652 */ + break; + + case 1060: +#line 7262 "gram.y" /* yacc.c:1652 */ + { + GrantRoleStmt *n = makeNode(GrantRoleStmt); + n->is_grant = true; + n->granted_roles = (yyvsp[-4].list); + n->grantee_roles = (yyvsp[-2].list); + n->admin_opt = (yyvsp[-1].boolean); + n->grantor = (yyvsp[0].rolespec); + (yyval.node) = (Node*)n; + } +#line 34745 "gram.c" /* yacc.c:1652 */ + break; + + case 1061: +#line 7275 "gram.y" /* yacc.c:1652 */ + { + GrantRoleStmt *n = makeNode(GrantRoleStmt); + n->is_grant = false; + n->admin_opt = false; + n->granted_roles = (yyvsp[-4].list); + n->grantee_roles = (yyvsp[-2].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node*)n; + } +#line 34759 "gram.c" /* yacc.c:1652 */ + break; + + case 1062: +#line 7285 "gram.y" /* yacc.c:1652 */ + { + GrantRoleStmt *n = makeNode(GrantRoleStmt); + n->is_grant = false; + n->admin_opt = true; + n->granted_roles = (yyvsp[-4].list); + n->grantee_roles = (yyvsp[-2].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node*)n; + } +#line 34773 "gram.c" /* yacc.c:1652 */ + break; + + case 1063: +#line 7296 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 34779 "gram.c" /* yacc.c:1652 */ + break; + + case 1064: +#line 7297 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 34785 "gram.c" /* yacc.c:1652 */ + break; + + case 1065: +#line 7300 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 34791 "gram.c" /* yacc.c:1652 */ + break; + + case 1066: +#line 7301 "gram.y" /* yacc.c:1652 */ + { (yyval.rolespec) = NULL; } +#line 34797 "gram.c" /* yacc.c:1652 */ + break; + + case 1067: +#line 7312 "gram.y" /* yacc.c:1652 */ + { + AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); + n->options = (yyvsp[-1].list); + n->action = (GrantStmt *) (yyvsp[0].node); + (yyval.node) = (Node*)n; + } +#line 34808 "gram.c" /* yacc.c:1652 */ + break; + + case 1068: +#line 7321 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 34814 "gram.c" /* yacc.c:1652 */ + break; + + case 1069: +#line 7322 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 34820 "gram.c" /* yacc.c:1652 */ + break; + + case 1070: +#line 7327 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 34828 "gram.c" /* yacc.c:1652 */ + break; + + case 1071: +#line 7331 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 34836 "gram.c" /* yacc.c:1652 */ + break; + + case 1072: +#line 7335 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); + } +#line 34844 "gram.c" /* yacc.c:1652 */ + break; + + case 1073: +#line 7347 "gram.y" /* yacc.c:1652 */ + { + GrantStmt *n = makeNode(GrantStmt); + n->is_grant = true; + n->privileges = (yyvsp[-5].list); + n->targtype = ACL_TARGET_DEFAULTS; + n->objtype = (yyvsp[-3].ival); + n->objects = NIL; + n->grantees = (yyvsp[-1].list); + n->grant_option = (yyvsp[0].boolean); + (yyval.node) = (Node*)n; + } +#line 34860 "gram.c" /* yacc.c:1652 */ + break; + + case 1074: +#line 7360 "gram.y" /* yacc.c:1652 */ + { + GrantStmt *n = makeNode(GrantStmt); + n->is_grant = false; + n->grant_option = false; + n->privileges = (yyvsp[-5].list); + n->targtype = ACL_TARGET_DEFAULTS; + n->objtype = (yyvsp[-3].ival); + n->objects = NIL; + n->grantees = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 34877 "gram.c" /* yacc.c:1652 */ + break; + + case 1075: +#line 7374 "gram.y" /* yacc.c:1652 */ + { + GrantStmt *n = makeNode(GrantStmt); + n->is_grant = false; + n->grant_option = true; + n->privileges = (yyvsp[-5].list); + n->targtype = ACL_TARGET_DEFAULTS; + n->objtype = (yyvsp[-3].ival); + n->objects = NIL; + n->grantees = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *)n; + } +#line 34894 "gram.c" /* yacc.c:1652 */ + break; + + case 1076: +#line 7389 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OBJECT_TABLE; } +#line 34900 "gram.c" /* yacc.c:1652 */ + break; + + case 1077: +#line 7390 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OBJECT_FUNCTION; } +#line 34906 "gram.c" /* yacc.c:1652 */ + break; + + case 1078: +#line 7391 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OBJECT_FUNCTION; } +#line 34912 "gram.c" /* yacc.c:1652 */ + break; + + case 1079: +#line 7392 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OBJECT_SEQUENCE; } +#line 34918 "gram.c" /* yacc.c:1652 */ + break; + + case 1080: +#line 7393 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OBJECT_TYPE; } +#line 34924 "gram.c" /* yacc.c:1652 */ + break; + + case 1081: +#line 7394 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OBJECT_SCHEMA; } +#line 34930 "gram.c" /* yacc.c:1652 */ + break; + + case 1082: +#line 7409 "gram.y" /* yacc.c:1652 */ + { + IndexStmt *n = makeNode(IndexStmt); + n->unique = (yyvsp[-13].boolean); + n->concurrent = (yyvsp[-11].boolean); + n->idxname = (yyvsp[-10].str); + n->relation = (yyvsp[-8].range); + n->accessMethod = (yyvsp[-7].str); + n->indexParams = (yyvsp[-5].list); + n->indexIncludingParams = (yyvsp[-3].list); + n->options = (yyvsp[-2].list); + n->tableSpace = (yyvsp[-1].str); + n->whereClause = (yyvsp[0].node); + n->excludeOpNames = NIL; + n->idxcomment = NULL; + n->indexOid = InvalidOid; + n->oldNode = InvalidOid; + n->oldCreateSubid = InvalidSubTransactionId; + n->oldFirstRelfilenodeSubid = InvalidSubTransactionId; + n->primary = false; + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->transformed = false; + n->if_not_exists = false; + n->reset_default_tblspc = false; + (yyval.node) = (Node *)n; + } +#line 34962 "gram.c" /* yacc.c:1652 */ + break; + + case 1083: +#line 7439 "gram.y" /* yacc.c:1652 */ + { + IndexStmt *n = makeNode(IndexStmt); + n->unique = (yyvsp[-16].boolean); + n->concurrent = (yyvsp[-14].boolean); + n->idxname = (yyvsp[-10].str); + n->relation = (yyvsp[-8].range); + n->accessMethod = (yyvsp[-7].str); + n->indexParams = (yyvsp[-5].list); + n->indexIncludingParams = (yyvsp[-3].list); + n->options = (yyvsp[-2].list); + n->tableSpace = (yyvsp[-1].str); + n->whereClause = (yyvsp[0].node); + n->excludeOpNames = NIL; + n->idxcomment = NULL; + n->indexOid = InvalidOid; + n->oldNode = InvalidOid; + n->oldCreateSubid = InvalidSubTransactionId; + n->oldFirstRelfilenodeSubid = InvalidSubTransactionId; + n->primary = false; + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->transformed = false; + n->if_not_exists = true; + n->reset_default_tblspc = false; + (yyval.node) = (Node *)n; + } +#line 34994 "gram.c" /* yacc.c:1652 */ + break; + + case 1084: +#line 7469 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 35000 "gram.c" /* yacc.c:1652 */ + break; + + case 1085: +#line 7470 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 35006 "gram.c" /* yacc.c:1652 */ + break; + + case 1086: +#line 7474 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 35012 "gram.c" /* yacc.c:1652 */ + break; + + case 1087: +#line 7475 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 35018 "gram.c" /* yacc.c:1652 */ + break; + + case 1088: +#line 7479 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 35024 "gram.c" /* yacc.c:1652 */ + break; + + case 1089: +#line 7480 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 35030 "gram.c" /* yacc.c:1652 */ + break; + + case 1090: +#line 7484 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 35036 "gram.c" /* yacc.c:1652 */ + break; + + case 1091: +#line 7485 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = DEFAULT_INDEX_TYPE; } +#line 35042 "gram.c" /* yacc.c:1652 */ + break; + + case 1092: +#line 7488 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].ielem)); } +#line 35048 "gram.c" /* yacc.c:1652 */ + break; + + case 1093: +#line 7489 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } +#line 35054 "gram.c" /* yacc.c:1652 */ + break; + + case 1094: +#line 7495 "gram.y" /* yacc.c:1652 */ + { + (yyval.ielem) = makeNode(IndexElem); + (yyval.ielem)->name = NULL; + (yyval.ielem)->expr = NULL; + (yyval.ielem)->indexcolname = NULL; + (yyval.ielem)->collation = (yyvsp[-3].list); + (yyval.ielem)->opclass = (yyvsp[-2].list); + (yyval.ielem)->opclassopts = NIL; + (yyval.ielem)->ordering = (yyvsp[-1].ival); + (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); + } +#line 35070 "gram.c" /* yacc.c:1652 */ + break; + + case 1095: +#line 7507 "gram.y" /* yacc.c:1652 */ + { + (yyval.ielem) = makeNode(IndexElem); + (yyval.ielem)->name = NULL; + (yyval.ielem)->expr = NULL; + (yyval.ielem)->indexcolname = NULL; + (yyval.ielem)->collation = (yyvsp[-4].list); + (yyval.ielem)->opclass = (yyvsp[-3].list); + (yyval.ielem)->opclassopts = (yyvsp[-2].list); + (yyval.ielem)->ordering = (yyvsp[-1].ival); + (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); + } +#line 35086 "gram.c" /* yacc.c:1652 */ + break; + + case 1096: +#line 7526 "gram.y" /* yacc.c:1652 */ + { + (yyval.ielem) = (yyvsp[0].ielem); + (yyval.ielem)->name = (yyvsp[-1].str); + } +#line 35095 "gram.c" /* yacc.c:1652 */ + break; + + case 1097: +#line 7531 "gram.y" /* yacc.c:1652 */ + { + (yyval.ielem) = (yyvsp[0].ielem); + (yyval.ielem)->expr = (yyvsp[-1].node); + } +#line 35104 "gram.c" /* yacc.c:1652 */ + break; + + case 1098: +#line 7536 "gram.y" /* yacc.c:1652 */ + { + (yyval.ielem) = (yyvsp[0].ielem); + (yyval.ielem)->expr = (yyvsp[-2].node); + } +#line 35113 "gram.c" /* yacc.c:1652 */ + break; + + case 1099: +#line 7542 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 35119 "gram.c" /* yacc.c:1652 */ + break; + + case 1100: +#line 7543 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 35125 "gram.c" /* yacc.c:1652 */ + break; + + case 1101: +#line 7546 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].ielem)); } +#line 35131 "gram.c" /* yacc.c:1652 */ + break; + + case 1102: +#line 7547 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } +#line 35137 "gram.c" /* yacc.c:1652 */ + break; + + case 1103: +#line 7550 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 35143 "gram.c" /* yacc.c:1652 */ + break; + + case 1104: +#line 7551 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 35149 "gram.c" /* yacc.c:1652 */ + break; + + case 1105: +#line 7554 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 35155 "gram.c" /* yacc.c:1652 */ + break; + + case 1106: +#line 7555 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 35161 "gram.c" /* yacc.c:1652 */ + break; + + case 1107: +#line 7558 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = SORTBY_ASC; } +#line 35167 "gram.c" /* yacc.c:1652 */ + break; + + case 1108: +#line 7559 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = SORTBY_DESC; } +#line 35173 "gram.c" /* yacc.c:1652 */ + break; + + case 1109: +#line 7560 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = SORTBY_DEFAULT; } +#line 35179 "gram.c" /* yacc.c:1652 */ + break; + + case 1110: +#line 7563 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = SORTBY_NULLS_FIRST; } +#line 35185 "gram.c" /* yacc.c:1652 */ + break; + + case 1111: +#line 7564 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = SORTBY_NULLS_LAST; } +#line 35191 "gram.c" /* yacc.c:1652 */ + break; + + case 1112: +#line 7565 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = SORTBY_NULLS_DEFAULT; } +#line 35197 "gram.c" /* yacc.c:1652 */ + break; + + case 1113: +#line 7583 "gram.y" /* yacc.c:1652 */ + { + CreateFunctionStmt *n = makeNode(CreateFunctionStmt); + n->is_procedure = false; + n->replace = (yyvsp[-6].boolean); + n->funcname = (yyvsp[-4].list); + n->parameters = (yyvsp[-3].list); + n->returnType = (yyvsp[-1].typnam); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 35212 "gram.c" /* yacc.c:1652 */ + break; + + case 1114: +#line 7595 "gram.y" /* yacc.c:1652 */ + { + CreateFunctionStmt *n = makeNode(CreateFunctionStmt); + n->is_procedure = false; + n->replace = (yyvsp[-9].boolean); + n->funcname = (yyvsp[-7].list); + n->parameters = mergeTableFuncParameters((yyvsp[-6].list), (yyvsp[-2].list)); + n->returnType = TableFuncTypeName((yyvsp[-2].list)); + n->returnType->location = (yylsp[-4]); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 35228 "gram.c" /* yacc.c:1652 */ + break; + + case 1115: +#line 7608 "gram.y" /* yacc.c:1652 */ + { + CreateFunctionStmt *n = makeNode(CreateFunctionStmt); + n->is_procedure = false; + n->replace = (yyvsp[-4].boolean); + n->funcname = (yyvsp[-2].list); + n->parameters = (yyvsp[-1].list); + n->returnType = NULL; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 35243 "gram.c" /* yacc.c:1652 */ + break; + + case 1116: +#line 7620 "gram.y" /* yacc.c:1652 */ + { + CreateFunctionStmt *n = makeNode(CreateFunctionStmt); + n->is_procedure = true; + n->replace = (yyvsp[-4].boolean); + n->funcname = (yyvsp[-2].list); + n->parameters = (yyvsp[-1].list); + n->returnType = NULL; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 35258 "gram.c" /* yacc.c:1652 */ + break; + + case 1117: +#line 7633 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 35264 "gram.c" /* yacc.c:1652 */ + break; + + case 1118: +#line 7634 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 35270 "gram.c" /* yacc.c:1652 */ + break; + + case 1119: +#line 7637 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 35276 "gram.c" /* yacc.c:1652 */ + break; + + case 1120: +#line 7638 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 35282 "gram.c" /* yacc.c:1652 */ + break; + + case 1121: +#line 7642 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } +#line 35288 "gram.c" /* yacc.c:1652 */ + break; + + case 1122: +#line 7643 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } +#line 35294 "gram.c" /* yacc.c:1652 */ + break; + + case 1123: +#line 7647 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } +#line 35300 "gram.c" /* yacc.c:1652 */ + break; + + case 1124: +#line 7649 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } +#line 35306 "gram.c" /* yacc.c:1652 */ + break; + + case 1125: +#line 7654 "gram.y" /* yacc.c:1652 */ + { + ObjectWithArgs *n = makeNode(ObjectWithArgs); + n->objname = (yyvsp[-1].list); + n->objargs = extractArgTypes((yyvsp[0].list)); + (yyval.objwithargs) = n; + } +#line 35317 "gram.c" /* yacc.c:1652 */ + break; + + case 1126: +#line 7666 "gram.y" /* yacc.c:1652 */ + { + ObjectWithArgs *n = makeNode(ObjectWithArgs); + n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword)))); + n->args_unspecified = true; + (yyval.objwithargs) = n; + } +#line 35328 "gram.c" /* yacc.c:1652 */ + break; + + case 1127: +#line 7673 "gram.y" /* yacc.c:1652 */ + { + ObjectWithArgs *n = makeNode(ObjectWithArgs); + n->objname = list_make1(makeString((yyvsp[0].str))); + n->args_unspecified = true; + (yyval.objwithargs) = n; + } +#line 35339 "gram.c" /* yacc.c:1652 */ + break; + + case 1128: +#line 7680 "gram.y" /* yacc.c:1652 */ + { + ObjectWithArgs *n = makeNode(ObjectWithArgs); + n->objname = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), + yyscanner); + n->args_unspecified = true; + (yyval.objwithargs) = n; + } +#line 35351 "gram.c" /* yacc.c:1652 */ + break; + + case 1129: +#line 7694 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 35357 "gram.c" /* yacc.c:1652 */ + break; + + case 1130: +#line 7695 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 35363 "gram.c" /* yacc.c:1652 */ + break; + + case 1131: +#line 7699 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } +#line 35369 "gram.c" /* yacc.c:1652 */ + break; + + case 1132: +#line 7701 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } +#line 35375 "gram.c" /* yacc.c:1652 */ + break; + + case 1133: +#line 7716 "gram.y" /* yacc.c:1652 */ + { + FunctionParameter *n = makeNode(FunctionParameter); + n->name = (yyvsp[-1].str); + n->argType = (yyvsp[0].typnam); + n->mode = (yyvsp[-2].fun_param_mode); + n->defexpr = NULL; + (yyval.fun_param) = n; + } +#line 35388 "gram.c" /* yacc.c:1652 */ + break; + + case 1134: +#line 7725 "gram.y" /* yacc.c:1652 */ + { + FunctionParameter *n = makeNode(FunctionParameter); + n->name = (yyvsp[-2].str); + n->argType = (yyvsp[0].typnam); + n->mode = (yyvsp[-1].fun_param_mode); + n->defexpr = NULL; + (yyval.fun_param) = n; + } +#line 35401 "gram.c" /* yacc.c:1652 */ + break; + + case 1135: +#line 7734 "gram.y" /* yacc.c:1652 */ + { + FunctionParameter *n = makeNode(FunctionParameter); + n->name = (yyvsp[-1].str); + n->argType = (yyvsp[0].typnam); + n->mode = FUNC_PARAM_IN; + n->defexpr = NULL; + (yyval.fun_param) = n; + } +#line 35414 "gram.c" /* yacc.c:1652 */ + break; + + case 1136: +#line 7743 "gram.y" /* yacc.c:1652 */ + { + FunctionParameter *n = makeNode(FunctionParameter); + n->name = NULL; + n->argType = (yyvsp[0].typnam); + n->mode = (yyvsp[-1].fun_param_mode); + n->defexpr = NULL; + (yyval.fun_param) = n; + } +#line 35427 "gram.c" /* yacc.c:1652 */ + break; + + case 1137: +#line 7752 "gram.y" /* yacc.c:1652 */ + { + FunctionParameter *n = makeNode(FunctionParameter); + n->name = NULL; + n->argType = (yyvsp[0].typnam); + n->mode = FUNC_PARAM_IN; + n->defexpr = NULL; + (yyval.fun_param) = n; + } +#line 35440 "gram.c" /* yacc.c:1652 */ + break; + + case 1138: +#line 7763 "gram.y" /* yacc.c:1652 */ + { (yyval.fun_param_mode) = FUNC_PARAM_IN; } +#line 35446 "gram.c" /* yacc.c:1652 */ + break; + + case 1139: +#line 7764 "gram.y" /* yacc.c:1652 */ + { (yyval.fun_param_mode) = FUNC_PARAM_OUT; } +#line 35452 "gram.c" /* yacc.c:1652 */ + break; + + case 1140: +#line 7765 "gram.y" /* yacc.c:1652 */ + { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } +#line 35458 "gram.c" /* yacc.c:1652 */ + break; + + case 1141: +#line 7766 "gram.y" /* yacc.c:1652 */ + { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } +#line 35464 "gram.c" /* yacc.c:1652 */ + break; + + case 1142: +#line 7767 "gram.y" /* yacc.c:1652 */ + { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; } +#line 35470 "gram.c" /* yacc.c:1652 */ + break; + + case 1144: +#line 7778 "gram.y" /* yacc.c:1652 */ + { + /* 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[0].typnam); + } +#line 35482 "gram.c" /* yacc.c:1652 */ + break; + + case 1145: +#line 7792 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 35488 "gram.c" /* yacc.c:1652 */ + break; + + case 1146: +#line 7794 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); + (yyval.typnam)->pct_type = true; + (yyval.typnam)->location = (yylsp[-3]); + } +#line 35498 "gram.c" /* yacc.c:1652 */ + break; + + case 1147: +#line 7800 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); + (yyval.typnam)->pct_type = true; + (yyval.typnam)->setof = true; + (yyval.typnam)->location = (yylsp[-3]); + } +#line 35509 "gram.c" /* yacc.c:1652 */ + break; + + case 1148: +#line 7810 "gram.y" /* yacc.c:1652 */ + { + (yyval.fun_param) = (yyvsp[0].fun_param); + } +#line 35517 "gram.c" /* yacc.c:1652 */ + break; + + case 1149: +#line 7814 "gram.y" /* yacc.c:1652 */ + { + (yyval.fun_param) = (yyvsp[-2].fun_param); + (yyval.fun_param)->defexpr = (yyvsp[0].node); + } +#line 35526 "gram.c" /* yacc.c:1652 */ + break; + + case 1150: +#line 7819 "gram.y" /* yacc.c:1652 */ + { + (yyval.fun_param) = (yyvsp[-2].fun_param); + (yyval.fun_param)->defexpr = (yyvsp[0].node); + } +#line 35535 "gram.c" /* yacc.c:1652 */ + break; + + case 1151: +#line 7827 "gram.y" /* yacc.c:1652 */ + { + if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_IN || + (yyvsp[0].fun_param)->mode == FUNC_PARAM_VARIADIC)) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("aggregates cannot have output arguments"), + parser_errposition((yylsp[0])))); + (yyval.fun_param) = (yyvsp[0].fun_param); + } +#line 35549 "gram.c" /* yacc.c:1652 */ + break; + + case 1152: +#line 7868 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(NIL, makeInteger(-1)); + } +#line 35557 "gram.c" /* yacc.c:1652 */ + break; + + case 1153: +#line 7872 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1)); + } +#line 35565 "gram.c" /* yacc.c:1652 */ + break; + + case 1154: +#line 7876 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0)); + } +#line 35573 "gram.c" /* yacc.c:1652 */ + break; + + case 1155: +#line 7880 "gram.y" /* yacc.c:1652 */ + { + /* this is the only case requiring consistency checking */ + (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner); + } +#line 35582 "gram.c" /* yacc.c:1652 */ + break; + + case 1156: +#line 7887 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } +#line 35588 "gram.c" /* yacc.c:1652 */ + break; + + case 1157: +#line 7888 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } +#line 35594 "gram.c" /* yacc.c:1652 */ + break; + + case 1158: +#line 7893 "gram.y" /* yacc.c:1652 */ + { + ObjectWithArgs *n = makeNode(ObjectWithArgs); + n->objname = (yyvsp[-1].list); + n->objargs = extractAggrArgTypes((yyvsp[0].list)); + (yyval.objwithargs) = n; + } +#line 35605 "gram.c" /* yacc.c:1652 */ + break; + + case 1159: +#line 7902 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } +#line 35611 "gram.c" /* yacc.c:1652 */ + break; + + case 1160: +#line 7904 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } +#line 35617 "gram.c" /* yacc.c:1652 */ + break; + + case 1161: +#line 7909 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 35623 "gram.c" /* yacc.c:1652 */ + break; + + case 1162: +#line 7910 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 35629 "gram.c" /* yacc.c:1652 */ + break; + + case 1163: +#line 7918 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(false), (yylsp[-3])); + } +#line 35637 "gram.c" /* yacc.c:1652 */ + break; + + case 1164: +#line 7922 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[-4])); + } +#line 35645 "gram.c" /* yacc.c:1652 */ + break; + + case 1165: +#line 7926 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[0])); + } +#line 35653 "gram.c" /* yacc.c:1652 */ + break; + + case 1166: +#line 7930 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable"), (yylsp[0])); + } +#line 35661 "gram.c" /* yacc.c:1652 */ + break; + + case 1167: +#line 7934 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable"), (yylsp[0])); + } +#line 35669 "gram.c" /* yacc.c:1652 */ + break; + + case 1168: +#line 7938 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile"), (yylsp[0])); + } +#line 35677 "gram.c" /* yacc.c:1652 */ + break; + + case 1169: +#line 7942 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-2])); + } +#line 35685 "gram.c" /* yacc.c:1652 */ + break; + + case 1170: +#line 7946 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-2])); + } +#line 35693 "gram.c" /* yacc.c:1652 */ + break; + + case 1171: +#line 7950 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-1])); + } +#line 35701 "gram.c" /* yacc.c:1652 */ + break; + + case 1172: +#line 7954 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-1])); + } +#line 35709 "gram.c" /* yacc.c:1652 */ + break; + + case 1173: +#line 7958 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(true), (yylsp[0])); + } +#line 35717 "gram.c" /* yacc.c:1652 */ + break; + + case 1174: +#line 7962 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(false), (yylsp[-1])); + } +#line 35725 "gram.c" /* yacc.c:1652 */ + break; + + case 1175: +#line 7966 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[0].value), (yylsp[-1])); + } +#line 35733 "gram.c" /* yacc.c:1652 */ + break; + + case 1176: +#line 7970 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[0].value), (yylsp[-1])); + } +#line 35741 "gram.c" /* yacc.c:1652 */ + break; + + case 1177: +#line 7974 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("support", (Node *)(yyvsp[0].list), (yylsp[-1])); + } +#line 35749 "gram.c" /* yacc.c:1652 */ + break; + + case 1178: +#line 7978 "gram.y" /* yacc.c:1652 */ + { + /* we abuse the normal content of a DefElem here */ + (yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[0].vsetstmt), (yylsp[0])); + } +#line 35758 "gram.c" /* yacc.c:1652 */ + break; + + case 1179: +#line 7983 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("parallel", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 35766 "gram.c" /* yacc.c:1652 */ + break; + + case 1180: +#line 7990 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].list), (yylsp[-1])); + } +#line 35774 "gram.c" /* yacc.c:1652 */ + break; + + case 1181: +#line 7994 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 35782 "gram.c" /* yacc.c:1652 */ + break; + + case 1182: +#line 7998 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("transform", (Node *)(yyvsp[0].list), (yylsp[-1])); + } +#line 35790 "gram.c" /* yacc.c:1652 */ + break; + + case 1183: +#line 8002 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("window", (Node *)makeInteger(true), (yylsp[0])); + } +#line 35798 "gram.c" /* yacc.c:1652 */ + break; + + case 1184: +#line 8006 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = (yyvsp[0].defelt); + } +#line 35806 "gram.c" /* yacc.c:1652 */ + break; + + case 1185: +#line 8011 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 35812 "gram.c" /* yacc.c:1652 */ + break; + + case 1186: +#line 8013 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str))); + } +#line 35820 "gram.c" /* yacc.c:1652 */ + break; + + case 1187: +#line 8019 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 35826 "gram.c" /* yacc.c:1652 */ + break; + + case 1188: +#line 8020 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); } +#line 35832 "gram.c" /* yacc.c:1652 */ + break; + + case 1189: +#line 8024 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 35838 "gram.c" /* yacc.c:1652 */ + break; + + case 1190: +#line 8025 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 35844 "gram.c" /* yacc.c:1652 */ + break; + + case 1191: +#line 8029 "gram.y" /* yacc.c:1652 */ + { + FunctionParameter *n = makeNode(FunctionParameter); + n->name = (yyvsp[-1].str); + n->argType = (yyvsp[0].typnam); + n->mode = FUNC_PARAM_TABLE; + n->defexpr = NULL; + (yyval.fun_param) = n; + } +#line 35857 "gram.c" /* yacc.c:1652 */ + break; + + case 1192: +#line 8041 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].fun_param)); + } +#line 35865 "gram.c" /* yacc.c:1652 */ + break; + + case 1193: +#line 8045 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); + } +#line 35873 "gram.c" /* yacc.c:1652 */ + break; + + case 1194: +#line 8060 "gram.y" /* yacc.c:1652 */ + { + AlterFunctionStmt *n = makeNode(AlterFunctionStmt); + n->objtype = OBJECT_FUNCTION; + n->func = (yyvsp[-2].objwithargs); + n->actions = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 35885 "gram.c" /* yacc.c:1652 */ + break; + + case 1195: +#line 8068 "gram.y" /* yacc.c:1652 */ + { + AlterFunctionStmt *n = makeNode(AlterFunctionStmt); + n->objtype = OBJECT_PROCEDURE; + n->func = (yyvsp[-2].objwithargs); + n->actions = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 35897 "gram.c" /* yacc.c:1652 */ + break; + + case 1196: +#line 8076 "gram.y" /* yacc.c:1652 */ + { + AlterFunctionStmt *n = makeNode(AlterFunctionStmt); + n->objtype = OBJECT_ROUTINE; + n->func = (yyvsp[-2].objwithargs); + n->actions = (yyvsp[-1].list); + (yyval.node) = (Node *) n; + } +#line 35909 "gram.c" /* yacc.c:1652 */ + break; + + case 1197: +#line 8087 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 35915 "gram.c" /* yacc.c:1652 */ + break; + + case 1198: +#line 8088 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 35921 "gram.c" /* yacc.c:1652 */ + break; + + case 1201: +#line 8112 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_FUNCTION; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 35935 "gram.c" /* yacc.c:1652 */ + break; + + case 1202: +#line 8122 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_FUNCTION; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 35949 "gram.c" /* yacc.c:1652 */ + break; + + case 1203: +#line 8132 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_PROCEDURE; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 35963 "gram.c" /* yacc.c:1652 */ + break; + + case 1204: +#line 8142 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_PROCEDURE; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 35977 "gram.c" /* yacc.c:1652 */ + break; + + case 1205: +#line 8152 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_ROUTINE; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 35991 "gram.c" /* yacc.c:1652 */ + break; + + case 1206: +#line 8162 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_ROUTINE; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 36005 "gram.c" /* yacc.c:1652 */ + break; + + case 1207: +#line 8175 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_AGGREGATE; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 36019 "gram.c" /* yacc.c:1652 */ + break; + + case 1208: +#line 8185 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_AGGREGATE; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 36033 "gram.c" /* yacc.c:1652 */ + break; + + case 1209: +#line 8198 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_OPERATOR; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 36047 "gram.c" /* yacc.c:1652 */ + break; + + case 1210: +#line 8208 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_OPERATOR; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 36061 "gram.c" /* yacc.c:1652 */ + break; + + case 1211: +#line 8221 "gram.y" /* yacc.c:1652 */ + { + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("missing argument"), + errhint("Use NONE to denote the missing argument of a unary operator."), + parser_errposition((yylsp[0])))); + } +#line 36073 "gram.c" /* yacc.c:1652 */ + break; + + case 1212: +#line 8229 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); } +#line 36079 "gram.c" /* yacc.c:1652 */ + break; + + case 1213: +#line 8231 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); } +#line 36085 "gram.c" /* yacc.c:1652 */ + break; + + case 1214: +#line 8233 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); } +#line 36091 "gram.c" /* yacc.c:1652 */ + break; + + case 1215: +#line 8238 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 36097 "gram.c" /* yacc.c:1652 */ + break; + + case 1216: +#line 8240 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } +#line 36103 "gram.c" /* yacc.c:1652 */ + break; + + case 1217: +#line 8244 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } +#line 36109 "gram.c" /* yacc.c:1652 */ + break; + + case 1218: +#line 8246 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } +#line 36115 "gram.c" /* yacc.c:1652 */ + break; + + case 1219: +#line 8251 "gram.y" /* yacc.c:1652 */ + { + ObjectWithArgs *n = makeNode(ObjectWithArgs); + n->objname = (yyvsp[-1].list); + n->objargs = (yyvsp[0].list); + (yyval.objwithargs) = n; + } +#line 36126 "gram.c" /* yacc.c:1652 */ + break; + + case 1220: +#line 8269 "gram.y" /* yacc.c:1652 */ + { + DoStmt *n = makeNode(DoStmt); + n->args = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 36136 "gram.c" /* yacc.c:1652 */ + break; + + case 1221: +#line 8277 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 36142 "gram.c" /* yacc.c:1652 */ + break; + + case 1222: +#line 8278 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 36148 "gram.c" /* yacc.c:1652 */ + break; + + case 1223: +#line 8283 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[0].str)), (yylsp[0])); + } +#line 36156 "gram.c" /* yacc.c:1652 */ + break; + + case 1224: +#line 8287 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 36164 "gram.c" /* yacc.c:1652 */ + break; + + case 1225: +#line 8300 "gram.y" /* yacc.c:1652 */ + { + CreateCastStmt *n = makeNode(CreateCastStmt); + n->sourcetype = (yyvsp[-7].typnam); + n->targettype = (yyvsp[-5].typnam); + n->func = (yyvsp[-1].objwithargs); + n->context = (CoercionContext) (yyvsp[0].ival); + n->inout = false; + (yyval.node) = (Node *)n; + } +#line 36178 "gram.c" /* yacc.c:1652 */ + break; + + case 1226: +#line 8311 "gram.y" /* yacc.c:1652 */ + { + CreateCastStmt *n = makeNode(CreateCastStmt); + n->sourcetype = (yyvsp[-6].typnam); + n->targettype = (yyvsp[-4].typnam); + n->func = NULL; + n->context = (CoercionContext) (yyvsp[0].ival); + n->inout = false; + (yyval.node) = (Node *)n; + } +#line 36192 "gram.c" /* yacc.c:1652 */ + break; + + case 1227: +#line 8322 "gram.y" /* yacc.c:1652 */ + { + CreateCastStmt *n = makeNode(CreateCastStmt); + n->sourcetype = (yyvsp[-6].typnam); + n->targettype = (yyvsp[-4].typnam); + n->func = NULL; + n->context = (CoercionContext) (yyvsp[0].ival); + n->inout = true; + (yyval.node) = (Node *)n; + } +#line 36206 "gram.c" /* yacc.c:1652 */ + break; + + case 1228: +#line 8333 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = COERCION_IMPLICIT; } +#line 36212 "gram.c" /* yacc.c:1652 */ + break; + + case 1229: +#line 8334 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = COERCION_ASSIGNMENT; } +#line 36218 "gram.c" /* yacc.c:1652 */ + break; + + case 1230: +#line 8335 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = COERCION_EXPLICIT; } +#line 36224 "gram.c" /* yacc.c:1652 */ + break; + + case 1231: +#line 8340 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_CAST; + n->objects = list_make1(list_make2((yyvsp[-4].typnam), (yyvsp[-2].typnam))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = (yyvsp[-6].boolean); + n->concurrent = false; + (yyval.node) = (Node *)n; + } +#line 36238 "gram.c" /* yacc.c:1652 */ + break; + + case 1232: +#line 8351 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 36244 "gram.c" /* yacc.c:1652 */ + break; + + case 1233: +#line 8352 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 36250 "gram.c" /* yacc.c:1652 */ + break; + + case 1234: +#line 8363 "gram.y" /* yacc.c:1652 */ + { + CreateTransformStmt *n = makeNode(CreateTransformStmt); + n->replace = (yyvsp[-8].boolean); + n->type_name = (yyvsp[-5].typnam); + n->lang = (yyvsp[-3].str); + n->fromsql = linitial((yyvsp[-1].list)); + n->tosql = lsecond((yyvsp[-1].list)); + (yyval.node) = (Node *)n; + } +#line 36264 "gram.c" /* yacc.c:1652 */ + break; + + case 1235: +#line 8375 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs)); + } +#line 36272 "gram.c" /* yacc.c:1652 */ + break; + + case 1236: +#line 8379 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs)); + } +#line 36280 "gram.c" /* yacc.c:1652 */ + break; + + case 1237: +#line 8383 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL); + } +#line 36288 "gram.c" /* yacc.c:1652 */ + break; + + case 1238: +#line 8387 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs)); + } +#line 36296 "gram.c" /* yacc.c:1652 */ + break; + + case 1239: +#line 8394 "gram.y" /* yacc.c:1652 */ + { + DropStmt *n = makeNode(DropStmt); + n->removeType = OBJECT_TRANSFORM; + n->objects = list_make1(list_make2((yyvsp[-3].typnam), makeString((yyvsp[-1].str)))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = (yyvsp[-5].boolean); + (yyval.node) = (Node *)n; + } +#line 36309 "gram.c" /* yacc.c:1652 */ + break; + + case 1240: +#line 8414 "gram.y" /* yacc.c:1652 */ + { + ReindexStmt *n = makeNode(ReindexStmt); + n->kind = (yyvsp[-2].ival); + n->concurrent = (yyvsp[-1].boolean); + n->relation = (yyvsp[0].range); + n->name = NULL; + n->options = 0; + (yyval.node) = (Node *)n; + } +#line 36323 "gram.c" /* yacc.c:1652 */ + break; + + case 1241: +#line 8424 "gram.y" /* yacc.c:1652 */ + { + ReindexStmt *n = makeNode(ReindexStmt); + n->kind = (yyvsp[-2].ival); + n->concurrent = (yyvsp[-1].boolean); + n->name = (yyvsp[0].str); + n->relation = NULL; + n->options = 0; + (yyval.node) = (Node *)n; + } +#line 36337 "gram.c" /* yacc.c:1652 */ + break; + + case 1242: +#line 8434 "gram.y" /* yacc.c:1652 */ + { + ReindexStmt *n = makeNode(ReindexStmt); + n->kind = (yyvsp[-2].ival); + n->concurrent = (yyvsp[-1].boolean); + n->relation = (yyvsp[0].range); + n->name = NULL; + n->options = (yyvsp[-4].ival); + (yyval.node) = (Node *)n; + } +#line 36351 "gram.c" /* yacc.c:1652 */ + break; + + case 1243: +#line 8444 "gram.y" /* yacc.c:1652 */ + { + ReindexStmt *n = makeNode(ReindexStmt); + n->kind = (yyvsp[-2].ival); + n->concurrent = (yyvsp[-1].boolean); + n->name = (yyvsp[0].str); + n->relation = NULL; + n->options = (yyvsp[-4].ival); + (yyval.node) = (Node *)n; + } +#line 36365 "gram.c" /* yacc.c:1652 */ + break; + + case 1244: +#line 8455 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = REINDEX_OBJECT_INDEX; } +#line 36371 "gram.c" /* yacc.c:1652 */ + break; + + case 1245: +#line 8456 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = REINDEX_OBJECT_TABLE; } +#line 36377 "gram.c" /* yacc.c:1652 */ + break; + + case 1246: +#line 8459 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = REINDEX_OBJECT_SCHEMA; } +#line 36383 "gram.c" /* yacc.c:1652 */ + break; + + case 1247: +#line 8460 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = REINDEX_OBJECT_SYSTEM; } +#line 36389 "gram.c" /* yacc.c:1652 */ + break; + + case 1248: +#line 8461 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = REINDEX_OBJECT_DATABASE; } +#line 36395 "gram.c" /* yacc.c:1652 */ + break; + + case 1249: +#line 8464 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 36401 "gram.c" /* yacc.c:1652 */ + break; + + case 1250: +#line 8465 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } +#line 36407 "gram.c" /* yacc.c:1652 */ + break; + + case 1251: +#line 8468 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = REINDEXOPT_VERBOSE; } +#line 36413 "gram.c" /* yacc.c:1652 */ + break; + + case 1252: +#line 8479 "gram.y" /* yacc.c:1652 */ + { + AlterTableSpaceOptionsStmt *n = + makeNode(AlterTableSpaceOptionsStmt); + n->tablespacename = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + n->isReset = false; + (yyval.node) = (Node *)n; + } +#line 36426 "gram.c" /* yacc.c:1652 */ + break; + + case 1253: +#line 8488 "gram.y" /* yacc.c:1652 */ + { + AlterTableSpaceOptionsStmt *n = + makeNode(AlterTableSpaceOptionsStmt); + n->tablespacename = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + n->isReset = true; + (yyval.node) = (Node *)n; + } +#line 36439 "gram.c" /* yacc.c:1652 */ + break; + + case 1254: +#line 8505 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_AGGREGATE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36452 "gram.c" /* yacc.c:1652 */ + break; + + case 1255: +#line 8514 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLLATION; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36465 "gram.c" /* yacc.c:1652 */ + break; + + case 1256: +#line 8523 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_CONVERSION; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36478 "gram.c" /* yacc.c:1652 */ + break; + + case 1257: +#line 8532 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_DATABASE; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36491 "gram.c" /* yacc.c:1652 */ + break; + + case 1258: +#line 8541 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_DOMAIN; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36504 "gram.c" /* yacc.c:1652 */ + break; + + case 1259: +#line 8550 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_DOMCONSTRAINT; + n->object = (Node *) (yyvsp[-5].list); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 36517 "gram.c" /* yacc.c:1652 */ + break; + + case 1260: +#line 8559 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_FDW; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36530 "gram.c" /* yacc.c:1652 */ + break; + + case 1261: +#line 8568 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36543 "gram.c" /* yacc.c:1652 */ + break; + + case 1262: +#line 8577 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_ROLE; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36556 "gram.c" /* yacc.c:1652 */ + break; + + case 1263: +#line 8586 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_LANGUAGE; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36569 "gram.c" /* yacc.c:1652 */ + break; + + case 1264: +#line 8595 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_OPCLASS; + n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36582 "gram.c" /* yacc.c:1652 */ + break; + + case 1265: +#line 8604 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_OPFAMILY; + n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36595 "gram.c" /* yacc.c:1652 */ + break; + + case 1266: +#line 8613 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_POLICY; + n->relation = (yyvsp[-3].range); + n->subname = (yyvsp[-5].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36609 "gram.c" /* yacc.c:1652 */ + break; + + case 1267: +#line 8623 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_POLICY; + n->relation = (yyvsp[-3].range); + n->subname = (yyvsp[-5].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36623 "gram.c" /* yacc.c:1652 */ + break; + + case 1268: +#line 8633 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36636 "gram.c" /* yacc.c:1652 */ + break; + + case 1269: +#line 8642 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_PUBLICATION; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36649 "gram.c" /* yacc.c:1652 */ + break; + + case 1270: +#line 8651 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36662 "gram.c" /* yacc.c:1652 */ + break; + + case 1271: +#line 8660 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_SCHEMA; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36675 "gram.c" /* yacc.c:1652 */ + break; + + case 1272: +#line 8669 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_FOREIGN_SERVER; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36688 "gram.c" /* yacc.c:1652 */ + break; + + case 1273: +#line 8678 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_SUBSCRIPTION; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36701 "gram.c" /* yacc.c:1652 */ + break; + + case 1274: +#line 8687 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36715 "gram.c" /* yacc.c:1652 */ + break; + + case 1275: +#line 8697 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36729 "gram.c" /* yacc.c:1652 */ + break; + + case 1276: +#line 8707 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36743 "gram.c" /* yacc.c:1652 */ + break; + + case 1277: +#line 8717 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36757 "gram.c" /* yacc.c:1652 */ + break; + + case 1278: +#line 8727 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36771 "gram.c" /* yacc.c:1652 */ + break; + + case 1279: +#line 8737 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36785 "gram.c" /* yacc.c:1652 */ + break; + + case 1280: +#line 8747 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_MATVIEW; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36799 "gram.c" /* yacc.c:1652 */ + break; + + case 1281: +#line 8757 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_MATVIEW; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36813 "gram.c" /* yacc.c:1652 */ + break; + + case 1282: +#line 8767 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_INDEX; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36827 "gram.c" /* yacc.c:1652 */ + break; + + case 1283: +#line 8777 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_INDEX; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36841 "gram.c" /* yacc.c:1652 */ + break; + + case 1284: +#line 8787 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_FOREIGN_TABLE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36855 "gram.c" /* yacc.c:1652 */ + break; + + case 1285: +#line 8797 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_FOREIGN_TABLE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36869 "gram.c" /* yacc.c:1652 */ + break; + + case 1286: +#line 8807 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_TABLE; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36884 "gram.c" /* yacc.c:1652 */ + break; + + case 1287: +#line 8818 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_TABLE; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36899 "gram.c" /* yacc.c:1652 */ + break; + + case 1288: +#line 8829 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_VIEW; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36914 "gram.c" /* yacc.c:1652 */ + break; + + case 1289: +#line 8840 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_VIEW; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36929 "gram.c" /* yacc.c:1652 */ + break; + + case 1290: +#line 8851 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_MATVIEW; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36944 "gram.c" /* yacc.c:1652 */ + break; + + case 1291: +#line 8862 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_MATVIEW; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36959 "gram.c" /* yacc.c:1652 */ + break; + + case 1292: +#line 8873 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TABCONSTRAINT; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 36973 "gram.c" /* yacc.c:1652 */ + break; + + case 1293: +#line 8883 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TABCONSTRAINT; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 36987 "gram.c" /* yacc.c:1652 */ + break; + + case 1294: +#line 8893 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_FOREIGN_TABLE; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37002 "gram.c" /* yacc.c:1652 */ + break; + + case 1295: +#line 8904 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_COLUMN; + n->relationType = OBJECT_FOREIGN_TABLE; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 37017 "gram.c" /* yacc.c:1652 */ + break; + + case 1296: +#line 8915 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_RULE; + n->relation = (yyvsp[-3].range); + n->subname = (yyvsp[-5].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37031 "gram.c" /* yacc.c:1652 */ + break; + + case 1297: +#line 8925 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TRIGGER; + n->relation = (yyvsp[-3].range); + n->subname = (yyvsp[-5].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37045 "gram.c" /* yacc.c:1652 */ + break; + + case 1298: +#line 8935 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_EVENT_TRIGGER; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newname = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 37057 "gram.c" /* yacc.c:1652 */ + break; + + case 1299: +#line 8943 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_ROLE; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37070 "gram.c" /* yacc.c:1652 */ + break; + + case 1300: +#line 8952 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_ROLE; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37083 "gram.c" /* yacc.c:1652 */ + break; + + case 1301: +#line 8961 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TABLESPACE; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37096 "gram.c" /* yacc.c:1652 */ + break; + + case 1302: +#line 8970 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_STATISTIC_EXT; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37109 "gram.c" /* yacc.c:1652 */ + break; + + case 1303: +#line 8979 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TSPARSER; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37122 "gram.c" /* yacc.c:1652 */ + break; + + case 1304: +#line 8988 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TSDICTIONARY; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37135 "gram.c" /* yacc.c:1652 */ + break; + + case 1305: +#line 8997 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TSTEMPLATE; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37148 "gram.c" /* yacc.c:1652 */ + break; + + case 1306: +#line 9006 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TSCONFIGURATION; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37161 "gram.c" /* yacc.c:1652 */ + break; + + case 1307: +#line 9015 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_TYPE; + n->object = (Node *) (yyvsp[-3].list); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37174 "gram.c" /* yacc.c:1652 */ + break; + + case 1308: +#line 9024 "gram.y" /* yacc.c:1652 */ + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_ATTRIBUTE; + n->relationType = OBJECT_TYPE; + n->relation = makeRangeVarFromAnyName((yyvsp[-6].list), (yylsp[-6]), yyscanner); + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37190 "gram.c" /* yacc.c:1652 */ + break; + + case 1309: +#line 9037 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = COLUMN; } +#line 37196 "gram.c" /* yacc.c:1652 */ + break; + + case 1310: +#line 9038 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 37202 "gram.c" /* yacc.c:1652 */ + break; + + case 1311: +#line 9041 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 1; } +#line 37208 "gram.c" /* yacc.c:1652 */ + break; + + case 1312: +#line 9042 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 37214 "gram.c" /* yacc.c:1652 */ + break; + + case 1313: +#line 9053 "gram.y" /* yacc.c:1652 */ + { + AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); + n->objectType = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[-5].objwithargs); + n->extname = makeString((yyvsp[0].str)); + n->remove = (yyvsp[-4].boolean); + (yyval.node) = (Node *)n; + } +#line 37227 "gram.c" /* yacc.c:1652 */ + break; + + case 1314: +#line 9062 "gram.y" /* yacc.c:1652 */ + { + AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); + n->objectType = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[-5].objwithargs); + n->extname = makeString((yyvsp[0].str)); + n->remove = (yyvsp[-4].boolean); + (yyval.node) = (Node *)n; + } +#line 37240 "gram.c" /* yacc.c:1652 */ + break; + + case 1315: +#line 9071 "gram.y" /* yacc.c:1652 */ + { + AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); + n->objectType = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[-5].objwithargs); + n->extname = makeString((yyvsp[0].str)); + n->remove = (yyvsp[-4].boolean); + (yyval.node) = (Node *)n; + } +#line 37253 "gram.c" /* yacc.c:1652 */ + break; + + case 1316: +#line 9080 "gram.y" /* yacc.c:1652 */ + { + AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); + n->objectType = OBJECT_TRIGGER; + n->relation = (yyvsp[-5].range); + n->object = (Node *) list_make1(makeString((yyvsp[-7].str))); + n->extname = makeString((yyvsp[0].str)); + n->remove = (yyvsp[-4].boolean); + (yyval.node) = (Node *)n; + } +#line 37267 "gram.c" /* yacc.c:1652 */ + break; + + case 1317: +#line 9090 "gram.y" /* yacc.c:1652 */ + { + AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); + n->objectType = OBJECT_MATVIEW; + n->relation = (yyvsp[-5].range); + n->extname = makeString((yyvsp[0].str)); + n->remove = (yyvsp[-4].boolean); + (yyval.node) = (Node *)n; + } +#line 37280 "gram.c" /* yacc.c:1652 */ + break; + + case 1318: +#line 9099 "gram.y" /* yacc.c:1652 */ + { + AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); + n->objectType = OBJECT_INDEX; + n->relation = (yyvsp[-5].range); + n->extname = makeString((yyvsp[0].str)); + n->remove = (yyvsp[-4].boolean); + (yyval.node) = (Node *)n; + } +#line 37293 "gram.c" /* yacc.c:1652 */ + break; + + case 1319: +#line 9109 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 37299 "gram.c" /* yacc.c:1652 */ + break; + + case 1320: +#line 9110 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 37305 "gram.c" /* yacc.c:1652 */ + break; + + case 1321: +#line 9121 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_AGGREGATE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37318 "gram.c" /* yacc.c:1652 */ + break; + + case 1322: +#line 9130 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_COLLATION; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37331 "gram.c" /* yacc.c:1652 */ + break; + + case 1323: +#line 9139 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_CONVERSION; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37344 "gram.c" /* yacc.c:1652 */ + break; + + case 1324: +#line 9148 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_DOMAIN; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37357 "gram.c" /* yacc.c:1652 */ + break; + + case 1325: +#line 9157 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_EXTENSION; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37370 "gram.c" /* yacc.c:1652 */ + break; + + case 1326: +#line 9166 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37383 "gram.c" /* yacc.c:1652 */ + break; + + case 1327: +#line 9175 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_OPERATOR; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37396 "gram.c" /* yacc.c:1652 */ + break; + + case 1328: +#line 9184 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_OPCLASS; + n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37409 "gram.c" /* yacc.c:1652 */ + break; + + case 1329: +#line 9193 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_OPFAMILY; + n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37422 "gram.c" /* yacc.c:1652 */ + break; + + case 1330: +#line 9202 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37435 "gram.c" /* yacc.c:1652 */ + break; + + case 1331: +#line 9211 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37448 "gram.c" /* yacc.c:1652 */ + break; + + case 1332: +#line 9220 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37461 "gram.c" /* yacc.c:1652 */ + break; + + case 1333: +#line 9229 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 37474 "gram.c" /* yacc.c:1652 */ + break; + + case 1334: +#line 9238 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_STATISTIC_EXT; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37487 "gram.c" /* yacc.c:1652 */ + break; + + case 1335: +#line 9247 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TSPARSER; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37500 "gram.c" /* yacc.c:1652 */ + break; + + case 1336: +#line 9256 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TSDICTIONARY; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37513 "gram.c" /* yacc.c:1652 */ + break; + + case 1337: +#line 9265 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TSTEMPLATE; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37526 "gram.c" /* yacc.c:1652 */ + break; + + case 1338: +#line 9274 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TSCONFIGURATION; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37539 "gram.c" /* yacc.c:1652 */ + break; + + case 1339: +#line 9283 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37552 "gram.c" /* yacc.c:1652 */ + break; + + case 1340: +#line 9292 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 37565 "gram.c" /* yacc.c:1652 */ + break; + + case 1341: +#line 9301 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37578 "gram.c" /* yacc.c:1652 */ + break; + + case 1342: +#line 9310 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 37591 "gram.c" /* yacc.c:1652 */ + break; + + case 1343: +#line 9319 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_MATVIEW; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37604 "gram.c" /* yacc.c:1652 */ + break; + + case 1344: +#line 9328 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_MATVIEW; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 37617 "gram.c" /* yacc.c:1652 */ + break; + + case 1345: +#line 9337 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_FOREIGN_TABLE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37630 "gram.c" /* yacc.c:1652 */ + break; + + case 1346: +#line 9346 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_FOREIGN_TABLE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 37643 "gram.c" /* yacc.c:1652 */ + break; + + case 1347: +#line 9355 "gram.y" /* yacc.c:1652 */ + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_TYPE; + n->object = (Node *) (yyvsp[-3].list); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 37656 "gram.c" /* yacc.c:1652 */ + break; + + case 1348: +#line 9373 "gram.y" /* yacc.c:1652 */ + { + AlterOperatorStmt *n = makeNode(AlterOperatorStmt); + n->opername = (yyvsp[-4].objwithargs); + n->options = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 37667 "gram.c" /* yacc.c:1652 */ + break; + + case 1349: +#line 9381 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 37673 "gram.c" /* yacc.c:1652 */ + break; + + case 1350: +#line 9382 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 37679 "gram.c" /* yacc.c:1652 */ + break; + + case 1351: +#line 9386 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } +#line 37685 "gram.c" /* yacc.c:1652 */ + break; + + case 1352: +#line 9388 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } +#line 37691 "gram.c" /* yacc.c:1652 */ + break; + + case 1353: +#line 9393 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[0].typnam); } +#line 37697 "gram.c" /* yacc.c:1652 */ + break; + + case 1354: +#line 9394 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 37703 "gram.c" /* yacc.c:1652 */ + break; + + case 1355: +#line 9395 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[0].list); } +#line 37709 "gram.c" /* yacc.c:1652 */ + break; + + case 1356: +#line 9396 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[0].value); } +#line 37715 "gram.c" /* yacc.c:1652 */ + break; + + case 1357: +#line 9397 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } +#line 37721 "gram.c" /* yacc.c:1652 */ + break; + + case 1358: +#line 9410 "gram.y" /* yacc.c:1652 */ + { + AlterTypeStmt *n = makeNode(AlterTypeStmt); + n->typeName = (yyvsp[-4].list); + n->options = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 37732 "gram.c" /* yacc.c:1652 */ + break; + + case 1359: +#line 9425 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_AGGREGATE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37744 "gram.c" /* yacc.c:1652 */ + break; + + case 1360: +#line 9433 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_COLLATION; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37756 "gram.c" /* yacc.c:1652 */ + break; + + case 1361: +#line 9441 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_CONVERSION; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37768 "gram.c" /* yacc.c:1652 */ + break; + + case 1362: +#line 9449 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_DATABASE; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37780 "gram.c" /* yacc.c:1652 */ + break; + + case 1363: +#line 9457 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_DOMAIN; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37792 "gram.c" /* yacc.c:1652 */ + break; + + case 1364: +#line 9465 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_FUNCTION; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37804 "gram.c" /* yacc.c:1652 */ + break; + + case 1365: +#line 9473 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_LANGUAGE; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37816 "gram.c" /* yacc.c:1652 */ + break; + + case 1366: +#line 9481 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_LARGEOBJECT; + n->object = (Node *) (yyvsp[-3].value); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37828 "gram.c" /* yacc.c:1652 */ + break; + + case 1367: +#line 9489 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_OPERATOR; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37840 "gram.c" /* yacc.c:1652 */ + break; + + case 1368: +#line 9497 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_OPCLASS; + n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37852 "gram.c" /* yacc.c:1652 */ + break; + + case 1369: +#line 9505 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_OPFAMILY; + n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37864 "gram.c" /* yacc.c:1652 */ + break; + + case 1370: +#line 9513 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_PROCEDURE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37876 "gram.c" /* yacc.c:1652 */ + break; + + case 1371: +#line 9521 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_ROUTINE; + n->object = (Node *) (yyvsp[-3].objwithargs); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37888 "gram.c" /* yacc.c:1652 */ + break; + + case 1372: +#line 9529 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_SCHEMA; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37900 "gram.c" /* yacc.c:1652 */ + break; + + case 1373: +#line 9537 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_TYPE; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37912 "gram.c" /* yacc.c:1652 */ + break; + + case 1374: +#line 9545 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_TABLESPACE; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37924 "gram.c" /* yacc.c:1652 */ + break; + + case 1375: +#line 9553 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_STATISTIC_EXT; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37936 "gram.c" /* yacc.c:1652 */ + break; + + case 1376: +#line 9561 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_TSDICTIONARY; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37948 "gram.c" /* yacc.c:1652 */ + break; + + case 1377: +#line 9569 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_TSCONFIGURATION; + n->object = (Node *) (yyvsp[-3].list); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37960 "gram.c" /* yacc.c:1652 */ + break; + + case 1378: +#line 9577 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_FDW; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37972 "gram.c" /* yacc.c:1652 */ + break; + + case 1379: +#line 9585 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_FOREIGN_SERVER; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37984 "gram.c" /* yacc.c:1652 */ + break; + + case 1380: +#line 9593 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_EVENT_TRIGGER; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 37996 "gram.c" /* yacc.c:1652 */ + break; + + case 1381: +#line 9601 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_PUBLICATION; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 38008 "gram.c" /* yacc.c:1652 */ + break; + + case 1382: +#line 9609 "gram.y" /* yacc.c:1652 */ + { + AlterOwnerStmt *n = makeNode(AlterOwnerStmt); + n->objectType = OBJECT_SUBSCRIPTION; + n->object = (Node *) makeString((yyvsp[-3].str)); + n->newowner = (yyvsp[0].rolespec); + (yyval.node) = (Node *)n; + } +#line 38020 "gram.c" /* yacc.c:1652 */ + break; + + case 1383: +#line 9627 "gram.y" /* yacc.c:1652 */ + { + CreatePublicationStmt *n = makeNode(CreatePublicationStmt); + n->pubname = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + if ((yyvsp[-1].node) != NULL) + { + /* FOR TABLE */ + if (IsA((yyvsp[-1].node), List)) + n->tables = (List *)(yyvsp[-1].node); + /* FOR ALL TABLES */ + else + n->for_all_tables = true; + } + (yyval.node) = (Node *)n; + } +#line 38040 "gram.c" /* yacc.c:1652 */ + break; + + case 1384: +#line 9645 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 38046 "gram.c" /* yacc.c:1652 */ + break; + + case 1385: +#line 9646 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 38052 "gram.c" /* yacc.c:1652 */ + break; + + case 1386: +#line 9651 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) (yyvsp[0].list); + } +#line 38060 "gram.c" /* yacc.c:1652 */ + break; + + case 1387: +#line 9655 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeInteger(true); + } +#line 38068 "gram.c" /* yacc.c:1652 */ + break; + + case 1388: +#line 9675 "gram.y" /* yacc.c:1652 */ + { + AlterPublicationStmt *n = makeNode(AlterPublicationStmt); + n->pubname = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38079 "gram.c" /* yacc.c:1652 */ + break; + + case 1389: +#line 9682 "gram.y" /* yacc.c:1652 */ + { + AlterPublicationStmt *n = makeNode(AlterPublicationStmt); + n->pubname = (yyvsp[-3].str); + n->tables = (yyvsp[0].list); + n->tableAction = DEFELEM_ADD; + (yyval.node) = (Node *)n; + } +#line 38091 "gram.c" /* yacc.c:1652 */ + break; + + case 1390: +#line 9690 "gram.y" /* yacc.c:1652 */ + { + AlterPublicationStmt *n = makeNode(AlterPublicationStmt); + n->pubname = (yyvsp[-3].str); + n->tables = (yyvsp[0].list); + n->tableAction = DEFELEM_SET; + (yyval.node) = (Node *)n; + } +#line 38103 "gram.c" /* yacc.c:1652 */ + break; + + case 1391: +#line 9698 "gram.y" /* yacc.c:1652 */ + { + AlterPublicationStmt *n = makeNode(AlterPublicationStmt); + n->pubname = (yyvsp[-3].str); + n->tables = (yyvsp[0].list); + n->tableAction = DEFELEM_DROP; + (yyval.node) = (Node *)n; + } +#line 38115 "gram.c" /* yacc.c:1652 */ + break; + + case 1392: +#line 9715 "gram.y" /* yacc.c:1652 */ + { + CreateSubscriptionStmt *n = + makeNode(CreateSubscriptionStmt); + n->subname = (yyvsp[-5].str); + n->conninfo = (yyvsp[-3].str); + n->publication = (yyvsp[-1].list); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38129 "gram.c" /* yacc.c:1652 */ + break; + + case 1393: +#line 9728 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].value)); + } +#line 38137 "gram.c" /* yacc.c:1652 */ + break; + + case 1394: +#line 9732 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); + } +#line 38145 "gram.c" /* yacc.c:1652 */ + break; + + case 1395: +#line 9738 "gram.y" /* yacc.c:1652 */ + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 38151 "gram.c" /* yacc.c:1652 */ + break; + + case 1396: +#line 9748 "gram.y" /* yacc.c:1652 */ + { + AlterSubscriptionStmt *n = + makeNode(AlterSubscriptionStmt); + n->kind = ALTER_SUBSCRIPTION_OPTIONS; + n->subname = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38164 "gram.c" /* yacc.c:1652 */ + break; + + case 1397: +#line 9757 "gram.y" /* yacc.c:1652 */ + { + AlterSubscriptionStmt *n = + makeNode(AlterSubscriptionStmt); + n->kind = ALTER_SUBSCRIPTION_CONNECTION; + n->subname = (yyvsp[-2].str); + n->conninfo = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38177 "gram.c" /* yacc.c:1652 */ + break; + + case 1398: +#line 9766 "gram.y" /* yacc.c:1652 */ + { + AlterSubscriptionStmt *n = + makeNode(AlterSubscriptionStmt); + n->kind = ALTER_SUBSCRIPTION_REFRESH; + n->subname = (yyvsp[-3].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38190 "gram.c" /* yacc.c:1652 */ + break; + + case 1399: +#line 9775 "gram.y" /* yacc.c:1652 */ + { + AlterSubscriptionStmt *n = + makeNode(AlterSubscriptionStmt); + n->kind = ALTER_SUBSCRIPTION_PUBLICATION; + n->subname = (yyvsp[-4].str); + n->publication = (yyvsp[-1].list); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38204 "gram.c" /* yacc.c:1652 */ + break; + + case 1400: +#line 9785 "gram.y" /* yacc.c:1652 */ + { + AlterSubscriptionStmt *n = + makeNode(AlterSubscriptionStmt); + n->kind = ALTER_SUBSCRIPTION_ENABLED; + n->subname = (yyvsp[-1].str); + n->options = list_make1(makeDefElem("enabled", + (Node *)makeInteger(true), (yylsp[-3]))); + (yyval.node) = (Node *)n; + } +#line 38218 "gram.c" /* yacc.c:1652 */ + break; + + case 1401: +#line 9795 "gram.y" /* yacc.c:1652 */ + { + AlterSubscriptionStmt *n = + makeNode(AlterSubscriptionStmt); + n->kind = ALTER_SUBSCRIPTION_ENABLED; + n->subname = (yyvsp[-1].str); + n->options = list_make1(makeDefElem("enabled", + (Node *)makeInteger(false), (yylsp[-3]))); + (yyval.node) = (Node *)n; + } +#line 38232 "gram.c" /* yacc.c:1652 */ + break; + + case 1402: +#line 9813 "gram.y" /* yacc.c:1652 */ + { + DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); + n->subname = (yyvsp[-1].str); + n->missing_ok = false; + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *) n; + } +#line 38244 "gram.c" /* yacc.c:1652 */ + break; + + case 1403: +#line 9821 "gram.y" /* yacc.c:1652 */ + { + DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); + n->subname = (yyvsp[-1].str); + n->missing_ok = true; + n->behavior = (yyvsp[0].dbehavior); + (yyval.node) = (Node *) n; + } +#line 38256 "gram.c" /* yacc.c:1652 */ + break; + + case 1404: +#line 9839 "gram.y" /* yacc.c:1652 */ + { + RuleStmt *n = makeNode(RuleStmt); + n->replace = (yyvsp[-11].boolean); + n->relation = (yyvsp[-4].range); + n->rulename = (yyvsp[-9].str); + n->whereClause = (yyvsp[-3].node); + n->event = (yyvsp[-6].ival); + n->instead = (yyvsp[-1].boolean); + n->actions = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38272 "gram.c" /* yacc.c:1652 */ + break; + + case 1405: +#line 9853 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 38278 "gram.c" /* yacc.c:1652 */ + break; + + case 1406: +#line 9854 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 38284 "gram.c" /* yacc.c:1652 */ + break; + + case 1407: +#line 9855 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 38290 "gram.c" /* yacc.c:1652 */ + break; + + case 1408: +#line 9861 "gram.y" /* yacc.c:1652 */ + { if ((yyvsp[0].node) != NULL) + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + else + (yyval.list) = (yyvsp[-2].list); + } +#line 38300 "gram.c" /* yacc.c:1652 */ + break; + + case 1409: +#line 9867 "gram.y" /* yacc.c:1652 */ + { if ((yyvsp[0].node) != NULL) + (yyval.list) = list_make1((yyvsp[0].node)); + else + (yyval.list) = NIL; + } +#line 38310 "gram.c" /* yacc.c:1652 */ + break; + + case 1415: +#line 9883 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 38316 "gram.c" /* yacc.c:1652 */ + break; + + case 1416: +#line 9884 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 38322 "gram.c" /* yacc.c:1652 */ + break; + + case 1417: +#line 9887 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CMD_SELECT; } +#line 38328 "gram.c" /* yacc.c:1652 */ + break; + + case 1418: +#line 9888 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CMD_UPDATE; } +#line 38334 "gram.c" /* yacc.c:1652 */ + break; + + case 1419: +#line 9889 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CMD_DELETE; } +#line 38340 "gram.c" /* yacc.c:1652 */ + break; + + case 1420: +#line 9890 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CMD_INSERT; } +#line 38346 "gram.c" /* yacc.c:1652 */ + break; + + case 1421: +#line 9894 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 38352 "gram.c" /* yacc.c:1652 */ + break; + + case 1422: +#line 9895 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 38358 "gram.c" /* yacc.c:1652 */ + break; + + case 1423: +#line 9896 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 38364 "gram.c" /* yacc.c:1652 */ + break; + + case 1424: +#line 9909 "gram.y" /* yacc.c:1652 */ + { + NotifyStmt *n = makeNode(NotifyStmt); + n->conditionname = (yyvsp[-1].str); + n->payload = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38375 "gram.c" /* yacc.c:1652 */ + break; + + case 1425: +#line 9918 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 38381 "gram.c" /* yacc.c:1652 */ + break; + + case 1426: +#line 9919 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 38387 "gram.c" /* yacc.c:1652 */ + break; + + case 1427: +#line 9923 "gram.y" /* yacc.c:1652 */ + { + ListenStmt *n = makeNode(ListenStmt); + n->conditionname = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38397 "gram.c" /* yacc.c:1652 */ + break; + + case 1428: +#line 9932 "gram.y" /* yacc.c:1652 */ + { + UnlistenStmt *n = makeNode(UnlistenStmt); + n->conditionname = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38407 "gram.c" /* yacc.c:1652 */ + break; + + case 1429: +#line 9938 "gram.y" /* yacc.c:1652 */ + { + UnlistenStmt *n = makeNode(UnlistenStmt); + n->conditionname = NULL; + (yyval.node) = (Node *)n; + } +#line 38417 "gram.c" /* yacc.c:1652 */ + break; + + case 1430: +#line 9957 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_ROLLBACK; + n->options = NIL; + n->chain = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 38429 "gram.c" /* yacc.c:1652 */ + break; + + case 1431: +#line 9965 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_BEGIN; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38440 "gram.c" /* yacc.c:1652 */ + break; + + case 1432: +#line 9972 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_START; + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38451 "gram.c" /* yacc.c:1652 */ + break; + + case 1433: +#line 9979 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_COMMIT; + n->options = NIL; + n->chain = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 38463 "gram.c" /* yacc.c:1652 */ + break; + + case 1434: +#line 9987 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_COMMIT; + n->options = NIL; + n->chain = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 38475 "gram.c" /* yacc.c:1652 */ + break; + + case 1435: +#line 9995 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_ROLLBACK; + n->options = NIL; + n->chain = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 38487 "gram.c" /* yacc.c:1652 */ + break; + + case 1436: +#line 10003 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_SAVEPOINT; + n->savepoint_name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38498 "gram.c" /* yacc.c:1652 */ + break; + + case 1437: +#line 10010 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_RELEASE; + n->savepoint_name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38509 "gram.c" /* yacc.c:1652 */ + break; + + case 1438: +#line 10017 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_RELEASE; + n->savepoint_name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38520 "gram.c" /* yacc.c:1652 */ + break; + + case 1439: +#line 10024 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_ROLLBACK_TO; + n->savepoint_name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38531 "gram.c" /* yacc.c:1652 */ + break; + + case 1440: +#line 10031 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_ROLLBACK_TO; + n->savepoint_name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38542 "gram.c" /* yacc.c:1652 */ + break; + + case 1441: +#line 10038 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_PREPARE; + n->gid = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38553 "gram.c" /* yacc.c:1652 */ + break; + + case 1442: +#line 10045 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_COMMIT_PREPARED; + n->gid = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38564 "gram.c" /* yacc.c:1652 */ + break; + + case 1443: +#line 10052 "gram.y" /* yacc.c:1652 */ + { + TransactionStmt *n = makeNode(TransactionStmt); + n->kind = TRANS_STMT_ROLLBACK_PREPARED; + n->gid = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38575 "gram.c" /* yacc.c:1652 */ + break; + + case 1444: +#line 10060 "gram.y" /* yacc.c:1652 */ + {} +#line 38581 "gram.c" /* yacc.c:1652 */ + break; + + case 1445: +#line 10061 "gram.y" /* yacc.c:1652 */ + {} +#line 38587 "gram.c" /* yacc.c:1652 */ + break; + + case 1446: +#line 10062 "gram.y" /* yacc.c:1652 */ + {} +#line 38593 "gram.c" /* yacc.c:1652 */ + break; + + case 1447: +#line 10067 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("transaction_isolation", + makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); } +#line 38600 "gram.c" /* yacc.c:1652 */ + break; + + case 1448: +#line 10070 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("transaction_read_only", + makeIntConst(true, (yylsp[-1])), (yylsp[-1])); } +#line 38607 "gram.c" /* yacc.c:1652 */ + break; + + case 1449: +#line 10073 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("transaction_read_only", + makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } +#line 38614 "gram.c" /* yacc.c:1652 */ + break; + + case 1450: +#line 10076 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("transaction_deferrable", + makeIntConst(true, (yylsp[0])), (yylsp[0])); } +#line 38621 "gram.c" /* yacc.c:1652 */ + break; + + case 1451: +#line 10079 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("transaction_deferrable", + makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } +#line 38628 "gram.c" /* yacc.c:1652 */ + break; + + case 1452: +#line 10086 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 38634 "gram.c" /* yacc.c:1652 */ + break; + + case 1453: +#line 10088 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 38640 "gram.c" /* yacc.c:1652 */ + break; + + case 1454: +#line 10090 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 38646 "gram.c" /* yacc.c:1652 */ + break; + + case 1456: +#line 10096 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 38652 "gram.c" /* yacc.c:1652 */ + break; + + case 1457: +#line 10100 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 38658 "gram.c" /* yacc.c:1652 */ + break; + + case 1458: +#line 10101 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 38664 "gram.c" /* yacc.c:1652 */ + break; + + case 1459: +#line 10102 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 38670 "gram.c" /* yacc.c:1652 */ + break; + + case 1460: +#line 10116 "gram.y" /* yacc.c:1652 */ + { + ViewStmt *n = makeNode(ViewStmt); + n->view = (yyvsp[-5].range); + n->view->relpersistence = (yyvsp[-7].ival); + n->aliases = (yyvsp[-4].list); + n->query = (yyvsp[-1].node); + n->replace = false; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].ival); + (yyval.node) = (Node *) n; + } +#line 38686 "gram.c" /* yacc.c:1652 */ + break; + + case 1461: +#line 10129 "gram.y" /* yacc.c:1652 */ + { + ViewStmt *n = makeNode(ViewStmt); + n->view = (yyvsp[-5].range); + n->view->relpersistence = (yyvsp[-7].ival); + n->aliases = (yyvsp[-4].list); + n->query = (yyvsp[-1].node); + n->replace = true; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].ival); + (yyval.node) = (Node *) n; + } +#line 38702 "gram.c" /* yacc.c:1652 */ + break; + + case 1462: +#line 10142 "gram.y" /* yacc.c:1652 */ + { + ViewStmt *n = makeNode(ViewStmt); + n->view = (yyvsp[-7].range); + n->view->relpersistence = (yyvsp[-10].ival); + n->aliases = (yyvsp[-5].list); + n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); + n->replace = false; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].ival); + if (n->withCheckOption != NO_CHECK_OPTION) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("WITH CHECK OPTION not supported on recursive views"), + parser_errposition((yylsp[0])))); + (yyval.node) = (Node *) n; + } +#line 38723 "gram.c" /* yacc.c:1652 */ + break; + + case 1463: +#line 10160 "gram.y" /* yacc.c:1652 */ + { + ViewStmt *n = makeNode(ViewStmt); + n->view = (yyvsp[-7].range); + n->view->relpersistence = (yyvsp[-10].ival); + n->aliases = (yyvsp[-5].list); + n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); + n->replace = true; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].ival); + if (n->withCheckOption != NO_CHECK_OPTION) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("WITH CHECK OPTION not supported on recursive views"), + parser_errposition((yylsp[0])))); + (yyval.node) = (Node *) n; + } +#line 38744 "gram.c" /* yacc.c:1652 */ + break; + + case 1464: +#line 10179 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CASCADED_CHECK_OPTION; } +#line 38750 "gram.c" /* yacc.c:1652 */ + break; + + case 1465: +#line 10180 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CASCADED_CHECK_OPTION; } +#line 38756 "gram.c" /* yacc.c:1652 */ + break; + + case 1466: +#line 10181 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LOCAL_CHECK_OPTION; } +#line 38762 "gram.c" /* yacc.c:1652 */ + break; + + case 1467: +#line 10182 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = NO_CHECK_OPTION; } +#line 38768 "gram.c" /* yacc.c:1652 */ + break; + + case 1468: +#line 10193 "gram.y" /* yacc.c:1652 */ + { + LoadStmt *n = makeNode(LoadStmt); + n->filename = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 38778 "gram.c" /* yacc.c:1652 */ + break; + + case 1469: +#line 10209 "gram.y" /* yacc.c:1652 */ + { + CreatedbStmt *n = makeNode(CreatedbStmt); + n->dbname = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38789 "gram.c" /* yacc.c:1652 */ + break; + + case 1470: +#line 10218 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 38795 "gram.c" /* yacc.c:1652 */ + break; + + case 1471: +#line 10219 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 38801 "gram.c" /* yacc.c:1652 */ + break; + + case 1472: +#line 10223 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 38807 "gram.c" /* yacc.c:1652 */ + break; + + case 1473: +#line 10224 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 38813 "gram.c" /* yacc.c:1652 */ + break; + + case 1474: +#line 10229 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); + } +#line 38821 "gram.c" /* yacc.c:1652 */ + break; + + case 1475: +#line 10233 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 38829 "gram.c" /* yacc.c:1652 */ + break; + + case 1476: +#line 10237 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); + } +#line 38837 "gram.c" /* yacc.c:1652 */ + break; + + case 1477: +#line 10254 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 38843 "gram.c" /* yacc.c:1652 */ + break; + + case 1478: +#line 10255 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup("connection_limit"); } +#line 38849 "gram.c" /* yacc.c:1652 */ + break; + + case 1479: +#line 10256 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 38855 "gram.c" /* yacc.c:1652 */ + break; + + case 1480: +#line 10257 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 38861 "gram.c" /* yacc.c:1652 */ + break; + + case 1481: +#line 10258 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 38867 "gram.c" /* yacc.c:1652 */ + break; + + case 1482: +#line 10259 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 38873 "gram.c" /* yacc.c:1652 */ + break; + + case 1483: +#line 10260 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 38879 "gram.c" /* yacc.c:1652 */ + break; + + case 1484: +#line 10267 "gram.y" /* yacc.c:1652 */ + {} +#line 38885 "gram.c" /* yacc.c:1652 */ + break; + + case 1485: +#line 10268 "gram.y" /* yacc.c:1652 */ + {} +#line 38891 "gram.c" /* yacc.c:1652 */ + break; + + case 1486: +#line 10280 "gram.y" /* yacc.c:1652 */ + { + AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); + n->dbname = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38902 "gram.c" /* yacc.c:1652 */ + break; + + case 1487: +#line 10287 "gram.y" /* yacc.c:1652 */ + { + AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); + n->dbname = (yyvsp[-1].str); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 38913 "gram.c" /* yacc.c:1652 */ + break; + + case 1488: +#line 10294 "gram.y" /* yacc.c:1652 */ + { + AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); + n->dbname = (yyvsp[-3].str); + n->options = list_make1(makeDefElem("tablespace", + (Node *)makeString((yyvsp[0].str)), (yylsp[0]))); + (yyval.node) = (Node *)n; + } +#line 38925 "gram.c" /* yacc.c:1652 */ + break; + + case 1489: +#line 10305 "gram.y" /* yacc.c:1652 */ + { + AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); + n->dbname = (yyvsp[-1].str); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 38936 "gram.c" /* yacc.c:1652 */ + break; + + case 1490: +#line 10322 "gram.y" /* yacc.c:1652 */ + { + DropdbStmt *n = makeNode(DropdbStmt); + n->dbname = (yyvsp[0].str); + n->missing_ok = false; + n->options = NULL; + (yyval.node) = (Node *)n; + } +#line 38948 "gram.c" /* yacc.c:1652 */ + break; + + case 1491: +#line 10330 "gram.y" /* yacc.c:1652 */ + { + DropdbStmt *n = makeNode(DropdbStmt); + n->dbname = (yyvsp[0].str); + n->missing_ok = true; + n->options = NULL; + (yyval.node) = (Node *)n; + } +#line 38960 "gram.c" /* yacc.c:1652 */ + break; + + case 1492: +#line 10338 "gram.y" /* yacc.c:1652 */ + { + DropdbStmt *n = makeNode(DropdbStmt); + n->dbname = (yyvsp[-4].str); + n->missing_ok = false; + n->options = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 38972 "gram.c" /* yacc.c:1652 */ + break; + + case 1493: +#line 10346 "gram.y" /* yacc.c:1652 */ + { + DropdbStmt *n = makeNode(DropdbStmt); + n->dbname = (yyvsp[-4].str); + n->missing_ok = true; + n->options = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 38984 "gram.c" /* yacc.c:1652 */ + break; + + case 1494: +#line 10357 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((Node *) (yyvsp[0].defelt)); + } +#line 38992 "gram.c" /* yacc.c:1652 */ + break; + + case 1495: +#line 10361 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (Node *) (yyvsp[0].defelt)); + } +#line 39000 "gram.c" /* yacc.c:1652 */ + break; + + case 1496: +#line 10372 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem("force", NULL, (yylsp[0])); + } +#line 39008 "gram.c" /* yacc.c:1652 */ + break; + + case 1497: +#line 10384 "gram.y" /* yacc.c:1652 */ + { + AlterCollationStmt *n = makeNode(AlterCollationStmt); + n->collname = (yyvsp[-2].list); + (yyval.node) = (Node *)n; + } +#line 39018 "gram.c" /* yacc.c:1652 */ + break; + + case 1498: +#line 10401 "gram.y" /* yacc.c:1652 */ + { + AlterSystemStmt *n = makeNode(AlterSystemStmt); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 39028 "gram.c" /* yacc.c:1652 */ + break; + + case 1499: +#line 10407 "gram.y" /* yacc.c:1652 */ + { + AlterSystemStmt *n = makeNode(AlterSystemStmt); + n->setstmt = (yyvsp[0].vsetstmt); + (yyval.node) = (Node *)n; + } +#line 39038 "gram.c" /* yacc.c:1652 */ + break; + + case 1500: +#line 10423 "gram.y" /* yacc.c:1652 */ + { + CreateDomainStmt *n = makeNode(CreateDomainStmt); + n->domainname = (yyvsp[-3].list); + n->typeName = (yyvsp[-1].typnam); + SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, + yyscanner); + (yyval.node) = (Node *)n; + } +#line 39051 "gram.c" /* yacc.c:1652 */ + break; + + case 1501: +#line 10436 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'T'; + n->typeName = (yyvsp[-1].list); + n->def = (yyvsp[0].node); + (yyval.node) = (Node *)n; + } +#line 39063 "gram.c" /* yacc.c:1652 */ + break; + + case 1502: +#line 10445 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'N'; + n->typeName = (yyvsp[-3].list); + (yyval.node) = (Node *)n; + } +#line 39074 "gram.c" /* yacc.c:1652 */ + break; + + case 1503: +#line 10453 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'O'; + n->typeName = (yyvsp[-3].list); + (yyval.node) = (Node *)n; + } +#line 39085 "gram.c" /* yacc.c:1652 */ + break; + + case 1504: +#line 10461 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'C'; + n->typeName = (yyvsp[-2].list); + n->def = (yyvsp[0].node); + (yyval.node) = (Node *)n; + } +#line 39097 "gram.c" /* yacc.c:1652 */ + break; + + case 1505: +#line 10470 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'X'; + n->typeName = (yyvsp[-4].list); + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (Node *)n; + } +#line 39111 "gram.c" /* yacc.c:1652 */ + break; + + case 1506: +#line 10481 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'X'; + n->typeName = (yyvsp[-6].list); + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + (yyval.node) = (Node *)n; + } +#line 39125 "gram.c" /* yacc.c:1652 */ + break; + + case 1507: +#line 10492 "gram.y" /* yacc.c:1652 */ + { + AlterDomainStmt *n = makeNode(AlterDomainStmt); + n->subtype = 'V'; + n->typeName = (yyvsp[-3].list); + n->name = (yyvsp[0].str); + (yyval.node) = (Node *)n; + } +#line 39137 "gram.c" /* yacc.c:1652 */ + break; + + case 1508: +#line 10501 "gram.y" /* yacc.c:1652 */ + {} +#line 39143 "gram.c" /* yacc.c:1652 */ + break; + + case 1509: +#line 10502 "gram.y" /* yacc.c:1652 */ + {} +#line 39149 "gram.c" /* yacc.c:1652 */ + break; + + case 1510: +#line 10514 "gram.y" /* yacc.c:1652 */ + { + AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); + n->dictname = (yyvsp[-1].list); + n->options = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 39160 "gram.c" /* yacc.c:1652 */ + break; + + case 1511: +#line 10524 "gram.y" /* yacc.c:1652 */ + { + AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); + n->kind = ALTER_TSCONFIG_ADD_MAPPING; + n->cfgname = (yyvsp[-6].list); + n->tokentype = (yyvsp[-2].list); + n->dicts = (yyvsp[0].list); + n->override = false; + n->replace = false; + (yyval.node) = (Node*)n; + } +#line 39175 "gram.c" /* yacc.c:1652 */ + break; + + case 1512: +#line 10535 "gram.y" /* yacc.c:1652 */ + { + AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); + n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN; + n->cfgname = (yyvsp[-6].list); + n->tokentype = (yyvsp[-2].list); + n->dicts = (yyvsp[0].list); + n->override = true; + n->replace = false; + (yyval.node) = (Node*)n; + } +#line 39190 "gram.c" /* yacc.c:1652 */ + break; + + case 1513: +#line 10546 "gram.y" /* yacc.c:1652 */ + { + AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); + n->kind = ALTER_TSCONFIG_REPLACE_DICT; + n->cfgname = (yyvsp[-6].list); + n->tokentype = NIL; + n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list)); + n->override = false; + n->replace = true; + (yyval.node) = (Node*)n; + } +#line 39205 "gram.c" /* yacc.c:1652 */ + break; + + case 1514: +#line 10557 "gram.y" /* yacc.c:1652 */ + { + AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); + n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN; + n->cfgname = (yyvsp[-8].list); + n->tokentype = (yyvsp[-4].list); + n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list)); + n->override = false; + n->replace = true; + (yyval.node) = (Node*)n; + } +#line 39220 "gram.c" /* yacc.c:1652 */ + break; + + case 1515: +#line 10568 "gram.y" /* yacc.c:1652 */ + { + AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); + n->kind = ALTER_TSCONFIG_DROP_MAPPING; + n->cfgname = (yyvsp[-4].list); + n->tokentype = (yyvsp[0].list); + n->missing_ok = false; + (yyval.node) = (Node*)n; + } +#line 39233 "gram.c" /* yacc.c:1652 */ + break; + + case 1516: +#line 10577 "gram.y" /* yacc.c:1652 */ + { + AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); + n->kind = ALTER_TSCONFIG_DROP_MAPPING; + n->cfgname = (yyvsp[-6].list); + n->tokentype = (yyvsp[0].list); + n->missing_ok = true; + (yyval.node) = (Node*)n; + } +#line 39246 "gram.c" /* yacc.c:1652 */ + break; + + case 1517: +#line 10588 "gram.y" /* yacc.c:1652 */ + {} +#line 39252 "gram.c" /* yacc.c:1652 */ + break; + + case 1518: +#line 10589 "gram.y" /* yacc.c:1652 */ + {} +#line 39258 "gram.c" /* yacc.c:1652 */ + break; + + case 1519: +#line 10605 "gram.y" /* yacc.c:1652 */ + { + CreateConversionStmt *n = makeNode(CreateConversionStmt); + n->conversion_name = (yyvsp[-6].list); + n->for_encoding_name = (yyvsp[-4].str); + n->to_encoding_name = (yyvsp[-2].str); + n->func_name = (yyvsp[0].list); + n->def = (yyvsp[-8].boolean); + (yyval.node) = (Node *)n; + } +#line 39272 "gram.c" /* yacc.c:1652 */ + break; + + case 1520: +#line 10627 "gram.y" /* yacc.c:1652 */ + { + ClusterStmt *n = makeNode(ClusterStmt); + n->relation = (yyvsp[-1].range); + n->indexname = (yyvsp[0].str); + n->options = 0; + if ((yyvsp[-2].boolean)) + n->options |= CLUOPT_VERBOSE; + (yyval.node) = (Node*)n; + } +#line 39286 "gram.c" /* yacc.c:1652 */ + break; + + case 1521: +#line 10637 "gram.y" /* yacc.c:1652 */ + { + ClusterStmt *n = makeNode(ClusterStmt); + n->relation = NULL; + n->indexname = NULL; + n->options = 0; + if ((yyvsp[0].boolean)) + n->options |= CLUOPT_VERBOSE; + (yyval.node) = (Node*)n; + } +#line 39300 "gram.c" /* yacc.c:1652 */ + break; + + case 1522: +#line 10648 "gram.y" /* yacc.c:1652 */ + { + ClusterStmt *n = makeNode(ClusterStmt); + n->relation = (yyvsp[0].range); + n->indexname = (yyvsp[-2].str); + n->options = 0; + if ((yyvsp[-3].boolean)) + n->options |= CLUOPT_VERBOSE; + (yyval.node) = (Node*)n; + } +#line 39314 "gram.c" /* yacc.c:1652 */ + break; + + case 1523: +#line 10660 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 39320 "gram.c" /* yacc.c:1652 */ + break; + + case 1524: +#line 10661 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 39326 "gram.c" /* yacc.c:1652 */ + break; + + case 1525: +#line 10674 "gram.y" /* yacc.c:1652 */ + { + VacuumStmt *n = makeNode(VacuumStmt); + n->options = NIL; + if ((yyvsp[-4].boolean)) + n->options = lappend(n->options, + makeDefElem("full", NULL, (yylsp[-4]))); + if ((yyvsp[-3].boolean)) + n->options = lappend(n->options, + makeDefElem("freeze", NULL, (yylsp[-3]))); + if ((yyvsp[-2].boolean)) + n->options = lappend(n->options, + makeDefElem("verbose", NULL, (yylsp[-2]))); + if ((yyvsp[-1].boolean)) + n->options = lappend(n->options, + makeDefElem("analyze", NULL, (yylsp[-1]))); + n->rels = (yyvsp[0].list); + n->is_vacuumcmd = true; + (yyval.node) = (Node *)n; + } +#line 39350 "gram.c" /* yacc.c:1652 */ + break; + + case 1526: +#line 10694 "gram.y" /* yacc.c:1652 */ + { + VacuumStmt *n = makeNode(VacuumStmt); + n->options = (yyvsp[-2].list); + n->rels = (yyvsp[0].list); + n->is_vacuumcmd = true; + (yyval.node) = (Node *) n; + } +#line 39362 "gram.c" /* yacc.c:1652 */ + break; + + case 1527: +#line 10704 "gram.y" /* yacc.c:1652 */ + { + VacuumStmt *n = makeNode(VacuumStmt); + n->options = NIL; + if ((yyvsp[-1].boolean)) + n->options = lappend(n->options, + makeDefElem("verbose", NULL, (yylsp[-1]))); + n->rels = (yyvsp[0].list); + n->is_vacuumcmd = false; + (yyval.node) = (Node *)n; + } +#line 39377 "gram.c" /* yacc.c:1652 */ + break; + + case 1528: +#line 10715 "gram.y" /* yacc.c:1652 */ + { + VacuumStmt *n = makeNode(VacuumStmt); + n->options = (yyvsp[-2].list); + n->rels = (yyvsp[0].list); + n->is_vacuumcmd = false; + (yyval.node) = (Node *) n; + } +#line 39389 "gram.c" /* yacc.c:1652 */ + break; + + case 1529: +#line 10726 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 39397 "gram.c" /* yacc.c:1652 */ + break; + + case 1530: +#line 10730 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 39405 "gram.c" /* yacc.c:1652 */ + break; + + case 1531: +#line 10736 "gram.y" /* yacc.c:1652 */ + {} +#line 39411 "gram.c" /* yacc.c:1652 */ + break; + + case 1532: +#line 10737 "gram.y" /* yacc.c:1652 */ + {} +#line 39417 "gram.c" /* yacc.c:1652 */ + break; + + case 1533: +#line 10742 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 39425 "gram.c" /* yacc.c:1652 */ + break; + + case 1534: +#line 10748 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 39431 "gram.c" /* yacc.c:1652 */ + break; + + case 1535: +#line 10749 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "analyze"; } +#line 39437 "gram.c" /* yacc.c:1652 */ + break; + + case 1536: +#line 10753 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 39443 "gram.c" /* yacc.c:1652 */ + break; + + case 1537: +#line 10754 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[0].value); } +#line 39449 "gram.c" /* yacc.c:1652 */ + break; + + case 1538: +#line 10755 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 39455 "gram.c" /* yacc.c:1652 */ + break; + + case 1539: +#line 10759 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 39461 "gram.c" /* yacc.c:1652 */ + break; + + case 1540: +#line 10760 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 39467 "gram.c" /* yacc.c:1652 */ + break; + + case 1541: +#line 10764 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 39473 "gram.c" /* yacc.c:1652 */ + break; + + case 1542: +#line 10765 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 39479 "gram.c" /* yacc.c:1652 */ + break; + + case 1543: +#line 10768 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 39485 "gram.c" /* yacc.c:1652 */ + break; + + case 1544: +#line 10769 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 39491 "gram.c" /* yacc.c:1652 */ + break; + + case 1545: +#line 10772 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 39497 "gram.c" /* yacc.c:1652 */ + break; + + case 1546: +#line 10773 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 39503 "gram.c" /* yacc.c:1652 */ + break; + + case 1547: +#line 10777 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 39509 "gram.c" /* yacc.c:1652 */ + break; + + case 1548: +#line 10778 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 39515 "gram.c" /* yacc.c:1652 */ + break; + + case 1549: +#line 10783 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list)); + } +#line 39523 "gram.c" /* yacc.c:1652 */ + break; + + case 1550: +#line 10790 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 39529 "gram.c" /* yacc.c:1652 */ + break; + + case 1551: +#line 10792 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 39535 "gram.c" /* yacc.c:1652 */ + break; + + case 1552: +#line 10796 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 39541 "gram.c" /* yacc.c:1652 */ + break; + + case 1553: +#line 10797 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 39547 "gram.c" /* yacc.c:1652 */ + break; + + case 1554: +#line 10811 "gram.y" /* yacc.c:1652 */ + { + ExplainStmt *n = makeNode(ExplainStmt); + n->query = (yyvsp[0].node); + n->options = NIL; + (yyval.node) = (Node *) n; + } +#line 39558 "gram.c" /* yacc.c:1652 */ + break; + + case 1555: +#line 10818 "gram.y" /* yacc.c:1652 */ + { + ExplainStmt *n = makeNode(ExplainStmt); + n->query = (yyvsp[0].node); + n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2]))); + if ((yyvsp[-1].boolean)) + n->options = lappend(n->options, + makeDefElem("verbose", NULL, (yylsp[-1]))); + (yyval.node) = (Node *) n; + } +#line 39572 "gram.c" /* yacc.c:1652 */ + break; + + case 1556: +#line 10828 "gram.y" /* yacc.c:1652 */ + { + ExplainStmt *n = makeNode(ExplainStmt); + n->query = (yyvsp[0].node); + n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1]))); + (yyval.node) = (Node *) n; + } +#line 39583 "gram.c" /* yacc.c:1652 */ + break; + + case 1557: +#line 10835 "gram.y" /* yacc.c:1652 */ + { + ExplainStmt *n = makeNode(ExplainStmt); + n->query = (yyvsp[0].node); + n->options = (yyvsp[-2].list); + (yyval.node) = (Node *) n; + } +#line 39594 "gram.c" /* yacc.c:1652 */ + break; + + case 1567: +#line 10857 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 39602 "gram.c" /* yacc.c:1652 */ + break; + + case 1568: +#line 10861 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 39610 "gram.c" /* yacc.c:1652 */ + break; + + case 1569: +#line 10868 "gram.y" /* yacc.c:1652 */ + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 39618 "gram.c" /* yacc.c:1652 */ + break; + + case 1570: +#line 10874 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 39624 "gram.c" /* yacc.c:1652 */ + break; + + case 1571: +#line 10875 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "analyze"; } +#line 39630 "gram.c" /* yacc.c:1652 */ + break; + + case 1572: +#line 10879 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 39636 "gram.c" /* yacc.c:1652 */ + break; + + case 1573: +#line 10880 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[0].value); } +#line 39642 "gram.c" /* yacc.c:1652 */ + break; + + case 1574: +#line 10881 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 39648 "gram.c" /* yacc.c:1652 */ + break; + + case 1575: +#line 10892 "gram.y" /* yacc.c:1652 */ + { + PrepareStmt *n = makeNode(PrepareStmt); + n->name = (yyvsp[-3].str); + n->argtypes = (yyvsp[-2].list); + n->query = (yyvsp[0].node); + (yyval.node) = (Node *) n; + } +#line 39660 "gram.c" /* yacc.c:1652 */ + break; + + case 1576: +#line 10901 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 39666 "gram.c" /* yacc.c:1652 */ + break; + + case 1577: +#line 10902 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 39672 "gram.c" /* yacc.c:1652 */ + break; + + case 1582: +#line 10920 "gram.y" /* yacc.c:1652 */ + { + ExecuteStmt *n = makeNode(ExecuteStmt); + n->name = (yyvsp[-1].str); + n->params = (yyvsp[0].list); + (yyval.node) = (Node *) n; + } +#line 39683 "gram.c" /* yacc.c:1652 */ + break; + + case 1583: +#line 10928 "gram.y" /* yacc.c:1652 */ + { + CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); + ExecuteStmt *n = makeNode(ExecuteStmt); + n->name = (yyvsp[-2].str); + n->params = (yyvsp[-1].list); + ctas->query = (Node *) n; + ctas->into = (yyvsp[-5].into); + ctas->relkind = OBJECT_TABLE; + ctas->is_select_into = false; + ctas->if_not_exists = false; + /* cram additional flags into the IntoClause */ + (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-7].ival); + (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) ctas; + } +#line 39703 "gram.c" /* yacc.c:1652 */ + break; + + case 1584: +#line 10945 "gram.y" /* yacc.c:1652 */ + { + CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); + ExecuteStmt *n = makeNode(ExecuteStmt); + n->name = (yyvsp[-2].str); + n->params = (yyvsp[-1].list); + ctas->query = (Node *) n; + ctas->into = (yyvsp[-5].into); + ctas->relkind = OBJECT_TABLE; + ctas->is_select_into = false; + ctas->if_not_exists = true; + /* cram additional flags into the IntoClause */ + (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-10].ival); + (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (Node *) ctas; + } +#line 39723 "gram.c" /* yacc.c:1652 */ + break; + + case 1585: +#line 10962 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 39729 "gram.c" /* yacc.c:1652 */ + break; + + case 1586: +#line 10963 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 39735 "gram.c" /* yacc.c:1652 */ + break; + + case 1587: +#line 10974 "gram.y" /* yacc.c:1652 */ + { + DeallocateStmt *n = makeNode(DeallocateStmt); + n->name = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 39745 "gram.c" /* yacc.c:1652 */ + break; + + case 1588: +#line 10980 "gram.y" /* yacc.c:1652 */ + { + DeallocateStmt *n = makeNode(DeallocateStmt); + n->name = (yyvsp[0].str); + (yyval.node) = (Node *) n; + } +#line 39755 "gram.c" /* yacc.c:1652 */ + break; + + case 1589: +#line 10986 "gram.y" /* yacc.c:1652 */ + { + DeallocateStmt *n = makeNode(DeallocateStmt); + n->name = NULL; + (yyval.node) = (Node *) n; + } +#line 39765 "gram.c" /* yacc.c:1652 */ + break; + + case 1590: +#line 10992 "gram.y" /* yacc.c:1652 */ + { + DeallocateStmt *n = makeNode(DeallocateStmt); + n->name = NULL; + (yyval.node) = (Node *) n; + } +#line 39775 "gram.c" /* yacc.c:1652 */ + break; + + case 1591: +#line 11009 "gram.y" /* yacc.c:1652 */ + { + (yyvsp[-2].istmt)->relation = (yyvsp[-3].range); + (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict); + (yyvsp[-2].istmt)->returningList = (yyvsp[0].list); + (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with); + (yyval.node) = (Node *) (yyvsp[-2].istmt); + } +#line 39787 "gram.c" /* yacc.c:1652 */ + break; + + case 1592: +#line 11026 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + } +#line 39795 "gram.c" /* yacc.c:1652 */ + break; + + case 1593: +#line 11030 "gram.y" /* yacc.c:1652 */ + { + (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL); + (yyval.range) = (yyvsp[-2].range); + } +#line 39804 "gram.c" /* yacc.c:1652 */ + break; + + case 1594: +#line 11038 "gram.y" /* yacc.c:1652 */ + { + (yyval.istmt) = makeNode(InsertStmt); + (yyval.istmt)->cols = NIL; + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 39814 "gram.c" /* yacc.c:1652 */ + break; + + case 1595: +#line 11044 "gram.y" /* yacc.c:1652 */ + { + (yyval.istmt) = makeNode(InsertStmt); + (yyval.istmt)->cols = NIL; + (yyval.istmt)->override = (yyvsp[-2].ival); + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 39825 "gram.c" /* yacc.c:1652 */ + break; + + case 1596: +#line 11051 "gram.y" /* yacc.c:1652 */ + { + (yyval.istmt) = makeNode(InsertStmt); + (yyval.istmt)->cols = (yyvsp[-2].list); + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 39835 "gram.c" /* yacc.c:1652 */ + break; + + case 1597: +#line 11057 "gram.y" /* yacc.c:1652 */ + { + (yyval.istmt) = makeNode(InsertStmt); + (yyval.istmt)->cols = (yyvsp[-5].list); + (yyval.istmt)->override = (yyvsp[-2].ival); + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 39846 "gram.c" /* yacc.c:1652 */ + break; + + case 1598: +#line 11064 "gram.y" /* yacc.c:1652 */ + { + (yyval.istmt) = makeNode(InsertStmt); + (yyval.istmt)->cols = NIL; + (yyval.istmt)->selectStmt = NULL; + } +#line 39856 "gram.c" /* yacc.c:1652 */ + break; + + case 1599: +#line 11072 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OVERRIDING_USER_VALUE; } +#line 39862 "gram.c" /* yacc.c:1652 */ + break; + + case 1600: +#line 11073 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; } +#line 39868 "gram.c" /* yacc.c:1652 */ + break; + + case 1601: +#line 11078 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 39874 "gram.c" /* yacc.c:1652 */ + break; + + case 1602: +#line 11080 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 39880 "gram.c" /* yacc.c:1652 */ + break; + + case 1603: +#line 11085 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = (yyvsp[-1].str); + (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.target)->val = NULL; + (yyval.target)->location = (yylsp[-1]); + } +#line 39892 "gram.c" /* yacc.c:1652 */ + break; + + case 1604: +#line 11096 "gram.y" /* yacc.c:1652 */ + { + (yyval.onconflict) = makeNode(OnConflictClause); + (yyval.onconflict)->action = ONCONFLICT_UPDATE; + (yyval.onconflict)->infer = (yyvsp[-5].infer); + (yyval.onconflict)->targetList = (yyvsp[-1].list); + (yyval.onconflict)->whereClause = (yyvsp[0].node); + (yyval.onconflict)->location = (yylsp[-7]); + } +#line 39905 "gram.c" /* yacc.c:1652 */ + break; + + case 1605: +#line 11106 "gram.y" /* yacc.c:1652 */ + { + (yyval.onconflict) = makeNode(OnConflictClause); + (yyval.onconflict)->action = ONCONFLICT_NOTHING; + (yyval.onconflict)->infer = (yyvsp[-2].infer); + (yyval.onconflict)->targetList = NIL; + (yyval.onconflict)->whereClause = NULL; + (yyval.onconflict)->location = (yylsp[-4]); + } +#line 39918 "gram.c" /* yacc.c:1652 */ + break; + + case 1606: +#line 11115 "gram.y" /* yacc.c:1652 */ + { + (yyval.onconflict) = NULL; + } +#line 39926 "gram.c" /* yacc.c:1652 */ + break; + + case 1607: +#line 11122 "gram.y" /* yacc.c:1652 */ + { + (yyval.infer) = makeNode(InferClause); + (yyval.infer)->indexElems = (yyvsp[-2].list); + (yyval.infer)->whereClause = (yyvsp[0].node); + (yyval.infer)->conname = NULL; + (yyval.infer)->location = (yylsp[-3]); + } +#line 39938 "gram.c" /* yacc.c:1652 */ + break; + + case 1608: +#line 11131 "gram.y" /* yacc.c:1652 */ + { + (yyval.infer) = makeNode(InferClause); + (yyval.infer)->indexElems = NIL; + (yyval.infer)->whereClause = NULL; + (yyval.infer)->conname = (yyvsp[0].str); + (yyval.infer)->location = (yylsp[-2]); + } +#line 39950 "gram.c" /* yacc.c:1652 */ + break; + + case 1609: +#line 11139 "gram.y" /* yacc.c:1652 */ + { + (yyval.infer) = NULL; + } +#line 39958 "gram.c" /* yacc.c:1652 */ + break; + + case 1610: +#line 11145 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 39964 "gram.c" /* yacc.c:1652 */ + break; + + case 1611: +#line 11146 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 39970 "gram.c" /* yacc.c:1652 */ + break; + + case 1612: +#line 11159 "gram.y" /* yacc.c:1652 */ + { + DeleteStmt *n = makeNode(DeleteStmt); + n->relation = (yyvsp[-3].range); + n->usingClause = (yyvsp[-2].list); + n->whereClause = (yyvsp[-1].node); + n->returningList = (yyvsp[0].list); + n->withClause = (yyvsp[-6].with); + (yyval.node) = (Node *)n; + } +#line 39984 "gram.c" /* yacc.c:1652 */ + break; + + case 1613: +#line 11171 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 39990 "gram.c" /* yacc.c:1652 */ + break; + + case 1614: +#line 11172 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 39996 "gram.c" /* yacc.c:1652 */ + break; + + case 1615: +#line 11184 "gram.y" /* yacc.c:1652 */ + { + LockStmt *n = makeNode(LockStmt); + + n->relations = (yyvsp[-2].list); + n->mode = (yyvsp[-1].ival); + n->nowait = (yyvsp[0].boolean); + (yyval.node) = (Node *)n; + } +#line 40009 "gram.c" /* yacc.c:1652 */ + break; + + case 1616: +#line 11194 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-1].ival); } +#line 40015 "gram.c" /* yacc.c:1652 */ + break; + + case 1617: +#line 11195 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = AccessExclusiveLock; } +#line 40021 "gram.c" /* yacc.c:1652 */ + break; + + case 1618: +#line 11198 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = AccessShareLock; } +#line 40027 "gram.c" /* yacc.c:1652 */ + break; + + case 1619: +#line 11199 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RowShareLock; } +#line 40033 "gram.c" /* yacc.c:1652 */ + break; + + case 1620: +#line 11200 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = RowExclusiveLock; } +#line 40039 "gram.c" /* yacc.c:1652 */ + break; + + case 1621: +#line 11201 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ShareUpdateExclusiveLock; } +#line 40045 "gram.c" /* yacc.c:1652 */ + break; + + case 1622: +#line 11202 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ShareLock; } +#line 40051 "gram.c" /* yacc.c:1652 */ + break; + + case 1623: +#line 11203 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ShareRowExclusiveLock; } +#line 40057 "gram.c" /* yacc.c:1652 */ + break; + + case 1624: +#line 11204 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ExclusiveLock; } +#line 40063 "gram.c" /* yacc.c:1652 */ + break; + + case 1625: +#line 11205 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = AccessExclusiveLock; } +#line 40069 "gram.c" /* yacc.c:1652 */ + break; + + case 1626: +#line 11208 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 40075 "gram.c" /* yacc.c:1652 */ + break; + + case 1627: +#line 11209 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 40081 "gram.c" /* yacc.c:1652 */ + break; + + case 1628: +#line 11213 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LockWaitError; } +#line 40087 "gram.c" /* yacc.c:1652 */ + break; + + case 1629: +#line 11214 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LockWaitSkip; } +#line 40093 "gram.c" /* yacc.c:1652 */ + break; + + case 1630: +#line 11215 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LockWaitBlock; } +#line 40099 "gram.c" /* yacc.c:1652 */ + break; + + case 1631: +#line 11231 "gram.y" /* yacc.c:1652 */ + { + UpdateStmt *n = makeNode(UpdateStmt); + n->relation = (yyvsp[-5].range); + n->targetList = (yyvsp[-3].list); + n->fromClause = (yyvsp[-2].list); + n->whereClause = (yyvsp[-1].node); + n->returningList = (yyvsp[0].list); + n->withClause = (yyvsp[-7].with); + (yyval.node) = (Node *)n; + } +#line 40114 "gram.c" /* yacc.c:1652 */ + break; + + case 1632: +#line 11244 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 40120 "gram.c" /* yacc.c:1652 */ + break; + + case 1633: +#line 11245 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } +#line 40126 "gram.c" /* yacc.c:1652 */ + break; + + case 1634: +#line 11250 "gram.y" /* yacc.c:1652 */ + { + (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node); + (yyval.list) = list_make1((yyvsp[-2].target)); + } +#line 40135 "gram.c" /* yacc.c:1652 */ + break; + + case 1635: +#line 11255 "gram.y" /* yacc.c:1652 */ + { + int ncolumns = list_length((yyvsp[-3].list)); + int i = 1; + ListCell *col_cell; + + /* Create a MultiAssignRef source for each target */ + foreach(col_cell, (yyvsp[-3].list)) + { + ResTarget *res_col = (ResTarget *) lfirst(col_cell); + MultiAssignRef *r = makeNode(MultiAssignRef); + + r->source = (Node *) (yyvsp[0].node); + r->colno = i; + r->ncolumns = ncolumns; + res_col->val = (Node *) r; + i++; + } + + (yyval.list) = (yyvsp[-3].list); + } +#line 40160 "gram.c" /* yacc.c:1652 */ + break; + + case 1636: +#line 11279 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = (yyvsp[-1].str); + (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.target)->val = NULL; /* upper production sets this */ + (yyval.target)->location = (yylsp[-1]); + } +#line 40172 "gram.c" /* yacc.c:1652 */ + break; + + case 1637: +#line 11289 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 40178 "gram.c" /* yacc.c:1652 */ + break; + + case 1638: +#line 11290 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } +#line 40184 "gram.c" /* yacc.c:1652 */ + break; + + case 1639: +#line 11301 "gram.y" /* yacc.c:1652 */ + { + DeclareCursorStmt *n = makeNode(DeclareCursorStmt); + n->portalname = (yyvsp[-5].str); + /* currently we always set FAST_PLAN option */ + n->options = (yyvsp[-4].ival) | (yyvsp[-2].ival) | CURSOR_OPT_FAST_PLAN; + n->query = (yyvsp[0].node); + (yyval.node) = (Node *)n; + } +#line 40197 "gram.c" /* yacc.c:1652 */ + break; + + case 1640: +#line 11311 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 40203 "gram.c" /* yacc.c:1652 */ + break; + + case 1641: +#line 11314 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40209 "gram.c" /* yacc.c:1652 */ + break; + + case 1642: +#line 11315 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; } +#line 40215 "gram.c" /* yacc.c:1652 */ + break; + + case 1643: +#line 11316 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; } +#line 40221 "gram.c" /* yacc.c:1652 */ + break; + + case 1644: +#line 11317 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; } +#line 40227 "gram.c" /* yacc.c:1652 */ + break; + + case 1645: +#line 11318 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; } +#line 40233 "gram.c" /* yacc.c:1652 */ + break; + + case 1646: +#line 11321 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40239 "gram.c" /* yacc.c:1652 */ + break; + + case 1647: +#line 11322 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CURSOR_OPT_HOLD; } +#line 40245 "gram.c" /* yacc.c:1652 */ + break; + + case 1648: +#line 11323 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40251 "gram.c" /* yacc.c:1652 */ + break; + + case 1651: +#line 11376 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 40257 "gram.c" /* yacc.c:1652 */ + break; + + case 1652: +#line 11377 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 40263 "gram.c" /* yacc.c:1652 */ + break; + + case 1653: +#line 11392 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40269 "gram.c" /* yacc.c:1652 */ + break; + + case 1654: +#line 11394 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, + NULL, NULL, + yyscanner); + (yyval.node) = (yyvsp[-1].node); + } +#line 40280 "gram.c" /* yacc.c:1652 */ + break; + + case 1655: +#line 11401 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), + (yyvsp[0].selectlimit), + NULL, + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 40292 "gram.c" /* yacc.c:1652 */ + break; + + case 1656: +#line 11409 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), + (yyvsp[-1].selectlimit), + NULL, + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 40304 "gram.c" /* yacc.c:1652 */ + break; + + case 1657: +#line 11417 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL, + NULL, + (yyvsp[-1].with), + yyscanner); + (yyval.node) = (yyvsp[0].node); + } +#line 40316 "gram.c" /* yacc.c:1652 */ + break; + + case 1658: +#line 11425 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, + NULL, + (yyvsp[-2].with), + yyscanner); + (yyval.node) = (yyvsp[-1].node); + } +#line 40328 "gram.c" /* yacc.c:1652 */ + break; + + case 1659: +#line 11433 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), + (yyvsp[0].selectlimit), + (yyvsp[-4].with), + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 40340 "gram.c" /* yacc.c:1652 */ + break; + + case 1660: +#line 11441 "gram.y" /* yacc.c:1652 */ + { + insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), + (yyvsp[-1].selectlimit), + (yyvsp[-4].with), + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 40352 "gram.c" /* yacc.c:1652 */ + break; + + case 1661: +#line 11451 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40358 "gram.c" /* yacc.c:1652 */ + break; + + case 1662: +#line 11452 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40364 "gram.c" /* yacc.c:1652 */ + break; + + case 1663: +#line 11482 "gram.y" /* yacc.c:1652 */ + { + SelectStmt *n = makeNode(SelectStmt); + n->targetList = (yyvsp[-6].list); + n->intoClause = (yyvsp[-5].into); + n->fromClause = (yyvsp[-4].list); + n->whereClause = (yyvsp[-3].node); + n->groupClause = (yyvsp[-2].list); + n->havingClause = (yyvsp[-1].node); + n->windowClause = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 40380 "gram.c" /* yacc.c:1652 */ + break; + + case 1664: +#line 11496 "gram.y" /* yacc.c:1652 */ + { + SelectStmt *n = makeNode(SelectStmt); + n->distinctClause = (yyvsp[-7].list); + n->targetList = (yyvsp[-6].list); + n->intoClause = (yyvsp[-5].into); + n->fromClause = (yyvsp[-4].list); + n->whereClause = (yyvsp[-3].node); + n->groupClause = (yyvsp[-2].list); + n->havingClause = (yyvsp[-1].node); + n->windowClause = (yyvsp[0].list); + (yyval.node) = (Node *)n; + } +#line 40397 "gram.c" /* yacc.c:1652 */ + break; + + case 1665: +#line 11508 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40403 "gram.c" /* yacc.c:1652 */ + break; + + case 1666: +#line 11510 "gram.y" /* yacc.c:1652 */ + { + /* 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[0].range)); + (yyval.node) = (Node *)n; + } +#line 40426 "gram.c" /* yacc.c:1652 */ + break; + + case 1667: +#line 11529 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); + } +#line 40434 "gram.c" /* yacc.c:1652 */ + break; + + case 1668: +#line 11533 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); + } +#line 40442 "gram.c" /* yacc.c:1652 */ + break; + + case 1669: +#line 11537 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); + } +#line 40450 "gram.c" /* yacc.c:1652 */ + break; + + case 1670: +#line 11554 "gram.y" /* yacc.c:1652 */ + { + (yyval.with) = makeNode(WithClause); + (yyval.with)->ctes = (yyvsp[0].list); + (yyval.with)->recursive = false; + (yyval.with)->location = (yylsp[-1]); + } +#line 40461 "gram.c" /* yacc.c:1652 */ + break; + + case 1671: +#line 11561 "gram.y" /* yacc.c:1652 */ + { + (yyval.with) = makeNode(WithClause); + (yyval.with)->ctes = (yyvsp[0].list); + (yyval.with)->recursive = false; + (yyval.with)->location = (yylsp[-1]); + } +#line 40472 "gram.c" /* yacc.c:1652 */ + break; + + case 1672: +#line 11568 "gram.y" /* yacc.c:1652 */ + { + (yyval.with) = makeNode(WithClause); + (yyval.with)->ctes = (yyvsp[0].list); + (yyval.with)->recursive = true; + (yyval.with)->location = (yylsp[-2]); + } +#line 40483 "gram.c" /* yacc.c:1652 */ + break; + + case 1673: +#line 11577 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 40489 "gram.c" /* yacc.c:1652 */ + break; + + case 1674: +#line 11578 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 40495 "gram.c" /* yacc.c:1652 */ + break; + + case 1675: +#line 11582 "gram.y" /* yacc.c:1652 */ + { + CommonTableExpr *n = makeNode(CommonTableExpr); + n->ctename = (yyvsp[-6].str); + n->aliascolnames = (yyvsp[-5].list); + n->ctematerialized = (yyvsp[-3].ival); + n->ctequery = (yyvsp[-1].node); + n->location = (yylsp[-6]); + (yyval.node) = (Node *) n; + } +#line 40509 "gram.c" /* yacc.c:1652 */ + break; + + case 1676: +#line 11594 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CTEMaterializeAlways; } +#line 40515 "gram.c" /* yacc.c:1652 */ + break; + + case 1677: +#line 11595 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CTEMaterializeNever; } +#line 40521 "gram.c" /* yacc.c:1652 */ + break; + + case 1678: +#line 11596 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = CTEMaterializeDefault; } +#line 40527 "gram.c" /* yacc.c:1652 */ + break; + + case 1679: +#line 11600 "gram.y" /* yacc.c:1652 */ + { (yyval.with) = (yyvsp[0].with); } +#line 40533 "gram.c" /* yacc.c:1652 */ + break; + + case 1680: +#line 11601 "gram.y" /* yacc.c:1652 */ + { (yyval.with) = NULL; } +#line 40539 "gram.c" /* yacc.c:1652 */ + break; + + case 1681: +#line 11606 "gram.y" /* yacc.c:1652 */ + { + (yyval.into) = makeNode(IntoClause); + (yyval.into)->rel = (yyvsp[0].range); + (yyval.into)->colNames = NIL; + (yyval.into)->options = NIL; + (yyval.into)->onCommit = ONCOMMIT_NOOP; + (yyval.into)->tableSpaceName = NULL; + (yyval.into)->viewQuery = NULL; + (yyval.into)->skipData = false; + } +#line 40554 "gram.c" /* yacc.c:1652 */ + break; + + case 1682: +#line 11617 "gram.y" /* yacc.c:1652 */ + { (yyval.into) = NULL; } +#line 40560 "gram.c" /* yacc.c:1652 */ + break; + + case 1683: +#line 11626 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; + } +#line 40569 "gram.c" /* yacc.c:1652 */ + break; + + case 1684: +#line 11631 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; + } +#line 40578 "gram.c" /* yacc.c:1652 */ + break; + + case 1685: +#line 11636 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; + } +#line 40587 "gram.c" /* yacc.c:1652 */ + break; + + case 1686: +#line 11641 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; + } +#line 40596 "gram.c" /* yacc.c:1652 */ + break; + + case 1687: +#line 11646 "gram.y" /* yacc.c:1652 */ + { + ereport(WARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-3])))); + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; + } +#line 40608 "gram.c" /* yacc.c:1652 */ + break; + + case 1688: +#line 11654 "gram.y" /* yacc.c:1652 */ + { + ereport(WARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-3])))); + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; + } +#line 40620 "gram.c" /* yacc.c:1652 */ + break; + + case 1689: +#line 11662 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; + } +#line 40629 "gram.c" /* yacc.c:1652 */ + break; + + case 1690: +#line 11667 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; + } +#line 40638 "gram.c" /* yacc.c:1652 */ + break; + + case 1691: +#line 11672 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; + } +#line 40647 "gram.c" /* yacc.c:1652 */ + break; + + case 1692: +#line 11678 "gram.y" /* yacc.c:1652 */ + {} +#line 40653 "gram.c" /* yacc.c:1652 */ + break; + + case 1693: +#line 11679 "gram.y" /* yacc.c:1652 */ + {} +#line 40659 "gram.c" /* yacc.c:1652 */ + break; + + case 1694: +#line 11683 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 40665 "gram.c" /* yacc.c:1652 */ + break; + + case 1695: +#line 11684 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 40671 "gram.c" /* yacc.c:1652 */ + break; + + case 1696: +#line 11685 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 40677 "gram.c" /* yacc.c:1652 */ + break; + + case 1697: +#line 11692 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(NIL); } +#line 40683 "gram.c" /* yacc.c:1652 */ + break; + + case 1698: +#line 11693 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 40689 "gram.c" /* yacc.c:1652 */ + break; + + case 1699: +#line 11697 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL;} +#line 40695 "gram.c" /* yacc.c:1652 */ + break; + + case 1700: +#line 11698 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 40701 "gram.c" /* yacc.c:1652 */ + break; + + case 1701: +#line 11702 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list);} +#line 40707 "gram.c" /* yacc.c:1652 */ + break; + + case 1702: +#line 11703 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 40713 "gram.c" /* yacc.c:1652 */ + break; + + case 1703: +#line 11707 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 40719 "gram.c" /* yacc.c:1652 */ + break; + + case 1704: +#line 11711 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].sortby)); } +#line 40725 "gram.c" /* yacc.c:1652 */ + break; + + case 1705: +#line 11712 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } +#line 40731 "gram.c" /* yacc.c:1652 */ + break; + + case 1706: +#line 11716 "gram.y" /* yacc.c:1652 */ + { + (yyval.sortby) = makeNode(SortBy); + (yyval.sortby)->node = (yyvsp[-3].node); + (yyval.sortby)->sortby_dir = SORTBY_USING; + (yyval.sortby)->sortby_nulls = (yyvsp[0].ival); + (yyval.sortby)->useOp = (yyvsp[-1].list); + (yyval.sortby)->location = (yylsp[-1]); + } +#line 40744 "gram.c" /* yacc.c:1652 */ + break; + + case 1707: +#line 11725 "gram.y" /* yacc.c:1652 */ + { + (yyval.sortby) = makeNode(SortBy); + (yyval.sortby)->node = (yyvsp[-2].node); + (yyval.sortby)->sortby_dir = (yyvsp[-1].ival); + (yyval.sortby)->sortby_nulls = (yyvsp[0].ival); + (yyval.sortby)->useOp = NIL; + (yyval.sortby)->location = -1; /* no operator */ + } +#line 40757 "gram.c" /* yacc.c:1652 */ + break; + + case 1708: +#line 11738 "gram.y" /* yacc.c:1652 */ + { + (yyval.selectlimit) = (yyvsp[-1].selectlimit); + ((yyval.selectlimit))->limitOffset = (yyvsp[0].node); + } +#line 40766 "gram.c" /* yacc.c:1652 */ + break; + + case 1709: +#line 11743 "gram.y" /* yacc.c:1652 */ + { + (yyval.selectlimit) = (yyvsp[0].selectlimit); + ((yyval.selectlimit))->limitOffset = (yyvsp[-1].node); + } +#line 40775 "gram.c" /* yacc.c:1652 */ + break; + + case 1710: +#line 11748 "gram.y" /* yacc.c:1652 */ + { + (yyval.selectlimit) = (yyvsp[0].selectlimit); + } +#line 40783 "gram.c" /* yacc.c:1652 */ + break; + + case 1711: +#line 11752 "gram.y" /* yacc.c:1652 */ + { + SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); + n->limitOffset = (yyvsp[0].node); + n->limitCount = NULL; + n->limitOption = LIMIT_OPTION_COUNT; + (yyval.selectlimit) = n; + } +#line 40795 "gram.c" /* yacc.c:1652 */ + break; + + case 1712: +#line 11762 "gram.y" /* yacc.c:1652 */ + { (yyval.selectlimit) = (yyvsp[0].selectlimit); } +#line 40801 "gram.c" /* yacc.c:1652 */ + break; + + case 1713: +#line 11763 "gram.y" /* yacc.c:1652 */ + { (yyval.selectlimit) = NULL; } +#line 40807 "gram.c" /* yacc.c:1652 */ + break; + + case 1714: +#line 11768 "gram.y" /* yacc.c:1652 */ + { + SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); + n->limitOffset = NULL; + n->limitCount = (yyvsp[0].node); + n->limitOption = LIMIT_OPTION_COUNT; + (yyval.selectlimit) = n; + } +#line 40819 "gram.c" /* yacc.c:1652 */ + break; + + case 1715: +#line 11776 "gram.y" /* yacc.c:1652 */ + { + /* 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[-3])))); + } +#line 40832 "gram.c" /* yacc.c:1652 */ + break; + + case 1716: +#line 11792 "gram.y" /* yacc.c:1652 */ + { + SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); + n->limitOffset = NULL; + n->limitCount = (yyvsp[-2].node); + n->limitOption = LIMIT_OPTION_COUNT; + (yyval.selectlimit) = n; + } +#line 40844 "gram.c" /* yacc.c:1652 */ + break; + + case 1717: +#line 11800 "gram.y" /* yacc.c:1652 */ + { + SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); + n->limitOffset = NULL; + n->limitCount = (yyvsp[-3].node); + n->limitOption = LIMIT_OPTION_WITH_TIES; + (yyval.selectlimit) = n; + } +#line 40856 "gram.c" /* yacc.c:1652 */ + break; + + case 1718: +#line 11808 "gram.y" /* yacc.c:1652 */ + { + SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); + n->limitOffset = NULL; + n->limitCount = makeIntConst(1, -1); + n->limitOption = LIMIT_OPTION_COUNT; + (yyval.selectlimit) = n; + } +#line 40868 "gram.c" /* yacc.c:1652 */ + break; + + case 1719: +#line 11816 "gram.y" /* yacc.c:1652 */ + { + SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); + n->limitOffset = NULL; + n->limitCount = makeIntConst(1, -1); + n->limitOption = LIMIT_OPTION_WITH_TIES; + (yyval.selectlimit) = n; + } +#line 40880 "gram.c" /* yacc.c:1652 */ + break; + + case 1720: +#line 11827 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40886 "gram.c" /* yacc.c:1652 */ + break; + + case 1721: +#line 11830 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 40892 "gram.c" /* yacc.c:1652 */ + break; + + case 1722: +#line 11834 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40898 "gram.c" /* yacc.c:1652 */ + break; + + case 1723: +#line 11836 "gram.y" /* yacc.c:1652 */ + { + /* LIMIT ALL is represented as a NULL constant */ + (yyval.node) = makeNullAConst((yylsp[0])); + } +#line 40907 "gram.c" /* yacc.c:1652 */ + break; + + case 1724: +#line 11843 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40913 "gram.c" /* yacc.c:1652 */ + break; + + case 1725: +#line 11863 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40919 "gram.c" /* yacc.c:1652 */ + break; + + case 1726: +#line 11865 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 40925 "gram.c" /* yacc.c:1652 */ + break; + + case 1727: +#line 11867 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 40931 "gram.c" /* yacc.c:1652 */ + break; + + case 1728: +#line 11871 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } +#line 40937 "gram.c" /* yacc.c:1652 */ + break; + + case 1729: +#line 11872 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } +#line 40943 "gram.c" /* yacc.c:1652 */ + break; + + case 1730: +#line 11876 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40949 "gram.c" /* yacc.c:1652 */ + break; + + case 1731: +#line 11877 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40955 "gram.c" /* yacc.c:1652 */ + break; + + case 1732: +#line 11880 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40961 "gram.c" /* yacc.c:1652 */ + break; + + case 1733: +#line 11881 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 40967 "gram.c" /* yacc.c:1652 */ + break; + + case 1734: +#line 11906 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 40973 "gram.c" /* yacc.c:1652 */ + break; + + case 1735: +#line 11907 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 40979 "gram.c" /* yacc.c:1652 */ + break; + + case 1736: +#line 11911 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 40985 "gram.c" /* yacc.c:1652 */ + break; + + case 1737: +#line 11912 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } +#line 40991 "gram.c" /* yacc.c:1652 */ + break; + + case 1738: +#line 11916 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 40997 "gram.c" /* yacc.c:1652 */ + break; + + case 1739: +#line 11917 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41003 "gram.c" /* yacc.c:1652 */ + break; + + case 1740: +#line 11918 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41009 "gram.c" /* yacc.c:1652 */ + break; + + case 1741: +#line 11919 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41015 "gram.c" /* yacc.c:1652 */ + break; + + case 1742: +#line 11920 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41021 "gram.c" /* yacc.c:1652 */ + break; + + case 1743: +#line 11925 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1])); + } +#line 41029 "gram.c" /* yacc.c:1652 */ + break; + + case 1744: +#line 11938 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3])); + } +#line 41037 "gram.c" /* yacc.c:1652 */ + break; + + case 1745: +#line 11945 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3])); + } +#line 41045 "gram.c" /* yacc.c:1652 */ + break; + + case 1746: +#line 11952 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4])); + } +#line 41053 "gram.c" /* yacc.c:1652 */ + break; + + case 1747: +#line 11958 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41059 "gram.c" /* yacc.c:1652 */ + break; + + case 1748: +#line 11959 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 41065 "gram.c" /* yacc.c:1652 */ + break; + + case 1749: +#line 11963 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 41071 "gram.c" /* yacc.c:1652 */ + break; + + case 1750: +#line 11964 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 41077 "gram.c" /* yacc.c:1652 */ + break; + + case 1751: +#line 11968 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 41083 "gram.c" /* yacc.c:1652 */ + break; + + case 1752: +#line 11969 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 41089 "gram.c" /* yacc.c:1652 */ + break; + + case 1753: +#line 11973 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 41095 "gram.c" /* yacc.c:1652 */ + break; + + case 1754: +#line 11974 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 41101 "gram.c" /* yacc.c:1652 */ + break; + + case 1755: +#line 11979 "gram.y" /* yacc.c:1652 */ + { + LockingClause *n = makeNode(LockingClause); + n->lockedRels = (yyvsp[-1].list); + n->strength = (yyvsp[-2].ival); + n->waitPolicy = (yyvsp[0].ival); + (yyval.node) = (Node *) n; + } +#line 41113 "gram.c" /* yacc.c:1652 */ + break; + + case 1756: +#line 11989 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LCS_FORUPDATE; } +#line 41119 "gram.c" /* yacc.c:1652 */ + break; + + case 1757: +#line 11990 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LCS_FORNOKEYUPDATE; } +#line 41125 "gram.c" /* yacc.c:1652 */ + break; + + case 1758: +#line 11991 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LCS_FORSHARE; } +#line 41131 "gram.c" /* yacc.c:1652 */ + break; + + case 1759: +#line 11992 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = LCS_FORKEYSHARE; } +#line 41137 "gram.c" /* yacc.c:1652 */ + break; + + case 1760: +#line 11996 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 41143 "gram.c" /* yacc.c:1652 */ + break; + + case 1761: +#line 11997 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 41149 "gram.c" /* yacc.c:1652 */ + break; + + case 1762: +#line 12008 "gram.y" /* yacc.c:1652 */ + { + SelectStmt *n = makeNode(SelectStmt); + n->valuesLists = list_make1((yyvsp[-1].list)); + (yyval.node) = (Node *) n; + } +#line 41159 "gram.c" /* yacc.c:1652 */ + break; + + case 1763: +#line 12014 "gram.y" /* yacc.c:1652 */ + { + SelectStmt *n = (SelectStmt *) (yyvsp[-4].node); + n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list)); + (yyval.node) = (Node *) n; + } +#line 41169 "gram.c" /* yacc.c:1652 */ + break; + + case 1764: +#line 12031 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 41175 "gram.c" /* yacc.c:1652 */ + break; + + case 1765: +#line 12032 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 41181 "gram.c" /* yacc.c:1652 */ + break; + + case 1766: +#line 12036 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 41187 "gram.c" /* yacc.c:1652 */ + break; + + case 1767: +#line 12037 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 41193 "gram.c" /* yacc.c:1652 */ + break; + + case 1768: +#line 12044 "gram.y" /* yacc.c:1652 */ + { + (yyvsp[-1].range)->alias = (yyvsp[0].alias); + (yyval.node) = (Node *) (yyvsp[-1].range); + } +#line 41202 "gram.c" /* yacc.c:1652 */ + break; + + case 1769: +#line 12049 "gram.y" /* yacc.c:1652 */ + { + RangeTableSample *n = (RangeTableSample *) (yyvsp[0].node); + (yyvsp[-2].range)->alias = (yyvsp[-1].alias); + /* relation_expr goes inside the RangeTableSample node */ + n->relation = (Node *) (yyvsp[-2].range); + (yyval.node) = (Node *) n; + } +#line 41214 "gram.c" /* yacc.c:1652 */ + break; + + case 1770: +#line 12057 "gram.y" /* yacc.c:1652 */ + { + RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); + n->alias = linitial((yyvsp[0].list)); + n->coldeflist = lsecond((yyvsp[0].list)); + (yyval.node) = (Node *) n; + } +#line 41225 "gram.c" /* yacc.c:1652 */ + break; + + case 1771: +#line 12064 "gram.y" /* yacc.c:1652 */ + { + RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); + n->lateral = true; + n->alias = linitial((yyvsp[0].list)); + n->coldeflist = lsecond((yyvsp[0].list)); + (yyval.node) = (Node *) n; + } +#line 41237 "gram.c" /* yacc.c:1652 */ + break; + + case 1772: +#line 12072 "gram.y" /* yacc.c:1652 */ + { + RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); + n->alias = (yyvsp[0].alias); + (yyval.node) = (Node *) n; + } +#line 41247 "gram.c" /* yacc.c:1652 */ + break; + + case 1773: +#line 12078 "gram.y" /* yacc.c:1652 */ + { + RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); + n->lateral = true; + n->alias = (yyvsp[0].alias); + (yyval.node) = (Node *) n; + } +#line 41258 "gram.c" /* yacc.c:1652 */ + break; + + case 1774: +#line 12085 "gram.y" /* yacc.c:1652 */ + { + RangeSubselect *n = makeNode(RangeSubselect); + n->lateral = false; + n->subquery = (yyvsp[-1].node); + n->alias = (yyvsp[0].alias); + /* + * The SQL spec does not permit a subselect + * (<derived_table>) 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 ((yyvsp[0].alias) == NULL) + { + if (IsA((yyvsp[-1].node), SelectStmt) && + ((SelectStmt *) (yyvsp[-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])))); + 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])))); + } + (yyval.node) = (Node *) n; + } +#line 41297 "gram.c" /* yacc.c:1652 */ + break; + + case 1775: +#line 12120 "gram.y" /* yacc.c:1652 */ + { + RangeSubselect *n = makeNode(RangeSubselect); + n->lateral = true; + n->subquery = (yyvsp[-1].node); + n->alias = (yyvsp[0].alias); + /* same comment as above */ + if ((yyvsp[0].alias) == NULL) + { + if (IsA((yyvsp[-1].node), SelectStmt) && + ((SelectStmt *) (yyvsp[-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])))); + 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])))); + } + (yyval.node) = (Node *) n; + } +#line 41326 "gram.c" /* yacc.c:1652 */ + break; + + case 1776: +#line 12145 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) (yyvsp[0].jexpr); + } +#line 41334 "gram.c" /* yacc.c:1652 */ + break; + + case 1777: +#line 12149 "gram.y" /* yacc.c:1652 */ + { + (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias); + (yyval.node) = (Node *) (yyvsp[-2].jexpr); + } +#line 41343 "gram.c" /* yacc.c:1652 */ + break; + + case 1778: +#line 12175 "gram.y" /* yacc.c:1652 */ + { + (yyval.jexpr) = (yyvsp[-1].jexpr); + } +#line 41351 "gram.c" /* yacc.c:1652 */ + break; + + case 1779: +#line 12179 "gram.y" /* yacc.c:1652 */ + { + /* CROSS JOIN is same as unqualified inner join */ + JoinExpr *n = makeNode(JoinExpr); + n->jointype = JOIN_INNER; + n->isNatural = false; + n->larg = (yyvsp[-3].node); + n->rarg = (yyvsp[0].node); + n->usingClause = NIL; + n->quals = NULL; + (yyval.jexpr) = n; + } +#line 41367 "gram.c" /* yacc.c:1652 */ + break; + + case 1780: +#line 12191 "gram.y" /* yacc.c:1652 */ + { + JoinExpr *n = makeNode(JoinExpr); + n->jointype = (yyvsp[-3].jtype); + n->isNatural = false; + n->larg = (yyvsp[-4].node); + n->rarg = (yyvsp[-1].node); + if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List)) + n->usingClause = (List *) (yyvsp[0].node); /* USING clause */ + else + n->quals = (yyvsp[0].node); /* ON clause */ + (yyval.jexpr) = n; + } +#line 41384 "gram.c" /* yacc.c:1652 */ + break; + + case 1781: +#line 12204 "gram.y" /* yacc.c:1652 */ + { + /* letting join_type reduce to empty doesn't work */ + JoinExpr *n = makeNode(JoinExpr); + n->jointype = JOIN_INNER; + n->isNatural = false; + n->larg = (yyvsp[-3].node); + n->rarg = (yyvsp[-1].node); + if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List)) + n->usingClause = (List *) (yyvsp[0].node); /* USING clause */ + else + n->quals = (yyvsp[0].node); /* ON clause */ + (yyval.jexpr) = n; + } +#line 41402 "gram.c" /* yacc.c:1652 */ + break; + + case 1782: +#line 12218 "gram.y" /* yacc.c:1652 */ + { + JoinExpr *n = makeNode(JoinExpr); + n->jointype = (yyvsp[-2].jtype); + n->isNatural = true; + n->larg = (yyvsp[-4].node); + n->rarg = (yyvsp[0].node); + n->usingClause = NIL; /* figure out which columns later... */ + n->quals = NULL; /* fill later */ + (yyval.jexpr) = n; + } +#line 41417 "gram.c" /* yacc.c:1652 */ + break; + + case 1783: +#line 12229 "gram.y" /* yacc.c:1652 */ + { + /* letting join_type reduce to empty doesn't work */ + JoinExpr *n = makeNode(JoinExpr); + n->jointype = JOIN_INNER; + n->isNatural = true; + n->larg = (yyvsp[-3].node); + n->rarg = (yyvsp[0].node); + n->usingClause = NIL; /* figure out which columns later... */ + n->quals = NULL; /* fill later */ + (yyval.jexpr) = n; + } +#line 41433 "gram.c" /* yacc.c:1652 */ + break; + + case 1784: +#line 12244 "gram.y" /* yacc.c:1652 */ + { + (yyval.alias) = makeNode(Alias); + (yyval.alias)->aliasname = (yyvsp[-3].str); + (yyval.alias)->colnames = (yyvsp[-1].list); + } +#line 41443 "gram.c" /* yacc.c:1652 */ + break; + + case 1785: +#line 12250 "gram.y" /* yacc.c:1652 */ + { + (yyval.alias) = makeNode(Alias); + (yyval.alias)->aliasname = (yyvsp[0].str); + } +#line 41452 "gram.c" /* yacc.c:1652 */ + break; + + case 1786: +#line 12255 "gram.y" /* yacc.c:1652 */ + { + (yyval.alias) = makeNode(Alias); + (yyval.alias)->aliasname = (yyvsp[-3].str); + (yyval.alias)->colnames = (yyvsp[-1].list); + } +#line 41462 "gram.c" /* yacc.c:1652 */ + break; + + case 1787: +#line 12261 "gram.y" /* yacc.c:1652 */ + { + (yyval.alias) = makeNode(Alias); + (yyval.alias)->aliasname = (yyvsp[0].str); + } +#line 41471 "gram.c" /* yacc.c:1652 */ + break; + + case 1788: +#line 12267 "gram.y" /* yacc.c:1652 */ + { (yyval.alias) = (yyvsp[0].alias); } +#line 41477 "gram.c" /* yacc.c:1652 */ + break; + + case 1789: +#line 12268 "gram.y" /* yacc.c:1652 */ + { (yyval.alias) = NULL; } +#line 41483 "gram.c" /* yacc.c:1652 */ + break; + + case 1790: +#line 12277 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[0].alias), NIL); + } +#line 41491 "gram.c" /* yacc.c:1652 */ + break; + + case 1791: +#line 12281 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(NULL, (yyvsp[-1].list)); + } +#line 41499 "gram.c" /* yacc.c:1652 */ + break; + + case 1792: +#line 12285 "gram.y" /* yacc.c:1652 */ + { + Alias *a = makeNode(Alias); + a->aliasname = (yyvsp[-3].str); + (yyval.list) = list_make2(a, (yyvsp[-1].list)); + } +#line 41509 "gram.c" /* yacc.c:1652 */ + break; + + case 1793: +#line 12291 "gram.y" /* yacc.c:1652 */ + { + Alias *a = makeNode(Alias); + a->aliasname = (yyvsp[-3].str); + (yyval.list) = list_make2(a, (yyvsp[-1].list)); + } +#line 41519 "gram.c" /* yacc.c:1652 */ + break; + + case 1794: +#line 12297 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(NULL, NIL); + } +#line 41527 "gram.c" /* yacc.c:1652 */ + break; + + case 1795: +#line 12302 "gram.y" /* yacc.c:1652 */ + { (yyval.jtype) = JOIN_FULL; } +#line 41533 "gram.c" /* yacc.c:1652 */ + break; + + case 1796: +#line 12303 "gram.y" /* yacc.c:1652 */ + { (yyval.jtype) = JOIN_LEFT; } +#line 41539 "gram.c" /* yacc.c:1652 */ + break; + + case 1797: +#line 12304 "gram.y" /* yacc.c:1652 */ + { (yyval.jtype) = JOIN_RIGHT; } +#line 41545 "gram.c" /* yacc.c:1652 */ + break; + + case 1798: +#line 12305 "gram.y" /* yacc.c:1652 */ + { (yyval.jtype) = JOIN_INNER; } +#line 41551 "gram.c" /* yacc.c:1652 */ + break; + + case 1799: +#line 12309 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 41557 "gram.c" /* yacc.c:1652 */ + break; + + case 1800: +#line 12310 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 41563 "gram.c" /* yacc.c:1652 */ + break; + + case 1801: +#line 12322 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[-1].list); } +#line 41569 "gram.c" /* yacc.c:1652 */ + break; + + case 1802: +#line 12323 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41575 "gram.c" /* yacc.c:1652 */ + break; + + case 1803: +#line 12329 "gram.y" /* yacc.c:1652 */ + { + /* inheritance query, implicitly */ + (yyval.range) = (yyvsp[0].range); + (yyval.range)->inh = true; + (yyval.range)->alias = NULL; + } +#line 41586 "gram.c" /* yacc.c:1652 */ + break; + + case 1804: +#line 12336 "gram.y" /* yacc.c:1652 */ + { + /* inheritance query, explicitly */ + (yyval.range) = (yyvsp[-1].range); + (yyval.range)->inh = true; + (yyval.range)->alias = NULL; + } +#line 41597 "gram.c" /* yacc.c:1652 */ + break; + + case 1805: +#line 12343 "gram.y" /* yacc.c:1652 */ + { + /* no inheritance */ + (yyval.range) = (yyvsp[0].range); + (yyval.range)->inh = false; + (yyval.range)->alias = NULL; + } +#line 41608 "gram.c" /* yacc.c:1652 */ + break; + + case 1806: +#line 12350 "gram.y" /* yacc.c:1652 */ + { + /* no inheritance, SQL99-style syntax */ + (yyval.range) = (yyvsp[-1].range); + (yyval.range)->inh = false; + (yyval.range)->alias = NULL; + } +#line 41619 "gram.c" /* yacc.c:1652 */ + break; + + case 1807: +#line 12360 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].range)); } +#line 41625 "gram.c" /* yacc.c:1652 */ + break; + + case 1808: +#line 12361 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } +#line 41631 "gram.c" /* yacc.c:1652 */ + break; + + case 1809: +#line 12375 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = (yyvsp[0].range); + } +#line 41639 "gram.c" /* yacc.c:1652 */ + break; + + case 1810: +#line 12379 "gram.y" /* yacc.c:1652 */ + { + Alias *alias = makeNode(Alias); + alias->aliasname = (yyvsp[0].str); + (yyvsp[-1].range)->alias = alias; + (yyval.range) = (yyvsp[-1].range); + } +#line 41650 "gram.c" /* yacc.c:1652 */ + break; + + case 1811: +#line 12386 "gram.y" /* yacc.c:1652 */ + { + Alias *alias = makeNode(Alias); + alias->aliasname = (yyvsp[0].str); + (yyvsp[-2].range)->alias = alias; + (yyval.range) = (yyvsp[-2].range); + } +#line 41661 "gram.c" /* yacc.c:1652 */ + break; + + case 1812: +#line 12399 "gram.y" /* yacc.c:1652 */ + { + RangeTableSample *n = makeNode(RangeTableSample); + /* n->relation will be filled in later */ + n->method = (yyvsp[-4].list); + n->args = (yyvsp[-2].list); + n->repeatable = (yyvsp[0].node); + n->location = (yylsp[-4]); + (yyval.node) = (Node *) n; + } +#line 41675 "gram.c" /* yacc.c:1652 */ + break; + + case 1813: +#line 12411 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) (yyvsp[-1].node); } +#line 41681 "gram.c" /* yacc.c:1652 */ + break; + + case 1814: +#line 12412 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 41687 "gram.c" /* yacc.c:1652 */ + break; + + case 1815: +#line 12428 "gram.y" /* yacc.c:1652 */ + { + RangeFunction *n = makeNode(RangeFunction); + n->lateral = false; + n->ordinality = (yyvsp[0].boolean); + n->is_rowsfrom = false; + n->functions = list_make1(list_make2((yyvsp[-1].node), NIL)); + /* alias and coldeflist are set by table_ref production */ + (yyval.node) = (Node *) n; + } +#line 41701 "gram.c" /* yacc.c:1652 */ + break; + + case 1816: +#line 12438 "gram.y" /* yacc.c:1652 */ + { + RangeFunction *n = makeNode(RangeFunction); + n->lateral = false; + n->ordinality = (yyvsp[0].boolean); + n->is_rowsfrom = true; + n->functions = (yyvsp[-2].list); + /* alias and coldeflist are set by table_ref production */ + (yyval.node) = (Node *) n; + } +#line 41715 "gram.c" /* yacc.c:1652 */ + break; + + case 1817: +#line 12450 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } +#line 41721 "gram.c" /* yacc.c:1652 */ + break; + + case 1818: +#line 12454 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 41727 "gram.c" /* yacc.c:1652 */ + break; + + case 1819: +#line 12455 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 41733 "gram.c" /* yacc.c:1652 */ + break; + + case 1820: +#line 12458 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 41739 "gram.c" /* yacc.c:1652 */ + break; + + case 1821: +#line 12459 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 41745 "gram.c" /* yacc.c:1652 */ + break; + + case 1822: +#line 12462 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 41751 "gram.c" /* yacc.c:1652 */ + break; + + case 1823: +#line 12463 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 41757 "gram.c" /* yacc.c:1652 */ + break; + + case 1824: +#line 12468 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41763 "gram.c" /* yacc.c:1652 */ + break; + + case 1825: +#line 12469 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 41769 "gram.c" /* yacc.c:1652 */ + break; + + case 1826: +#line 12474 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 41775 "gram.c" /* yacc.c:1652 */ + break; + + case 1827: +#line 12476 "gram.y" /* yacc.c:1652 */ + { + CurrentOfExpr *n = makeNode(CurrentOfExpr); + /* cvarno is filled in by parse analysis */ + n->cursor_name = (yyvsp[0].str); + n->cursor_param = 0; + (yyval.node) = (Node *) n; + } +#line 41787 "gram.c" /* yacc.c:1652 */ + break; + + case 1828: +#line 12483 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 41793 "gram.c" /* yacc.c:1652 */ + break; + + case 1829: +#line 12488 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 41799 "gram.c" /* yacc.c:1652 */ + break; + + case 1830: +#line 12489 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 41805 "gram.c" /* yacc.c:1652 */ + break; + + case 1831: +#line 12494 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 41813 "gram.c" /* yacc.c:1652 */ + break; + + case 1832: +#line 12498 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 41821 "gram.c" /* yacc.c:1652 */ + break; + + case 1833: +#line 12504 "gram.y" /* yacc.c:1652 */ + { + ColumnDef *n = makeNode(ColumnDef); + n->colname = (yyvsp[-2].str); + n->typeName = (yyvsp[-1].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[0].node); + n->collOid = InvalidOid; + n->constraints = NIL; + n->location = (yylsp[-2]); + (yyval.node) = (Node *)n; + } +#line 41843 "gram.c" /* yacc.c:1652 */ + break; + + case 1834: +#line 12528 "gram.y" /* yacc.c:1652 */ + { + RangeTableFunc *n = makeNode(RangeTableFunc); + n->rowexpr = (yyvsp[-4].node); + n->docexpr = (yyvsp[-3].node); + n->columns = (yyvsp[-1].list); + n->namespaces = NIL; + n->location = (yylsp[-6]); + (yyval.node) = (Node *)n; + } +#line 41857 "gram.c" /* yacc.c:1652 */ + break; + + case 1835: +#line 12539 "gram.y" /* yacc.c:1652 */ + { + RangeTableFunc *n = makeNode(RangeTableFunc); + n->rowexpr = (yyvsp[-4].node); + n->docexpr = (yyvsp[-3].node); + n->columns = (yyvsp[-1].list); + n->namespaces = (yyvsp[-7].list); + n->location = (yylsp[-11]); + (yyval.node) = (Node *)n; + } +#line 41871 "gram.c" /* yacc.c:1652 */ + break; + + case 1836: +#line 12550 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 41877 "gram.c" /* yacc.c:1652 */ + break; + + case 1837: +#line 12551 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 41883 "gram.c" /* yacc.c:1652 */ + break; + + case 1838: +#line 12556 "gram.y" /* yacc.c:1652 */ + { + RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); + + fc->colname = (yyvsp[-1].str); + fc->for_ordinality = false; + fc->typeName = (yyvsp[0].typnam); + fc->is_not_null = false; + fc->colexpr = NULL; + fc->coldefexpr = NULL; + fc->location = (yylsp[-1]); + + (yyval.node) = (Node *) fc; + } +#line 41901 "gram.c" /* yacc.c:1652 */ + break; + + case 1839: +#line 12570 "gram.y" /* yacc.c:1652 */ + { + RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); + ListCell *option; + bool nullability_seen = false; + + fc->colname = (yyvsp[-2].str); + fc->typeName = (yyvsp[-1].typnam); + fc->for_ordinality = false; + fc->is_not_null = false; + fc->colexpr = NULL; + fc->coldefexpr = NULL; + fc->location = (yylsp[-2]); + + foreach(option, (yyvsp[0].list)) + { + DefElem *defel = (DefElem *) lfirst(option); + + if (strcmp(defel->defname, "default") == 0) + { + if (fc->coldefexpr != NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("only one DEFAULT value is allowed"), + parser_errposition(defel->location))); + fc->coldefexpr = defel->arg; + } + else if (strcmp(defel->defname, "path") == 0) + { + if (fc->colexpr != NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("only one PATH value per column is allowed"), + parser_errposition(defel->location))); + fc->colexpr = defel->arg; + } + else if (strcmp(defel->defname, "is_not_null") == 0) + { + if (nullability_seen) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname), + parser_errposition(defel->location))); + fc->is_not_null = intVal(defel->arg); + nullability_seen = true; + } + else + { + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized column option \"%s\"", + defel->defname), + parser_errposition(defel->location))); + } + } + (yyval.node) = (Node *) fc; + } +#line 41962 "gram.c" /* yacc.c:1652 */ + break; + + case 1840: +#line 12627 "gram.y" /* yacc.c:1652 */ + { + RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); + + fc->colname = (yyvsp[-2].str); + fc->for_ordinality = true; + /* other fields are ignored, initialized by makeNode */ + fc->location = (yylsp[-2]); + + (yyval.node) = (Node *) fc; + } +#line 41977 "gram.c" /* yacc.c:1652 */ + break; + + case 1841: +#line 12641 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 41983 "gram.c" /* yacc.c:1652 */ + break; + + case 1842: +#line 12643 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 41989 "gram.c" /* yacc.c:1652 */ + break; + + case 1843: +#line 12648 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } +#line 41995 "gram.c" /* yacc.c:1652 */ + break; + + case 1844: +#line 12650 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); } +#line 42001 "gram.c" /* yacc.c:1652 */ + break; + + case 1845: +#line 12652 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(true), (yylsp[-1])); } +#line 42007 "gram.c" /* yacc.c:1652 */ + break; + + case 1846: +#line 12654 "gram.y" /* yacc.c:1652 */ + { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(false), (yylsp[0])); } +#line 42013 "gram.c" /* yacc.c:1652 */ + break; + + case 1847: +#line 12659 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 42019 "gram.c" /* yacc.c:1652 */ + break; + + case 1848: +#line 12661 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 42025 "gram.c" /* yacc.c:1652 */ + break; + + case 1849: +#line 12666 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = (yyvsp[0].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (yyvsp[-2].node); + (yyval.target)->location = (yylsp[-2]); + } +#line 42037 "gram.c" /* yacc.c:1652 */ + break; + + case 1850: +#line 12674 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (yyvsp[0].node); + (yyval.target)->location = (yylsp[-1]); + } +#line 42049 "gram.c" /* yacc.c:1652 */ + break; + + case 1851: +#line 12694 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = (yyvsp[0].list); + } +#line 42058 "gram.c" /* yacc.c:1652 */ + break; + + case 1852: +#line 12699 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = (yyvsp[0].list); + (yyval.typnam)->setof = true; + } +#line 42068 "gram.c" /* yacc.c:1652 */ + break; + + case 1853: +#line 12706 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-4].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); + } +#line 42077 "gram.c" /* yacc.c:1652 */ + break; + + case 1854: +#line 12711 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-4].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); + (yyval.typnam)->setof = true; + } +#line 42087 "gram.c" /* yacc.c:1652 */ + break; + + case 1855: +#line 12717 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); + } +#line 42096 "gram.c" /* yacc.c:1652 */ + break; + + case 1856: +#line 12722 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); + (yyval.typnam)->setof = true; + } +#line 42106 "gram.c" /* yacc.c:1652 */ + break; + + case 1857: +#line 12731 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } +#line 42112 "gram.c" /* yacc.c:1652 */ + break; + + case 1858: +#line 12733 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } +#line 42118 "gram.c" /* yacc.c:1652 */ + break; + + case 1859: +#line 12735 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 42124 "gram.c" /* yacc.c:1652 */ + break; + + case 1860: +#line 12739 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42130 "gram.c" /* yacc.c:1652 */ + break; + + case 1861: +#line 12740 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42136 "gram.c" /* yacc.c:1652 */ + break; + + case 1862: +#line 12741 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42142 "gram.c" /* yacc.c:1652 */ + break; + + case 1863: +#line 12742 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42148 "gram.c" /* yacc.c:1652 */ + break; + + case 1864: +#line 12743 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42154 "gram.c" /* yacc.c:1652 */ + break; + + case 1865: +#line 12745 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->typmods = (yyvsp[0].list); + } +#line 42163 "gram.c" /* yacc.c:1652 */ + break; + + case 1866: +#line 12750 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[-3].typnam); + (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); + } +#line 42173 "gram.c" /* yacc.c:1652 */ + break; + + case 1867: +#line 12769 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42179 "gram.c" /* yacc.c:1652 */ + break; + + case 1868: +#line 12770 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42185 "gram.c" /* yacc.c:1652 */ + break; + + case 1869: +#line 12771 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42191 "gram.c" /* yacc.c:1652 */ + break; + + case 1870: +#line 12772 "gram.y" /* yacc.c:1652 */ + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42197 "gram.c" /* yacc.c:1652 */ + break; + + case 1871: +#line 12784 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = makeTypeName((yyvsp[-1].str)); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42207 "gram.c" /* yacc.c:1652 */ + break; + + case 1872: +#line 12790 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list))); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-2]); + } +#line 42217 "gram.c" /* yacc.c:1652 */ + break; + + case 1873: +#line 12797 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 42223 "gram.c" /* yacc.c:1652 */ + break; + + case 1874: +#line 12798 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 42229 "gram.c" /* yacc.c:1652 */ + break; + + case 1875: +#line 12805 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("int4"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42238 "gram.c" /* yacc.c:1652 */ + break; + + case 1876: +#line 12810 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("int4"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42247 "gram.c" /* yacc.c:1652 */ + break; + + case 1877: +#line 12815 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("int2"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42256 "gram.c" /* yacc.c:1652 */ + break; + + case 1878: +#line 12820 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("int8"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42265 "gram.c" /* yacc.c:1652 */ + break; + + case 1879: +#line 12825 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("float4"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42274 "gram.c" /* yacc.c:1652 */ + break; + + case 1880: +#line 12830 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42283 "gram.c" /* yacc.c:1652 */ + break; + + case 1881: +#line 12835 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("float8"); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42292 "gram.c" /* yacc.c:1652 */ + break; + + case 1882: +#line 12840 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42302 "gram.c" /* yacc.c:1652 */ + break; + + case 1883: +#line 12846 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42312 "gram.c" /* yacc.c:1652 */ + break; + + case 1884: +#line 12852 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42322 "gram.c" /* yacc.c:1652 */ + break; + + case 1885: +#line 12858 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("bool"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42331 "gram.c" /* yacc.c:1652 */ + break; + + case 1886: +#line 12865 "gram.y" /* yacc.c:1652 */ + { + /* + * Check FLOAT() precision limits assuming IEEE floating + * types - thomas 1997-09-18 + */ + if ((yyvsp[-1].ival) < 1) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("precision for type float must be at least 1 bit"), + parser_errposition((yylsp[-1])))); + else if ((yyvsp[-1].ival) <= 24) + (yyval.typnam) = SystemTypeName("float4"); + else if ((yyvsp[-1].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[-1])))); + } +#line 42356 "gram.c" /* yacc.c:1652 */ + break; + + case 1887: +#line 12886 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("float8"); + } +#line 42364 "gram.c" /* yacc.c:1652 */ + break; + + case 1888: +#line 12896 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 42372 "gram.c" /* yacc.c:1652 */ + break; + + case 1889: +#line 12900 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 42380 "gram.c" /* yacc.c:1652 */ + break; + + case 1890: +#line 12908 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 42388 "gram.c" /* yacc.c:1652 */ + break; + + case 1891: +#line 12912 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + (yyval.typnam)->typmods = NIL; + } +#line 42397 "gram.c" /* yacc.c:1652 */ + break; + + case 1892: +#line 12920 "gram.y" /* yacc.c:1652 */ + { + char *typname; + + typname = (yyvsp[-3].boolean) ? "varbit" : "bit"; + (yyval.typnam) = SystemTypeName(typname); + (yyval.typnam)->typmods = (yyvsp[-1].list); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 42410 "gram.c" /* yacc.c:1652 */ + break; + + case 1893: +#line 12932 "gram.y" /* yacc.c:1652 */ + { + /* bit defaults to bit(1), varbit to no limit */ + if ((yyvsp[0].boolean)) + { + (yyval.typnam) = SystemTypeName("varbit"); + } + else + { + (yyval.typnam) = SystemTypeName("bit"); + (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); + } + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42428 "gram.c" /* yacc.c:1652 */ + break; + + case 1894: +#line 12953 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 42436 "gram.c" /* yacc.c:1652 */ + break; + + case 1895: +#line 12957 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 42444 "gram.c" /* yacc.c:1652 */ + break; + + case 1896: +#line 12963 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 42452 "gram.c" /* yacc.c:1652 */ + break; + + case 1897: +#line 12967 "gram.y" /* yacc.c:1652 */ + { + /* Length was not specified so allow to be unrestricted. + * This handles problems with fixed-length (bpchar) strings + * which in column definitions must default to a length + * of one, but should not be constrained if the length + * was not specified. + */ + (yyval.typnam) = (yyvsp[0].typnam); + (yyval.typnam)->typmods = NIL; + } +#line 42467 "gram.c" /* yacc.c:1652 */ + break; + + case 1898: +#line 12980 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName((yyvsp[-3].str)); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); + (yyval.typnam)->location = (yylsp[-3]); + } +#line 42477 "gram.c" /* yacc.c:1652 */ + break; + + case 1899: +#line 12988 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName((yyvsp[0].str)); + /* char defaults to char(1), varchar to no limit */ + if (strcmp((yyvsp[0].str), "bpchar") == 0) + (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42489 "gram.c" /* yacc.c:1652 */ + break; + + case 1900: +#line 12998 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42495 "gram.c" /* yacc.c:1652 */ + break; + + case 1901: +#line 13000 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42501 "gram.c" /* yacc.c:1652 */ + break; + + case 1902: +#line 13002 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "varchar"; } +#line 42507 "gram.c" /* yacc.c:1652 */ + break; + + case 1903: +#line 13004 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42513 "gram.c" /* yacc.c:1652 */ + break; + + case 1904: +#line 13006 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42519 "gram.c" /* yacc.c:1652 */ + break; + + case 1905: +#line 13008 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42525 "gram.c" /* yacc.c:1652 */ + break; + + case 1906: +#line 13012 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 42531 "gram.c" /* yacc.c:1652 */ + break; + + case 1907: +#line 13013 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 42537 "gram.c" /* yacc.c:1652 */ + break; + + case 1908: +#line 13021 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timestamptz"); + else + (yyval.typnam) = SystemTypeName("timestamp"); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 42550 "gram.c" /* yacc.c:1652 */ + break; + + case 1909: +#line 13030 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timestamptz"); + else + (yyval.typnam) = SystemTypeName("timestamp"); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42562 "gram.c" /* yacc.c:1652 */ + break; + + case 1910: +#line 13038 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timetz"); + else + (yyval.typnam) = SystemTypeName("time"); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 42575 "gram.c" /* yacc.c:1652 */ + break; + + case 1911: +#line 13047 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timetz"); + else + (yyval.typnam) = SystemTypeName("time"); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 42587 "gram.c" /* yacc.c:1652 */ + break; + + case 1912: +#line 13058 "gram.y" /* yacc.c:1652 */ + { + (yyval.typnam) = SystemTypeName("interval"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 42596 "gram.c" /* yacc.c:1652 */ + break; + + case 1913: +#line 13065 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 42602 "gram.c" /* yacc.c:1652 */ + break; + + case 1914: +#line 13066 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 42608 "gram.c" /* yacc.c:1652 */ + break; + + case 1915: +#line 13067 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 42614 "gram.c" /* yacc.c:1652 */ + break; + + case 1916: +#line 13072 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } +#line 42620 "gram.c" /* yacc.c:1652 */ + break; + + case 1917: +#line 13074 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } +#line 42626 "gram.c" /* yacc.c:1652 */ + break; + + case 1918: +#line 13076 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } +#line 42632 "gram.c" /* yacc.c:1652 */ + break; + + case 1919: +#line 13078 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } +#line 42638 "gram.c" /* yacc.c:1652 */ + break; + + case 1920: +#line 13080 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } +#line 42644 "gram.c" /* yacc.c:1652 */ + break; + + case 1921: +#line 13082 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 42650 "gram.c" /* yacc.c:1652 */ + break; + + case 1922: +#line 13084 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | + INTERVAL_MASK(MONTH), (yylsp[-2]))); + } +#line 42659 "gram.c" /* yacc.c:1652 */ + break; + + case 1923: +#line 13089 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR), (yylsp[-2]))); + } +#line 42668 "gram.c" /* yacc.c:1652 */ + break; + + case 1924: +#line 13094 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE), (yylsp[-2]))); + } +#line 42678 "gram.c" /* yacc.c:1652 */ + break; + + case 1925: +#line 13100 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = (yyvsp[0].list); + linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[-2])); + } +#line 42690 "gram.c" /* yacc.c:1652 */ + break; + + case 1926: +#line 13108 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE), (yylsp[-2]))); + } +#line 42699 "gram.c" /* yacc.c:1652 */ + break; + + case 1927: +#line 13113 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = (yyvsp[0].list); + linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[-2])); + } +#line 42710 "gram.c" /* yacc.c:1652 */ + break; + + case 1928: +#line 13120 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = (yyvsp[0].list); + linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[-2])); + } +#line 42720 "gram.c" /* yacc.c:1652 */ + break; + + case 1929: +#line 13126 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 42726 "gram.c" /* yacc.c:1652 */ + break; + + case 1930: +#line 13131 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0]))); + } +#line 42734 "gram.c" /* yacc.c:1652 */ + break; + + case 1931: +#line 13135 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])), + makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); + } +#line 42743 "gram.c" /* yacc.c:1652 */ + break; + + case 1932: +#line 13170 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 42749 "gram.c" /* yacc.c:1652 */ + break; + + case 1933: +#line 13172 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } +#line 42755 "gram.c" /* yacc.c:1652 */ + break; + + case 1934: +#line 13174 "gram.y" /* yacc.c:1652 */ + { + CollateClause *n = makeNode(CollateClause); + n->arg = (yyvsp[-2].node); + n->collname = (yyvsp[0].list); + n->location = (yylsp[-1]); + (yyval.node) = (Node *) n; + } +#line 42767 "gram.c" /* yacc.c:1652 */ + break; + + case 1935: +#line 13182 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), + list_make2((yyvsp[0].node), (yyvsp[-4].node)), + (yylsp[-3])); + } +#line 42777 "gram.c" /* yacc.c:1652 */ + break; + + case 1936: +#line 13197 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 42783 "gram.c" /* yacc.c:1652 */ + break; + + case 1937: +#line 13199 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 42789 "gram.c" /* yacc.c:1652 */ + break; + + case 1938: +#line 13201 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42795 "gram.c" /* yacc.c:1652 */ + break; + + case 1939: +#line 13203 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42801 "gram.c" /* yacc.c:1652 */ + break; + + case 1940: +#line 13205 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42807 "gram.c" /* yacc.c:1652 */ + break; + + case 1941: +#line 13207 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42813 "gram.c" /* yacc.c:1652 */ + break; + + case 1942: +#line 13209 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42819 "gram.c" /* yacc.c:1652 */ + break; + + case 1943: +#line 13211 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42825 "gram.c" /* yacc.c:1652 */ + break; + + case 1944: +#line 13213 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42831 "gram.c" /* yacc.c:1652 */ + break; + + case 1945: +#line 13215 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42837 "gram.c" /* yacc.c:1652 */ + break; + + case 1946: +#line 13217 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42843 "gram.c" /* yacc.c:1652 */ + break; + + case 1947: +#line 13219 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42849 "gram.c" /* yacc.c:1652 */ + break; + + case 1948: +#line 13221 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42855 "gram.c" /* yacc.c:1652 */ + break; + + case 1949: +#line 13223 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42861 "gram.c" /* yacc.c:1652 */ + break; + + case 1950: +#line 13226 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42867 "gram.c" /* yacc.c:1652 */ + break; + + case 1951: +#line 13228 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 42873 "gram.c" /* yacc.c:1652 */ + break; + + case 1952: +#line 13230 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } +#line 42879 "gram.c" /* yacc.c:1652 */ + break; + + case 1953: +#line 13233 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42885 "gram.c" /* yacc.c:1652 */ + break; + + case 1954: +#line 13235 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 42891 "gram.c" /* yacc.c:1652 */ + break; + + case 1955: +#line 13237 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } +#line 42897 "gram.c" /* yacc.c:1652 */ + break; + + case 1956: +#line 13239 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } +#line 42903 "gram.c" /* yacc.c:1652 */ + break; + + case 1957: +#line 13242 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", + (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } +#line 42912 "gram.c" /* yacc.c:1652 */ + break; + + case 1958: +#line 13247 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-3])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", + (yyvsp[-4].node), (Node *) n, (yylsp[-3])); + } +#line 42924 "gram.c" /* yacc.c:1652 */ + break; + + case 1959: +#line 13255 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", + (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); + } +#line 42933 "gram.c" /* yacc.c:1652 */ + break; + + case 1960: +#line 13260 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", + (yyvsp[-5].node), (Node *) n, (yylsp[-4])); + } +#line 42945 "gram.c" /* yacc.c:1652 */ + break; + + case 1961: +#line 13268 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", + (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } +#line 42954 "gram.c" /* yacc.c:1652 */ + break; + + case 1962: +#line 13273 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-3])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", + (yyvsp[-4].node), (Node *) n, (yylsp[-3])); + } +#line 42966 "gram.c" /* yacc.c:1652 */ + break; + + case 1963: +#line 13281 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", + (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); + } +#line 42975 "gram.c" /* yacc.c:1652 */ + break; + + case 1964: +#line 13286 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", + (yyvsp[-5].node), (Node *) n, (yylsp[-4])); + } +#line 42987 "gram.c" /* yacc.c:1652 */ + break; + + case 1965: +#line 13295 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), + list_make1((yyvsp[0].node)), + (yylsp[-2])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", + (yyvsp[-3].node), (Node *) n, (yylsp[-2])); + } +#line 42999 "gram.c" /* yacc.c:1652 */ + break; + + case 1966: +#line 13303 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", + (yyvsp[-5].node), (Node *) n, (yylsp[-4])); + } +#line 43011 "gram.c" /* yacc.c:1652 */ + break; + + case 1967: +#line 13311 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), + list_make1((yyvsp[0].node)), + (yylsp[-3])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", + (yyvsp[-4].node), (Node *) n, (yylsp[-3])); + } +#line 43023 "gram.c" /* yacc.c:1652 */ + break; + + case 1968: +#line 13319 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-5])); + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", + (yyvsp[-6].node), (Node *) n, (yylsp[-5])); + } +#line 43035 "gram.c" /* yacc.c:1652 */ + break; + + case 1969: +#line 13337 "gram.y" /* yacc.c:1652 */ + { + NullTest *n = makeNode(NullTest); + n->arg = (Expr *) (yyvsp[-2].node); + n->nulltesttype = IS_NULL; + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 43047 "gram.c" /* yacc.c:1652 */ + break; + + case 1970: +#line 13345 "gram.y" /* yacc.c:1652 */ + { + NullTest *n = makeNode(NullTest); + n->arg = (Expr *) (yyvsp[-1].node); + n->nulltesttype = IS_NULL; + n->location = (yylsp[0]); + (yyval.node) = (Node *)n; + } +#line 43059 "gram.c" /* yacc.c:1652 */ + break; + + case 1971: +#line 13353 "gram.y" /* yacc.c:1652 */ + { + NullTest *n = makeNode(NullTest); + n->arg = (Expr *) (yyvsp[-3].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[-2]); + (yyval.node) = (Node *)n; + } +#line 43071 "gram.c" /* yacc.c:1652 */ + break; + + case 1972: +#line 13361 "gram.y" /* yacc.c:1652 */ + { + NullTest *n = makeNode(NullTest); + n->arg = (Expr *) (yyvsp[-1].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[0]); + (yyval.node) = (Node *)n; + } +#line 43083 "gram.c" /* yacc.c:1652 */ + break; + + case 1973: +#line 13369 "gram.y" /* yacc.c:1652 */ + { + if (list_length((yyvsp[-2].list)) != 2) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("wrong number of parameters on left side of OVERLAPS expression"), + parser_errposition((yylsp[-2])))); + if (list_length((yyvsp[0].list)) != 2) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("wrong number of parameters on right side of OVERLAPS expression"), + parser_errposition((yylsp[0])))); + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"), + list_concat((yyvsp[-2].list), (yyvsp[0].list)), + (yylsp[-1])); + } +#line 43103 "gram.c" /* yacc.c:1652 */ + break; + + case 1974: +#line 13385 "gram.y" /* yacc.c:1652 */ + { + BooleanTest *b = makeNode(BooleanTest); + b->arg = (Expr *) (yyvsp[-2].node); + b->booltesttype = IS_TRUE; + b->location = (yylsp[-1]); + (yyval.node) = (Node *)b; + } +#line 43115 "gram.c" /* yacc.c:1652 */ + break; + + case 1975: +#line 13393 "gram.y" /* yacc.c:1652 */ + { + BooleanTest *b = makeNode(BooleanTest); + b->arg = (Expr *) (yyvsp[-3].node); + b->booltesttype = IS_NOT_TRUE; + b->location = (yylsp[-2]); + (yyval.node) = (Node *)b; + } +#line 43127 "gram.c" /* yacc.c:1652 */ + break; + + case 1976: +#line 13401 "gram.y" /* yacc.c:1652 */ + { + BooleanTest *b = makeNode(BooleanTest); + b->arg = (Expr *) (yyvsp[-2].node); + b->booltesttype = IS_FALSE; + b->location = (yylsp[-1]); + (yyval.node) = (Node *)b; + } +#line 43139 "gram.c" /* yacc.c:1652 */ + break; + + case 1977: +#line 13409 "gram.y" /* yacc.c:1652 */ + { + BooleanTest *b = makeNode(BooleanTest); + b->arg = (Expr *) (yyvsp[-3].node); + b->booltesttype = IS_NOT_FALSE; + b->location = (yylsp[-2]); + (yyval.node) = (Node *)b; + } +#line 43151 "gram.c" /* yacc.c:1652 */ + break; + + case 1978: +#line 13417 "gram.y" /* yacc.c:1652 */ + { + BooleanTest *b = makeNode(BooleanTest); + b->arg = (Expr *) (yyvsp[-2].node); + b->booltesttype = IS_UNKNOWN; + b->location = (yylsp[-1]); + (yyval.node) = (Node *)b; + } +#line 43163 "gram.c" /* yacc.c:1652 */ + break; + + case 1979: +#line 13425 "gram.y" /* yacc.c:1652 */ + { + BooleanTest *b = makeNode(BooleanTest); + b->arg = (Expr *) (yyvsp[-3].node); + b->booltesttype = IS_NOT_UNKNOWN; + b->location = (yylsp[-2]); + (yyval.node) = (Node *)b; + } +#line 43175 "gram.c" /* yacc.c:1652 */ + break; + + case 1980: +#line 13433 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); + } +#line 43183 "gram.c" /* yacc.c:1652 */ + break; + + case 1981: +#line 13437 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); + } +#line 43191 "gram.c" /* yacc.c:1652 */ + break; + + case 1982: +#line 13441 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); + } +#line 43199 "gram.c" /* yacc.c:1652 */ + break; + + case 1983: +#line 13445 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); + } +#line 43207 "gram.c" /* yacc.c:1652 */ + break; + + case 1984: +#line 13449 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN, + "BETWEEN", + (yyvsp[-5].node), + (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + } +#line 43219 "gram.c" /* yacc.c:1652 */ + break; + + case 1985: +#line 13457 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN, + "NOT BETWEEN", + (yyvsp[-6].node), + (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-5])); + } +#line 43231 "gram.c" /* yacc.c:1652 */ + break; + + case 1986: +#line 13465 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM, + "BETWEEN SYMMETRIC", + (yyvsp[-5].node), + (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + } +#line 43243 "gram.c" /* yacc.c:1652 */ + break; + + case 1987: +#line 13473 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM, + "NOT BETWEEN SYMMETRIC", + (yyvsp[-6].node), + (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-5])); + } +#line 43255 "gram.c" /* yacc.c:1652 */ + break; + + case 1988: +#line 13481 "gram.y" /* yacc.c:1652 */ + { + /* in_expr returns a SubLink or a list of a_exprs */ + if (IsA((yyvsp[0].node), SubLink)) + { + /* generate foo = ANY (subquery) */ + SubLink *n = (SubLink *) (yyvsp[0].node); + n->subLinkType = ANY_SUBLINK; + n->subLinkId = 0; + n->testexpr = (yyvsp[-2].node); + n->operName = NIL; /* show it's IN not = ANY */ + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } + else + { + /* generate scalar IN expression */ + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } + } +#line 43279 "gram.c" /* yacc.c:1652 */ + break; + + case 1989: +#line 13501 "gram.y" /* yacc.c:1652 */ + { + /* in_expr returns a SubLink or a list of a_exprs */ + if (IsA((yyvsp[0].node), SubLink)) + { + /* generate NOT (foo = ANY (subquery)) */ + /* Make an = ANY node */ + SubLink *n = (SubLink *) (yyvsp[0].node); + n->subLinkType = ANY_SUBLINK; + n->subLinkId = 0; + n->testexpr = (yyvsp[-3].node); + n->operName = NIL; /* show it's IN not = ANY */ + n->location = (yylsp[-2]); + /* Stick a NOT on top; must have same parse location */ + (yyval.node) = makeNotExpr((Node *) n, (yylsp[-2])); + } + else + { + /* generate scalar NOT IN expression */ + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); + } + } +#line 43305 "gram.c" /* yacc.c:1652 */ + break; + + case 1990: +#line 13523 "gram.y" /* yacc.c:1652 */ + { + SubLink *n = makeNode(SubLink); + n->subLinkType = (yyvsp[-1].ival); + n->subLinkId = 0; + n->testexpr = (yyvsp[-3].node); + n->operName = (yyvsp[-2].list); + n->subselect = (yyvsp[0].node); + n->location = (yylsp[-2]); + (yyval.node) = (Node *)n; + } +#line 43320 "gram.c" /* yacc.c:1652 */ + break; + + case 1991: +#line 13534 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[-3].ival) == ANY_SUBLINK) + (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); + else + (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); + } +#line 43331 "gram.c" /* yacc.c:1652 */ + break; + + case 1992: +#line 13541 "gram.y" /* yacc.c:1652 */ + { + /* 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])))); + } +#line 43351 "gram.c" /* yacc.c:1652 */ + break; + + case 1993: +#line 13557 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, + list_make1((yyvsp[-2].node)), (yylsp[-1])); + } +#line 43360 "gram.c" /* yacc.c:1652 */ + break; + + case 1994: +#line 13562 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, + list_make1((yyvsp[-3].node)), (yylsp[-2])), + (yylsp[-2])); + } +#line 43370 "gram.c" /* yacc.c:1652 */ + break; + + case 1995: +#line 13568 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[-2].node)), (yylsp[-1])); + } +#line 43378 "gram.c" /* yacc.c:1652 */ + break; + + case 1996: +#line 13572 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))), (yylsp[-2])); + } +#line 43386 "gram.c" /* yacc.c:1652 */ + break; + + case 1997: +#line 13576 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); + } +#line 43394 "gram.c" /* yacc.c:1652 */ + break; + + case 1998: +#line 13580 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2((yyvsp[-4].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))), (yylsp[-3])), (yylsp[-3])); + } +#line 43402 "gram.c" /* yacc.c:1652 */ + break; + + case 1999: +#line 13584 "gram.y" /* yacc.c:1652 */ + { + /* + * The SQL spec only allows DEFAULT in "contextually typed + * expressions", but for us, it's easier to allow it in + * any a_expr and then throw error during parse analysis + * if it's in an inappropriate context. This way also + * lets us say something smarter than "syntax error". + */ + SetToDefault *n = makeNode(SetToDefault); + /* parse analysis will fill in the rest */ + n->location = (yylsp[0]); + (yyval.node) = (Node *)n; + } +#line 43420 "gram.c" /* yacc.c:1652 */ + break; + + case 2000: +#line 13609 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43426 "gram.c" /* yacc.c:1652 */ + break; + + case 2001: +#line 13611 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } +#line 43432 "gram.c" /* yacc.c:1652 */ + break; + + case 2002: +#line 13613 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 43438 "gram.c" /* yacc.c:1652 */ + break; + + case 2003: +#line 13615 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 43444 "gram.c" /* yacc.c:1652 */ + break; + + case 2004: +#line 13617 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43450 "gram.c" /* yacc.c:1652 */ + break; + + case 2005: +#line 13619 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43456 "gram.c" /* yacc.c:1652 */ + break; + + case 2006: +#line 13621 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43462 "gram.c" /* yacc.c:1652 */ + break; + + case 2007: +#line 13623 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43468 "gram.c" /* yacc.c:1652 */ + break; + + case 2008: +#line 13625 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43474 "gram.c" /* yacc.c:1652 */ + break; + + case 2009: +#line 13627 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43480 "gram.c" /* yacc.c:1652 */ + break; + + case 2010: +#line 13629 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43486 "gram.c" /* yacc.c:1652 */ + break; + + case 2011: +#line 13631 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43492 "gram.c" /* yacc.c:1652 */ + break; + + case 2012: +#line 13633 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43498 "gram.c" /* yacc.c:1652 */ + break; + + case 2013: +#line 13635 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43504 "gram.c" /* yacc.c:1652 */ + break; + + case 2014: +#line 13637 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43510 "gram.c" /* yacc.c:1652 */ + break; + + case 2015: +#line 13639 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43516 "gram.c" /* yacc.c:1652 */ + break; + + case 2016: +#line 13641 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43522 "gram.c" /* yacc.c:1652 */ + break; + + case 2017: +#line 13643 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 43528 "gram.c" /* yacc.c:1652 */ + break; + + case 2018: +#line 13645 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } +#line 43534 "gram.c" /* yacc.c:1652 */ + break; + + case 2019: +#line 13647 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); + } +#line 43542 "gram.c" /* yacc.c:1652 */ + break; + + case 2020: +#line 13651 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); + } +#line 43550 "gram.c" /* yacc.c:1652 */ + break; + + case 2021: +#line 13655 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); + } +#line 43558 "gram.c" /* yacc.c:1652 */ + break; + + case 2022: +#line 13659 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); + } +#line 43566 "gram.c" /* yacc.c:1652 */ + break; + + case 2023: +#line 13663 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, + list_make1((yyvsp[-2].node)), (yylsp[-1])); + } +#line 43575 "gram.c" /* yacc.c:1652 */ + break; + + case 2024: +#line 13668 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, + list_make1((yyvsp[-3].node)), (yylsp[-2])), + (yylsp[-2])); + } +#line 43585 "gram.c" /* yacc.c:1652 */ + break; + + case 2025: +#line 13683 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43591 "gram.c" /* yacc.c:1652 */ + break; + + case 2026: +#line 13684 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43597 "gram.c" /* yacc.c:1652 */ + break; + + case 2027: +#line 13686 "gram.y" /* yacc.c:1652 */ + { + ParamRef *p = makeNode(ParamRef); + p->number = (yyvsp[-1].ival); + p->location = (yylsp[-1]); + if ((yyvsp[0].list)) + { + A_Indirection *n = makeNode(A_Indirection); + n->arg = (Node *) p; + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (Node *) n; + } + else + (yyval.node) = (Node *) p; + } +#line 43616 "gram.c" /* yacc.c:1652 */ + break; + + case 2028: +#line 13701 "gram.y" /* yacc.c:1652 */ + { + if ((yyvsp[0].list)) + { + A_Indirection *n = makeNode(A_Indirection); + n->arg = (yyvsp[-2].node); + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (Node *)n; + } + else if (operator_precedence_warning) + { + /* + * If precedence warnings are enabled, insert + * AEXPR_PAREN nodes wrapping all explicitly + * parenthesized subexpressions; this prevents bogus + * warnings from being issued when the ordering has + * been forced by parentheses. Take care that an + * AEXPR_PAREN node has the same exprLocation as its + * child, so as not to cause surprising changes in + * error cursor positioning. + * + * In principle we should not be relying on a GUC to + * decide whether to insert AEXPR_PAREN nodes. + * However, since they have no effect except to + * suppress warnings, it's probably safe enough; and + * we'd just as soon not waste cycles on dummy parse + * nodes if we don't have to. + */ + (yyval.node) = (Node *) makeA_Expr(AEXPR_PAREN, NIL, (yyvsp[-2].node), NULL, + exprLocation((yyvsp[-2].node))); + } + else + (yyval.node) = (yyvsp[-2].node); + } +#line 43654 "gram.c" /* yacc.c:1652 */ + break; + + case 2029: +#line 13735 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43660 "gram.c" /* yacc.c:1652 */ + break; + + case 2030: +#line 13737 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43666 "gram.c" /* yacc.c:1652 */ + break; + + case 2031: +#line 13739 "gram.y" /* yacc.c:1652 */ + { + SubLink *n = makeNode(SubLink); + n->subLinkType = EXPR_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[0].node); + n->location = (yylsp[0]); + (yyval.node) = (Node *)n; + } +#line 43681 "gram.c" /* yacc.c:1652 */ + break; + + case 2032: +#line 13750 "gram.y" /* yacc.c:1652 */ + { + /* + * 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->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[-1].node); + n->location = (yylsp[-1]); + a->arg = (Node *)n; + a->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (Node *)a; + } +#line 43709 "gram.c" /* yacc.c:1652 */ + break; + + case 2033: +#line 13774 "gram.y" /* yacc.c:1652 */ + { + SubLink *n = makeNode(SubLink); + n->subLinkType = EXISTS_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[0].node); + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 43724 "gram.c" /* yacc.c:1652 */ + break; + + case 2034: +#line 13785 "gram.y" /* yacc.c:1652 */ + { + SubLink *n = makeNode(SubLink); + n->subLinkType = ARRAY_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[0].node); + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 43739 "gram.c" /* yacc.c:1652 */ + break; + + case 2035: +#line 13796 "gram.y" /* yacc.c:1652 */ + { + A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[0].node)); + /* point outermost A_ArrayExpr to the ARRAY keyword */ + n->location = (yylsp[-1]); + (yyval.node) = (Node *)n; + } +#line 43750 "gram.c" /* yacc.c:1652 */ + break; + + case 2036: +#line 13803 "gram.y" /* yacc.c:1652 */ + { + RowExpr *r = makeNode(RowExpr); + r->args = (yyvsp[0].list); + r->row_typeid = InvalidOid; /* not analyzed yet */ + r->colnames = NIL; /* to be filled in during analysis */ + r->row_format = COERCE_EXPLICIT_CALL; /* abuse */ + r->location = (yylsp[0]); + (yyval.node) = (Node *)r; + } +#line 43764 "gram.c" /* yacc.c:1652 */ + break; + + case 2037: +#line 13813 "gram.y" /* yacc.c:1652 */ + { + RowExpr *r = makeNode(RowExpr); + r->args = (yyvsp[0].list); + r->row_typeid = InvalidOid; /* not analyzed yet */ + r->colnames = NIL; /* to be filled in during analysis */ + r->row_format = COERCE_IMPLICIT_CAST; /* abuse */ + r->location = (yylsp[0]); + (yyval.node) = (Node *)r; + } +#line 43778 "gram.c" /* yacc.c:1652 */ + break; + + case 2038: +#line 13823 "gram.y" /* yacc.c:1652 */ + { + GroupingFunc *g = makeNode(GroupingFunc); + g->args = (yyvsp[-1].list); + g->location = (yylsp[-3]); + (yyval.node) = (Node *)g; + } +#line 43789 "gram.c" /* yacc.c:1652 */ + break; + + case 2039: +#line 13832 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL, (yylsp[-2])); + } +#line 43797 "gram.c" /* yacc.c:1652 */ + break; + + case 2040: +#line 13836 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list), (yylsp[-4])); + n->agg_order = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 43807 "gram.c" /* yacc.c:1652 */ + break; + + case 2041: +#line 13842 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)), (yylsp[-5])); + n->func_variadic = true; + n->agg_order = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 43818 "gram.c" /* yacc.c:1652 */ + break; + + case 2042: +#line 13849 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)), (yylsp[-7])); + n->func_variadic = true; + n->agg_order = (yyvsp[-1].list); + (yyval.node) = (Node *)n; + } +#line 43829 "gram.c" /* yacc.c:1652 */ + break; + + case 2043: +#line 13856 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); + n->agg_order = (yyvsp[-1].list); + /* 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. + */ + (yyval.node) = (Node *)n; + } +#line 43843 "gram.c" /* yacc.c:1652 */ + break; + + case 2044: +#line 13866 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); + n->agg_order = (yyvsp[-1].list); + n->agg_distinct = true; + (yyval.node) = (Node *)n; + } +#line 43854 "gram.c" /* yacc.c:1652 */ + break; + + case 2045: +#line 13873 "gram.y" /* yacc.c:1652 */ + { + /* + * We consider AGGREGATE(*) to invoke a parameterless + * aggregate. This does the right thing for COUNT(*), + * and there are no other aggregates in SQL 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 = makeFuncCall((yyvsp[-3].list), NIL, (yylsp[-3])); + n->agg_star = true; + (yyval.node) = (Node *)n; + } +#line 43874 "gram.c" /* yacc.c:1652 */ + break; + + case 2046: +#line 13901 "gram.y" /* yacc.c:1652 */ + { + FuncCall *n = (FuncCall *) (yyvsp[-3].node); + /* + * The order clause for WITHIN GROUP and the one for + * plain-aggregate ORDER BY share a field, so we have to + * check here that at most one is present. We also check + * for DISTINCT and VARIADIC here to give a better error + * location. Other consistency checks are deferred to + * parse analysis. + */ + if ((yyvsp[-2].list) != NIL) + { + if (n->agg_order != NIL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), + parser_errposition((yylsp[-2])))); + if (n->agg_distinct) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("cannot use DISTINCT with WITHIN GROUP"), + parser_errposition((yylsp[-2])))); + if (n->func_variadic) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("cannot use VARIADIC with WITHIN GROUP"), + parser_errposition((yylsp[-2])))); + n->agg_order = (yyvsp[-2].list); + n->agg_within_group = true; + } + n->agg_filter = (yyvsp[-1].node); + n->over = (yyvsp[0].windef); + (yyval.node) = (Node *) n; + } +#line 43913 "gram.c" /* yacc.c:1652 */ + break; + + case 2047: +#line 13936 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43919 "gram.c" /* yacc.c:1652 */ + break; + + case 2048: +#line 13946 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43925 "gram.c" /* yacc.c:1652 */ + break; + + case 2049: +#line 13947 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 43931 "gram.c" /* yacc.c:1652 */ + break; + + case 2050: +#line 13955 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), + list_make1((yyvsp[-1].node)), + (yylsp[-4])); + } +#line 43941 "gram.c" /* yacc.c:1652 */ + break; + + case 2051: +#line 13961 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0])); + } +#line 43949 "gram.c" /* yacc.c:1652 */ + break; + + case 2052: +#line 13965 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0])); + } +#line 43957 "gram.c" /* yacc.c:1652 */ + break; + + case 2053: +#line 13969 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 43965 "gram.c" /* yacc.c:1652 */ + break; + + case 2054: +#line 13973 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0])); + } +#line 43973 "gram.c" /* yacc.c:1652 */ + break; + + case 2055: +#line 13977 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 43981 "gram.c" /* yacc.c:1652 */ + break; + + case 2056: +#line 13981 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0])); + } +#line 43989 "gram.c" /* yacc.c:1652 */ + break; + + case 2057: +#line 13985 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 43997 "gram.c" /* yacc.c:1652 */ + break; + + case 2058: +#line 13989 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0])); + } +#line 44005 "gram.c" /* yacc.c:1652 */ + break; + + case 2059: +#line 13993 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 44013 "gram.c" /* yacc.c:1652 */ + break; + + case 2060: +#line 13997 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0])); + } +#line 44021 "gram.c" /* yacc.c:1652 */ + break; + + case 2061: +#line 14001 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0])); + } +#line 44029 "gram.c" /* yacc.c:1652 */ + break; + + case 2062: +#line 14005 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0])); + } +#line 44037 "gram.c" /* yacc.c:1652 */ + break; + + case 2063: +#line 14009 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0])); + } +#line 44045 "gram.c" /* yacc.c:1652 */ + break; + + case 2064: +#line 14013 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0])); + } +#line 44053 "gram.c" /* yacc.c:1652 */ + break; + + case 2065: +#line 14017 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0])); + } +#line 44061 "gram.c" /* yacc.c:1652 */ + break; + + case 2066: +#line 14021 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); } +#line 44067 "gram.c" /* yacc.c:1652 */ + break; + + case 2067: +#line 14023 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 44075 "gram.c" /* yacc.c:1652 */ + break; + + case 2068: +#line 14027 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make1((yyvsp[-1].node)), (yylsp[-3])); + } +#line 44083 "gram.c" /* yacc.c:1652 */ + break; + + case 2069: +#line 14031 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))), (yylsp[-5])); + } +#line 44091 "gram.c" /* yacc.c:1652 */ + break; + + case 2070: +#line 14035 "gram.y" /* yacc.c:1652 */ + { + /* overlay(A PLACING B FROM C FOR D) is converted to + * overlay(A, B, C, D) + * overlay(A PLACING B FROM C) is converted to + * overlay(A, B, C) + */ + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 44104 "gram.c" /* yacc.c:1652 */ + break; + + case 2071: +#line 14044 "gram.y" /* yacc.c:1652 */ + { + /* position(A in B) is converted to position(B, A) */ + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 44113 "gram.c" /* yacc.c:1652 */ + break; + + case 2072: +#line 14049 "gram.y" /* yacc.c:1652 */ + { + /* substring(A from B for C) is converted to + * substring(A, B, C) - thomas 2000-11-28 + */ + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 44124 "gram.c" /* yacc.c:1652 */ + break; + + case 2073: +#line 14056 "gram.y" /* yacc.c:1652 */ + { + /* TREAT(expr AS target) converts expr of a particular type to target, + * which is defined to be a subtype of the original expression. + * In SQL99, this is intended for use with structured UDTs, + * but let's make this a generally useful form allowing stronger + * coercions than are handled by implicit casting. + * + * Convert SystemTypeName() to SystemFuncName() even though + * at the moment they result in the same thing. + */ + (yyval.node) = (Node *) makeFuncCall(SystemFuncName(((Value *)llast((yyvsp[-1].typnam)->names))->val.str), + list_make1((yyvsp[-3].node)), + (yylsp[-5])); + } +#line 44143 "gram.c" /* yacc.c:1652 */ + break; + + case 2074: +#line 14071 "gram.y" /* yacc.c:1652 */ + { + /* various trim expressions are defined in SQL + * - thomas 1997-07-19 + */ + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-4])); + } +#line 44154 "gram.c" /* yacc.c:1652 */ + break; + + case 2075: +#line 14078 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[-1].list), (yylsp[-4])); + } +#line 44162 "gram.c" /* yacc.c:1652 */ + break; + + case 2076: +#line 14082 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[-1].list), (yylsp[-4])); + } +#line 44170 "gram.c" /* yacc.c:1652 */ + break; + + case 2077: +#line 14086 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 44178 "gram.c" /* yacc.c:1652 */ + break; + + case 2078: +#line 14090 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5])); + } +#line 44186 "gram.c" /* yacc.c:1652 */ + break; + + case 2079: +#line 14094 "gram.y" /* yacc.c:1652 */ + { + CoalesceExpr *c = makeNode(CoalesceExpr); + c->args = (yyvsp[-1].list); + c->location = (yylsp[-3]); + (yyval.node) = (Node *)c; + } +#line 44197 "gram.c" /* yacc.c:1652 */ + break; + + case 2080: +#line 14101 "gram.y" /* yacc.c:1652 */ + { + MinMaxExpr *v = makeNode(MinMaxExpr); + v->args = (yyvsp[-1].list); + v->op = IS_GREATEST; + v->location = (yylsp[-3]); + (yyval.node) = (Node *)v; + } +#line 44209 "gram.c" /* yacc.c:1652 */ + break; + + case 2081: +#line 14109 "gram.y" /* yacc.c:1652 */ + { + MinMaxExpr *v = makeNode(MinMaxExpr); + v->args = (yyvsp[-1].list); + v->op = IS_LEAST; + v->location = (yylsp[-3]); + (yyval.node) = (Node *)v; + } +#line 44221 "gram.c" /* yacc.c:1652 */ + break; + + case 2082: +#line 14117 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3])); + } +#line 44229 "gram.c" /* yacc.c:1652 */ + break; + + case 2083: +#line 14121 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4])); + } +#line 44237 "gram.c" /* yacc.c:1652 */ + break; + + case 2084: +#line 14125 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6])); + } +#line 44245 "gram.c" /* yacc.c:1652 */ + break; + + case 2085: +#line 14129 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6])); + } +#line 44253 "gram.c" /* yacc.c:1652 */ + break; + + case 2086: +#line 14133 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8])); + } +#line 44261 "gram.c" /* yacc.c:1652 */ + break; + + case 2087: +#line 14137 "gram.y" /* yacc.c:1652 */ + { + /* xmlexists(A PASSING [BY REF] B [BY REF]) is + * converted to xmlexists(A, B)*/ + (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"), list_make2((yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-4])); + } +#line 44271 "gram.c" /* yacc.c:1652 */ + break; + + case 2088: +#line 14143 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3])); + } +#line 44279 "gram.c" /* yacc.c:1652 */ + break; + + case 2089: +#line 14147 "gram.y" /* yacc.c:1652 */ + { + XmlExpr *x = (XmlExpr *) + makeXmlExpr(IS_XMLPARSE, NULL, NIL, + list_make2((yyvsp[-2].node), makeBoolAConst((yyvsp[-1].boolean), -1)), + (yylsp[-5])); + x->xmloption = (yyvsp[-3].ival); + (yyval.node) = (Node *)x; + } +#line 44292 "gram.c" /* yacc.c:1652 */ + break; + + case 2090: +#line 14156 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4])); + } +#line 44300 "gram.c" /* yacc.c:1652 */ + break; + + case 2091: +#line 14160 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6])); + } +#line 44308 "gram.c" /* yacc.c:1652 */ + break; + + case 2092: +#line 14164 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, + list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6])); + } +#line 44317 "gram.c" /* yacc.c:1652 */ + break; + + case 2093: +#line 14169 "gram.y" /* yacc.c:1652 */ + { + XmlSerialize *n = makeNode(XmlSerialize); + n->xmloption = (yyvsp[-4].ival); + n->expr = (yyvsp[-3].node); + n->typeName = (yyvsp[-1].typnam); + n->location = (yylsp[-6]); + (yyval.node) = (Node *)n; + } +#line 44330 "gram.c" /* yacc.c:1652 */ + break; + + case 2094: +#line 14183 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 44336 "gram.c" /* yacc.c:1652 */ + break; + + case 2095: +#line 14185 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeNullAConst(-1); } +#line 44342 "gram.c" /* yacc.c:1652 */ + break; + + case 2096: +#line 14189 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); } +#line 44348 "gram.c" /* yacc.c:1652 */ + break; + + case 2097: +#line 14191 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); } +#line 44354 "gram.c" /* yacc.c:1652 */ + break; + + case 2098: +#line 14193 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); } +#line 44360 "gram.c" /* yacc.c:1652 */ + break; + + case 2099: +#line 14195 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); } +#line 44366 "gram.c" /* yacc.c:1652 */ + break; + + case 2100: +#line 14198 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44372 "gram.c" /* yacc.c:1652 */ + break; + + case 2101: +#line 14201 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 44378 "gram.c" /* yacc.c:1652 */ + break; + + case 2102: +#line 14202 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 44384 "gram.c" /* yacc.c:1652 */ + break; + + case 2103: +#line 14206 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = (yyvsp[0].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (Node *) (yyvsp[-2].node); + (yyval.target)->location = (yylsp[-2]); + } +#line 44396 "gram.c" /* yacc.c:1652 */ + break; + + case 2104: +#line 14214 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (Node *) (yyvsp[0].node); + (yyval.target)->location = (yylsp[0]); + } +#line 44408 "gram.c" /* yacc.c:1652 */ + break; + + case 2105: +#line 14223 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = XMLOPTION_DOCUMENT; } +#line 44414 "gram.c" /* yacc.c:1652 */ + break; + + case 2106: +#line 14224 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = XMLOPTION_CONTENT; } +#line 44420 "gram.c" /* yacc.c:1652 */ + break; + + case 2107: +#line 14227 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = true; } +#line 44426 "gram.c" /* yacc.c:1652 */ + break; + + case 2108: +#line 14228 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 44432 "gram.c" /* yacc.c:1652 */ + break; + + case 2109: +#line 14229 "gram.y" /* yacc.c:1652 */ + { (yyval.boolean) = false; } +#line 44438 "gram.c" /* yacc.c:1652 */ + break; + + case 2110: +#line 14235 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 44446 "gram.c" /* yacc.c:1652 */ + break; + + case 2111: +#line 14239 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (yyvsp[-1].node); + } +#line 44454 "gram.c" /* yacc.c:1652 */ + break; + + case 2112: +#line 14243 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 44462 "gram.c" /* yacc.c:1652 */ + break; + + case 2113: +#line 14247 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (yyvsp[-1].node); + } +#line 44470 "gram.c" /* yacc.c:1652 */ + break; + + case 2116: +#line 14262 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44476 "gram.c" /* yacc.c:1652 */ + break; + + case 2117: +#line 14263 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 44482 "gram.c" /* yacc.c:1652 */ + break; + + case 2118: +#line 14267 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[-1].node); } +#line 44488 "gram.c" /* yacc.c:1652 */ + break; + + case 2119: +#line 14268 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 44494 "gram.c" /* yacc.c:1652 */ + break; + + case 2120: +#line 14276 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 44500 "gram.c" /* yacc.c:1652 */ + break; + + case 2121: +#line 14277 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 44506 "gram.c" /* yacc.c:1652 */ + break; + + case 2122: +#line 14281 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].windef)); } +#line 44512 "gram.c" /* yacc.c:1652 */ + break; + + case 2123: +#line 14283 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } +#line 44518 "gram.c" /* yacc.c:1652 */ + break; + + case 2124: +#line 14288 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = (yyvsp[0].windef); + n->name = (yyvsp[-2].str); + (yyval.windef) = n; + } +#line 44528 "gram.c" /* yacc.c:1652 */ + break; + + case 2125: +#line 14296 "gram.y" /* yacc.c:1652 */ + { (yyval.windef) = (yyvsp[0].windef); } +#line 44534 "gram.c" /* yacc.c:1652 */ + break; + + case 2126: +#line 14298 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->name = (yyvsp[0].str); + n->refname = NULL; + n->partitionClause = NIL; + n->orderClause = NIL; + n->frameOptions = FRAMEOPTION_DEFAULTS; + n->startOffset = NULL; + n->endOffset = NULL; + n->location = (yylsp[0]); + (yyval.windef) = n; + } +#line 44551 "gram.c" /* yacc.c:1652 */ + break; + + case 2127: +#line 14311 "gram.y" /* yacc.c:1652 */ + { (yyval.windef) = NULL; } +#line 44557 "gram.c" /* yacc.c:1652 */ + break; + + case 2128: +#line 14316 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->name = NULL; + n->refname = (yyvsp[-4].str); + n->partitionClause = (yyvsp[-3].list); + n->orderClause = (yyvsp[-2].list); + /* copy relevant fields of opt_frame_clause */ + n->frameOptions = (yyvsp[-1].windef)->frameOptions; + n->startOffset = (yyvsp[-1].windef)->startOffset; + n->endOffset = (yyvsp[-1].windef)->endOffset; + n->location = (yylsp[-5]); + (yyval.windef) = n; + } +#line 44575 "gram.c" /* yacc.c:1652 */ + break; + + case 2129: +#line 14341 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 44581 "gram.c" /* yacc.c:1652 */ + break; + + case 2130: +#line 14342 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = NULL; } +#line 44587 "gram.c" /* yacc.c:1652 */ + break; + + case 2131: +#line 14345 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 44593 "gram.c" /* yacc.c:1652 */ + break; + + case 2132: +#line 14346 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 44599 "gram.c" /* yacc.c:1652 */ + break; + + case 2133: +#line 14355 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = (yyvsp[-1].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; + n->frameOptions |= (yyvsp[0].ival); + (yyval.windef) = n; + } +#line 44610 "gram.c" /* yacc.c:1652 */ + break; + + case 2134: +#line 14362 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = (yyvsp[-1].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; + n->frameOptions |= (yyvsp[0].ival); + (yyval.windef) = n; + } +#line 44621 "gram.c" /* yacc.c:1652 */ + break; + + case 2135: +#line 14369 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = (yyvsp[-1].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; + n->frameOptions |= (yyvsp[0].ival); + (yyval.windef) = n; + } +#line 44632 "gram.c" /* yacc.c:1652 */ + break; + + case 2136: +#line 14376 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->frameOptions = FRAMEOPTION_DEFAULTS; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 44644 "gram.c" /* yacc.c:1652 */ + break; + + case 2137: +#line 14386 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = (yyvsp[0].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[0])))); + if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) + ereport(ERROR, + (errcode(ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from following row cannot end with current row"), + parser_errposition((yylsp[0])))); + n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; + (yyval.windef) = n; + } +#line 44665 "gram.c" /* yacc.c:1652 */ + break; + + case 2138: +#line 14403 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n1 = (yyvsp[-2].windef); + WindowDef *n2 = (yyvsp[0].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])))); + if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) + ereport(ERROR, + (errcode(ERRCODE_WINDOWING_ERROR), + errmsg("frame end cannot be UNBOUNDED PRECEDING"), + parser_errposition((yylsp[0])))); + if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && + (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING)) + ereport(ERROR, + (errcode(ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from current row cannot have preceding rows"), + parser_errposition((yylsp[0])))); + if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) && + (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING | + FRAMEOPTION_END_CURRENT_ROW))) + ereport(ERROR, + (errcode(ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from following row cannot have preceding rows"), + parser_errposition((yylsp[0])))); + n1->frameOptions = frameOptions; + n1->endOffset = n2->startOffset; + (yyval.windef) = n1; + } +#line 44706 "gram.c" /* yacc.c:1652 */ + break; + + case 2139: +#line 14448 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 44718 "gram.c" /* yacc.c:1652 */ + break; + + case 2140: +#line 14456 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 44730 "gram.c" /* yacc.c:1652 */ + break; + + case 2141: +#line 14464 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 44742 "gram.c" /* yacc.c:1652 */ + break; + + case 2142: +#line 14472 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING; + n->startOffset = (yyvsp[-1].node); + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 44754 "gram.c" /* yacc.c:1652 */ + break; + + case 2143: +#line 14480 "gram.y" /* yacc.c:1652 */ + { + WindowDef *n = makeNode(WindowDef); + n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING; + n->startOffset = (yyvsp[-1].node); + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 44766 "gram.c" /* yacc.c:1652 */ + break; + + case 2144: +#line 14490 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; } +#line 44772 "gram.c" /* yacc.c:1652 */ + break; + + case 2145: +#line 14491 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; } +#line 44778 "gram.c" /* yacc.c:1652 */ + break; + + case 2146: +#line 14492 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; } +#line 44784 "gram.c" /* yacc.c:1652 */ + break; + + case 2147: +#line 14493 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 44790 "gram.c" /* yacc.c:1652 */ + break; + + case 2148: +#line 14494 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = 0; } +#line 44796 "gram.c" /* yacc.c:1652 */ + break; + + case 2149: +#line 14508 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44802 "gram.c" /* yacc.c:1652 */ + break; + + case 2150: +#line 14509 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 44808 "gram.c" /* yacc.c:1652 */ + break; + + case 2151: +#line 14510 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } +#line 44814 "gram.c" /* yacc.c:1652 */ + break; + + case 2152: +#line 14513 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44820 "gram.c" /* yacc.c:1652 */ + break; + + case 2153: +#line 14514 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 44826 "gram.c" /* yacc.c:1652 */ + break; + + case 2154: +#line 14517 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } +#line 44832 "gram.c" /* yacc.c:1652 */ + break; + + case 2155: +#line 14520 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ANY_SUBLINK; } +#line 44838 "gram.c" /* yacc.c:1652 */ + break; + + case 2156: +#line 14521 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ANY_SUBLINK; } +#line 44844 "gram.c" /* yacc.c:1652 */ + break; + + case 2157: +#line 14522 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = ALL_SUBLINK; } +#line 44850 "gram.c" /* yacc.c:1652 */ + break; + + case 2158: +#line 14525 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 44856 "gram.c" /* yacc.c:1652 */ + break; + + case 2159: +#line 14526 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 44862 "gram.c" /* yacc.c:1652 */ + break; + + case 2160: +#line 14529 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "+"; } +#line 44868 "gram.c" /* yacc.c:1652 */ + break; + + case 2161: +#line 14530 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "-"; } +#line 44874 "gram.c" /* yacc.c:1652 */ + break; + + case 2162: +#line 14531 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "*"; } +#line 44880 "gram.c" /* yacc.c:1652 */ + break; + + case 2163: +#line 14532 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "/"; } +#line 44886 "gram.c" /* yacc.c:1652 */ + break; + + case 2164: +#line 14533 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "%"; } +#line 44892 "gram.c" /* yacc.c:1652 */ + break; + + case 2165: +#line 14534 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "^"; } +#line 44898 "gram.c" /* yacc.c:1652 */ + break; + + case 2166: +#line 14535 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "<"; } +#line 44904 "gram.c" /* yacc.c:1652 */ + break; + + case 2167: +#line 14536 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = ">"; } +#line 44910 "gram.c" /* yacc.c:1652 */ + break; + + case 2168: +#line 14537 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "="; } +#line 44916 "gram.c" /* yacc.c:1652 */ + break; + + case 2169: +#line 14538 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "<="; } +#line 44922 "gram.c" /* yacc.c:1652 */ + break; + + case 2170: +#line 14539 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = ">="; } +#line 44928 "gram.c" /* yacc.c:1652 */ + break; + + case 2171: +#line 14540 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "<>"; } +#line 44934 "gram.c" /* yacc.c:1652 */ + break; + + case 2172: +#line 14544 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 44940 "gram.c" /* yacc.c:1652 */ + break; + + case 2173: +#line 14546 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44946 "gram.c" /* yacc.c:1652 */ + break; + + case 2174: +#line 14551 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 44952 "gram.c" /* yacc.c:1652 */ + break; + + case 2175: +#line 14553 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44958 "gram.c" /* yacc.c:1652 */ + break; + + case 2176: +#line 14558 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 44964 "gram.c" /* yacc.c:1652 */ + break; + + case 2177: +#line 14560 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[-1].list); } +#line 44970 "gram.c" /* yacc.c:1652 */ + break; + + case 2178: +#line 14562 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString("~~")); } +#line 44976 "gram.c" /* yacc.c:1652 */ + break; + + case 2179: +#line 14564 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString("!~~")); } +#line 44982 "gram.c" /* yacc.c:1652 */ + break; + + case 2180: +#line 14566 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString("~~*")); } +#line 44988 "gram.c" /* yacc.c:1652 */ + break; + + case 2181: +#line 14568 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString("!~~*")); } +#line 44994 "gram.c" /* yacc.c:1652 */ + break; + + case 2182: +#line 14580 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 45002 "gram.c" /* yacc.c:1652 */ + break; + + case 2183: +#line 14584 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 45010 "gram.c" /* yacc.c:1652 */ + break; + + case 2184: +#line 14591 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 45018 "gram.c" /* yacc.c:1652 */ + break; + + case 2185: +#line 14595 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 45026 "gram.c" /* yacc.c:1652 */ + break; + + case 2186: +#line 14601 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (yyvsp[0].node); + } +#line 45034 "gram.c" /* yacc.c:1652 */ + break; + + case 2187: +#line 14605 "gram.y" /* yacc.c:1652 */ + { + NamedArgExpr *na = makeNode(NamedArgExpr); + na->name = (yyvsp[-2].str); + na->arg = (Expr *) (yyvsp[0].node); + na->argnumber = -1; /* until determined */ + na->location = (yylsp[-2]); + (yyval.node) = (Node *) na; + } +#line 45047 "gram.c" /* yacc.c:1652 */ + break; + + case 2188: +#line 14614 "gram.y" /* yacc.c:1652 */ + { + NamedArgExpr *na = makeNode(NamedArgExpr); + na->name = (yyvsp[-2].str); + na->arg = (Expr *) (yyvsp[0].node); + na->argnumber = -1; /* until determined */ + na->location = (yylsp[-2]); + (yyval.node) = (Node *) na; + } +#line 45060 "gram.c" /* yacc.c:1652 */ + break; + + case 2189: +#line 14624 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 45066 "gram.c" /* yacc.c:1652 */ + break; + + case 2190: +#line 14625 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } +#line 45072 "gram.c" /* yacc.c:1652 */ + break; + + case 2191: +#line 14629 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); + } +#line 45080 "gram.c" /* yacc.c:1652 */ + break; + + case 2192: +#line 14633 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); + } +#line 45088 "gram.c" /* yacc.c:1652 */ + break; + + case 2193: +#line 14637 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1])); + } +#line 45096 "gram.c" /* yacc.c:1652 */ + break; + + case 2194: +#line 14642 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 45102 "gram.c" /* yacc.c:1652 */ + break; + + case 2195: +#line 14643 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 45108 "gram.c" /* yacc.c:1652 */ + break; + + case 2196: +#line 14649 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node)); + } +#line 45116 "gram.c" /* yacc.c:1652 */ + break; + + case 2197: +#line 14652 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 45122 "gram.c" /* yacc.c:1652 */ + break; + + case 2198: +#line 14659 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45128 "gram.c" /* yacc.c:1652 */ + break; + + case 2199: +#line 14660 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "year"; } +#line 45134 "gram.c" /* yacc.c:1652 */ + break; + + case 2200: +#line 14661 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "month"; } +#line 45140 "gram.c" /* yacc.c:1652 */ + break; + + case 2201: +#line 14662 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "day"; } +#line 45146 "gram.c" /* yacc.c:1652 */ + break; + + case 2202: +#line 14663 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "hour"; } +#line 45152 "gram.c" /* yacc.c:1652 */ + break; + + case 2203: +#line 14664 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "minute"; } +#line 45158 "gram.c" /* yacc.c:1652 */ + break; + + case 2204: +#line 14665 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "second"; } +#line 45164 "gram.c" /* yacc.c:1652 */ + break; + + case 2205: +#line 14666 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45170 "gram.c" /* yacc.c:1652 */ + break; + + case 2206: +#line 14670 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "nfc"; } +#line 45176 "gram.c" /* yacc.c:1652 */ + break; + + case 2207: +#line 14671 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "nfd"; } +#line 45182 "gram.c" /* yacc.c:1652 */ + break; + + case 2208: +#line 14672 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "nfkc"; } +#line 45188 "gram.c" /* yacc.c:1652 */ + break; + + case 2209: +#line 14673 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = "nfkd"; } +#line 45194 "gram.c" /* yacc.c:1652 */ + break; + + case 2210: +#line 14684 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make4((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); + } +#line 45202 "gram.c" /* yacc.c:1652 */ + break; + + case 2211: +#line 14688 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); + } +#line 45210 "gram.c" /* yacc.c:1652 */ + break; + + case 2212: +#line 14695 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 45216 "gram.c" /* yacc.c:1652 */ + break; + + case 2213: +#line 14701 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } +#line 45222 "gram.c" /* yacc.c:1652 */ + break; + + case 2214: +#line 14702 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 45228 "gram.c" /* yacc.c:1652 */ + break; + + case 2215: +#line 14719 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); + } +#line 45236 "gram.c" /* yacc.c:1652 */ + break; + + case 2216: +#line 14723 "gram.y" /* yacc.c:1652 */ + { + /* not legal per SQL99, but might as well allow it */ + (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[0].node), (yyvsp[-1].node)); + } +#line 45245 "gram.c" /* yacc.c:1652 */ + break; + + case 2217: +#line 14728 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); + } +#line 45253 "gram.c" /* yacc.c:1652 */ + break; + + case 2218: +#line 14732 "gram.y" /* yacc.c:1652 */ + { + /* + * 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].node), makeIntConst(1, -1), + makeTypeCast((yyvsp[0].node), + SystemTypeName("int4"), -1)); + } +#line 45272 "gram.c" /* yacc.c:1652 */ + break; + + case 2219: +#line 14747 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = (yyvsp[0].list); + } +#line 45280 "gram.c" /* yacc.c:1652 */ + break; + + case 2220: +#line 14751 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 45286 "gram.c" /* yacc.c:1652 */ + break; + + case 2221: +#line 14755 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 45292 "gram.c" /* yacc.c:1652 */ + break; + + case 2222: +#line 14758 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 45298 "gram.c" /* yacc.c:1652 */ + break; + + case 2223: +#line 14761 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } +#line 45304 "gram.c" /* yacc.c:1652 */ + break; + + case 2224: +#line 14762 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 45310 "gram.c" /* yacc.c:1652 */ + break; + + case 2225: +#line 14763 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 45316 "gram.c" /* yacc.c:1652 */ + break; + + case 2226: +#line 14767 "gram.y" /* yacc.c:1652 */ + { + SubLink *n = makeNode(SubLink); + n->subselect = (yyvsp[0].node); + /* other fields will be filled later */ + (yyval.node) = (Node *)n; + } +#line 45327 "gram.c" /* yacc.c:1652 */ + break; + + case 2227: +#line 14773 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (Node *)(yyvsp[-1].list); } +#line 45333 "gram.c" /* yacc.c:1652 */ + break; + + case 2228: +#line 14784 "gram.y" /* yacc.c:1652 */ + { + CaseExpr *c = makeNode(CaseExpr); + c->casetype = InvalidOid; /* not analyzed yet */ + c->arg = (Expr *) (yyvsp[-3].node); + c->args = (yyvsp[-2].list); + c->defresult = (Expr *) (yyvsp[-1].node); + c->location = (yylsp[-4]); + (yyval.node) = (Node *)c; + } +#line 45347 "gram.c" /* yacc.c:1652 */ + break; + + case 2229: +#line 14797 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 45353 "gram.c" /* yacc.c:1652 */ + break; + + case 2230: +#line 14798 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 45359 "gram.c" /* yacc.c:1652 */ + break; + + case 2231: +#line 14803 "gram.y" /* yacc.c:1652 */ + { + CaseWhen *w = makeNode(CaseWhen); + w->expr = (Expr *) (yyvsp[-2].node); + w->result = (Expr *) (yyvsp[0].node); + w->location = (yylsp[-3]); + (yyval.node) = (Node *)w; + } +#line 45371 "gram.c" /* yacc.c:1652 */ + break; + + case 2232: +#line 14813 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 45377 "gram.c" /* yacc.c:1652 */ + break; + + case 2233: +#line 14814 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 45383 "gram.c" /* yacc.c:1652 */ + break; + + case 2234: +#line 14817 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 45389 "gram.c" /* yacc.c:1652 */ + break; + + case 2235: +#line 14818 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 45395 "gram.c" /* yacc.c:1652 */ + break; + + case 2236: +#line 14822 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner); + } +#line 45403 "gram.c" /* yacc.c:1652 */ + break; + + case 2237: +#line 14826 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner); + } +#line 45411 "gram.c" /* yacc.c:1652 */ + break; + + case 2238: +#line 14833 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeString((yyvsp[0].str)); + } +#line 45419 "gram.c" /* yacc.c:1652 */ + break; + + case 2239: +#line 14837 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = (Node *) makeNode(A_Star); + } +#line 45427 "gram.c" /* yacc.c:1652 */ + break; + + case 2240: +#line 14841 "gram.y" /* yacc.c:1652 */ + { + A_Indices *ai = makeNode(A_Indices); + ai->is_slice = false; + ai->lidx = NULL; + ai->uidx = (yyvsp[-1].node); + (yyval.node) = (Node *) ai; + } +#line 45439 "gram.c" /* yacc.c:1652 */ + break; + + case 2241: +#line 14849 "gram.y" /* yacc.c:1652 */ + { + A_Indices *ai = makeNode(A_Indices); + ai->is_slice = true; + ai->lidx = (yyvsp[-3].node); + ai->uidx = (yyvsp[-1].node); + (yyval.node) = (Node *) ai; + } +#line 45451 "gram.c" /* yacc.c:1652 */ + break; + + case 2242: +#line 14859 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = (yyvsp[0].node); } +#line 45457 "gram.c" /* yacc.c:1652 */ + break; + + case 2243: +#line 14860 "gram.y" /* yacc.c:1652 */ + { (yyval.node) = NULL; } +#line 45463 "gram.c" /* yacc.c:1652 */ + break; + + case 2244: +#line 14864 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 45469 "gram.c" /* yacc.c:1652 */ + break; + + case 2245: +#line 14865 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 45475 "gram.c" /* yacc.c:1652 */ + break; + + case 2246: +#line 14869 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 45481 "gram.c" /* yacc.c:1652 */ + break; + + case 2247: +#line 14870 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 45487 "gram.c" /* yacc.c:1652 */ + break; + + case 2250: +#line 14884 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = (yyvsp[0].list); } +#line 45493 "gram.c" /* yacc.c:1652 */ + break; + + case 2251: +#line 14885 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = NIL; } +#line 45499 "gram.c" /* yacc.c:1652 */ + break; + + case 2252: +#line 14889 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 45505 "gram.c" /* yacc.c:1652 */ + break; + + case 2253: +#line 14890 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 45511 "gram.c" /* yacc.c:1652 */ + break; + + case 2254: +#line 14894 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = (yyvsp[0].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (Node *)(yyvsp[-2].node); + (yyval.target)->location = (yylsp[-2]); + } +#line 45523 "gram.c" /* yacc.c:1652 */ + break; + + case 2255: +#line 14910 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = (yyvsp[0].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (Node *)(yyvsp[-1].node); + (yyval.target)->location = (yylsp[-1]); + } +#line 45535 "gram.c" /* yacc.c:1652 */ + break; + + case 2256: +#line 14918 "gram.y" /* yacc.c:1652 */ + { + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (Node *)(yyvsp[0].node); + (yyval.target)->location = (yylsp[0]); + } +#line 45547 "gram.c" /* yacc.c:1652 */ + break; + + case 2257: +#line 14926 "gram.y" /* yacc.c:1652 */ + { + ColumnRef *n = makeNode(ColumnRef); + n->fields = list_make1(makeNode(A_Star)); + n->location = (yylsp[0]); + + (yyval.target) = makeNode(ResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (Node *)n; + (yyval.target)->location = (yylsp[0]); + } +#line 45563 "gram.c" /* yacc.c:1652 */ + break; + + case 2258: +#line 14947 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].range)); } +#line 45569 "gram.c" /* yacc.c:1652 */ + break; + + case 2259: +#line 14948 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } +#line 45575 "gram.c" /* yacc.c:1652 */ + break; + + case 2260: +#line 14960 "gram.y" /* yacc.c:1652 */ + { + (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0])); + } +#line 45583 "gram.c" /* yacc.c:1652 */ + break; + + case 2261: +#line 14964 "gram.y" /* yacc.c:1652 */ + { + check_qualified_name((yyvsp[0].list), yyscanner); + (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[-1])); + switch (list_length((yyvsp[0].list))) + { + case 1: + (yyval.range)->catalogname = NULL; + (yyval.range)->schemaname = (yyvsp[-1].str); + (yyval.range)->relname = strVal(linitial((yyvsp[0].list))); + break; + case 2: + (yyval.range)->catalogname = (yyvsp[-1].str); + (yyval.range)->schemaname = strVal(linitial((yyvsp[0].list))); + (yyval.range)->relname = strVal(lsecond((yyvsp[0].list))); + break; + default: + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("improper qualified name (too many dotted names): %s", + NameListToString(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)))), + parser_errposition((yylsp[-1])))); + break; + } + } +#line 45612 "gram.c" /* yacc.c:1652 */ + break; + + case 2262: +#line 14991 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 45618 "gram.c" /* yacc.c:1652 */ + break; + + case 2263: +#line 14993 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 45624 "gram.c" /* yacc.c:1652 */ + break; + + case 2264: +#line 14997 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45630 "gram.c" /* yacc.c:1652 */ + break; + + case 2265: +#line 15000 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45636 "gram.c" /* yacc.c:1652 */ + break; + + case 2266: +#line 15003 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45642 "gram.c" /* yacc.c:1652 */ + break; + + case 2267: +#line 15005 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45648 "gram.c" /* yacc.c:1652 */ + break; + + case 2268: +#line 15007 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45654 "gram.c" /* yacc.c:1652 */ + break; + + case 2269: +#line 15009 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45660 "gram.c" /* yacc.c:1652 */ + break; + + case 2270: +#line 15020 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 45666 "gram.c" /* yacc.c:1652 */ + break; + + case 2271: +#line 15022 "gram.y" /* yacc.c:1652 */ + { + (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), + yyscanner); + } +#line 45675 "gram.c" /* yacc.c:1652 */ + break; + + case 2272: +#line 15033 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0])); + } +#line 45683 "gram.c" /* yacc.c:1652 */ + break; + + case 2273: +#line 15037 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0])); + } +#line 45691 "gram.c" /* yacc.c:1652 */ + break; + + case 2274: +#line 15041 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 45699 "gram.c" /* yacc.c:1652 */ + break; + + case 2275: +#line 15045 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 45707 "gram.c" /* yacc.c:1652 */ + break; + + case 2276: +#line 15049 "gram.y" /* yacc.c:1652 */ + { + /* This is a bit constant per SQL99: + * Without Feature F511, "BIT data type", + * a <general literal> shall not be a + * <bit string literal> or a <hex string literal>. + */ + (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 45720 "gram.c" /* yacc.c:1652 */ + break; + + case 2277: +#line 15058 "gram.y" /* yacc.c:1652 */ + { + /* generic type 'literal' syntax */ + TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list)); + t->location = (yylsp[-1]); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 45731 "gram.c" /* yacc.c:1652 */ + break; + + case 2278: +#line 15065 "gram.y" /* yacc.c:1652 */ + { + /* generic syntax with a type modifier */ + TypeName *t = makeTypeNameFromNameList((yyvsp[-5].list)); + ListCell *lc; + + /* + * We must use func_arg_list and opt_sort_clause in the + * production to avoid reduce/reduce conflicts, but we + * don't actually wish to allow NamedArgExpr in this + * context, nor ORDER BY. + */ + foreach(lc, (yyvsp[-3].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))); + } + if ((yyvsp[-2].list) != NIL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have ORDER BY"), + parser_errposition((yylsp[-2])))); + + t->typmods = (yyvsp[-3].list); + t->location = (yylsp[-5]); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 45767 "gram.c" /* yacc.c:1652 */ + break; + + case 2279: +#line 15097 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam)); + } +#line 45775 "gram.c" /* yacc.c:1652 */ + break; + + case 2280: +#line 15101 "gram.y" /* yacc.c:1652 */ + { + TypeName *t = (yyvsp[-2].typnam); + t->typmods = (yyvsp[0].list); + (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); + } +#line 45785 "gram.c" /* yacc.c:1652 */ + break; + + case 2281: +#line 15107 "gram.y" /* yacc.c:1652 */ + { + TypeName *t = (yyvsp[-4].typnam); + t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 45796 "gram.c" /* yacc.c:1652 */ + break; + + case 2282: +#line 15114 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeBoolAConst(true, (yylsp[0])); + } +#line 45804 "gram.c" /* yacc.c:1652 */ + break; + + case 2283: +#line 15118 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeBoolAConst(false, (yylsp[0])); + } +#line 45812 "gram.c" /* yacc.c:1652 */ + break; + + case 2284: +#line 15122 "gram.y" /* yacc.c:1652 */ + { + (yyval.node) = makeNullAConst((yylsp[0])); + } +#line 45820 "gram.c" /* yacc.c:1652 */ + break; + + case 2285: +#line 15127 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 45826 "gram.c" /* yacc.c:1652 */ + break; + + case 2286: +#line 15128 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45832 "gram.c" /* yacc.c:1652 */ + break; + + case 2287: +#line 15130 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 45838 "gram.c" /* yacc.c:1652 */ + break; + + case 2288: +#line 15131 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = + (yyvsp[0].ival); } +#line 45844 "gram.c" /* yacc.c:1652 */ + break; + + case 2289: +#line 15132 "gram.y" /* yacc.c:1652 */ + { (yyval.ival) = - (yyvsp[0].ival); } +#line 45850 "gram.c" /* yacc.c:1652 */ + break; + + case 2290: +#line 15137 "gram.y" /* yacc.c:1652 */ + { + RoleSpec *spc = (RoleSpec *) (yyvsp[0].rolespec); + switch (spc->roletype) + { + case ROLESPEC_CSTRING: + (yyval.str) = spc->rolename; + break; + case ROLESPEC_PUBLIC: + ereport(ERROR, + (errcode(ERRCODE_RESERVED_NAME), + errmsg("role name \"%s\" is reserved", + "public"), + parser_errposition((yylsp[0])))); + break; + case ROLESPEC_SESSION_USER: + ereport(ERROR, + (errcode(ERRCODE_RESERVED_NAME), + errmsg("%s cannot be used as a role name here", + "SESSION_USER"), + parser_errposition((yylsp[0])))); + break; + case ROLESPEC_CURRENT_USER: + ereport(ERROR, + (errcode(ERRCODE_RESERVED_NAME), + errmsg("%s cannot be used as a role name here", + "CURRENT_USER"), + parser_errposition((yylsp[0])))); + break; + } + } +#line 45885 "gram.c" /* yacc.c:1652 */ + break; + + case 2291: +#line 15170 "gram.y" /* yacc.c:1652 */ + { + /* + * "public" and "none" are not keywords, but they must + * be treated specially here. + */ + RoleSpec *n; + if (strcmp((yyvsp[0].str), "public") == 0) + { + n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[0])); + n->roletype = ROLESPEC_PUBLIC; + } + else if (strcmp((yyvsp[0].str), "none") == 0) + { + ereport(ERROR, + (errcode(ERRCODE_RESERVED_NAME), + errmsg("role name \"%s\" is reserved", + "none"), + parser_errposition((yylsp[0])))); + } + else + { + n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[0])); + n->rolename = pstrdup((yyvsp[0].str)); + } + (yyval.rolespec) = n; + } +#line 45916 "gram.c" /* yacc.c:1652 */ + break; + + case 2292: +#line 15197 "gram.y" /* yacc.c:1652 */ + { + (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); + } +#line 45924 "gram.c" /* yacc.c:1652 */ + break; + + case 2293: +#line 15201 "gram.y" /* yacc.c:1652 */ + { + (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0])); + } +#line 45932 "gram.c" /* yacc.c:1652 */ + break; + + case 2294: +#line 15207 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = list_make1((yyvsp[0].rolespec)); } +#line 45938 "gram.c" /* yacc.c:1652 */ + break; + + case 2295: +#line 15209 "gram.y" /* yacc.c:1652 */ + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } +#line 45944 "gram.c" /* yacc.c:1652 */ + break; + + case 2296: +#line 15225 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45950 "gram.c" /* yacc.c:1652 */ + break; + + case 2297: +#line 15226 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 45956 "gram.c" /* yacc.c:1652 */ + break; + + case 2298: +#line 15227 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 45962 "gram.c" /* yacc.c:1652 */ + break; + + case 2299: +#line 15232 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45968 "gram.c" /* yacc.c:1652 */ + break; + + case 2300: +#line 15233 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 45974 "gram.c" /* yacc.c:1652 */ + break; + + case 2301: +#line 15234 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 45980 "gram.c" /* yacc.c:1652 */ + break; + + case 2302: +#line 15239 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 45986 "gram.c" /* yacc.c:1652 */ + break; + + case 2303: +#line 15240 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 45992 "gram.c" /* yacc.c:1652 */ + break; + + case 2304: +#line 15241 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 45998 "gram.c" /* yacc.c:1652 */ + break; + + case 2305: +#line 15242 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46004 "gram.c" /* yacc.c:1652 */ + break; + + case 2306: +#line 15248 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = (yyvsp[0].str); } +#line 46010 "gram.c" /* yacc.c:1652 */ + break; + + case 2307: +#line 15249 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46016 "gram.c" /* yacc.c:1652 */ + break; + + case 2308: +#line 15250 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46022 "gram.c" /* yacc.c:1652 */ + break; + + case 2309: +#line 15251 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46028 "gram.c" /* yacc.c:1652 */ + break; + + case 2310: +#line 15252 "gram.y" /* yacc.c:1652 */ + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46034 "gram.c" /* yacc.c:1652 */ + break; + + +#line 46038 "gram.c" /* yacc.c:1652 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + 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. */ + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (&yylloc, yyscanner, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (&yylloc, yyscanner, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#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 when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + + /* Do not reclaim the symbols of the rule whose 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 (!yypact_value_is_default (yyn)) + { + 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); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + 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 -- parsing is finished, return the result. | +`-----------------------------------------------------*/ +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, &yylloc, yyscanner); + } + /* Do not reclaim the symbols of the rule whose 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 + return yyresult; +} +#line 15759 "gram.y" /* yacc.c:1918 */ + + +/* + * 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 RawStmt * +makeRawStmt(Node *stmt, int stmt_location) +{ + RawStmt *rs = makeNode(RawStmt); + + rs->stmt = stmt; + rs->stmt_location = stmt_location; + rs->stmt_len = 0; /* might get changed later */ + return rs; +} + +/* Adjust a RawStmt to reflect that it doesn't run to the end of the string */ +static void +updateRawStmtEnd(RawStmt *rs, int end_location) +{ + /* + * If we already set the length, don't change it. This is for situations + * like "select foo ;; select bar" where the same statement will be last + * in the string for more than one semicolon. + */ + if (rs->stmt_len > 0) + return; + + /* OK, update length of RawStmt */ + rs->stmt_len = end_location - rs->stmt_location; +} + +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(indirection, 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); +} + +/* makeRoleSpec + * Create a RoleSpec with the given type + */ +static RoleSpec * +makeRoleSpec(RoleSpecType type, int location) +{ + RoleSpec *spec = makeNode(RoleSpec); + + spec->roletype = type; + spec->location = location; + + return spec; +} + +/* 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(indirection, 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; +} + +/* extractAggrArgTypes() + * As above, but work from the output of the aggr_args production. + */ +static List * +extractAggrArgTypes(List *aggrargs) +{ + Assert(list_length(aggrargs) == 2); + return extractArgTypes((List *) linitial(aggrargs)); +} + +/* makeOrderedSetArgs() + * Build the result of the aggr_args production (which see the comments for). + * This handles only the case where both given lists are nonempty, so that + * we have to deal with multiple VARIADIC arguments. + */ +static List * +makeOrderedSetArgs(List *directargs, List *orderedargs, + core_yyscan_t yyscanner) +{ + FunctionParameter *lastd = (FunctionParameter *) llast(directargs); + Value *ndirectargs; + + /* No restriction unless last direct arg is VARIADIC */ + if (lastd->mode == FUNC_PARAM_VARIADIC) + { + FunctionParameter *firsto = (FunctionParameter *) linitial(orderedargs); + + /* + * We ignore the names, though the aggr_arg production allows them; + * it doesn't allow default values, so those need not be checked. + */ + if (list_length(orderedargs) != 1 || + firsto->mode != FUNC_PARAM_VARIADIC || + !equal(lastd->argType, firsto->argType)) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"), + parser_errposition(exprLocation((Node *) firsto)))); + + /* OK, drop the duplicate VARIADIC argument from the internal form */ + orderedargs = NIL; + } + + /* don't merge into the next line, as list_concat changes directargs */ + ndirectargs = makeInteger(list_length(directargs)); + + return list_make2(list_concat(directargs, orderedargs), + ndirectargs); +} + +/* 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, + SelectLimit *limitClause, + 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 (limitClause && limitClause->limitOffset) + { + if (stmt->limitOffset) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("multiple OFFSET clauses not allowed"), + parser_errposition(exprLocation(limitClause->limitOffset)))); + stmt->limitOffset = limitClause->limitOffset; + } + if (limitClause && limitClause->limitCount) + { + if (stmt->limitCount) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("multiple LIMIT clauses not allowed"), + parser_errposition(exprLocation(limitClause->limitCount)))); + stmt->limitCount = limitClause->limitCount; + } + if (limitClause && limitClause->limitOption != LIMIT_OPTION_DEFAULT) + { + if (stmt->limitOption) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("multiple limit options not allowed"))); + if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("WITH TIES cannot be specified without ORDER BY clause"))); + stmt->limitOption = limitClause->limitOption; + } + 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 + v->val.str = psprintf("-%s", oldval); +} + +static Node * +makeAndExpr(Node *lexpr, Node *rexpr, int location) +{ + Node *lexp = lexpr; + + /* Look through AEXPR_PAREN nodes so they don't affect flattening */ + while (IsA(lexp, A_Expr) && + ((A_Expr *) lexp)->kind == AEXPR_PAREN) + lexp = ((A_Expr *) lexp)->lexpr; + /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */ + if (IsA(lexp, BoolExpr)) + { + BoolExpr *blexpr = (BoolExpr *) lexp; + + if (blexpr->boolop == AND_EXPR) + { + blexpr->args = lappend(blexpr->args, rexpr); + return (Node *) blexpr; + } + } + return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location); +} + +static Node * +makeOrExpr(Node *lexpr, Node *rexpr, int location) +{ + Node *lexp = lexpr; + + /* Look through AEXPR_PAREN nodes so they don't affect flattening */ + while (IsA(lexp, A_Expr) && + ((A_Expr *) lexp)->kind == AEXPR_PAREN) + lexp = ((A_Expr *) lexp)->lexpr; + /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */ + if (IsA(lexp, BoolExpr)) + { + BoolExpr *blexpr = (BoolExpr *) lexp; + + if (blexpr->boolop == OR_EXPR) + { + blexpr->args = lappend(blexpr->args, rexpr); + return (Node *) blexpr; + } + } + return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location); +} + +static Node * +makeNotExpr(Node *expr, int location) +{ + return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location); +} + +static Node * +makeAArrayExpr(List *elements, int location) +{ + A_ArrayExpr *n = makeNode(A_ArrayExpr); + + n->elements = elements; + n->location = location; + return (Node *) n; +} + +static Node * +makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location) +{ + SQLValueFunction *svf = makeNode(SQLValueFunction); + + svf->op = op; + /* svf->type will be filled during parse analysis */ + svf->typmod = typmod; + svf->location = location; + return (Node *) svf; +} + +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 = 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; + + *collClause = NULL; + foreach(cell, qualList) + { + Node *n = (Node *) lfirst(cell); + + if (IsA(n, Constraint)) + { + /* keep it in list */ + 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 = foreach_delete_current(qualList, cell); + } + *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))); + } +} + +/*---------- + * Recursive view transformation + * + * Convert + * + * CREATE RECURSIVE VIEW relname (aliases) AS query + * + * to + * + * CREATE VIEW relname (aliases) AS + * WITH RECURSIVE relname (aliases) AS (query) + * SELECT aliases FROM relname + * + * Actually, just the WITH ... part, which is then inserted into the original + * view definition as the query. + * ---------- + */ +static Node * +makeRecursiveViewSelect(char *relname, List *aliases, Node *query) +{ + SelectStmt *s = makeNode(SelectStmt); + WithClause *w = makeNode(WithClause); + CommonTableExpr *cte = makeNode(CommonTableExpr); + List *tl = NIL; + ListCell *lc; + + /* create common table expression */ + cte->ctename = relname; + cte->aliascolnames = aliases; + cte->ctematerialized = CTEMaterializeDefault; + cte->ctequery = query; + cte->location = -1; + + /* create WITH clause and attach CTE */ + w->recursive = true; + w->ctes = list_make1(cte); + w->location = -1; + + /* create target list for the new SELECT from the alias list of the + * recursive view specification */ + foreach (lc, aliases) + { + ResTarget *rt = makeNode(ResTarget); + + rt->name = NULL; + rt->indirection = NIL; + rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0); + rt->location = -1; + + tl = lappend(tl, rt); + } + + /* create new SELECT combining WITH clause, target list, and fake FROM + * clause */ + s->withClause = w; + s->targetList = tl; + s->fromClause = list_make1(makeRangeVar(NULL, relname, -1)); + + return (Node *) s; +} + +/* parser_init() + * Initialize to parse one query string + */ +void +parser_init(base_yy_extra_type *yyext) +{ + yyext->parsetree = NIL; /* in case grammar forgets to set it */ +} |