/* A Bison parser, made by GNU Bison 1.875c. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* Written by Richard Stallman by simplifying the original so called ``semantic'' parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { END_OF_INPUT = 258, EQ = 259, EQUAL_SYM = 260, GE = 261, GT_SYM = 262, LE = 263, LT = 264, NE = 265, IS = 266, SHIFT_LEFT = 267, SHIFT_RIGHT = 268, SET_VAR = 269, AVG_SYM = 270, COUNT_SYM = 271, MAX_SYM = 272, MIN_SYM = 273, SUM_SYM = 274, STD_SYM = 275, ADD = 276, ALTER = 277, AFTER_SYM = 278, ANALYZE_SYM = 279, BEGIN_SYM = 280, CHANGE = 281, COMMENT_SYM = 282, COMMIT_SYM = 283, CREATE = 284, CROSS = 285, DELETE_SYM = 286, DO_SYM = 287, DROP = 288, INSERT = 289, FLUSH_SYM = 290, SELECT_SYM = 291, MASTER_SYM = 292, REPAIR = 293, RESET_SYM = 294, PURGE = 295, SLAVE = 296, START_SYM = 297, STOP_SYM = 298, TRUNCATE_SYM = 299, ROLLBACK_SYM = 300, OPTIMIZE = 301, SHOW = 302, UPDATE_SYM = 303, KILL_SYM = 304, LOAD = 305, LOCK_SYM = 306, LOCKS_SYM = 307, UNLOCK_SYM = 308, ACTION = 309, AGGREGATE_SYM = 310, ALL = 311, AND = 312, AS = 313, ASC = 314, AUTO_INC = 315, AUTOCOMMIT = 316, AVG_ROW_LENGTH = 317, BACKUP_SYM = 318, BERKELEY_DB_SYM = 319, BINARY = 320, BIT_SYM = 321, BOOL_SYM = 322, BOTH = 323, BY = 324, CASCADE = 325, CHECKSUM_SYM = 326, CHECK_SYM = 327, COMMITTED_SYM = 328, COLUMNS = 329, COLUMN_SYM = 330, CONCURRENT = 331, CONSTRAINT = 332, DATABASES = 333, DATA_SYM = 334, DEFAULT = 335, DELAYED_SYM = 336, DELAY_KEY_WRITE_SYM = 337, DESC = 338, DESCRIBE = 339, DISTINCT = 340, DYNAMIC_SYM = 341, ENCLOSED = 342, ESCAPED = 343, ESCAPE_SYM = 344, EXISTS = 345, EXTENDED_SYM = 346, FILE_SYM = 347, FIRST_SYM = 348, FIXED_SYM = 349, FLOAT_NUM = 350, FOREIGN = 351, FROM = 352, FULL = 353, FULLTEXT_SYM = 354, GEMINI_SYM = 355, GEMINI_SPIN_RETRIES = 356, GLOBAL_SYM = 357, GRANT = 358, GRANTS = 359, GREATEST_SYM = 360, GROUP = 361, HAVING = 362, HEAP_SYM = 363, HEX_NUM = 364, HIGH_PRIORITY = 365, HOSTS_SYM = 366, IDENT = 367, IGNORE_SYM = 368, INDEX = 369, INFILE = 370, INNER_SYM = 371, INNOBASE_SYM = 372, INTO = 373, IN_SYM = 374, ISOLATION = 375, ISAM_SYM = 376, JOIN_SYM = 377, KEYS = 378, KEY_SYM = 379, LEADING = 380, LEAST_SYM = 381, LEVEL_SYM = 382, LEX_HOSTNAME = 383, LIKE = 384, LINES = 385, LOCAL_SYM = 386, LOGS_SYM = 387, LONG_NUM = 388, LONG_SYM = 389, LOW_PRIORITY = 390, MASTER_HOST_SYM = 391, MASTER_USER_SYM = 392, MASTER_LOG_FILE_SYM = 393, MASTER_LOG_POS_SYM = 394, MASTER_PASSWORD_SYM = 395, MASTER_PORT_SYM = 396, MASTER_CONNECT_RETRY_SYM = 397, MATCH = 398, MAX_ROWS = 399, MEDIUM_SYM = 400, MERGE_SYM = 401, MIN_ROWS = 402, MYISAM_SYM = 403, NATIONAL_SYM = 404, NATURAL = 405, NCHAR_SYM = 406, NOT = 407, FOREIGN_KEY_CHECKS = 408, NO_SYM = 409, NULL_SYM = 410, NUM = 411, ON = 412, OPEN_SYM = 413, OPTION = 414, OPTIONALLY = 415, OR = 416, OR_OR_CONCAT = 417, ORDER_SYM = 418, OUTER = 419, OUTFILE = 420, DUMPFILE = 421, PACK_KEYS_SYM = 422, PARTIAL = 423, PRIMARY_SYM = 424, PRIVILEGES = 425, PROCESS = 426, PROCESSLIST_SYM = 427, RAID_0_SYM = 428, RAID_STRIPED_SYM = 429, RAID_TYPE = 430, RAID_CHUNKS = 431, RAID_CHUNKSIZE = 432, READ_SYM = 433, REAL_NUM = 434, REFERENCES = 435, REGEXP = 436, RELOAD = 437, RENAME = 438, REPEATABLE_SYM = 439, RESTORE_SYM = 440, RESTRICT = 441, REVOKE = 442, ROWS_SYM = 443, ROW_FORMAT_SYM = 444, ROW_SYM = 445, SET = 446, SERIALIZABLE_SYM = 447, SESSION_SYM = 448, SHUTDOWN = 449, STARTING = 450, STATUS_SYM = 451, STRAIGHT_JOIN = 452, TABLES = 453, TABLE_SYM = 454, TEMPORARY = 455, TERMINATED = 456, TEXT_STRING = 457, TO_SYM = 458, TRAILING = 459, TRANSACTION_SYM = 460, TYPE_SYM = 461, FUNC_ARG0 = 462, FUNC_ARG1 = 463, FUNC_ARG2 = 464, FUNC_ARG3 = 465, UDF_RETURNS_SYM = 466, UDF_SONAME_SYM = 467, UDF_SYM = 468, UNCOMMITTED_SYM = 469, UNION_SYM = 470, UNIQUE_SYM = 471, UNIQUE_CHECKS = 472, USAGE = 473, USE_SYM = 474, USING = 475, VALUES = 476, VARIABLES = 477, WHERE = 478, WITH = 479, WRITE_SYM = 480, COMPRESSED_SYM = 481, BIGINT = 482, BLOB_SYM = 483, CHAR_SYM = 484, CHANGED = 485, COALESCE = 486, DATETIME = 487, DATE_SYM = 488, DECIMAL_SYM = 489, DOUBLE_SYM = 490, ENUM = 491, FAST_SYM = 492, FLOAT_SYM = 493, INT_SYM = 494, LIMIT = 495, LONGBLOB = 496, LONGTEXT = 497, MEDIUMBLOB = 498, MEDIUMINT = 499, MEDIUMTEXT = 500, NUMERIC_SYM = 501, PRECISION = 502, QUICK = 503, REAL = 504, SMALLINT = 505, STRING_SYM = 506, TEXT_SYM = 507, TIMESTAMP = 508, TIME_SYM = 509, TINYBLOB = 510, TINYINT = 511, TINYTEXT = 512, UNSIGNED = 513, VARBINARY = 514, VARCHAR = 515, VARYING = 516, ZEROFILL = 517, AGAINST = 518, ATAN = 519, BETWEEN_SYM = 520, BIT_AND = 521, BIT_OR = 522, CASE_SYM = 523, CONCAT = 524, CONCAT_WS = 525, CURDATE = 526, CURTIME = 527, DATABASE = 528, DATE_ADD_INTERVAL = 529, DATE_SUB_INTERVAL = 530, DAY_HOUR_SYM = 531, DAY_MINUTE_SYM = 532, DAY_SECOND_SYM = 533, DAY_SYM = 534, DECODE_SYM = 535, ELSE = 536, ELT_FUNC = 537, ENCODE_SYM = 538, ENCRYPT = 539, EXPORT_SET = 540, EXTRACT_SYM = 541, FIELD_FUNC = 542, FORMAT_SYM = 543, FOR_SYM = 544, FROM_UNIXTIME = 545, GROUP_UNIQUE_USERS = 546, HOUR_MINUTE_SYM = 547, HOUR_SECOND_SYM = 548, HOUR_SYM = 549, IDENTIFIED_SYM = 550, IF = 551, INSERT_ID = 552, INTERVAL_SYM = 553, LAST_INSERT_ID = 554, LEFT = 555, LOCATE = 556, MAKE_SET_SYM = 557, MINUTE_SECOND_SYM = 558, MINUTE_SYM = 559, MODE_SYM = 560, MODIFY_SYM = 561, MONTH_SYM = 562, NOW_SYM = 563, PASSWORD = 564, POSITION_SYM = 565, PROCEDURE = 566, RAND = 567, REPLACE = 568, RIGHT = 569, ROUND = 570, SECOND_SYM = 571, SHARE_SYM = 572, SUBSTRING = 573, SUBSTRING_INDEX = 574, TRIM = 575, UDA_CHAR_SUM = 576, UDA_FLOAT_SUM = 577, UDA_INT_SUM = 578, UDF_CHAR_FUNC = 579, UDF_FLOAT_FUNC = 580, UDF_INT_FUNC = 581, UNIQUE_USERS = 582, UNIX_TIMESTAMP = 583, USER = 584, WEEK_SYM = 585, WHEN_SYM = 586, WORK_SYM = 587, YEAR_MONTH_SYM = 588, YEAR_SYM = 589, YEARWEEK = 590, BENCHMARK_SYM = 591, END = 592, THEN_SYM = 593, SQL_BIG_TABLES = 594, SQL_BIG_SELECTS = 595, SQL_SELECT_LIMIT = 596, SQL_MAX_JOIN_SIZE = 597, SQL_LOG_BIN = 598, SQL_LOG_OFF = 599, SQL_LOG_UPDATE = 600, SQL_LOW_PRIORITY_UPDATES = 601, SQL_SMALL_RESULT = 602, SQL_BIG_RESULT = 603, SQL_BUFFER_RESULT = 604, SQL_WARNINGS = 605, SQL_AUTO_IS_NULL = 606, SQL_SAFE_UPDATES = 607, SQL_QUOTE_SHOW_CREATE = 608, SQL_SLAVE_SKIP_COUNTER = 609, NEG = 610 }; #endif #define END_OF_INPUT 258 #define EQ 259 #define EQUAL_SYM 260 #define GE 261 #define GT_SYM 262 #define LE 263 #define LT 264 #define NE 265 #define IS 266 #define SHIFT_LEFT 267 #define SHIFT_RIGHT 268 #define SET_VAR 269 #define AVG_SYM 270 #define COUNT_SYM 271 #define MAX_SYM 272 #define MIN_SYM 273 #define SUM_SYM 274 #define STD_SYM 275 #define ADD 276 #define ALTER 277 #define AFTER_SYM 278 #define ANALYZE_SYM 279 #define BEGIN_SYM 280 #define CHANGE 281 #define COMMENT_SYM 282 #define COMMIT_SYM 283 #define CREATE 284 #define CROSS 285 #define DELETE_SYM 286 #define DO_SYM 287 #define DROP 288 #define INSERT 289 #define FLUSH_SYM 290 #define SELECT_SYM 291 #define MASTER_SYM 292 #define REPAIR 293 #define RESET_SYM 294 #define PURGE 295 #define SLAVE 296 #define START_SYM 297 #define STOP_SYM 298 #define TRUNCATE_SYM 299 #define ROLLBACK_SYM 300 #define OPTIMIZE 301 #define SHOW 302 #define UPDATE_SYM 303 #define KILL_SYM 304 #define LOAD 305 #define LOCK_SYM 306 #define LOCKS_SYM 307 #define UNLOCK_SYM 308 #define ACTION 309 #define AGGREGATE_SYM 310 #define ALL 311 #define AND 312 #define AS 313 #define ASC 314 #define AUTO_INC 315 #define AUTOCOMMIT 316 #define AVG_ROW_LENGTH 317 #define BACKUP_SYM 318 #define BERKELEY_DB_SYM 319 #define BINARY 320 #define BIT_SYM 321 #define BOOL_SYM 322 #define BOTH 323 #define BY 324 #define CASCADE 325 #define CHECKSUM_SYM 326 #define CHECK_SYM 327 #define COMMITTED_SYM 328 #define COLUMNS 329 #define COLUMN_SYM 330 #define CONCURRENT 331 #define CONSTRAINT 332 #define DATABASES 333 #define DATA_SYM 334 #define DEFAULT 335 #define DELAYED_SYM 336 #define DELAY_KEY_WRITE_SYM 337 #define DESC 338 #define DESCRIBE 339 #define DISTINCT 340 #define DYNAMIC_SYM 341 #define ENCLOSED 342 #define ESCAPED 343 #define ESCAPE_SYM 344 #define EXISTS 345 #define EXTENDED_SYM 346 #define FILE_SYM 347 #define FIRST_SYM 348 #define FIXED_SYM 349 #define FLOAT_NUM 350 #define FOREIGN 351 #define FROM 352 #define FULL 353 #define FULLTEXT_SYM 354 #define GEMINI_SYM 355 #define GEMINI_SPIN_RETRIES 356 #define GLOBAL_SYM 357 #define GRANT 358 #define GRANTS 359 #define GREATEST_SYM 360 #define GROUP 361 #define HAVING 362 #define HEAP_SYM 363 #define HEX_NUM 364 #define HIGH_PRIORITY 365 #define HOSTS_SYM 366 #define IDENT 367 #define IGNORE_SYM 368 #define INDEX 369 #define INFILE 370 #define INNER_SYM 371 #define INNOBASE_SYM 372 #define INTO 373 #define IN_SYM 374 #define ISOLATION 375 #define ISAM_SYM 376 #define JOIN_SYM 377 #define KEYS 378 #define KEY_SYM 379 #define LEADING 380 #define LEAST_SYM 381 #define LEVEL_SYM 382 #define LEX_HOSTNAME 383 #define LIKE 384 #define LINES 385 #define LOCAL_SYM 386 #define LOGS_SYM 387 #define LONG_NUM 388 #define LONG_SYM 389 #define LOW_PRIORITY 390 #define MASTER_HOST_SYM 391 #define MASTER_USER_SYM 392 #define MASTER_LOG_FILE_SYM 393 #define MASTER_LOG_POS_SYM 394 #define MASTER_PASSWORD_SYM 395 #define MASTER_PORT_SYM 396 #define MASTER_CONNECT_RETRY_SYM 397 #define MATCH 398 #define MAX_ROWS 399 #define MEDIUM_SYM 400 #define MERGE_SYM 401 #define MIN_ROWS 402 #define MYISAM_SYM 403 #define NATIONAL_SYM 404 #define NATURAL 405 #define NCHAR_SYM 406 #define NOT 407 #define FOREIGN_KEY_CHECKS 408 #define NO_SYM 409 #define NULL_SYM 410 #define NUM 411 #define ON 412 #define OPEN_SYM 413 #define OPTION 414 #define OPTIONALLY 415 #define OR 416 #define OR_OR_CONCAT 417 #define ORDER_SYM 418 #define OUTER 419 #define OUTFILE 420 #define DUMPFILE 421 #define PACK_KEYS_SYM 422 #define PARTIAL 423 #define PRIMARY_SYM 424 #define PRIVILEGES 425 #define PROCESS 426 #define PROCESSLIST_SYM 427 #define RAID_0_SYM 428 #define RAID_STRIPED_SYM 429 #define RAID_TYPE 430 #define RAID_CHUNKS 431 #define RAID_CHUNKSIZE 432 #define READ_SYM 433 #define REAL_NUM 434 #define REFERENCES 435 #define REGEXP 436 #define RELOAD 437 #define RENAME 438 #define REPEATABLE_SYM 439 #define RESTORE_SYM 440 #define RESTRICT 441 #define REVOKE 442 #define ROWS_SYM 443 #define ROW_FORMAT_SYM 444 #define ROW_SYM 445 #define SET 446 #define SERIALIZABLE_SYM 447 #define SESSION_SYM 448 #define SHUTDOWN 449 #define STARTING 450 #define STATUS_SYM 451 #define STRAIGHT_JOIN 452 #define TABLES 453 #define TABLE_SYM 454 #define TEMPORARY 455 #define TERMINATED 456 #define TEXT_STRING 457 #define TO_SYM 458 #define TRAILING 459 #define TRANSACTION_SYM 460 #define TYPE_SYM 461 #define FUNC_ARG0 462 #define FUNC_ARG1 463 #define FUNC_ARG2 464 #define FUNC_ARG3 465 #define UDF_RETURNS_SYM 466 #define UDF_SONAME_SYM 467 #define UDF_SYM 468 #define UNCOMMITTED_SYM 469 #define UNION_SYM 470 #define UNIQUE_SYM 471 #define UNIQUE_CHECKS 472 #define USAGE 473 #define USE_SYM 474 #define USING 475 #define VALUES 476 #define VARIABLES 477 #define WHERE 478 #define WITH 479 #define WRITE_SYM 480 #define COMPRESSED_SYM 481 #define BIGINT 482 #define BLOB_SYM 483 #define CHAR_SYM 484 #define CHANGED 485 #define COALESCE 486 #define DATETIME 487 #define DATE_SYM 488 #define DECIMAL_SYM 489 #define DOUBLE_SYM 490 #define ENUM 491 #define FAST_SYM 492 #define FLOAT_SYM 493 #define INT_SYM 494 #define LIMIT 495 #define LONGBLOB 496 #define LONGTEXT 497 #define MEDIUMBLOB 498 #define MEDIUMINT 499 #define MEDIUMTEXT 500 #define NUMERIC_SYM 501 #define PRECISION 502 #define QUICK 503 #define REAL 504 #define SMALLINT 505 #define STRING_SYM 506 #define TEXT_SYM 507 #define TIMESTAMP 508 #define TIME_SYM 509 #define TINYBLOB 510 #define TINYINT 511 #define TINYTEXT 512 #define UNSIGNED 513 #define VARBINARY 514 #define VARCHAR 515 #define VARYING 516 #define ZEROFILL 517 #define AGAINST 518 #define ATAN 519 #define BETWEEN_SYM 520 #define BIT_AND 521 #define BIT_OR 522 #define CASE_SYM 523 #define CONCAT 524 #define CONCAT_WS 525 #define CURDATE 526 #define CURTIME 527 #define DATABASE 528 #define DATE_ADD_INTERVAL 529 #define DATE_SUB_INTERVAL 530 #define DAY_HOUR_SYM 531 #define DAY_MINUTE_SYM 532 #define DAY_SECOND_SYM 533 #define DAY_SYM 534 #define DECODE_SYM 535 #define ELSE 536 #define ELT_FUNC 537 #define ENCODE_SYM 538 #define ENCRYPT 539 #define EXPORT_SET 540 #define EXTRACT_SYM 541 #define FIELD_FUNC 542 #define FORMAT_SYM 543 #define FOR_SYM 544 #define FROM_UNIXTIME 545 #define GROUP_UNIQUE_USERS 546 #define HOUR_MINUTE_SYM 547 #define HOUR_SECOND_SYM 548 #define HOUR_SYM 549 #define IDENTIFIED_SYM 550 #define IF 551 #define INSERT_ID 552 #define INTERVAL_SYM 553 #define LAST_INSERT_ID 554 #define LEFT 555 #define LOCATE 556 #define MAKE_SET_SYM 557 #define MINUTE_SECOND_SYM 558 #define MINUTE_SYM 559 #define MODE_SYM 560 #define MODIFY_SYM 561 #define MONTH_SYM 562 #define NOW_SYM 563 #define PASSWORD 564 #define POSITION_SYM 565 #define PROCEDURE 566 #define RAND 567 #define REPLACE 568 #define RIGHT 569 #define ROUND 570 #define SECOND_SYM 571 #define SHARE_SYM 572 #define SUBSTRING 573 #define SUBSTRING_INDEX 574 #define TRIM 575 #define UDA_CHAR_SUM 576 #define UDA_FLOAT_SUM 577 #define UDA_INT_SUM 578 #define UDF_CHAR_FUNC 579 #define UDF_FLOAT_FUNC 580 #define UDF_INT_FUNC 581 #define UNIQUE_USERS 582 #define UNIX_TIMESTAMP 583 #define USER 584 #define WEEK_SYM 585 #define WHEN_SYM 586 #define WORK_SYM 587 #define YEAR_MONTH_SYM 588 #define YEAR_SYM 589 #define YEARWEEK 590 #define BENCHMARK_SYM 591 #define END 592 #define THEN_SYM 593 #define SQL_BIG_TABLES 594 #define SQL_BIG_SELECTS 595 #define SQL_SELECT_LIMIT 596 #define SQL_MAX_JOIN_SIZE 597 #define SQL_LOG_BIN 598 #define SQL_LOG_OFF 599 #define SQL_LOG_UPDATE 600 #define SQL_LOW_PRIORITY_UPDATES 601 #define SQL_SMALL_RESULT 602 #define SQL_BIG_RESULT 603 #define SQL_BUFFER_RESULT 604 #define SQL_WARNINGS 605 #define SQL_AUTO_IS_NULL 606 #define SQL_SAFE_UPDATES 607 #define SQL_QUOTE_SHOW_CREATE 608 #define SQL_SLAVE_SKIP_COUNTER 609 #define NEG 610 /* Copy the first part of user declarations. */ #line 19 "sql_yacc.yy" #define MYSQL_YACC #define YYINITDEPTH 100 #define YYMAXDEPTH 3200 /* Because of 64K stack */ #define Lex current_lex #include "mysql_priv.h" #include "slave.h" #include "sql_acl.h" #include "lex_symbol.h" #include extern void yyerror(const char*); int yylex(void *yylval); #define yyoverflow(A,B,C,D,E,F) {ulong val= *(F); if(my_yyoverflow((B), (D), &val)) { yyerror((char*) (A)); return 2; } else { *(F)= (YYSIZE_T)val; }} inline Item *or_or_concat(Item* A, Item* B) { return (current_thd->sql_mode & MODE_PIPES_AS_CONCAT ? (Item*) new Item_func_concat(A,B) : (Item*) new Item_cond_or(A,B)); } /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #line 42 "sql_yacc.yy" typedef union YYSTYPE { int num; ulong ulong_num; ulonglong ulonglong_num; LEX_STRING lex_str; LEX_STRING *lex_str_ptr; LEX_SYMBOL symbol; Table_ident *table; char *simple_string; Item *item; List *item_list; List *string_list; Key::Keytype key_type; enum db_type db_type; enum row_type row_type; enum enum_tx_isolation tx_isolation; String *string; key_part_spec *key_part; TABLE_LIST *table_list; udf_func *udf; interval_type interval; LEX_USER *lex_user; enum Item_udftype udf_type; } YYSTYPE; /* Line 191 of yacc.c. */ #line 835 "sql_yacc.cc" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ #line 67 "sql_yacc.yy" bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); /* Line 214 of yacc.c. */ #line 850 "sql_yacc.cc" #if ! defined (yyoverflow) || YYERROR_VERBOSE # ifndef YYFREE # define YYFREE free # endif # ifndef YYMALLOC # define YYMALLOC malloc # endif /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # define YYSTACK_ALLOC alloca # endif # else # if defined (alloca) || defined (_ALLOCA_H) # define YYSTACK_ALLOC alloca # else # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # else # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # endif #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { short yyss; YYSTYPE yyvs; }; /* 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 (short) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined (__GNUC__) && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined (__STDC__) || defined (__cplusplus) typedef signed char yysigned_char; #else typedef short yysigned_char; #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 344 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 18843 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 372 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 295 /* YYNRULES -- Number of rules. */ #define YYNRULES 1058 /* YYNRULES -- Number of states. */ #define YYNSTATES 2056 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 610 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned short 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, 367, 2, 2, 2, 361, 356, 2, 364, 365, 359, 358, 366, 357, 371, 360, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 370, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 368, 355, 369, 362, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 363 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const unsigned short yyprhs[] = { 0, 0, 3, 5, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 79, 85, 87, 91, 95, 99, 103, 107, 111, 115, 119, 120, 128, 129, 140, 145, 146, 156, 162, 165, 166, 167, 175, 176, 178, 179, 181, 183, 186, 188, 189, 193, 194, 196, 198, 201, 205, 209, 213, 217, 221, 225, 229, 233, 237, 241, 245, 249, 253, 257, 263, 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 285, 287, 289, 291, 292, 295, 296, 298, 300, 302, 304, 306, 310, 312, 315, 321, 330, 336, 337, 340, 341, 346, 350, 354, 358, 361, 363, 369, 372, 377, 383, 388, 392, 394, 396, 398, 403, 405, 407, 409, 411, 413, 416, 419, 421, 423, 425, 427, 431, 435, 436, 442, 443, 449, 451, 453, 456, 459, 461, 464, 467, 469, 471, 473, 475, 477, 479, 481, 484, 485, 489, 495, 496, 498, 501, 503, 505, 507, 508, 512, 513, 519, 520, 522, 525, 527, 529, 532, 535, 537, 540, 542, 545, 546, 548, 552, 559, 560, 562, 565, 567, 571, 575, 578, 581, 583, 585, 588, 591, 594, 598, 600, 602, 605, 608, 612, 614, 616, 618, 620, 621, 623, 625, 630, 633, 635, 640, 641, 643, 645, 649, 650, 657, 658, 660, 664, 667, 671, 676, 677, 683, 684, 691, 696, 700, 705, 709, 716, 722, 727, 729, 731, 732, 734, 735, 737, 738, 740, 742, 743, 746, 748, 749, 751, 753, 756, 759, 760, 767, 768, 775, 776, 782, 783, 787, 789, 791, 794, 796, 798, 800, 802, 804, 805, 811, 812, 818, 819, 825, 826, 831, 833, 837, 841, 842, 849, 850, 852, 855, 858, 867, 868, 870, 873, 875, 877, 879, 881, 883, 885, 887, 889, 890, 893, 898, 902, 904, 906, 911, 912, 913, 915, 917, 918, 921, 924, 926, 928, 929, 932, 934, 936, 942, 949, 955, 962, 966, 970, 974, 979, 985, 989, 994, 998, 1003, 1007, 1011, 1015, 1019, 1023, 1027, 1031, 1035, 1039, 1043, 1047, 1051, 1055, 1059, 1063, 1067, 1073, 1079, 1085, 1092, 1096, 1100, 1104, 1109, 1115, 1119, 1124, 1128, 1133, 1137, 1141, 1145, 1149, 1153, 1157, 1161, 1165, 1169, 1173, 1177, 1181, 1185, 1189, 1193, 1197, 1203, 1209, 1211, 1217, 1224, 1230, 1237, 1241, 1245, 1250, 1256, 1260, 1265, 1269, 1274, 1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1310, 1314, 1318, 1322, 1326, 1330, 1334, 1338, 1344, 1350, 1352, 1354, 1356, 1361, 1364, 1368, 1370, 1373, 1376, 1379, 1382, 1386, 1391, 1400, 1407, 1410, 1417, 1421, 1426, 1433, 1442, 1447, 1454, 1459, 1464, 1469, 1476, 1479, 1482, 1487, 1496, 1505, 1509, 1516, 1523, 1528, 1535, 1542, 1549, 1558, 1569, 1582, 1589, 1594, 1601, 1608, 1613, 1622, 1633, 1639, 1646, 1650, 1655, 1662, 1669, 1678, 1685, 1692, 1697, 1702, 1705, 1710, 1715, 1722, 1727, 1731, 1740, 1747, 1752, 1759, 1764, 1773, 1780, 1789, 1796, 1805, 1810, 1818, 1826, 1834, 1841, 1848, 1853, 1858, 1863, 1868, 1873, 1878, 1889, 1893, 1898, 1902, 1907, 1914, 1919, 1924, 1931, 1938, 1945, 1946, 1948, 1953, 1958, 1963, 1968, 1973, 1979, 1990, 1995, 2000, 2005, 2010, 2011, 2014, 2015, 2018, 2020, 2024, 2025, 2028, 2030, 2034, 2035, 2037, 2038, 2041, 2042, 2045, 2049, 2055, 2056, 2058, 2062, 2064, 2068, 2072, 2079, 2080, 2090, 2098, 2099, 2110, 2117, 2125, 2126, 2137, 2144, 2149, 2151, 2153, 2156, 2157, 2162, 2173, 2174, 2176, 2177, 2180, 2183, 2184, 2190, 2194, 2196, 2198, 2200, 2204, 2206, 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222, 2224, 2226, 2228, 2230, 2231, 2233, 2235, 2236, 2239, 2240, 2243, 2244, 2245, 2249, 2252, 2253, 2254, 2258, 2263, 2266, 2267, 2269, 2273, 2278, 2281, 2282, 2284, 2286, 2287, 2290, 2295, 2296, 2299, 2301, 2303, 2305, 2307, 2309, 2311, 2313, 2314, 2315, 2322, 2323, 2325, 2329, 2331, 2334, 2335, 2342, 2346, 2347, 2351, 2357, 2358, 2365, 2370, 2374, 2376, 2380, 2382, 2383, 2386, 2387, 2394, 2395, 2401, 2402, 2404, 2406, 2408, 2410, 2412, 2415, 2417, 2419, 2422, 2423, 2427, 2428, 2432, 2435, 2439, 2441, 2444, 2445, 2452, 2456, 2458, 2462, 2464, 2468, 2470, 2472, 2473, 2478, 2479, 2481, 2485, 2487, 2496, 2502, 2506, 2507, 2509, 2510, 2518, 2519, 2522, 2524, 2526, 2530, 2531, 2533, 2534, 2538, 2541, 2545, 2550, 2555, 2562, 2565, 2570, 2573, 2576, 2579, 2582, 2584, 2588, 2592, 2595, 2598, 2599, 2602, 2603, 2606, 2607, 2609, 2610, 2615, 2618, 2620, 2622, 2623, 2625, 2627, 2628, 2632, 2636, 2638, 2639, 2643, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2661, 2663, 2664, 2668, 2672, 2674, 2676, 2678, 2679, 2686, 2689, 2692, 2693, 2709, 2715, 2716, 2718, 2719, 2721, 2723, 2724, 2726, 2728, 2729, 2732, 2735, 2737, 2741, 2746, 2750, 2754, 2755, 2758, 2761, 2763, 2767, 2771, 2772, 2776, 2778, 2781, 2783, 2785, 2787, 2789, 2791, 2793, 2795, 2797, 2799, 2802, 2805, 2808, 2810, 2812, 2816, 2822, 2824, 2826, 2830, 2835, 2841, 2843, 2847, 2850, 2852, 2856, 2859, 2861, 2863, 2865, 2867, 2869, 2871, 2875, 2877, 2879, 2881, 2883, 2885, 2887, 2889, 2891, 2893, 2895, 2897, 2899, 2901, 2903, 2905, 2907, 2909, 2911, 2913, 2915, 2917, 2919, 2921, 2923, 2925, 2927, 2929, 2931, 2933, 2935, 2937, 2939, 2941, 2943, 2945, 2947, 2949, 2951, 2953, 2955, 2957, 2959, 2961, 2963, 2965, 2967, 2969, 2971, 2973, 2975, 2977, 2979, 2981, 2983, 2985, 2987, 2989, 2991, 2993, 2995, 2997, 2999, 3001, 3003, 3005, 3007, 3009, 3011, 3013, 3015, 3017, 3019, 3021, 3023, 3025, 3027, 3029, 3031, 3033, 3035, 3037, 3039, 3041, 3043, 3045, 3047, 3049, 3051, 3053, 3055, 3057, 3059, 3061, 3063, 3065, 3067, 3069, 3071, 3073, 3075, 3077, 3079, 3081, 3083, 3085, 3087, 3089, 3091, 3093, 3095, 3097, 3099, 3101, 3103, 3105, 3107, 3109, 3110, 3115, 3116, 3118, 3120, 3124, 3128, 3130, 3134, 3138, 3142, 3146, 3150, 3154, 3158, 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3192, 3197, 3201, 3205, 3209, 3211, 3216, 3218, 3220, 3222, 3224, 3226, 3228, 3230, 3232, 3234, 3236, 3238, 3241, 3244, 3246, 3251, 3254, 3257, 3260, 3262, 3263, 3268, 3270, 3272, 3274, 3278, 3282, 3284, 3286, 3289, 3292, 3295, 3296, 3304, 3305, 3314, 3316, 3319, 3321, 3323, 3327, 3328, 3332, 3333, 3337, 3338, 3342, 3344, 3345, 3349, 3351, 3353, 3355, 3357, 3359, 3361, 3363, 3365, 3367, 3370, 3372, 3376, 3380, 3382, 3384, 3388, 3393, 3399, 3401, 3402, 3406, 3410, 3412, 3414, 3415, 3419, 3420, 3424, 3425, 3427, 3429 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short yyrhs[] = { 373, 0, -1, 3, -1, 374, 3, -1, 435, -1, 457, -1, 450, -1, 662, -1, 375, -1, 459, -1, 665, -1, 379, -1, 572, -1, 584, -1, 540, -1, 542, -1, 646, -1, 547, -1, 588, -1, 602, -1, 637, -1, 600, -1, 461, -1, 598, -1, 463, -1, 452, -1, 549, -1, 594, -1, 448, -1, 644, -1, 666, -1, 467, -1, 627, -1, 447, -1, 578, -1, 576, -1, 643, -1, 569, -1, 601, -1, -1, 26, 37, 203, 376, 377, -1, 378, -1, 377, 366, 378, -1, 136, 4, 202, -1, 137, 4, 202, -1, 140, 4, 202, -1, 138, 4, 202, -1, 141, 4, 531, -1, 139, 4, 532, -1, 142, 4, 531, -1, -1, 29, 387, 199, 390, 622, 380, 383, -1, -1, 29, 430, 114, 623, 157, 622, 381, 364, 431, 365, -1, 29, 273, 390, 623, -1, -1, 29, 398, 213, 623, 382, 211, 399, 212, 202, -1, 364, 400, 365, 391, 384, -1, 391, 384, -1, -1, -1, 606, 386, 36, 385, 471, 475, 397, -1, -1, 58, -1, -1, 388, -1, 389, -1, 389, 388, -1, 200, -1, -1, 296, 152, 90, -1, -1, 392, -1, 393, -1, 393, 392, -1, 206, 4, 394, -1, 144, 4, 532, -1, 147, 4, 532, -1, 62, 4, 531, -1, 309, 4, 202, -1, 27, 4, 202, -1, 60, 4, 532, -1, 167, 4, 531, -1, 71, 4, 531, -1, 82, 4, 531, -1, 189, 4, 395, -1, 175, 4, 396, -1, 176, 4, 531, -1, 177, 4, 531, -1, 215, 4, 364, 544, 365, -1, 121, -1, 148, -1, 146, -1, 108, -1, 64, -1, 117, -1, 100, -1, 80, -1, 94, -1, 86, -1, 226, -1, 174, -1, 173, -1, 531, -1, -1, 470, 474, -1, -1, 55, -1, 251, -1, 249, -1, 239, -1, 401, -1, 400, 366, 401, -1, 403, -1, 403, 422, -1, 427, 433, 364, 431, 365, -1, 402, 96, 124, 433, 364, 431, 365, 422, -1, 402, 72, 364, 482, 365, -1, -1, 77, 433, -1, -1, 621, 404, 405, 418, -1, 410, 416, 413, -1, 411, 417, 413, -1, 238, 412, 413, -1, 66, 416, -1, 67, -1, 408, 364, 156, 365, 421, -1, 408, 421, -1, 65, 364, 156, 365, -1, 409, 364, 156, 365, 421, -1, 259, 364, 156, 365, -1, 334, 416, 413, -1, 233, -1, 254, -1, 253, -1, 253, 364, 156, 365, -1, 232, -1, 255, -1, 228, -1, 243, -1, 241, -1, 134, 259, -1, 134, 409, -1, 257, -1, 252, -1, 245, -1, 242, -1, 234, 412, 413, -1, 246, 412, 413, -1, -1, 236, 406, 364, 434, 365, -1, -1, 191, 407, 364, 434, 365, -1, 229, -1, 151, -1, 149, 229, -1, 408, 261, -1, 260, -1, 149, 260, -1, 151, 260, -1, 239, -1, 256, -1, 250, -1, 244, -1, 227, -1, 249, -1, 235, -1, 235, 247, -1, -1, 364, 156, 365, -1, 364, 156, 366, 156, 365, -1, -1, 414, -1, 414, 415, -1, 415, -1, 258, -1, 262, -1, -1, 364, 156, 365, -1, -1, 364, 156, 366, 156, 365, -1, -1, 419, -1, 419, 420, -1, 420, -1, 155, -1, 152, 155, -1, 80, 616, -1, 60, -1, 169, 124, -1, 216, -1, 216, 124, -1, -1, 65, -1, 180, 622, 423, -1, 180, 622, 364, 431, 365, 423, -1, -1, 424, -1, 424, 425, -1, 425, -1, 157, 31, 426, -1, 157, 48, 426, -1, 143, 98, -1, 143, 168, -1, 186, -1, 70, -1, 191, 155, -1, 154, 54, -1, 191, 80, -1, 402, 169, 124, -1, 428, -1, 99, -1, 99, 428, -1, 402, 216, -1, 402, 216, 428, -1, 124, -1, 114, -1, 123, -1, 114, -1, -1, 216, -1, 99, -1, 431, 366, 432, 528, -1, 432, 528, -1, 623, -1, 623, 364, 156, 365, -1, -1, 621, -1, 615, -1, 434, 366, 615, -1, -1, 22, 443, 199, 622, 436, 437, -1, -1, 439, -1, 437, 366, 439, -1, 21, 442, -1, 438, 401, 445, -1, 438, 364, 400, 365, -1, -1, 26, 442, 621, 440, 403, -1, -1, 306, 442, 621, 441, 405, 418, -1, 33, 442, 621, 444, -1, 33, 169, 124, -1, 33, 96, 124, 433, -1, 33, 428, 621, -1, 22, 442, 621, 191, 80, 616, -1, 22, 442, 621, 33, 80, -1, 183, 446, 517, 622, -1, 392, -1, 526, -1, -1, 75, -1, -1, 113, -1, -1, 186, -1, 70, -1, -1, 23, 623, -1, 93, -1, -1, 203, -1, 58, -1, 41, 42, -1, 41, 43, -1, -1, 185, 639, 449, 544, 97, 202, -1, -1, 63, 639, 451, 544, 203, 202, -1, -1, 38, 639, 453, 544, 454, -1, -1, 206, 4, 455, -1, 455, -1, 456, -1, 456, 455, -1, 248, -1, 237, -1, 145, -1, 91, -1, 230, -1, -1, 24, 639, 458, 544, 454, -1, -1, 72, 639, 460, 544, 454, -1, -1, 46, 639, 462, 544, 454, -1, -1, 183, 639, 464, 465, -1, 466, -1, 465, 366, 466, -1, 622, 203, 622, -1, -1, 36, 468, 471, 475, 469, 474, -1, -1, 470, -1, 538, 470, -1, 470, 538, -1, 97, 503, 519, 523, 520, 525, 529, 533, -1, -1, 472, -1, 472, 473, -1, 473, -1, 197, -1, 110, -1, 85, -1, 347, -1, 348, -1, 349, -1, 56, -1, -1, 289, 48, -1, 51, 119, 317, 305, -1, 475, 366, 476, -1, 476, -1, 359, -1, 477, 479, 478, 480, -1, -1, -1, 618, -1, 482, -1, -1, 58, 623, -1, 58, 202, -1, 623, -1, 202, -1, -1, 364, 365, -1, 483, -1, 486, -1, 482, 119, 364, 491, 365, -1, 482, 152, 119, 364, 491, 365, -1, 482, 265, 485, 57, 482, -1, 482, 152, 265, 485, 57, 482, -1, 482, 162, 482, -1, 482, 161, 482, -1, 482, 57, 482, -1, 482, 129, 486, 522, -1, 482, 152, 129, 486, 522, -1, 482, 181, 482, -1, 482, 152, 181, 482, -1, 482, 11, 155, -1, 482, 11, 152, 155, -1, 482, 4, 482, -1, 482, 5, 482, -1, 482, 6, 482, -1, 482, 7, 482, -1, 482, 8, 482, -1, 482, 9, 482, -1, 482, 10, 482, -1, 482, 12, 482, -1, 482, 13, 482, -1, 482, 358, 482, -1, 482, 357, 482, -1, 482, 359, 482, -1, 482, 360, 482, -1, 482, 355, 482, -1, 482, 356, 482, -1, 482, 361, 482, -1, 482, 358, 298, 482, 516, -1, 482, 357, 298, 482, 516, -1, 484, 265, 485, 57, 482, -1, 484, 152, 265, 485, 57, 482, -1, 484, 162, 482, -1, 484, 161, 482, -1, 484, 57, 482, -1, 484, 129, 486, 522, -1, 484, 152, 129, 486, 522, -1, 484, 181, 482, -1, 484, 152, 181, 482, -1, 484, 11, 155, -1, 484, 11, 152, 155, -1, 484, 4, 482, -1, 484, 5, 482, -1, 484, 6, 482, -1, 484, 7, 482, -1, 484, 8, 482, -1, 484, 9, 482, -1, 484, 10, 482, -1, 484, 12, 482, -1, 484, 13, 482, -1, 484, 358, 482, -1, 484, 357, 482, -1, 484, 359, 482, -1, 484, 360, 482, -1, 484, 355, 482, -1, 484, 356, 482, -1, 484, 361, 482, -1, 484, 358, 298, 482, 516, -1, 484, 357, 298, 482, 516, -1, 486, -1, 485, 119, 364, 491, 365, -1, 485, 152, 119, 364, 491, 365, -1, 485, 265, 485, 57, 482, -1, 485, 152, 265, 485, 57, 482, -1, 485, 162, 482, -1, 485, 161, 482, -1, 485, 129, 486, 522, -1, 485, 152, 129, 486, 522, -1, 485, 181, 482, -1, 485, 152, 181, 482, -1, 485, 11, 155, -1, 485, 11, 152, 155, -1, 485, 4, 482, -1, 485, 5, 482, -1, 485, 6, 482, -1, 485, 7, 482, -1, 485, 8, 482, -1, 485, 9, 482, -1, 485, 10, 482, -1, 485, 12, 482, -1, 485, 13, 482, -1, 485, 358, 482, -1, 485, 357, 482, -1, 485, 359, 482, -1, 485, 360, 482, -1, 485, 355, 482, -1, 485, 356, 482, -1, 485, 361, 482, -1, 485, 358, 298, 482, 516, -1, 485, 357, 298, 482, 516, -1, 486, -1, 620, -1, 616, -1, 370, 624, 14, 482, -1, 370, 624, -1, 370, 370, 624, -1, 488, -1, 357, 482, -1, 362, 482, -1, 152, 482, -1, 367, 482, -1, 364, 482, 365, -1, 368, 623, 482, 369, -1, 143, 364, 494, 365, 263, 364, 482, 365, -1, 143, 494, 263, 364, 482, 365, -1, 65, 482, -1, 268, 497, 331, 499, 498, 337, -1, 207, 364, 365, -1, 208, 364, 482, 365, -1, 209, 364, 482, 366, 482, 365, -1, 210, 364, 482, 366, 482, 366, 482, 365, -1, 264, 364, 482, 365, -1, 264, 364, 482, 366, 482, 365, -1, 229, 364, 491, 365, -1, 231, 364, 491, 365, -1, 269, 364, 491, 365, -1, 270, 364, 482, 366, 491, 365, -1, 271, 481, -1, 272, 481, -1, 272, 364, 482, 365, -1, 274, 364, 482, 366, 298, 482, 516, 365, -1, 275, 364, 482, 366, 298, 482, 516, 365, -1, 273, 364, 365, -1, 282, 364, 482, 366, 491, 365, -1, 302, 364, 482, 366, 491, 365, -1, 284, 364, 482, 365, -1, 284, 364, 482, 366, 482, 365, -1, 280, 364, 482, 366, 202, 365, -1, 283, 364, 482, 366, 202, 365, -1, 285, 364, 482, 366, 482, 366, 482, 365, -1, 285, 364, 482, 366, 482, 366, 482, 366, 482, 365, -1, 285, 364, 482, 366, 482, 366, 482, 366, 482, 366, 482, 365, -1, 288, 364, 482, 366, 156, 365, -1, 290, 364, 482, 365, -1, 290, 364, 482, 366, 482, 365, -1, 287, 364, 482, 366, 491, 365, -1, 294, 364, 482, 365, -1, 296, 364, 482, 366, 482, 366, 482, 365, -1, 34, 364, 482, 366, 482, 366, 482, 366, 482, 365, -1, 298, 482, 516, 358, 482, -1, 298, 364, 482, 366, 491, 365, -1, 299, 364, 365, -1, 299, 364, 482, 365, -1, 300, 364, 482, 366, 482, 365, -1, 301, 364, 482, 366, 482, 365, -1, 301, 364, 482, 366, 482, 366, 482, 365, -1, 105, 364, 482, 366, 491, 365, -1, 126, 364, 482, 366, 491, 365, -1, 304, 364, 482, 365, -1, 307, 364, 482, 365, -1, 308, 481, -1, 308, 364, 482, 365, -1, 309, 364, 482, 365, -1, 310, 364, 484, 119, 482, 365, -1, 312, 364, 482, 365, -1, 312, 364, 365, -1, 313, 364, 482, 366, 482, 366, 482, 365, -1, 314, 364, 482, 366, 482, 365, -1, 315, 364, 482, 365, -1, 315, 364, 482, 366, 482, 365, -1, 316, 364, 482, 365, -1, 318, 364, 482, 366, 482, 366, 482, 365, -1, 318, 364, 482, 366, 482, 365, -1, 318, 364, 482, 97, 482, 289, 482, 365, -1, 318, 364, 482, 97, 482, 365, -1, 319, 364, 482, 366, 482, 366, 482, 365, -1, 320, 364, 482, 365, -1, 320, 364, 125, 502, 97, 482, 365, -1, 320, 364, 204, 502, 97, 482, 365, -1, 320, 364, 68, 502, 97, 482, 365, -1, 320, 364, 482, 97, 482, 365, -1, 44, 364, 482, 366, 482, 365, -1, 321, 364, 487, 365, -1, 322, 364, 487, 365, -1, 323, 364, 487, 365, -1, 324, 364, 487, 365, -1, 325, 364, 487, 365, -1, 326, 364, 487, 365, -1, 327, 364, 614, 366, 156, 366, 156, 366, 491, 365, -1, 328, 364, 365, -1, 328, 364, 482, 365, -1, 329, 364, 365, -1, 330, 364, 482, 365, -1, 330, 364, 482, 366, 482, 365, -1, 334, 364, 482, 365, -1, 335, 364, 482, 365, -1, 335, 364, 482, 366, 482, 365, -1, 336, 364, 531, 366, 482, 365, -1, 286, 364, 516, 97, 482, 365, -1, -1, 491, -1, 15, 364, 489, 365, -1, 266, 364, 489, 365, -1, 267, 364, 489, 365, -1, 16, 364, 359, 365, -1, 16, 364, 489, 365, -1, 16, 364, 85, 491, 365, -1, 291, 364, 614, 366, 156, 366, 156, 366, 489, 365, -1, 18, 364, 489, 365, -1, 17, 364, 489, 365, -1, 20, 364, 489, 365, -1, 19, 364, 489, 365, -1, -1, 490, 482, -1, -1, 492, 493, -1, 482, -1, 493, 366, 482, -1, -1, 495, 496, -1, 620, -1, 496, 366, 620, -1, -1, 482, -1, -1, 281, 482, -1, -1, 500, 501, -1, 482, 338, 482, -1, 501, 331, 482, 338, 482, -1, -1, 482, -1, 364, 503, 365, -1, 508, -1, 503, 507, 508, -1, 503, 197, 508, -1, 503, 116, 122, 508, 157, 482, -1, -1, 503, 116, 122, 508, 504, 220, 364, 515, 365, -1, 503, 300, 510, 122, 508, 157, 482, -1, -1, 503, 300, 510, 122, 508, 505, 220, 364, 515, 365, -1, 503, 150, 300, 510, 122, 508, -1, 503, 314, 510, 122, 508, 157, 482, -1, -1, 503, 314, 510, 122, 508, 506, 220, 364, 515, 365, -1, 503, 150, 314, 510, 122, 508, -1, 503, 150, 122, 508, -1, 366, -1, 122, -1, 30, 122, -1, -1, 509, 622, 518, 511, -1, 368, 623, 508, 300, 164, 122, 508, 157, 482, 369, -1, -1, 164, -1, -1, 219, 512, -1, 113, 512, -1, -1, 428, 513, 364, 514, 365, -1, 514, 366, 623, -1, 623, -1, 169, -1, 623, -1, 515, 366, 623, -1, 276, -1, 277, -1, 278, -1, 279, -1, 292, -1, 293, -1, 294, -1, 303, -1, 304, -1, 307, -1, 316, -1, 333, -1, 334, -1, -1, 58, -1, 4, -1, -1, 517, 623, -1, -1, 223, 482, -1, -1, -1, 107, 521, 482, -1, 89, 202, -1, -1, -1, 106, 69, 524, -1, 524, 366, 619, 528, -1, 619, 528, -1, -1, 526, -1, 163, 69, 527, -1, 527, 366, 619, 528, -1, 619, 528, -1, -1, 59, -1, 83, -1, -1, 240, 531, -1, 240, 531, 366, 531, -1, -1, 240, 532, -1, 156, -1, 179, -1, 95, -1, 156, -1, 133, -1, 179, -1, 95, -1, -1, -1, 311, 623, 534, 364, 535, 365, -1, -1, 536, -1, 536, 366, 537, -1, 537, -1, 477, 482, -1, -1, 118, 165, 202, 539, 607, 610, -1, 118, 166, 202, -1, -1, 32, 541, 568, -1, 33, 199, 546, 544, 444, -1, -1, 33, 114, 623, 157, 622, 543, -1, 33, 273, 546, 623, -1, 33, 213, 623, -1, 545, -1, 544, 366, 545, -1, 622, -1, -1, 296, 90, -1, -1, 34, 548, 551, 443, 553, 555, -1, -1, 313, 550, 552, 553, 555, -1, -1, 135, -1, 81, -1, 110, -1, 571, -1, 81, -1, 118, 554, -1, 554, -1, 545, -1, 557, 559, -1, -1, 191, 556, 562, -1, -1, 364, 558, 365, -1, 364, 365, -1, 558, 366, 617, -1, 617, -1, 221, 561, -1, -1, 36, 560, 471, 475, 470, 474, -1, 561, 366, 565, -1, 565, -1, 562, 366, 563, -1, 563, -1, 620, 564, 482, -1, 4, -1, 14, -1, -1, 364, 566, 567, 365, -1, -1, 568, -1, 568, 366, 482, -1, 482, -1, 48, 571, 443, 545, 191, 570, 519, 530, -1, 570, 366, 620, 564, 482, -1, 620, 564, 482, -1, -1, 135, -1, -1, 31, 573, 574, 97, 545, 519, 530, -1, -1, 575, 574, -1, 248, -1, 135, -1, 44, 577, 545, -1, -1, 199, -1, -1, 47, 579, 580, -1, 78, 582, -1, 198, 581, 582, -1, 199, 196, 581, 582, -1, 158, 198, 581, 582, -1, 583, 74, 97, 622, 581, 582, -1, 37, 132, -1, 429, 97, 622, 581, -1, 196, 582, -1, 117, 196, -1, 583, 172, -1, 222, 582, -1, 132, -1, 104, 289, 625, -1, 29, 199, 622, -1, 37, 196, -1, 41, 196, -1, -1, 97, 623, -1, -1, 129, 615, -1, -1, 98, -1, -1, 586, 622, 585, 587, -1, 586, 467, -1, 83, -1, 84, -1, -1, 615, -1, 623, -1, -1, 35, 589, 590, -1, 590, 366, 591, -1, 591, -1, -1, 639, 592, 593, -1, 198, 224, 178, 51, -1, 111, -1, 170, -1, 132, -1, 196, -1, 41, -1, 37, -1, -1, 544, -1, -1, 39, 595, 596, -1, 596, 366, 597, -1, 597, -1, 41, -1, 37, -1, -1, 40, 599, 37, 132, 203, 202, -1, 49, 482, -1, 219, 623, -1, -1, 50, 79, 605, 604, 115, 202, 603, 606, 118, 199, 622, 607, 610, 613, 557, -1, 50, 199, 622, 97, 37, -1, -1, 131, -1, -1, 76, -1, 135, -1, -1, 313, -1, 113, -1, -1, 74, 608, -1, 608, 609, -1, 609, -1, 201, 69, 615, -1, 160, 87, 69, 615, -1, 87, 69, 615, -1, 88, 69, 615, -1, -1, 130, 611, -1, 611, 612, -1, 612, -1, 201, 69, 615, -1, 195, 69, 615, -1, -1, 113, 156, 130, -1, 202, -1, 614, 202, -1, 202, -1, 109, -1, 614, -1, 156, -1, 133, -1, 179, -1, 95, -1, 155, -1, 109, -1, 233, 614, -1, 254, 614, -1, 253, 614, -1, 620, -1, 618, -1, 623, 371, 359, -1, 623, 371, 623, 371, 359, -1, 482, -1, 623, -1, 623, 371, 623, -1, 371, 623, 371, 623, -1, 623, 371, 623, 371, 623, -1, 623, -1, 623, 371, 623, -1, 371, 623, -1, 623, -1, 623, 371, 623, -1, 371, 623, -1, 112, -1, 626, -1, 623, -1, 202, -1, 128, -1, 624, -1, 624, 370, 624, -1, 54, -1, 23, -1, 263, -1, 55, -1, 61, -1, 60, -1, 62, -1, 15, -1, 63, -1, 25, -1, 64, -1, 66, -1, 67, -1, 230, -1, 71, -1, 72, -1, 27, -1, 28, -1, 73, -1, 226, -1, 76, -1, 79, -1, 232, -1, 233, -1, 279, -1, 82, -1, 32, -1, 166, -1, 86, -1, 337, -1, 236, -1, 89, -1, 91, -1, 237, -1, 98, -1, 92, -1, 93, -1, 94, -1, 35, -1, 104, -1, 100, -1, 102, -1, 108, -1, 111, -1, 294, -1, 295, -1, 120, -1, 121, -1, 117, -1, 127, -1, 131, -1, 52, -1, 132, -1, 144, -1, 37, -1, 136, -1, 141, -1, 138, -1, 139, -1, 137, -1, 140, -1, 142, -1, 145, -1, 146, -1, 304, -1, 147, -1, 306, -1, 305, -1, 307, -1, 148, -1, 149, -1, 151, -1, 153, -1, 154, -1, 158, -1, 167, -1, 309, -1, 171, -1, 172, -1, 248, -1, 173, -1, 176, -1, 177, -1, 174, -1, 175, -1, 217, -1, 182, -1, 38, -1, 184, -1, 39, -1, 185, -1, 45, -1, 188, -1, 189, -1, 190, -1, 316, -1, 192, -1, 193, -1, 317, -1, 194, -1, 42, -1, 196, -1, 43, -1, 251, -1, 200, -1, 252, -1, 205, -1, 44, -1, 253, -1, 254, -1, 206, -1, 213, -1, 214, -1, 222, -1, 332, -1, 334, -1, 41, -1, -1, 191, 629, 628, 630, -1, -1, 159, -1, 631, -1, 630, 366, 631, -1, 633, 564, 156, -1, 634, -1, 61, 564, 156, -1, 341, 564, 531, -1, 341, 564, 80, -1, 342, 564, 531, -1, 342, 564, 80, -1, 253, 564, 531, -1, 253, 564, 80, -1, 299, 564, 532, -1, 297, 564, 532, -1, 101, 564, 531, -1, 101, 564, 80, -1, 229, 191, 112, -1, 229, 191, 80, -1, 309, 564, 632, -1, 309, 289, 625, 564, 632, -1, 370, 624, 564, 482, -1, 354, 564, 531, -1, 153, 564, 156, -1, 217, 564, 156, -1, 202, -1, 309, 364, 202, 365, -1, 339, -1, 340, -1, 344, -1, 345, -1, 343, -1, 350, -1, 346, -1, 351, -1, 352, -1, 349, -1, 353, -1, 102, 635, -1, 193, 635, -1, 635, -1, 205, 120, 127, 636, -1, 178, 214, -1, 178, 73, -1, 184, 178, -1, 192, -1, -1, 51, 639, 638, 640, -1, 199, -1, 198, -1, 641, -1, 640, 366, 641, -1, 622, 518, 642, -1, 178, -1, 225, -1, 135, 225, -1, 178, 131, -1, 53, 639, -1, -1, 187, 645, 648, 157, 655, 97, 656, -1, -1, 103, 647, 648, 157, 655, 203, 656, 661, -1, 649, -1, 56, 170, -1, 56, -1, 650, -1, 649, 366, 650, -1, -1, 36, 651, 658, -1, -1, 34, 652, 658, -1, -1, 48, 653, 658, -1, 31, -1, -1, 180, 654, 658, -1, 218, -1, 114, -1, 22, -1, 29, -1, 33, -1, 182, -1, 194, -1, 171, -1, 92, -1, 103, 159, -1, 359, -1, 623, 371, 359, -1, 359, 371, 359, -1, 622, -1, 657, -1, 656, 366, 657, -1, 625, 295, 69, 202, -1, 625, 295, 69, 309, 202, -1, 625, -1, -1, 364, 659, 365, -1, 659, 366, 660, -1, 660, -1, 623, -1, -1, 224, 103, 159, -1, -1, 25, 663, 664, -1, -1, 332, -1, 28, -1, 45, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { 0, 547, 547, 561, 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, 606, 605, 615, 617, 621, 626, 631, 636, 641, 646, 651, 662, 661, 680, 679, 694, 701, 700, 715, 716, 720, 722, 721, 730, 731, 735, 736, 740, 741, 745, 749, 750, 753, 755, 759, 760, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 794, 795, 796, 797, 798, 799, 800, 804, 805, 806, 807, 811, 812, 813, 816, 818, 822, 823, 827, 828, 829, 833, 834, 838, 839, 843, 848, 852, 858, 860, 865, 864, 881, 882, 883, 884, 886, 888, 890, 892, 895, 897, 900, 901, 902, 903, 904, 906, 907, 909, 911, 913, 915, 917, 918, 919, 920, 921, 922, 924, 926, 926, 931, 931, 939, 940, 941, 945, 946, 947, 948, 952, 953, 954, 955, 956, 960, 962, 963, 967, 968, 969, 973, 974, 978, 979, 983, 984, 988, 989, 993, 994, 998, 999, 1003, 1004, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1018, 1019, 1023, 1024, 1031, 1032, 1036, 1037, 1041, 1042, 1043, 1044, 1048, 1049, 1050, 1051, 1052, 1056, 1057, 1058, 1059, 1060, 1061, 1065, 1066, 1070, 1071, 1075, 1076, 1077, 1081, 1082, 1086, 1087, 1091, 1092, 1096, 1097, 1106, 1105, 1129, 1130, 1131, 1135, 1139, 1140, 1141, 1141, 1143, 1142, 1156, 1159, 1160, 1161, 1164, 1166, 1168, 1170, 1171, 1175, 1176, 1180, 1181, 1185, 1186, 1187, 1191, 1192, 1193, 1197, 1198, 1199, 1203, 1209, 1218, 1217, 1229, 1228, 1240, 1239, 1249, 1250, 1251, 1255, 1256, 1260, 1261, 1262, 1263, 1264, 1269, 1268, 1279, 1278, 1289, 1288, 1299, 1298, 1307, 1308, 1313, 1327, 1326, 1337, 1339, 1340, 1341, 1345, 1348, 1350, 1354, 1355, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1368, 1370, 1372, 1377, 1378, 1379, 1387, 1399, 1403, 1407, 1408, 1412, 1413, 1414, 1415, 1416, 1420, 1421, 1425, 1426, 1431, 1433, 1435, 1437, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1466, 1472, 1474, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1503, 1505, 1510, 1512, 1514, 1516, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1544, 1546, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1565, 1568, 1569, 1571, 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1608, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1627, 1629, 1631, 1633, 1635, 1638, 1640, 1645, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1665, 1667, 1668, 1670, 1671, 1672, 1674, 1676, 1678, 1679, 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1710, 1717, 1724, 1731, 1738, 1745, 1747, 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763, 1765, 1770, 1771, 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1789, 1791, 1793, 1795, 1800, 1800, 1809, 1809, 1815, 1816, 1820, 1820, 1826, 1827, 1831, 1832, 1836, 1837, 1841, 1841, 1847, 1852, 1860, 1861, 1865, 1866, 1867, 1868, 1869, 1872, 1871, 1876, 1879, 1878, 1883, 1885, 1888, 1887, 1892, 1894, 1899, 1900, 1901, 1905, 1905, 1909, 1914, 1915, 1919, 1920, 1922, 1927, 1927, 1932, 1934, 1936, 1941, 1945, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1968, 1970, 1971, 1975, 1976, 1981, 1982, 1985, 1987, 1987, 1992, 1993, 2000, 2002, 2006, 2008, 2016, 2018, 2022, 2026, 2028, 2033, 2034, 2035, 2040, 2044, 2046, 2052, 2055, 2060, 2061, 2062, 2066, 2067, 2068, 2069, 2072, 2075, 2074, 2087, 2088, 2092, 2093, 2097, 2108, 2107, 2113, 2125, 2124, 2140, 2145, 2145, 2154, 2160, 2168, 2169, 2173, 2178, 2179, 2187, 2187, 2192, 2192, 2197, 2198, 2199, 2200, 2204, 2205, 2209, 2210, 2214, 2223, 2225, 2224, 2234, 2235, 2236, 2240, 2241, 2245, 2247, 2246, 2258, 2259, 2263, 2265, 2269, 2277, 2278, 2283, 2282, 2295, 2296, 2300, 2305, 2315, 2320, 2325, 2333, 2334, 2341, 2340, 2351, 2352, 2356, 2357, 2361, 2366, 2368, 2373, 2373, 2378, 2380, 2382, 2387, 2392, 2400, 2404, 2412, 2414, 2416, 2418, 2420, 2422, 2425, 2431, 2435, 2442, 2443, 2446, 2448, 2452, 2453, 2459, 2458, 2467, 2471, 2472, 2476, 2477, 2478, 2484, 2484, 2489, 2490, 2494, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2505, 2506, 2510, 2510, 2515, 2516, 2520, 2521, 2525, 2525, 2535, 2549, 2556, 2555, 2571, 2581, 2582, 2586, 2587, 2588, 2592, 2593, 2594, 2597, 2599, 2603, 2604, 2608, 2609, 2611, 2612, 2615, 2617, 2621, 2622, 2626, 2627, 2630, 2632, 2639, 2640, 2645, 2646, 2654, 2655, 2656, 2657, 2658, 2659, 2661, 2662, 2663, 2664, 2672, 2673, 2677, 2678, 2683, 2687, 2689, 2691, 2693, 2698, 2699, 2700, 2704, 2705, 2706, 2710, 2711, 2721, 2722, 2723, 2727, 2733, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2867, 2866, 2881, 2882, 2886, 2887, 2891, 2898, 2899, 2906, 2910, 2914, 2919, 2923, 2927, 2931, 2935, 2939, 2943, 2947, 2957, 2961, 2967, 2974, 2983, 2992, 2999, 3009, 3010, 3024, 3025, 3026, 3027, 3033, 3039, 3040, 3041, 3042, 3043, 3044, 3048, 3055, 3057, 3062, 3066, 3067, 3068, 3069, 3076, 3075, 3084, 3085, 3089, 3090, 3094, 3099, 3100, 3101, 3102, 3106, 3113, 3112, 3126, 3125, 3139, 3140, 3141, 3145, 3146, 3152, 3151, 3155, 3154, 3158, 3157, 3160, 3161, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3175, 3186, 3197, 3208, 3218, 3219, 3223, 3237, 3239, 3244, 3245, 3249, 3250, 3254, 3273, 3274, 3278, 3278, 3282, 3283, 3287, 3291 }; #endif #if YYDEBUG || YYERROR_VERBOSE /* YYTNME[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", "END_OF_INPUT", "EQ", "EQUAL_SYM", "GE", "GT_SYM", "LE", "LT", "NE", "IS", "SHIFT_LEFT", "SHIFT_RIGHT", "SET_VAR", "AVG_SYM", "COUNT_SYM", "MAX_SYM", "MIN_SYM", "SUM_SYM", "STD_SYM", "ADD", "ALTER", "AFTER_SYM", "ANALYZE_SYM", "BEGIN_SYM", "CHANGE", "COMMENT_SYM", "COMMIT_SYM", "CREATE", "CROSS", "DELETE_SYM", "DO_SYM", "DROP", "INSERT", "FLUSH_SYM", "SELECT_SYM", "MASTER_SYM", "REPAIR", "RESET_SYM", "PURGE", "SLAVE", "START_SYM", "STOP_SYM", "TRUNCATE_SYM", "ROLLBACK_SYM", "OPTIMIZE", "SHOW", "UPDATE_SYM", "KILL_SYM", "LOAD", "LOCK_SYM", "LOCKS_SYM", "UNLOCK_SYM", "ACTION", "AGGREGATE_SYM", "ALL", "AND", "AS", "ASC", "AUTO_INC", "AUTOCOMMIT", "AVG_ROW_LENGTH", "BACKUP_SYM", "BERKELEY_DB_SYM", "BINARY", "BIT_SYM", "BOOL_SYM", "BOTH", "BY", "CASCADE", "CHECKSUM_SYM", "CHECK_SYM", "COMMITTED_SYM", "COLUMNS", "COLUMN_SYM", "CONCURRENT", "CONSTRAINT", "DATABASES", "DATA_SYM", "DEFAULT", "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DESC", "DESCRIBE", "DISTINCT", "DYNAMIC_SYM", "ENCLOSED", "ESCAPED", "ESCAPE_SYM", "EXISTS", "EXTENDED_SYM", "FILE_SYM", "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FOREIGN", "FROM", "FULL", "FULLTEXT_SYM", "GEMINI_SYM", "GEMINI_SPIN_RETRIES", "GLOBAL_SYM", "GRANT", "GRANTS", "GREATEST_SYM", "GROUP", "HAVING", "HEAP_SYM", "HEX_NUM", "HIGH_PRIORITY", "HOSTS_SYM", "IDENT", "IGNORE_SYM", "INDEX", "INFILE", "INNER_SYM", "INNOBASE_SYM", "INTO", "IN_SYM", "ISOLATION", "ISAM_SYM", "JOIN_SYM", "KEYS", "KEY_SYM", "LEADING", "LEAST_SYM", "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LINES", "LOCAL_SYM", "LOGS_SYM", "LONG_NUM", "LONG_SYM", "LOW_PRIORITY", "MASTER_HOST_SYM", "MASTER_USER_SYM", "MASTER_LOG_FILE_SYM", "MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM", "MASTER_CONNECT_RETRY_SYM", "MATCH", "MAX_ROWS", "MEDIUM_SYM", "MERGE_SYM", "MIN_ROWS", "MYISAM_SYM", "NATIONAL_SYM", "NATURAL", "NCHAR_SYM", "NOT", "FOREIGN_KEY_CHECKS", "NO_SYM", "NULL_SYM", "NUM", "ON", "OPEN_SYM", "OPTION", "OPTIONALLY", "OR", "OR_OR_CONCAT", "ORDER_SYM", "OUTER", "OUTFILE", "DUMPFILE", "PACK_KEYS_SYM", "PARTIAL", "PRIMARY_SYM", "PRIVILEGES", "PROCESS", "PROCESSLIST_SYM", "RAID_0_SYM", "RAID_STRIPED_SYM", "RAID_TYPE", "RAID_CHUNKS", "RAID_CHUNKSIZE", "READ_SYM", "REAL_NUM", "REFERENCES", "REGEXP", "RELOAD", "RENAME", "REPEATABLE_SYM", "RESTORE_SYM", "RESTRICT", "REVOKE", "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM", "SET", "SERIALIZABLE_SYM", "SESSION_SYM", "SHUTDOWN", "STARTING", "STATUS_SYM", "STRAIGHT_JOIN", "TABLES", "TABLE_SYM", "TEMPORARY", "TERMINATED", "TEXT_STRING", "TO_SYM", "TRAILING", "TRANSACTION_SYM", "TYPE_SYM", "FUNC_ARG0", "FUNC_ARG1", "FUNC_ARG2", "FUNC_ARG3", "UDF_RETURNS_SYM", "UDF_SONAME_SYM", "UDF_SYM", "UNCOMMITTED_SYM", "UNION_SYM", "UNIQUE_SYM", "UNIQUE_CHECKS", "USAGE", "USE_SYM", "USING", "VALUES", "VARIABLES", "WHERE", "WITH", "WRITE_SYM", "COMPRESSED_SYM", "BIGINT", "BLOB_SYM", "CHAR_SYM", "CHANGED", "COALESCE", "DATETIME", "DATE_SYM", "DECIMAL_SYM", "DOUBLE_SYM", "ENUM", "FAST_SYM", "FLOAT_SYM", "INT_SYM", "LIMIT", "LONGBLOB", "LONGTEXT", "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "NUMERIC_SYM", "PRECISION", "QUICK", "REAL", "SMALLINT", "STRING_SYM", "TEXT_SYM", "TIMESTAMP", "TIME_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "UNSIGNED", "VARBINARY", "VARCHAR", "VARYING", "ZEROFILL", "AGAINST", "ATAN", "BETWEEN_SYM", "BIT_AND", "BIT_OR", "CASE_SYM", "CONCAT", "CONCAT_WS", "CURDATE", "CURTIME", "DATABASE", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DAY_HOUR_SYM", "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DAY_SYM", "DECODE_SYM", "ELSE", "ELT_FUNC", "ENCODE_SYM", "ENCRYPT", "EXPORT_SET", "EXTRACT_SYM", "FIELD_FUNC", "FORMAT_SYM", "FOR_SYM", "FROM_UNIXTIME", "GROUP_UNIQUE_USERS", "HOUR_MINUTE_SYM", "HOUR_SECOND_SYM", "HOUR_SYM", "IDENTIFIED_SYM", "IF", "INSERT_ID", "INTERVAL_SYM", "LAST_INSERT_ID", "LEFT", "LOCATE", "MAKE_SET_SYM", "MINUTE_SECOND_SYM", "MINUTE_SYM", "MODE_SYM", "MODIFY_SYM", "MONTH_SYM", "NOW_SYM", "PASSWORD", "POSITION_SYM", "PROCEDURE", "RAND", "REPLACE", "RIGHT", "ROUND", "SECOND_SYM", "SHARE_SYM", "SUBSTRING", "SUBSTRING_INDEX", "TRIM", "UDA_CHAR_SUM", "UDA_FLOAT_SUM", "UDA_INT_SUM", "UDF_CHAR_FUNC", "UDF_FLOAT_FUNC", "UDF_INT_FUNC", "UNIQUE_USERS", "UNIX_TIMESTAMP", "USER", "WEEK_SYM", "WHEN_SYM", "WORK_SYM", "YEAR_MONTH_SYM", "YEAR_SYM", "YEARWEEK", "BENCHMARK_SYM", "END", "THEN_SYM", "SQL_BIG_TABLES", "SQL_BIG_SELECTS", "SQL_SELECT_LIMIT", "SQL_MAX_JOIN_SIZE", "SQL_LOG_BIN", "SQL_LOG_OFF", "SQL_LOG_UPDATE", "SQL_LOW_PRIORITY_UPDATES", "SQL_SMALL_RESULT", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_WARNINGS", "SQL_AUTO_IS_NULL", "SQL_SAFE_UPDATES", "SQL_QUOTE_SHOW_CREATE", "SQL_SLAVE_SKIP_COUNTER", "'|'", "'&'", "'-'", "'+'", "'*'", "'/'", "'%'", "'~'", "NEG", "'('", "')'", "','", "'!'", "'{'", "'}'", "'@'", "'.'", "$accept", "query", "verb_clause", "change", "@1", "master_defs", "master_def", "create", "@2", "@3", "@4", "create2", "create3", "@5", "opt_as", "opt_table_options", "table_options", "table_option", "opt_if_not_exists", "opt_create_table_options", "create_table_options", "create_table_option", "table_types", "row_types", "raid_types", "opt_select_from", "udf_func_type", "udf_type", "field_list", "field_list_item", "opt_constraint", "field_spec", "@6", "type", "@7", "@8", "char", "varchar", "int_type", "real_type", "float_options", "field_options", "field_opt_list", "field_option", "opt_len", "opt_precision", "opt_attribute", "opt_attribute_list", "attribute", "opt_binary", "references", "opt_on_delete", "opt_on_delete_list", "opt_on_delete_item", "delete_option", "key_type", "key_or_index", "keys_or_index", "opt_unique_or_fulltext", "key_list", "key_part", "opt_ident", "string_list", "alter", "@9", "alter_list", "add_column", "alter_list_item", "@10", "@11", "opt_column", "opt_ignore", "opt_restrict", "opt_place", "opt_to", "slave", "restore", "@12", "backup", "@13", "repair", "@14", "opt_mi_check_type", "mi_check_types", "mi_check_type", "analyze", "@15", "check", "@16", "optimize", "@17", "rename", "@18", "table_to_table_list", "table_to_table", "select", "@19", "select_into", "select_from", "select_options", "select_option_list", "select_option", "select_lock_type", "select_item_list", "select_item", "remember_name", "remember_end", "select_item2", "select_alias", "optional_braces", "expr", "expr_expr", "no_in_expr", "no_and_expr", "simple_expr", "udf_expr_list", "sum_expr", "in_sum_expr", "@20", "expr_list", "@21", "expr_list2", "ident_list", "@22", "ident_list2", "opt_expr", "opt_else", "when_list", "@23", "when_list2", "opt_pad", "join_table_list", "@24", "@25", "@26", "normal_join", "join_table", "@27", "opt_outer", "opt_key_definition", "key_usage_list", "@28", "key_usage_list2", "using_list", "interval", "table_alias", "opt_table_alias", "where_clause", "having_clause", "@29", "opt_escape", "group_clause", "group_list", "opt_order_clause", "order_clause", "order_list", "order_dir", "limit_clause", "delete_limit_clause", "ULONG_NUM", "ULONGLONG_NUM", "procedure_clause", "@30", "procedure_list", "procedure_list2", "procedure_item", "opt_into", "@31", "do", "@32", "drop", "@33", "table_list", "table", "if_exists", "insert", "@34", "replace", "@35", "insert_lock_option", "replace_lock_option", "insert2", "insert_table", "insert_field_spec", "@36", "opt_field_spec", "fields", "insert_values", "@37", "values_list", "ident_eq_list", "ident_eq_value", "equal", "no_braces", "@38", "opt_values", "values", "update", "update_list", "opt_low_priority", "delete", "@39", "opt_delete_options", "opt_delete_option", "truncate", "opt_table_sym", "show", "@40", "show_param", "opt_db", "wild", "opt_full", "describe", "@41", "describe_command", "opt_describe_column", "flush", "@42", "flush_options", "flush_option", "@43", "opt_table_list", "reset", "@44", "reset_options", "reset_option", "purge", "@45", "kill", "use", "load", "@46", "opt_local", "load_data_lock", "opt_duplicate", "opt_field_term", "field_term_list", "field_term", "opt_line_term", "line_term_list", "line_term", "opt_ignore_lines", "text_literal", "text_string", "literal", "insert_ident", "table_wild", "order_ident", "simple_ident", "field_ident", "table_ident", "ident", "ident_or_text", "user", "keyword", "set", "@47", "opt_option", "option_value_list", "option_value", "text_or_password", "set_option", "set_isolation", "tx_isolation", "isolation_types", "lock", "@48", "table_or_tables", "table_lock_list", "table_lock", "lock_option", "unlock", "revoke", "@49", "grant", "@50", "grant_privileges", "grant_privilege_list", "grant_privilege", "@51", "@52", "@53", "@54", "opt_table", "user_list", "grant_user", "opt_column_list", "column_list", "column_list_id", "grant_option", "begin", "@55", "opt_work", "commit", "rollback", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const unsigned short 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, 124, 38, 45, 43, 42, 47, 37, 126, 610, 40, 41, 44, 33, 123, 125, 64, 46 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned short yyr1[] = { 0, 372, 373, 373, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 376, 375, 377, 377, 378, 378, 378, 378, 378, 378, 378, 380, 379, 381, 379, 379, 382, 379, 383, 383, 384, 385, 384, 386, 386, 387, 387, 388, 388, 389, 390, 390, 391, 391, 392, 392, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 394, 394, 394, 394, 394, 394, 394, 395, 395, 395, 395, 396, 396, 396, 397, 397, 398, 398, 399, 399, 399, 400, 400, 401, 401, 401, 401, 401, 402, 402, 404, 403, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 406, 405, 407, 405, 408, 408, 408, 409, 409, 409, 409, 410, 410, 410, 410, 410, 411, 411, 411, 412, 412, 412, 413, 413, 414, 414, 415, 415, 416, 416, 417, 417, 418, 418, 419, 419, 420, 420, 420, 420, 420, 420, 420, 421, 421, 422, 422, 423, 423, 424, 424, 425, 425, 425, 425, 426, 426, 426, 426, 426, 427, 427, 427, 427, 427, 427, 428, 428, 429, 429, 430, 430, 430, 431, 431, 432, 432, 433, 433, 434, 434, 436, 435, 437, 437, 437, 438, 439, 439, 440, 439, 441, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 442, 442, 443, 443, 444, 444, 444, 445, 445, 445, 446, 446, 446, 447, 447, 449, 448, 451, 450, 453, 452, 454, 454, 454, 455, 455, 456, 456, 456, 456, 456, 458, 457, 460, 459, 462, 461, 464, 463, 465, 465, 466, 468, 467, 469, 469, 469, 469, 470, 471, 471, 472, 472, 473, 473, 473, 473, 473, 473, 473, 474, 474, 474, 475, 475, 475, 476, 477, 478, 479, 479, 480, 480, 480, 480, 480, 481, 481, 482, 482, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 487, 487, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 490, 489, 492, 491, 493, 493, 495, 494, 496, 496, 497, 497, 498, 498, 500, 499, 501, 501, 502, 502, 503, 503, 503, 503, 503, 504, 503, 503, 505, 503, 503, 503, 506, 503, 503, 503, 507, 507, 507, 509, 508, 508, 510, 510, 511, 511, 511, 513, 512, 514, 514, 514, 515, 515, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 517, 517, 517, 518, 518, 519, 519, 520, 521, 520, 522, 522, 523, 523, 524, 524, 525, 525, 526, 527, 527, 528, 528, 528, 529, 529, 529, 530, 530, 531, 531, 531, 532, 532, 532, 532, 533, 534, 533, 535, 535, 536, 536, 537, 539, 538, 538, 541, 540, 542, 543, 542, 542, 542, 544, 544, 545, 546, 546, 548, 547, 550, 549, 551, 551, 551, 551, 552, 552, 553, 553, 554, 555, 556, 555, 557, 557, 557, 558, 558, 559, 560, 559, 561, 561, 562, 562, 563, 564, 564, 566, 565, 567, 567, 568, 568, 569, 570, 570, 571, 571, 573, 572, 574, 574, 575, 575, 576, 577, 577, 579, 578, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 583, 583, 585, 584, 584, 586, 586, 587, 587, 587, 589, 588, 590, 590, 592, 591, 591, 591, 591, 591, 591, 591, 591, 593, 593, 595, 594, 596, 596, 597, 597, 599, 598, 600, 601, 603, 602, 602, 604, 604, 605, 605, 605, 606, 606, 606, 607, 607, 608, 608, 609, 609, 609, 609, 610, 610, 611, 611, 612, 612, 613, 613, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 619, 620, 620, 620, 620, 621, 621, 621, 622, 622, 622, 623, 623, 624, 624, 624, 625, 625, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 628, 627, 629, 629, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 634, 635, 636, 636, 636, 636, 638, 637, 639, 639, 640, 640, 641, 642, 642, 642, 642, 643, 645, 644, 647, 646, 648, 648, 648, 649, 649, 651, 650, 652, 650, 653, 650, 650, 654, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 655, 655, 655, 655, 656, 656, 657, 657, 657, 658, 658, 659, 659, 660, 661, 661, 663, 662, 664, 664, 665, 666 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char yyr2[] = { 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, 7, 0, 10, 4, 0, 9, 5, 2, 0, 0, 7, 0, 1, 0, 1, 1, 2, 1, 0, 3, 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1, 1, 3, 1, 2, 5, 8, 5, 0, 2, 0, 4, 3, 3, 3, 2, 1, 5, 2, 4, 5, 4, 3, 1, 1, 1, 4, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 3, 3, 0, 5, 0, 5, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 0, 3, 5, 0, 1, 2, 1, 1, 1, 0, 3, 0, 5, 0, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 0, 1, 3, 6, 0, 1, 2, 1, 3, 3, 2, 2, 1, 1, 2, 2, 2, 3, 1, 1, 2, 2, 3, 1, 1, 1, 1, 0, 1, 1, 4, 2, 1, 4, 0, 1, 1, 3, 0, 6, 0, 1, 3, 2, 3, 4, 0, 5, 0, 6, 4, 3, 4, 3, 6, 5, 4, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 2, 1, 0, 1, 1, 2, 2, 0, 6, 0, 6, 0, 5, 0, 3, 1, 1, 2, 1, 1, 1, 1, 1, 0, 5, 0, 5, 0, 5, 0, 4, 1, 3, 3, 0, 6, 0, 1, 2, 2, 8, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 4, 3, 1, 1, 4, 0, 0, 1, 1, 0, 2, 2, 1, 1, 0, 2, 1, 1, 5, 6, 5, 6, 3, 3, 3, 4, 5, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 6, 3, 3, 3, 4, 5, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 1, 5, 6, 5, 6, 3, 3, 4, 5, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 1, 1, 1, 4, 2, 3, 1, 2, 2, 2, 2, 3, 4, 8, 6, 2, 6, 3, 4, 6, 8, 4, 6, 4, 4, 4, 6, 2, 2, 4, 8, 8, 3, 6, 6, 4, 6, 6, 6, 8, 10, 12, 6, 4, 6, 6, 4, 8, 10, 5, 6, 3, 4, 6, 6, 8, 6, 6, 4, 4, 2, 4, 4, 6, 4, 3, 8, 6, 4, 6, 4, 8, 6, 8, 6, 8, 4, 7, 7, 7, 6, 6, 4, 4, 4, 4, 4, 4, 10, 3, 4, 3, 4, 6, 4, 4, 6, 6, 6, 0, 1, 4, 4, 4, 4, 4, 5, 10, 4, 4, 4, 4, 0, 2, 0, 2, 1, 3, 0, 2, 1, 3, 0, 1, 0, 2, 0, 2, 3, 5, 0, 1, 3, 1, 3, 3, 6, 0, 9, 7, 0, 10, 6, 7, 0, 10, 6, 4, 1, 1, 2, 0, 4, 10, 0, 1, 0, 2, 2, 0, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 2, 0, 2, 0, 0, 3, 2, 0, 0, 3, 4, 2, 0, 1, 3, 4, 2, 0, 1, 1, 0, 2, 4, 0, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 6, 0, 1, 3, 1, 2, 0, 6, 3, 0, 3, 5, 0, 6, 4, 3, 1, 3, 1, 0, 2, 0, 6, 0, 5, 0, 1, 1, 1, 1, 1, 2, 1, 1, 2, 0, 3, 0, 3, 2, 3, 1, 2, 0, 6, 3, 1, 3, 1, 3, 1, 1, 0, 4, 0, 1, 3, 1, 8, 5, 3, 0, 1, 0, 7, 0, 2, 1, 1, 3, 0, 1, 0, 3, 2, 3, 4, 4, 6, 2, 4, 2, 2, 2, 2, 1, 3, 3, 2, 2, 0, 2, 0, 2, 0, 1, 0, 4, 2, 1, 1, 0, 1, 1, 0, 3, 3, 1, 0, 3, 4, 1, 1, 1, 1, 1, 1, 0, 1, 0, 3, 3, 1, 1, 1, 0, 6, 2, 2, 0, 15, 5, 0, 1, 0, 1, 1, 0, 1, 1, 0, 2, 2, 1, 3, 4, 3, 3, 0, 2, 2, 1, 3, 3, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 3, 5, 1, 1, 3, 4, 5, 1, 3, 2, 1, 3, 2, 1, 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, 0, 4, 0, 1, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 3, 3, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 4, 2, 2, 2, 1, 0, 4, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 0, 7, 0, 8, 1, 2, 1, 1, 3, 0, 3, 0, 3, 0, 3, 1, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, 1, 1, 3, 4, 5, 1, 0, 3, 3, 1, 1, 0, 3, 0, 3, 0, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const unsigned short yydefact[] = { 0, 2, 254, 0, 1053, 0, 1057, 64, 703, 649, 0, 661, 744, 294, 0, 759, 765, 0, 710, 1058, 0, 712, 701, 0, 0, 0, 0, 0, 0, 739, 740, 1011, 0, 0, 1009, 951, 0, 663, 0, 0, 8, 11, 4, 33, 28, 6, 25, 5, 9, 22, 24, 31, 14, 15, 17, 26, 37, 12, 35, 34, 13, 0, 18, 27, 23, 21, 38, 19, 32, 20, 36, 29, 16, 7, 10, 30, 255, 0, 1000, 999, 283, 1055, 0, 107, 222, 68, 221, 69, 0, 65, 66, 0, 0, 705, 0, 0, 659, 0, 659, 665, 0, 301, 271, 0, 0, 265, 266, 711, 0, 287, 734, 702, 254, 839, 0, 0, 0, 0, 0, 833, 841, 848, 849, 858, 0, 870, 886, 919, 921, 948, 932, 934, 939, 923, 883, 832, 835, 837, 836, 838, 840, 842, 0, 843, 844, 846, 847, 850, 852, 853, 857, 860, 863, 864, 867, 868, 869, 804, 866, 872, 873, 871, 0, 874, 806, 875, 825, 880, 878, 879, 0, 881, 882, 884, 802, 887, 891, 889, 890, 892, 888, 893, 541, 885, 894, 895, 897, 901, 902, 903, 0, 904, 905, 805, 801, 906, 859, 907, 909, 910, 912, 915, 916, 913, 914, 803, 918, 920, 922, 924, 925, 926, 928, 929, 931, 933, 936, 796, 938, 942, 0, 0, 0, 0, 943, 944, 917, 945, 851, 0, 845, 0, 854, 855, 862, 865, 911, 935, 937, 940, 941, 834, 0, 0, 0, 545, 0, 0, 328, 328, 0, 0, 0, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, 877, 0, 0, 0, 0, 0, 0, 896, 899, 898, 900, 328, 908, 0, 0, 0, 0, 0, 927, 930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 946, 947, 0, 0, 861, 0, 0, 0, 0, 0, 0, 0, 767, 330, 331, 429, 800, 425, 424, 815, 826, 774, 0, 997, 1008, 269, 285, 0, 289, 267, 0, 952, 949, 839, 939, 855, 940, 941, 876, 896, 900, 908, 927, 947, 768, 701, 1, 3, 0, 738, 736, 822, 0, 0, 1056, 1054, 39, 0, 0, 69, 67, 0, 0, 708, 707, 0, 705, 697, 650, 0, 0, 0, 655, 0, 667, 668, 666, 254, 756, 755, 751, 753, 752, 754, 1000, 745, 747, 748, 311, 307, 306, 305, 308, 309, 310, 319, 302, 304, 0, 764, 763, 760, 762, 0, 709, 658, 0, 0, 0, 0, 732, 735, 0, 219, 0, 218, 725, 0, 732, 730, 0, 732, 0, 713, 0, 0, 535, 535, 535, 535, 535, 535, 0, 0, 438, 0, 0, 541, 0, 0, 432, 0, 0, 0, 0, 537, 537, 807, 809, 808, 0, 535, 535, 546, 0, 537, 0, 0, 450, 0, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, 537, 537, 537, 537, 537, 0, 0, 0, 0, 0, 0, 0, 430, 431, 0, 433, 0, 829, 828, 0, 827, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, 775, 776, 772, 0, 0, 0, 0, 1029, 1030, 1024, 1031, 1020, 1018, 1022, 1015, 1035, 0, 1028, 1034, 1025, 1032, 1033, 1027, 0, 1013, 1016, 0, 0, 0, 0, 670, 0, 669, 824, 741, 0, 231, 273, 656, 0, 0, 54, 0, 55, 0, 0, 706, 0, 0, 660, 256, 654, 0, 0, 0, 757, 317, 296, 316, 0, 303, 273, 0, 0, 273, 0, 719, 728, 729, 0, 714, 0, 722, 730, 721, 0, 732, 730, 724, 0, 0, 723, 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 543, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, 0, 0, 329, 0, 455, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 488, 0, 0, 0, 0, 0, 0, 0, 553, 553, 553, 0, 0, 523, 0, 0, 0, 0, 0, 0, 512, 0, 514, 0, 0, 0, 633, 631, 632, 0, 434, 0, 428, 0, 0, 345, 346, 347, 348, 349, 350, 351, 0, 343, 352, 353, 338, 537, 613, 0, 0, 0, 0, 337, 336, 341, 0, 423, 358, 359, 0, 355, 0, 354, 356, 357, 360, 816, 773, 0, 0, 602, 998, 1001, 0, 273, 1046, 1046, 1046, 1014, 1036, 1046, 0, 0, 290, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 978, 979, 0, 0, 982, 980, 981, 984, 987, 983, 985, 986, 988, 0, 0, 950, 953, 0, 956, 991, 0, 673, 677, 672, 799, 798, 737, 742, 743, 823, 233, 281, 280, 0, 282, 279, 278, 0, 284, 275, 276, 0, 0, 0, 0, 0, 0, 0, 40, 41, 70, 50, 0, 0, 607, 696, 652, 258, 257, 651, 677, 0, 746, 758, 749, 574, 0, 319, 312, 297, 0, 320, 322, 321, 815, 272, 761, 0, 288, 727, 733, 830, 726, 732, 731, 715, 732, 730, 0, 0, 524, 536, 0, 527, 528, 532, 531, 534, 533, 0, 0, 537, 537, 0, 0, 0, 441, 0, 0, 446, 539, 538, 447, 444, 0, 525, 526, 547, 0, 448, 537, 452, 0, 0, 0, 537, 0, 458, 0, 0, 0, 537, 0, 466, 0, 0, 469, 0, 537, 0, 475, 0, 0, 537, 481, 482, 484, 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 491, 0, 493, 0, 0, 0, 554, 0, 0, 0, 0, 499, 505, 506, 507, 508, 509, 510, 0, 513, 515, 0, 517, 518, 0, 0, 435, 426, 817, 344, 0, 0, 339, 537, 613, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, 604, 603, 0, 0, 0, 0, 286, 0, 1021, 1019, 1023, 1026, 1037, 1040, 822, 0, 1017, 0, 0, 0, 0, 690, 691, 0, 0, 989, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, 675, 0, 664, 0, 252, 252, 252, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 252, 0, 250, 73, 232, 118, 234, 251, 0, 657, 277, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 52, 0, 629, 653, 662, 750, 574, 0, 607, 556, 0, 0, 0, 315, 0, 0, 295, 299, 298, 323, 0, 766, 0, 717, 716, 720, 730, 607, 0, 529, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 374, 375, 376, 377, 378, 379, 380, 0, 372, 381, 382, 367, 0, 613, 0, 0, 0, 366, 365, 370, 0, 387, 388, 0, 384, 0, 383, 385, 386, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 612, 0, 340, 0, 405, 406, 407, 408, 409, 410, 411, 0, 403, 412, 413, 334, 537, 613, 0, 0, 0, 0, 398, 397, 401, 0, 418, 419, 0, 415, 0, 414, 416, 417, 420, 362, 361, 818, 769, 606, 0, 1004, 1005, 1003, 1002, 270, 1050, 0, 1049, 0, 0, 0, 292, 293, 268, 0, 957, 967, 966, 974, 0, 975, 969, 968, 963, 962, 637, 635, 634, 636, 965, 964, 0, 976, 0, 970, 959, 958, 961, 960, 973, 0, 954, 955, 0, 679, 0, 681, 811, 810, 683, 0, 674, 253, 236, 0, 0, 0, 0, 217, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 263, 602, 0, 0, 0, 0, 0, 74, 0, 227, 212, 118, 0, 259, 0, 113, 227, 211, 120, 819, 274, 43, 44, 46, 48, 45, 47, 49, 42, 118, 51, 777, 72, 110, 109, 108, 0, 0, 608, 0, 704, 0, 574, 0, 0, 572, 0, 574, 577, 577, 571, 574, 614, 602, 646, 648, 0, 313, 0, 327, 318, 326, 812, 816, 831, 732, 0, 629, 0, 0, 504, 479, 480, 0, 437, 442, 0, 540, 445, 548, 439, 0, 0, 449, 0, 0, 460, 456, 461, 459, 0, 521, 468, 465, 467, 0, 0, 473, 476, 477, 0, 457, 373, 486, 368, 613, 371, 0, 0, 0, 0, 0, 490, 492, 0, 497, 495, 0, 0, 0, 0, 0, 503, 0, 516, 519, 520, 333, 335, 404, 0, 399, 537, 613, 402, 0, 0, 0, 0, 777, 1006, 1007, 1047, 0, 1039, 1038, 1045, 1051, 1041, 1010, 0, 0, 996, 992, 0, 0, 972, 676, 688, 0, 678, 0, 301, 692, 682, 686, 0, 239, 80, 227, 244, 246, 256, 81, 78, 83, 84, 76, 77, 814, 620, 623, 82, 102, 101, 86, 103, 87, 88, 0, 97, 99, 98, 100, 85, 94, 96, 93, 95, 90, 92, 91, 75, 0, 241, 79, 235, 119, 228, 213, 0, 111, 821, 0, 261, 237, 0, 0, 0, 214, 0, 114, 0, 0, 0, 0, 779, 778, 58, 62, 0, 0, 630, 555, 0, 573, 574, 574, 577, 577, 558, 578, 0, 0, 557, 0, 609, 579, 780, 0, 325, 324, 0, 718, 0, 698, 700, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 369, 0, 363, 391, 390, 0, 0, 0, 0, 502, 500, 501, 0, 393, 0, 400, 0, 395, 422, 421, 0, 1048, 0, 0, 0, 1012, 994, 993, 995, 971, 0, 0, 0, 680, 319, 694, 0, 0, 0, 0, 245, 243, 0, 624, 625, 622, 249, 0, 0, 238, 118, 260, 0, 227, 210, 215, 197, 0, 0, 178, 126, 0, 0, 155, 152, 165, 139, 154, 137, 133, 169, 167, 150, 169, 161, 141, 147, 140, 164, 146, 169, 166, 163, 145, 135, 134, 138, 162, 144, 0, 158, 178, 182, 193, 0, 178, 180, 820, 71, 63, 0, 56, 0, 623, 225, 0, 560, 570, 0, 0, 574, 574, 0, 610, 618, 0, 0, 575, 0, 788, 314, 813, 0, 0, 436, 443, 0, 453, 454, 462, 0, 535, 470, 478, 364, 489, 496, 494, 498, 537, 394, 396, 0, 0, 0, 1042, 977, 687, 689, 0, 0, 695, 685, 248, 0, 240, 623, 89, 182, 112, 0, 0, 0, 0, 0, 195, 198, 200, 0, 0, 0, 125, 142, 0, 143, 156, 159, 160, 0, 0, 172, 168, 0, 172, 172, 0, 0, 172, 189, 0, 0, 186, 0, 191, 121, 183, 185, 194, 157, 0, 128, 0, 172, 0, 172, 777, 60, 53, 0, 224, 0, 0, 0, 0, 574, 574, 563, 567, 615, 623, 0, 626, 619, 582, 581, 580, 0, 0, 0, 0, 781, 783, 0, 647, 699, 0, 552, 0, 0, 0, 0, 1043, 0, 1052, 312, 693, 0, 0, 0, 247, 621, 242, 117, 0, 203, 204, 0, 0, 0, 199, 115, 0, 0, 0, 0, 176, 177, 148, 173, 175, 0, 124, 149, 0, 0, 132, 188, 187, 190, 192, 184, 0, 0, 122, 0, 123, 57, 301, 623, 0, 574, 559, 0, 565, 569, 0, 0, 0, 0, 0, 617, 611, 0, 638, 0, 0, 0, 0, 0, 782, 0, 0, 789, 791, 471, 463, 0, 530, 511, 780, 1044, 684, 0, 206, 0, 205, 0, 201, 202, 197, 129, 179, 0, 229, 170, 0, 174, 0, 136, 131, 193, 193, 0, 319, 223, 226, 0, 0, 562, 0, 566, 0, 623, 627, 0, 300, 0, 786, 787, 0, 784, 0, 0, 790, 0, 788, 0, 208, 209, 207, 196, 153, 0, 0, 151, 127, 130, 0, 104, 0, 0, 587, 0, 0, 616, 0, 639, 586, 0, 585, 785, 793, 792, 464, 794, 116, 230, 171, 181, 61, 312, 0, 561, 0, 0, 0, 628, 0, 583, 0, 0, 677, 105, 576, 588, 564, 568, 319, 584, 0, 770, 0, 0, 642, 644, 795, 645, 640, 319, 643 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short yydefgoto[] = { -1, 38, 39, 40, 584, 850, 851, 41, 1131, 1395, 854, 1388, 1586, 1913, 1726, 88, 89, 90, 356, 1389, 1114, 1115, 1560, 1552, 1543, 2025, 91, 1394, 1568, 1569, 1372, 1373, 1581, 1718, 1808, 1804, 1719, 1720, 1721, 1722, 1806, 1893, 1894, 1895, 1797, 1830, 1820, 1821, 1822, 1826, 1579, 1791, 1792, 1793, 1953, 1374, 1375, 420, 92, 1728, 1729, 1565, 1958, 42, 832, 1116, 1117, 1118, 1665, 1674, 1336, 77, 861, 1573, 1359, 43, 44, 572, 45, 550, 46, 396, 840, 841, 842, 47, 351, 48, 551, 49, 404, 50, 571, 785, 786, 51, 101, 870, 871, 393, 394, 395, 1149, 602, 603, 604, 1152, 873, 1418, 456, 1537, 311, 699, 757, 312, 713, 313, 628, 629, 714, 650, 913, 436, 437, 643, 452, 1175, 919, 920, 1177, 985, 1141, 1839, 1922, 1924, 1409, 1142, 1143, 1600, 1743, 1850, 1930, 2014, 2006, 681, 1047, 1048, 1135, 1740, 1846, 1010, 1604, 1844, 1847, 1119, 1538, 1671, 1929, 1398, 730, 1312, 1981, 2033, 2048, 2049, 2050, 872, 1606, 52, 94, 53, 1136, 582, 583, 369, 54, 99, 55, 343, 375, 576, 824, 825, 1090, 1326, 1091, 1328, 1334, 1520, 1522, 1515, 1516, 1068, 1523, 1661, 1776, 366, 56, 1160, 112, 57, 93, 363, 364, 58, 108, 59, 110, 421, 621, 615, 422, 60, 579, 61, 828, 62, 100, 383, 384, 600, 866, 63, 103, 399, 400, 64, 104, 65, 66, 67, 1497, 770, 547, 1587, 1745, 1856, 1857, 1859, 1938, 1939, 2037, 314, 1959, 315, 1329, 1330, 1539, 316, 1376, 403, 317, 883, 1504, 318, 68, 574, 330, 817, 818, 1317, 819, 820, 821, 1511, 69, 549, 385, 773, 774, 1285, 70, 71, 328, 72, 325, 568, 569, 570, 778, 777, 779, 782, 1060, 1505, 1506, 1053, 1289, 1290, 1651, 73, 81, 353, 74, 75 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -1880 static const short yypact[] = { 18530, -1880, 80, 420, -1880, 133, -1880, 407, -1880, -1880, 11, -1880, -1880, -1880, 420, -1880, -1880, 614, -73, -1880, 420, -1880, 81, 9959, 15, 420, 420, 420, 420, -1880, -1880, -1880, 420, 420, -1880, 115, 18294, -1880, 269, 298, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 13424, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 143, -1880, -1880, -1880, 51, 209, -1880, -1880, -1880, -1880, 125, 167, -1880, 228, 235, 358, -14, 9959, 18294, 181, 18294, 181, 66, 504, 67, -1880, 506, 447, -1880, -1880, -1880, 14648, -1880, 1952, -1880, 80, 130, 160, 171, 187, 203, 231, -1880, -1880, -1880, -1880, -1880, 275, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 289, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 9959, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 295, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 311, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 319, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 9959, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 321, 326, 330, 335, -1880, -1880, -1880, -1880, -1880, 342, -1880, 348, -1880, 287, -1880, -1880, -1880, -1880, -1880, 287, 287, -1880, 371, 373, 375, 9959, 387, 390, 400, 402, 406, 429, 431, -1880, 434, 441, 442, 443, 444, 445, 448, 450, 451, 452, 454, -1880, 455, 10316, 456, 458, 460, 461, 462, -1880, -1880, 463, 464, 465, 466, 467, 468, 470, 471, 472, -1880, 473, 474, 475, 476, 485, 486, 493, 496, 497, 498, 500, 501, 503, -1880, 505, 511, 513, -1880, 9959, 9959, 9959, 9959, 18294, 15557, 18294, 7297, -1880, -1880, -1880, 305, -1880, -1880, 239, -1880, 90, 14648, -1880, -1880, -1880, -1880, 1169, -1880, -1880, 1169, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 246, -1880, -1880, 18294, -1880, -1880, 270, 14648, 14648, -1880, -1880, -1880, 572, 18294, 125, -1880, 18294, 18294, -1880, -1880, 565, -14, 7297, 492, 656, 773, 14648, -1880, 18294, -1880, -1880, -1880, 80, -1880, -1880, -1880, -1880, -1880, -1880, 642, 514, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 522, 67, -1880, 14648, -1880, -1880, 516, -1880, 738, -1880, -1880, 14648, 685, 55, 689, 759, -1880, 600, -1880, 694, -1880, -1880, 693, 759, 797, 699, 759, 799, -1880, 48, 14648, -1880, -50, -1880, -1880, -1880, -1880, 9959, 9959, 746, 9959, 9959, -1880, 636, 14951, 746, 536, 9959, 9959, 9959, -1880, -1880, 305, 305, 305, 9959, -1880, -1880, 7297, 569, -1880, 9959, 537, -1880, 8531, -1880, 538, 9959, 9959, 9959, 9959, 9959, 9959, 9959, 449, 9959, 9959, 9959, 287, 9959, 9959, 9959, 7136, 8888, 9959, 9959, 9959, 9959, 9959, 8531, -1880, 9959, 9959, 9245, 9959, 9959, 9959, 9959, 9959, 9959, 8174, 539, 539, 539, 539, 539, 539, 287, 9602, 540, 9959, 9959, 9959, 304, 746, 746, 4488, 746, 9959, -1880, -1880, 16779, -1880, 896, 541, 9959, 9959, 9959, 9959, 9959, 9959, 9959, 212, 9959, 9959, 9959, 551, 9959, 1, 9959, 9959, 9959, 9959, 9959, 9959, 10673, 11030, 9959, 9959, 9959, -1880, 18294, -1880, -1880, 786, 822, 14648, 14648, 14648, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 752, -1880, 764, -1880, -1880, -1880, -1880, -1880, -1880, 767, 559, -1880, 14648, 14648, 769, 502, -1880, 13727, -1880, -1880, 17082, 18294, -1880, 13, -1880, 608, 844, -1880, 14648, -1880, 782, 14648, -1880, 9959, 14648, -1880, -40, -1880, 13727, 762, 504, 14648, -1880, -33, -1880, 9959, -1880, 13, 506, 741, 13, 14648, -1880, -1880, -1880, 6, -1880, 16779, -1880, 797, -1880, 18294, 759, 797, -1880, 14648, 855, -1880, 766, 590, 9959, -1880, 596, 597, 598, 599, 601, 602, 2488, 2543, 2616, 2670, 603, 605, 604, -1880, -1880, 4523, 2805, 2829, 606, 9959, 607, 1640, 609, 612, -1880, 613, 2859, -1880, 4547, -1880, 2883, 3048, 3072, 3102, 3126, 1823, 3261, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 876, 3291, 3315, 1902, -124, 4706, 3388, 1957, 623, -1880, 4733, 3525, 3579, 3601, 4767, 4794, 4953, 4977, 7380, -1880, -1880, 5011, 3655, 3789, 2033, 5038, 1508, 3814, 9959, 9959, 9959, 4303, 617, -1880, 619, 620, 621, 622, 624, -113, -1880, 5197, -1880, 2088, 5221, 2118, -1880, -1880, -1880, 625, -1880, 1174, -1880, 9959, 18294, 29, 29, 29, 29, 29, 29, 29, 833, -1880, 226, 226, 6886, -1880, 901, 635, 9959, 9959, 9959, 7827, 7827, 29, 7540, -1880, 36, 173, 10316, -82, 10316, -82, 746, 746, 746, 632, -1880, 890, 972, 137, 651, -1880, -138, 13, 657, 657, 657, -1880, -1880, 657, 14030, 1056, 658, -1880, 819, -60, 14030, 366, 366, 818, 366, 818, 906, 366, 838, 366, 366, 366, 70, -1880, -1880, 366, 366, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 366, 16779, 665, -1880, 366, -1880, -1880, 14648, -1880, -137, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 1079, -1880, -1880, 1028, -1880, -1880, -1880, 14648, -1880, -1880, 17, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 676, -1880, -1880, -1880, 834, 14648, 823, 7297, -1880, -1880, -1880, -1880, -137, 996, -1880, 682, -1880, 257, 495, -1880, 5, 931, 953, -1880, 7297, -1880, 680, -1880, -1880, 850, -1880, -1880, -1880, 683, -1880, 759, -1880, -1880, 759, 797, 14648, 14951, -1880, 7297, 691, -1880, -1880, -1880, -1880, -1880, -1880, 9959, 9959, -1880, -1880, 791, 9959, 14951, -1880, 9959, 9959, -1880, 7297, 692, -1880, -1880, 9959, -1880, -1880, 774, 9959, -1880, -1880, -1880, 761, 763, 858, -1880, 860, -1880, 9959, 9959, 9959, -1880, 907, -1880, 9959, 908, -1880, 9959, -1880, 9959, -1880, 9959, 9959, -1880, -1880, -1880, -1880, -1880, 9959, 9959, 9959, 9959, 9959, 9959, 9959, 438, 9959, 9959, 9959, 9959, 9959, 221, 9959, 9959, 9959, 9959, 9959, 9959, 11387, 11744, 9959, 9959, 9959, -1880, 9959, 9959, -1880, 9959, -1880, 9959, 9959, 9959, 7297, 968, 969, 971, 9959, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 913, -1880, -1880, 9959, -1880, -1880, 9959, 9959, -1880, 7297, -1880, -1880, 708, 872, -1880, -1880, 901, 29, 7581, 9959, 9959, 9959, 9959, 9959, 9959, 9959, 499, 9959, 9959, 9959, 711, 9959, 34, 9959, 9959, 9959, 9959, 9959, 9959, 12101, 12458, 9959, 9959, 9959, 7136, 7136, 18294, 874, -1880, -1880, -1880, 18294, 388, 14648, 875, -1880, 18294, -1880, -1880, -1880, -1880, 709, -1880, 710, 879, -1880, 14648, 14648, 877, 989, -1880, -1880, 932, 250, -1880, 935, -1880, 966, 938, 85, 296, 510, 510, 16779, -96, 329, 494, 304, 366, 502, 940, -1880, -1880, 14333, -1880, 52, 1022, 1022, 1022, 1094, 477, 1098, 1099, 1103, 1104, 1105, 1106, 1044, 1110, 1111, 1112, 1113, 14, 1115, 1116, 1118, 1022, 1119, -1880, 1515, 758, 12808, -1880, -1880, 17, -1880, -1880, 923, 924, 925, 510, 926, 304, 304, 608, 56, 360, -1880, 9959, 889, -1880, -1880, -1880, 257, 18294, 113, -1880, 14648, 930, 933, -1880, 1015, 1088, -1880, -1880, -1880, 17385, 15870, -1880, 16779, -1880, -1880, -1880, 797, -125, 366, -1880, 3844, 5258, 772, 775, 778, 5282, -1880, 5441, 3973, 9959, 5468, 9959, 801, 7160, 813, 780, 9959, 9959, 781, 787, 788, 5502, 4032, 5526, 789, 790, 5685, 792, 4059, 795, -82, 5712, 2220, 798, 29, 29, 29, 29, 29, 29, 29, 992, -1880, 226, 226, 6886, 5746, 901, 9959, 9959, 9959, 7827, 7827, 29, 7594, 36, 173, 10316, -82, 10316, -82, 746, 746, 746, 4218, 5773, 5932, 4462, 2277, 4242, 9959, 9959, 9959, 5956, 796, 5990, 6017, 6176, -1880, -1880, 800, -1880, 9959, 29, 29, 29, 29, 29, 29, 29, 1011, -1880, 226, 226, 6886, -1880, 901, 803, 9959, 9959, 9959, 7827, 7827, 29, 7605, 36, 173, 10316, -82, 10316, -82, 746, 746, 746, 623, 623, -1880, -1880, -1880, 943, 1038, -1880, -1880, -1880, -1880, -1880, 302, -1880, 812, 16173, 16779, -1880, -1880, -1880, 16779, -1880, -1880, -1880, -1880, 364, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 366, -1880, 808, -1880, -1880, -1880, -1880, -1880, -1880, 9959, -1880, -1880, 14951, -1880, 306, -1880, -1880, -1880, -1880, 809, -1880, -1880, -1880, 15254, 15254, 973, 1050, -1880, -1880, 1052, 15254, 15254, 510, 304, 304, 304, 510, 510, 9959, 304, 535, 304, 304, -1880, -1880, 147, 62, 584, 824, 15254, 975, -1880, 1079, 15254, 312, 13121, 18294, 106, 40, 1010, 15254, -1880, -1880, 821, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 13121, -1880, 22, -1880, -1880, -1880, -1880, 981, 830, 7297, 510, -1880, 39, 827, 1074, 1082, -1880, 2, 827, 1042, 1042, -1880, 827, 1101, 1559, -1880, -1880, 891, -1880, 17688, -1880, -1880, -1880, -1880, 842, -1880, 759, 14951, 889, 9959, 9959, -1880, -1880, -1880, 9959, -1880, -1880, 9959, 7297, -1880, 7297, -1880, 9959, 9959, -1880, 7136, 7136, -1880, -1880, -1880, -1880, 9959, -1880, -1880, -1880, -1880, 1053, 9959, -1880, -1880, -1880, 9959, -1880, -1880, -1880, -1880, 901, 29, 7668, 9959, 7136, 7136, 9959, -1880, -1880, 9959, -1880, -1880, 9959, 9959, 6200, 6237, 6261, -1880, 1058, -1880, -1880, -1880, -1880, 6886, -1880, 851, -1880, -1880, 901, 29, 7806, 9959, 7136, 7136, -61, -1880, -1880, -1880, 18294, -1880, -1880, 929, -117, -1880, 852, 61, 1041, -1880, -1880, -96, 1018, 7297, 862, -1880, 366, -1880, 14951, 67, -1880, 863, -1880, 57, -1880, -1880, 15254, -1880, -1880, 110, -1880, -1880, -1880, -1880, -1880, -1880, 7297, 864, 91, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 14648, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 14648, -1880, -1880, -1880, -1880, -1880, -1880, 313, -1880, -1880, 18294, -1880, -1880, 857, 1108, 1109, 312, 14648, -1880, 870, 7757, 18294, 316, -1880, -1880, -1880, 1177, 1039, 18294, -1880, -1880, 944, -1880, 827, 827, 1042, 1042, -1880, -1880, 1121, 1123, -1880, 1171, 1141, 89, 1178, 946, -1880, -1880, 16476, -1880, 366, -1880, 7297, 4278, 6420, 6447, 7297, 7216, 888, 892, 2351, 893, 6481, 6505, -1880, 9959, 6886, 623, 623, 6664, 6691, 6725, 6752, -1880, -1880, -1880, 894, -1880, 898, -1880, 9959, 6886, 623, 623, 1140, -1880, 1195, 1162, 16779, -1880, -1880, -1880, -1880, -1880, 902, 14951, 9959, -1880, 522, 9959, 809, 1186, 1189, 15254, -1880, -1880, 9959, -1880, -1880, -1880, -1880, 332, 7757, -1880, 13121, -1880, 9959, 15254, -1880, -1880, -43, 18294, 909, 912, -1880, 404, 140, 1017, -1880, -1880, -1880, -1880, -1880, -1880, 914, 1037, -1880, 914, -1880, -1880, -1880, -1880, -1880, -1880, 914, -1880, -1880, -1880, 915, -1880, -1880, -1880, -1880, 916, -1880, 912, 480, -6, 917, 912, 918, -1880, 1515, -1880, 1250, -1880, 355, 91, 927, 1124, 1130, -1880, 1167, 1168, 827, 827, 9959, -1880, 1129, 312, 312, -1880, 172, 1165, -1880, -1880, 9959, 9959, -1880, -1880, 9959, -1880, -1880, -1880, 9959, -1880, -1880, -1880, 6886, -1880, -1880, -1880, -1880, -1880, -1880, 6886, 1097, -71, 1138, -1880, -1880, -1880, 7297, -59, 934, 492, -1880, -1880, 4, -1880, 91, -1880, 480, -1880, 6911, 937, 254, 163, 18294, -1880, 211, -1880, 368, 1142, 1146, -1880, -1880, 1043, -1880, -1880, -1880, -1880, 941, 1150, 376, -1880, 945, 376, 376, 1151, 1152, 376, -1880, 4, 1155, -1880, 1187, 1188, -1880, 480, -1880, -1880, -1880, 1157, -1880, 1158, 376, 1161, 376, 22, -1880, -1880, 18294, -1880, 1163, 1196, 9959, 1100, 827, 827, 1164, 1170, 958, 91, 9959, 1085, -1880, -1880, -1880, -1880, 1259, 1260, 1243, 1262, 172, -1880, 343, -1880, 7297, 6935, 7297, 2406, 967, 974, 14648, -1880, 1131, -1880, 5, -1880, 287, 287, 287, -1880, -1880, -1880, -1880, 18294, -1880, -1880, 244, 244, 392, -1880, -1880, 977, 978, 6, 394, -1880, -1880, -1880, 376, -1880, 6, -1880, -1880, 979, 985, -1880, -1880, -1880, -1880, -1880, -1880, 988, 991, -1880, 980, -1880, -1880, 67, 91, 993, 827, 7297, 990, -1880, -1880, 9959, 1117, 9959, 1137, 9959, -1880, 7297, 304, 1027, 995, 6, 6, 1291, 6, -1880, 1292, 1293, 343, -1880, -1880, -1880, 9959, -1880, -1880, 1178, -1880, -1880, 397, -1880, 1310, -1880, 37, -1880, -1880, 211, -1880, -1880, 403, -1880, -1880, 1210, -1880, 412, -1880, -1880, 1304, 1304, 1215, 522, -1880, -1880, 1216, 18294, 7297, 1008, 7297, 1012, 91, 1009, 18294, -1880, 17991, -1880, -1880, 6, -1880, 6, 6, -1880, 6969, 1165, 1010, -1880, -1880, -1880, -1880, -1880, 6, 1013, -1880, -1880, -1880, 1014, -59, 9959, 415, -1880, 18294, 18294, -1880, 304, -1880, -1880, 419, -1880, -1880, -1880, -1880, -1880, 1261, -1880, -1880, -1880, -1880, -1880, 5, 1450, -1880, 18294, 421, 424, -1880, 1016, -1880, 18294, 1221, 1019, -1880, -1880, -1880, -1880, -1880, 1021, -1880, 1251, -1880, 9959, 1024, 1025, -1880, -1880, 7297, -1880, -1880, -1880 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { -1880, -1880, -1880, -1880, -1880, -1880, 252, -1880, -1880, -1880, -1880, -1880, -447, -1880, -1880, -1880, 1300, -1880, 1036, -332, -1102, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 8, -1097, -1880, -269, -1880, -277, -1880, -1880, -289, -288, -1880, -1880, -1527, -1453, -1880, -494, -1077, -1880, -383, -1880, -419, -1175, -587, -549, -1880, -385, -474, -1880, -1065, -1880, -1880, -1586, -422, -1331, -486, -1880, -1880, -1880, -1880, 47, -1880, -1880, -532, -44, -116, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -530, -823, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 353, 1357, -1880, -1880, -861, -1510, -1880, 1026, -1759, -1626, 550, -1879, -1880, -1880, -1880, -78, -23, -1880, -1880, -737, -390, 277, -1880, -423, -1880, -275, -1880, -1880, 987, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 86, 288, -1880, -1880, -1880, -1880, -1304, -1880, -1274, -1880, -316, -1880, -1880, -1206, -424, 69, 18, -987, -1880, -1880, -989, -1880, -1880, -1880, -310, -1880, -1638, -1880, 7, -1036, -1046, -1880, -1880, -1880, -1880, -621, 566, -1880, -1880, -1880, -1880, -1880, -360, -51, 1338, -1880, -1880, -1880, -1880, -1880, -1880, 841, 618, 579, -1880, -595, -1880, -1880, -1880, -1880, -1880, -213, -738, -217, -1880, -1880, -214, -1880, -1880, 1107, -1880, -1880, 1084, -1880, -1880, -1880, -1880, -1880, -1880, -600, -395, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, 865, -1880, -1880, -1880, -1880, -1880, 859, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -1880, -46, -480, -1880, -389, -523, -1880, -469, -1880, -232, -564, -1631, -49, 868, -1581, -420, -1235, 21, -22, -296, -588, -1880, -1880, -1880, -1880, -1880, 389, -39, -1880, -1880, -168, -1880, -1880, -1880, 690, -1880, 426, -1880, -1880, -1880, -1880, -1880, -1880, 1148, -1880, 696, -1880, -1880, -1880, -1880, 688, 184, -172, -182, -1880, -19, -1880, -1880, -1880, -1880, -1880, -1880 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -642 static const short yytable[] = { 310, 445, 632, 633, 634, 635, 636, 446, 447, 595, 1660, 1151, 516, 1365, 342, 829, 1014, 644, 885, 1122, 1371, 619, 888, 1244, 623, -59, 653, 654, 884, 1390, 859, 1344, 1313, 1300, 1775, 630, 606, 1064, 867, 349, 1307, 526, 527, 1580, 609, 1319, 1321, 1322, 526, 527, 882, 689, 1584, 1069, 1088, 1071, 1147, 402, 1074, 1823, 1076, 1077, 1078, 1080, 867, 1050, 1081, 1082, 423, 1401, 531, 365, 1357, 367, 1066, 370, 877, 1083, 543, 880, 1382, 1086, 348, 1095, 1067, 868, 349, 1782, 1332, 543, 1663, 1835, 1384, 1385, 319, 700, 1592, 1794, 1134, 157, 1788, 1598, 1524, 1525, 833, 1602, 1315, 1649, 833, 1529, 1530, 1947, 1574, 164, 1789, 826, 1097, 1994, 1098, 432, 750, 361, 625, 386, 1595, 95, 107, 1099, 1562, 1571, 751, 1867, 1566, 1601, 1652, 1584, 1575, 174, 1100, 1566, 749, 1045, 1548, 1401, 1876, 758, 860, 372, 1549, 1875, 1669, 1045, 387, 1260, 1410, 1402, 1550, 1845, 834, 193, 194, 1403, 834, 1261, 2047, 1304, 545, 438, 649, 651, 82, 458, 1809, 1425, 1670, 2047, 373, 388, 656, 1810, 859, 531, 752, 205, 1902, 526, 527, 611, 531, 1404, 775, 776, 1995, 76, 1882, 1046, 1666, 1305, 483, 1572, 1101, 374, 1741, 1102, 1884, 1046, 217, 1926, 827, 1576, 96, 1883, 788, 1316, 320, 1262, 111, 1358, 733, 835, 626, 1462, 451, 1104, 97, 546, 887, 1089, 839, 1402, 1217, 1105, 1106, 1107, 362, 1403, 1405, 1872, 1868, 685, 865, 1424, 937, 836, 475, 1109, 1051, 836, 1664, 1650, 837, 612, 1585, 996, 837, 1824, 1577, 1873, 1874, 1852, 1853, 838, 1110, 1404, 389, 838, 753, 2038, 720, 344, 1489, 1111, -605, 1333, 329, 1653, 1970, 540, 541, 542, 507, 508, 509, 510, 98, 511, 515, 517, 1551, 1158, 1732, 1733, 1566, 1948, 1148, 1267, 860, 1378, 349, 1263, 1531, 345, 1596, 1567, 1535, 1536, 839, 869, 1742, 631, 1405, 1532, 1533, 1534, 1949, -605, 1597, 1540, 1544, 1545, 1546, 1790, 1734, 1735, 578, 531, 839, 575, 349, 349, 1299, 597, 1854, 869, 586, 1585, 1134, 588, 589, 1406, 2010, 548, 350, 2004, 1978, 727, 1323, 349, 1787, 596, 1211, 1590, 1880, 1407, 1788, 894, 1897, 1898, 1825, 1079, 1901, 1012, -605, 758, 743, 1113, 357, 744, 1789, 1801, 1066, 581, 627, 1855, 349, 1909, 1306, 1911, 531, 839, 1067, 111, 349, 352, 536, 537, 538, 539, 540, 541, 542, 727, 537, 538, 539, 540, 541, 542, 1950, 727, 1802, 349, 1212, 1969, 1591, 1408, 728, 637, 638, 1318, 639, 640, 354, 1406, 390, 391, 392, 646, 647, 648, 1387, 355, 1881, 1426, 727, 652, 1341, 1407, 85, 729, 1951, 657, 1842, 1843, 659, 1952, 1342, 661, 662, 663, 664, 665, 666, 667, 1566, 682, 683, 684, 359, 686, 687, 688, 728, 691, 692, 693, 694, 695, 696, 697, 728, 698, 83, 702, 703, 704, 705, 706, 707, 708, 712, 1161, 360, 1008, 1626, 729, 1465, 368, 722, 1408, 724, 725, 726, 729, 401, 728, 1213, 1169, 732, 217, 1156, 1314, 515, 1157, 424, 736, 737, 738, 739, 740, 741, 742, 1641, 745, 746, 747, 84, 543, 729, 754, 755, 756, 1681, 759, 760, 762, 764, 765, 766, 767, 1084, -220, 768, 1282, 425, 823, 1493, 349, 349, 349, 538, 539, 540, 541, 542, 426, 1919, 1920, 1936, 856, 1814, 376, 1508, 397, 1937, 377, 823, 398, 1509, 349, 349, 427, 1335, 1688, 349, 1689, 1510, 830, 831, 1423, 1815, 1337, 1338, 790, 1345, 349, 1283, 428, 349, 857, 772, 349, 1210, 1340, 1320, 349, 1512, 758, 349, 1785, 1363, 874, 876, 538, 539, 540, 541, 542, 349, 727, 1204, 1341, 787, 1205, 515, 429, 1054, 1055, 886, 1391, 1056, 1342, 349, 791, 792, 1308, 893, 85, 853, 1392, 544, 1393, 1972, 1284, 858, 378, 1277, 1278, 78, 79, -106, 1139, 1390, 86, 1070, 1140, 1072, 912, 1165, 1166, 727, 881, 1816, 1693, 1891, 1817, 379, 1259, 1892, 430, 1813, 580, 758, 1309, 1828, 889, 1343, 1178, 1553, 1818, 728, 1253, 1182, 431, 1254, 793, 105, 106, 1187, 433, 1144, 1145, 590, 1798, 1716, 1192, 1310, 1500, 1501, 1331, 1196, 1518, 1519, 729, 380, 434, 1849, 1849, 1675, 1676, 87, 1724, 1676, 435, 1554, 439, 984, 984, 984, 1311, 440, 728, 1555, 80, 441, 794, 1819, 1783, 839, 442, 381, 1556, 382, 79, 102, 1557, 443, 795, 1541, 1542, 109, 1005, 444, 1006, 729, 321, 322, 323, 324, 796, 1833, 1834, 326, 327, 585, 668, 669, 670, 671, 1013, 1558, 797, 1559, 1886, 1834, 448, 1243, 449, 1040, 450, 1041, 672, 673, 674, 843, 844, 845, 846, 847, 848, 849, 453, 675, 676, 454, 798, 677, 1955, 1834, 1960, 1961, 1059, 1992, 1834, 455, 678, 457, 1059, 1997, 1998, 459, 823, 715, 716, 717, 718, 719, 2000, 1998, 1658, 2028, 2029, 679, 680, 2034, 2035, 2041, 2029, 1121, 2042, 2029, 2001, 2002, 460, 515, 461, 986, 987, 462, 799, 349, 800, 2030, 2031, 1058, 463, 464, 465, 466, 467, 1058, 801, 468, 593, 469, 470, 471, 349, 472, 473, 476, 1463, 477, 758, 478, 479, 480, 481, 482, 484, 485, 486, 487, 349, 488, 489, 490, 491, 492, 493, 494, 802, 803, 804, 805, 806, 807, 808, 809, 495, 496, 810, 811, 812, 813, 814, 815, 497, 592, 1422, 498, 499, 500, 594, 501, 502, 598, 503, 349, 504, 608, 1491, 816, 758, 1748, 505, 1133, 506, 1163, 1164, 599, 601, 607, 1168, 610, 613, 1170, 1171, 614, 616, 617, 618, 1979, 1173, 620, 622, 624, 1176, 531, 642, 655, 645, 658, 660, -522, 723, 1517, 1184, 1185, 1186, 734, 1159, 735, 1189, 1870, 748, 1191, 769, 1193, 771, 1194, 1195, 780, 781, 783, 784, 789, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 852, 1206, 1207, 1208, 1209, 855, 863, 1214, 1215, 1216, 879, 1218, 1219, 1221, 1223, 1224, 1225, 1226, 890, 1227, 1228, 892, 1229, 891, 1230, 1231, 1232, 895, 896, 897, 898, 1236, 899, 900, 905, 906, 907, 911, 914, 932, 917, 2032, 1238, 918, 921, 1239, 1240, 941, 990, 1488, 991, 992, 993, 994, 1007, 995, 1009, 1003, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1011, 1255, 1256, 1257, 1042, 1612, 1043, 1264, 1265, 1266, 1044, 1268, 1269, 1271, 1273, 1274, 1275, 1276, 1049, 1620, 1621, 1279, 1052, 1063, 795, 1062, 1281, 1073, 349, 1611, 1075, 1288, 1085, 1120, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 349, 349, 1130, 1629, 1630, 1132, 1134, 1138, 839, 868, 867, 1153, 1154, 1155, 1167, 1174, 1162, 515, 1172, 1179, 1181, 1180, 1183, 1188, 1190, 1233, 1234, 876, 1235, 1237, 772, 1644, 1645, 1241, 1242, 1258, 1280, 1287, 552, 1296, 1291, 1292, 1293, 787, 1295, 553, 1297, 554, 1298, 555, 556, 1301, 557, 1302, 1303, 1377, 1325, 1335, 1339, 1331, 1092, 1093, 1346, 1347, 558, 1094, 1095, 1348, 1349, 1350, 1351, 1396, 1096, 1352, 1353, 1354, 1355, 1356, 1400, 1360, 1361, 349, 1362, 1364, 1366, 1379, 1380, 1381, 1383, 1397, 1419, 1421, 1412, 515, 1414, 1413, 1415, 1429, 1438, 1097, 1430, 1098, 1431, 2026, 1440, 1441, 1444, 1460, 560, 1435, 1099, 1437, 1445, 1446, 1450, 1451, 1442, 1443, 1453, 561, 1455, 1100, 1481, 1459, 1411, 1485, 1487, 1490, 1498, 1499, 562, 1502, 1513, 1521, 1527, 1526, 1528, 1563, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 1561, 1464, 1578, 552, 1582, 1588, 1589, 1140, 1593, 1467, 553, 1468, 554, 1673, 555, 556, 1594, 557, 1599, 1603, 1607, 1623, 1477, 1478, 1479, 1610, 1638, 1640, 1639, 558, 1650, 1654, 1656, 1678, 1486, 1101, 1648, 559, 1102, 563, 1657, 1662, 1668, 528, 1679, 1680, 1683, 1725, 564, 1517, 565, 1492, 1738, 1727, 1103, 1736, 1731, 1737, 1104, 1495, 1739, 1496, 566, 1746, 1744, 1753, 1105, 1106, 1107, 1754, 1768, 1757, 1765, 560, 1108, 1766, 1769, 1770, 1779, 1772, 1109, 1780, 831, 515, 561, 1795, 567, 515, 1796, 1803, 1805, 1811, 1812, 1827, 1829, 562, 1807, 1110, 1832, 1838, 1837, 1840, 1841, 1836, 1103, 529, 1111, 1858, 1866, 1869, 1887, 1871, 1514, 1879, 1888, 530, 1824, 1889, 1890, 1899, 1900, 1896, 1903, 1904, 1905, 1907, 1908, 1377, 1377, 1910, 1916, 1915, 1918, 1921, 1377, 1377, 1925, 1928, 531, 1923, 1931, 1932, 1933, 1934, 1943, 1946, 1864, 532, 533, 1975, 1980, 1944, 563, 1377, 1956, 1957, 1964, 1377, 1968, 1377, 1570, 564, 1965, 565, 1377, 1966, 1973, 534, 1967, 1977, 1971, 1982, 1985, 1987, 1988, 566, 1993, 1377, 1999, 1983, 1984, 1823, 1986, 2003, 2008, 2005, 2036, 2011, 2009, 2045, 2023, 2024, 2043, 2051, 1386, 1089, 1912, 1112, -641, 567, 1113, 2053, 358, 2054, 1831, 587, 1609, 1583, 1781, 1784, 1799, 1800, 1962, 1877, 1906, 1614, 1615, 2021, 1996, 1885, 1616, 1954, 1963, 1617, 1914, 1564, 1667, 1294, 1618, 1619, 347, 1146, 605, 2016, 641, 2017, 2018, 1622, 1851, 1399, 1547, 1605, 1848, 1624, 1613, 2055, 2022, 1625, 371, 1150, 862, 535, 1087, 1137, 2046, 1628, 1773, 1778, 1631, 1777, 591, 1632, 577, 1646, 1633, 1634, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 864, 1991, 878, 1935, 2020, 1989, 1659, 1643, 875, 1655, 1324, 1286, 573, 1065, 1771, 1288, 1061, 1507, 1647, 0, 0, 0, 0, 0, 0, 0, 1865, 0, 0, 0, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 1377, 0, 528, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 349, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 349, 0, 0, 1095, 1004, 0, 0, 0, 0, 0, 1677, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 1723, 0, -605, 1045, 0, 528, 0, 1730, 1672, 529, 0, 0, 0, 0, 0, 1097, 0, 1098, 0, 530, 0, 0, 0, 0, 0, 0, 1099, 0, 1279, -605, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 1682, 0, 0, 531, 0, 1760, 981, 0, 0, 0, 0, -605, 532, 533, 0, 0, 0, 0, 1046, 0, 1767, 0, 0, 0, 0, 0, 0, 0, 529, 515, 0, 0, 534, 0, 0, 0, 1774, 0, 530, 365, 0, 445, 446, 447, 1377, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 1377, 1786, 0, 1377, 0, 1101, 531, 1730, 1102, 0, 0, -605, -605, 0, 0, 532, 533, 0, -605, 0, 0, -605, 0, -605, 0, 0, 0, -605, 1104, 0, 0, 0, 0, 0, 0, 534, 1105, 1106, 1107, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 1109, 0, 0, 0, 0, -605, 0, 0, 0, 0, 0, 535, -605, 0, 0, 0, 0, 1110, -605, 0, 0, 1860, 1861, 0, 0, 1862, 1111, 0, 0, 1863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -605, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 1730, 530, 0, 0, 0, 535, 0, 0, 0, 0, -605, -605, 0, 0, -605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, -605, 0, 532, 533, 0, 0, 536, 537, 538, 539, 540, 541, 542, 1730, 0, 0, 1917, 0, 0, 0, 2039, 0, 534, 0, 1927, 1113, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, -605, 0, 0, 0, 0, 0, 0, 0, 0, 1730, 0, -605, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, -605, 0, 0, -605, 982, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1974, 0, 1976, 0, 0, 0, 0, 535, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 1990, 0, 0, 0, 0, -605, -605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 2007, 530, 0, 0, 0, 0, 0, 2012, 528, 2015, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 405, 2027, 0, 532, 533, 2007, 2007, 0, 406, 0, 0, 0, 407, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 534, 915, 916, 2040, 0, 0, 0, 0, 0, 2044, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 2052, 0, 0, 0, 0, 0, 408, 530, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 409, 0, 0, 0, 531, 0, 410, 0, 0, 0, 0, 0, 0, 532, 533, 0, 411, 0, 0, 412, 0, 0, 0, 0, 0, 413, 529, 0, 0, 0, 0, 0, 0, 534, 414, 0, 530, 0, 535, 0, 528, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 531, 415, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 528, 0, 0, 416, 0, 417, 418, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 419, 528, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 0, 929, 930, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 534, 0, 0, 530, 0, 0, 0, 0, 535, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 529, 0, 0, 531, 0, 0, 0, 0, 0, 0, 530, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 935, 936, 534, 531, 0, 0, 0, 0, 0, 0, 528, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 731, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 535, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 0, 978, 979, 0, 534, 0, 0, 0, 0, 530, 0, 528, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 998, 999, 0, 0, 0, 534, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 536, 537, 538, 539, 540, 541, 542, 530, 0, 0, 1001, 1002, 535, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 534, 0, 0, 530, 0, 0, 0, 0, 0, 0, 535, 0, 0, 528, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 1457, 1458, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 535, 530, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 531, 0, 1474, 1475, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 534, 0, 535, 530, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 1755, 1756, 0, 0, 0, 0, 0, 0, 534, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 0, 1941, 1942, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 534, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 535, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 536, 537, 538, 539, 540, 541, 542, 0, 534, 0, 0, 901, 0, 0, 0, 0, 0, 0, 0, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 535, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 531, 903, 0, 0, 0, 534, 0, 530, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 534, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 531, 904, 0, 0, 0, 534, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 534, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 0, 909, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 528, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 0, 910, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 531, 922, 0, 0, 0, 534, 0, 530, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 0, 924, 0, 0, 0, 534, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 534, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 535, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 531, 925, 0, 0, 0, 0, 0, 530, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 0, 926, 0, 0, 0, 534, 531, 530, 528, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 531, 927, 0, 0, 0, 534, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 928, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 931, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 529, 0, 536, 537, 538, 539, 540, 541, 542, 535, 530, 0, 0, 933, 528, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 0, 0, 934, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 534, 0, 530, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 531, 939, 0, 0, 0, 0, 0, 534, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 534, 0, 530, 0, 0, 0, 0, 0, 535, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 536, 537, 538, 539, 540, 541, 542, 531, 0, 530, 0, 944, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 531, 945, 0, 0, 534, 0, 0, 530, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 534, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 976, 0, 0, 0, 534, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 529, 0, 0, 534, 977, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 529, 0, 983, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 1427, 531, 0, 534, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 535, 0, 534, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 529, 0, 1434, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 0, 529, 1448, 534, 988, 0, 0, 532, 533, 0, 0, 530, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 534, 0, 1454, 0, 0, 0, 0, 531, 0, 530, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 534, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 0, 1469, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 529, 1476, 0, 0, 0, 0, 0, 531, 0, 0, 530, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 529, 534, 1749, 0, 0, 0, 0, 532, 533, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 0, 989, 534, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 1472, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1473, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 528, 529, 731, 0, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 534, 908, 0, 0, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 923, 529, 534, 0, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 534, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 534, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 938, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 942, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 0, 946, 0, 534, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 534, 947, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 534, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 948, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 949, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 0, 975, 529, 534, 0, 0, 0, 532, 533, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 534, 980, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 997, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 1000, 529, 0, 0, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 534, 1428, 0, 0, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 0, 1432, 0, 534, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1433, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1436, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 534, 1447, 0, 0, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 1449, 529, 534, 0, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 534, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 534, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 1452, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1456, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 0, 1461, 0, 534, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 534, 1470, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 534, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1471, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1480, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 0, 0, 1482, 529, 534, 0, 0, 0, 532, 533, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 534, 1483, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1484, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 1635, 529, 0, 0, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 534, 1636, 0, 0, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 0, 1637, 0, 534, 0, 0, 0, 0, 531, 530, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1750, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 528, 529, 0, 1751, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 534, 1758, 0, 0, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 1759, 529, 534, 0, 0, 0, 0, 531, 0, 0, 0, 530, 0, 0, 0, 0, 532, 533, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 531, 0, 534, 0, 0, 0, 0, 0, 0, 532, 533, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 534, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, 0, 535, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 535, 0, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 1761, 529, 0, 0, 0, 0, 0, 0, 0, 531, 0, 530, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 529, 0, 1762, 0, 0, 0, 0, 0, 0, 531, 530, 0, 0, 534, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 531, 529, 0, 1763, 0, 534, 0, 0, 0, 532, 533, 530, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 534, 1764, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 534, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 536, 537, 538, 539, 540, 541, 542, 528, 0, 0, 1878, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 531, 530, 536, 537, 538, 539, 540, 541, 542, 532, 533, 0, 1940, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 531, 0, 0, 0, 0, 534, 0, 0, 0, 532, 533, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 2019, 529, 0, 0, 0, 0, 0, 534, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 0, 0, 0, 534, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 668, 669, 670, 671, 529, 0, 0, 0, 0, 0, 0, 0, 0, 535, 530, 0, 672, 673, 674, 0, 0, 0, 0, 0, 0, 960, 0, 675, 676, 0, 0, 677, 0, 0, 0, 0, 0, 531, 0, 0, 678, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 680, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 1439, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 0, 0, 0, 0, 0, 0, 0, 0, 964, 965, 0, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1752, 0, 0, 0, 0, 0, 0, 966, 535, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 0, 0, 0, 0, 0, 0, 0, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 0, 0, 1025, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 0, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1245, 0, 0, 0, 0, 0, 0, 967, 0, 0, 0, 0, 0, 1466, 536, 537, 538, 539, 540, 541, 542, 1026, 0, 0, 1494, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 0, 0, 0, 0, 0, 0, 0, 1026, 1029, 1030, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 1026, 0, 0, 0, 0, 0, 0, 0, 1031, 0, 1027, 1026, 1627, 0, 0, 0, 0, 0, 0, 0, 1028, 1027, 968, 969, 970, 971, 972, 973, 974, 1029, 1030, 0, 0, 1028, 0, 0, 0, 0, 0, 0, 0, 0, 1029, 1030, 1028, 0, 0, 0, 0, 1031, 0, 0, 0, 1029, 1030, 0, 0, 0, 0, 0, 0, 0, 1031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1031, 1026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0, 0, 0, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1028, 0, 1684, 1685, 1686, 0, 0, 0, 0, 1029, 1030, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 0, 0, 0, 0, 1032, 0, 0, 1031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0, 0, 1642, 0, 0, 0, 0, 0, 0, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 1687, 0, 0, 0, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 0, 0, 0, 0, 1688, 0, 1689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1026, 0, 0, 0, 0, 0, 0, 0, 1032, 0, 1027, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 0, 0, 0, 529, 0, 1690, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 530, 0, 1028, 0, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1029, 1030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 1691, 1692, 1693, 1031, 0, 1694, 1695, 1696, 1697, 1698, 0, 1699, 1700, 0, 1701, 1702, 1703, 1704, 1705, 1706, 0, 0, 1707, 1708, 534, 1709, 1710, 1711, 1712, 1713, 1714, 0, 1715, 1716, 0, 0, 0, 0, 0, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1717, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, 541, 542, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 709, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 710, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 711, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 658, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 690, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 701, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 721, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 267, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 474, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 761, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 763, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 1220, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 1222, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 1270, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 0, 0, 306, 307, 0, 308, 309, 113, 114, 115, 116, 117, 118, 0, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 124, 125, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 157, 0, 0, 158, 0, 159, 0, 160, 0, 161, 162, 0, 0, 163, 164, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 217, 0, 0, 218, 219, 220, 221, 222, 223, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 229, 230, 231, 232, 233, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 0, 0, 253, 254, 0, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 0, 0, 264, 265, 266, 0, 1272, 268, 269, 270, 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 304, 0, 305, 331, 0, 306, 307, 0, 308, 309, 0, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 0, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 1367, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 1368, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 1341, 0, 0, 167, 0, 0, 168, 169, 0, 0, 1342, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 298, 0, 341, 0, 119, 302, 120, 0, 121, 122, 0, 0, 0, 123, 0, 0, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 1369, 134, 0, 135, 136, 0, 0, 1370, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 1367, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 1368, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 1341, 0, 0, 167, 0, 0, 168, 169, 0, 0, 1342, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 13, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 1370, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 346, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 822, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 346, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 1057, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 346, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 298, 0, 341, 0, 0, 302, 119, 0, 120, 0, 121, 122, 0, 0, 0, 123, 0, 0, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 1327, 0, 134, 0, 135, 136, 309, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 346, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 309, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 1370, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 512, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 513, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 298, 0, 341, 0, 119, 302, 120, 0, 121, 122, 0, 0, 0, 123, 0, 0, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 514, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 1420, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 1503, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 1747, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 512, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 513, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 826, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 827, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 1416, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 1417, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 1608, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 2013, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 265, 0, 0, 0, 0, 0, 0, 0, 0, 337, 273, 274, 338, 0, 339, 0, 0, 0, 0, 0, 0, 340, 284, 331, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 0, 121, 122, 298, 0, 341, 123, 0, 302, 125, 0, 126, 127, 128, 0, 129, 130, 131, 332, 133, 0, 0, 0, 0, 0, 0, 134, 0, 135, 136, 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, 143, 144, 0, 0, 0, 145, 146, 147, 0, 0, 148, 0, 0, 149, 0, 0, 150, 0, 0, 0, 151, 0, 0, 152, 0, 153, 154, 155, 156, 0, 0, 0, 158, 0, 159, 0, 160, 0, 161, 0, 0, 0, 163, 0, 0, 165, 166, 0, 0, 0, 0, 167, 0, 0, 168, 169, 0, 0, 0, 0, 0, 171, 0, 0, 0, 172, 173, 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, 0, 183, 184, 185, 186, 187, 188, 0, 189, 0, 191, 192, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, 0, 206, 0, 207, 208, 0, 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, 0, 0, 0, 216, 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, 0, 224, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 228, 0, 0, 0, 230, 0, 232, 333, 0, 0, 234, 235, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 237, 238, 334, 335, 0, 0, 0, 2, 0, 3, 4, 5, 241, 6, 7, 0, 8, 9, 10, 11, 12, 13, 0, 14, 15, 16, 17, 0, 253, 18, 19, 20, 21, 22, 23, 24, 25, 0, 26, 0, 0, 0, 0, 336, 265, 0, 0, 0, 27, 0, 0, 0, 0, 337, 273, 274, 338, 28, 339, 0, 0, 0, 0, 0, 0, 340, 284, 0, 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 341, 0, 0, 302, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 33, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37 }; static const short yycheck[] = { 23, 233, 425, 426, 427, 428, 429, 239, 240, 369, 1520, 872, 308, 1115, 36, 579, 753, 437, 618, 842, 1117, 416, 622, 1012, 419, 3, 449, 450, 616, 1131, 70, 1096, 1078, 1069, 1660, 85, 396, 97, 97, 61, 1076, 12, 13, 1374, 404, 1081, 1082, 1083, 12, 13, 614, 475, 113, 791, 191, 793, 51, 108, 796, 65, 798, 799, 800, 801, 97, 203, 804, 805, 112, 30, 152, 94, 58, 95, 4, 97, 606, 815, 202, 609, 1126, 819, 61, 27, 14, 118, 108, 1668, 36, 202, 33, 1729, 1128, 1129, 79, 485, 1400, 1683, 223, 95, 143, 1405, 1337, 1338, 91, 1409, 202, 224, 91, 1344, 1345, 1870, 72, 109, 157, 109, 60, 80, 62, 142, 119, 135, 74, 56, 122, 114, 199, 71, 1363, 23, 129, 202, 1367, 1407, 73, 113, 96, 133, 82, 1374, 530, 4, 80, 30, 1782, 535, 186, 81, 86, 1780, 59, 4, 85, 119, 1141, 116, 94, 1738, 145, 155, 156, 122, 145, 129, 2043, 80, 76, 190, 443, 444, 37, 249, 1699, 1160, 83, 2054, 110, 110, 453, 1706, 70, 152, 181, 179, 1815, 12, 13, 132, 152, 150, 550, 551, 155, 113, 31, 58, 1527, 112, 276, 93, 144, 135, 113, 147, 1790, 58, 202, 1845, 202, 169, 199, 48, 572, 309, 199, 181, 135, 203, 514, 206, 172, 1210, 245, 167, 213, 135, 621, 364, 366, 116, 967, 175, 176, 177, 248, 122, 197, 233, 309, 471, 600, 366, 366, 230, 267, 189, 776, 230, 191, 366, 237, 196, 313, 366, 237, 261, 216, 253, 254, 87, 88, 248, 206, 150, 197, 248, 265, 2026, 500, 0, 1259, 215, 135, 221, 159, 214, 1914, 359, 360, 361, 303, 304, 305, 306, 273, 307, 308, 309, 226, 889, 1594, 1595, 1527, 1879, 289, 1032, 186, 1120, 320, 265, 1346, 3, 300, 1368, 1350, 1351, 366, 366, 219, 359, 197, 1347, 1348, 1349, 70, 178, 314, 1353, 1354, 1355, 1356, 364, 1596, 1597, 346, 152, 366, 81, 350, 351, 80, 375, 160, 366, 356, 313, 223, 359, 360, 300, 1978, 320, 199, 1969, 1925, 95, 1084, 369, 1679, 371, 129, 1397, 98, 314, 143, 630, 1809, 1810, 364, 289, 1813, 751, 225, 753, 152, 309, 199, 155, 157, 229, 4, 350, 423, 201, 396, 1828, 80, 1830, 152, 366, 14, 135, 404, 332, 355, 356, 357, 358, 359, 360, 361, 95, 356, 357, 358, 359, 360, 361, 154, 95, 260, 423, 181, 1913, 365, 366, 156, 430, 431, 80, 433, 434, 203, 300, 347, 348, 349, 440, 441, 442, 364, 296, 168, 1161, 95, 448, 114, 314, 200, 179, 186, 454, 1736, 1737, 457, 191, 124, 460, 461, 462, 463, 464, 465, 466, 1679, 468, 469, 470, 213, 472, 473, 474, 156, 476, 477, 478, 479, 480, 481, 482, 156, 484, 55, 486, 487, 488, 489, 490, 491, 492, 493, 891, 114, 748, 1463, 179, 1213, 296, 501, 366, 503, 504, 505, 179, 37, 156, 265, 907, 511, 202, 885, 1079, 514, 888, 364, 518, 519, 520, 521, 522, 523, 524, 1491, 526, 527, 528, 99, 202, 179, 532, 533, 534, 1577, 536, 537, 538, 539, 540, 541, 542, 816, 114, 544, 135, 364, 576, 1263, 549, 550, 551, 357, 358, 359, 360, 361, 364, 1840, 1841, 195, 590, 60, 37, 178, 37, 201, 41, 597, 41, 184, 571, 572, 364, 75, 149, 576, 151, 192, 579, 580, 1159, 80, 1093, 1094, 61, 1096, 587, 178, 364, 590, 592, 549, 593, 962, 96, 80, 597, 1314, 967, 600, 1676, 1112, 604, 604, 357, 358, 359, 360, 361, 610, 95, 152, 114, 571, 155, 616, 364, 778, 779, 620, 239, 782, 124, 624, 101, 102, 95, 629, 200, 587, 249, 371, 251, 1916, 225, 593, 111, 1040, 1041, 198, 199, 213, 364, 1724, 216, 792, 368, 794, 650, 903, 904, 95, 610, 152, 229, 258, 155, 132, 1027, 262, 364, 1717, 371, 1032, 133, 1721, 624, 169, 922, 64, 169, 156, 152, 927, 364, 155, 153, 42, 43, 933, 364, 165, 166, 97, 259, 260, 940, 156, 365, 366, 1089, 945, 365, 366, 179, 170, 364, 1741, 1742, 365, 366, 273, 365, 366, 364, 100, 364, 709, 710, 711, 179, 364, 156, 108, 3, 364, 193, 216, 365, 366, 364, 196, 117, 198, 199, 14, 121, 364, 205, 173, 174, 20, 734, 364, 735, 179, 25, 26, 27, 28, 217, 365, 366, 32, 33, 152, 276, 277, 278, 279, 752, 146, 229, 148, 365, 366, 364, 1011, 364, 761, 364, 763, 292, 293, 294, 136, 137, 138, 139, 140, 141, 142, 364, 303, 304, 364, 253, 307, 365, 366, 365, 366, 783, 365, 366, 364, 316, 364, 789, 365, 366, 364, 822, 495, 496, 497, 498, 499, 365, 366, 1517, 365, 366, 333, 334, 365, 366, 365, 366, 839, 365, 366, 1966, 1967, 364, 816, 364, 710, 711, 364, 297, 822, 299, 2008, 2009, 783, 364, 364, 364, 364, 364, 789, 309, 364, 157, 364, 364, 364, 839, 364, 364, 364, 1211, 364, 1213, 364, 364, 364, 364, 364, 364, 364, 364, 364, 855, 364, 364, 364, 364, 364, 364, 364, 339, 340, 341, 342, 343, 344, 345, 346, 364, 364, 349, 350, 351, 352, 353, 354, 364, 366, 1155, 364, 364, 364, 90, 364, 364, 224, 364, 890, 364, 132, 1261, 370, 1263, 1612, 364, 855, 364, 901, 902, 366, 359, 366, 906, 199, 196, 909, 910, 129, 289, 196, 198, 1928, 916, 97, 196, 97, 920, 152, 263, 331, 365, 365, 365, 365, 365, 1326, 930, 931, 932, 14, 890, 371, 936, 1775, 364, 939, 131, 941, 97, 943, 944, 170, 159, 157, 366, 157, 950, 951, 952, 953, 954, 955, 956, 90, 958, 959, 960, 961, 157, 178, 964, 965, 966, 203, 968, 969, 970, 971, 972, 973, 974, 97, 976, 977, 365, 979, 191, 981, 982, 983, 365, 365, 365, 365, 988, 365, 365, 365, 364, 366, 365, 365, 97, 365, 2011, 999, 365, 365, 1002, 1003, 358, 365, 1258, 365, 365, 365, 365, 155, 365, 89, 366, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 364, 1023, 1024, 1025, 371, 1424, 115, 1029, 1030, 1031, 37, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 366, 1442, 1443, 1042, 364, 203, 205, 366, 1047, 120, 1049, 1423, 191, 1052, 366, 4, 4, 4, 4, 4, 4, 4, 4, 1062, 1063, 366, 1467, 1468, 211, 223, 51, 366, 118, 97, 371, 202, 370, 263, 281, 365, 1079, 366, 298, 202, 298, 202, 156, 156, 97, 97, 1089, 97, 156, 1049, 1495, 1496, 365, 202, 364, 202, 202, 22, 202, 371, 371, 203, 1062, 1063, 29, 97, 31, 156, 33, 34, 156, 36, 127, 156, 1117, 156, 75, 4, 1519, 21, 22, 4, 4, 48, 26, 27, 4, 4, 4, 4, 1134, 33, 69, 4, 4, 4, 4, 1140, 4, 4, 1143, 4, 4, 366, 202, 202, 202, 202, 240, 1152, 1153, 202, 1155, 119, 202, 48, 365, 337, 60, 365, 62, 364, 2004, 331, 365, 365, 155, 92, 1172, 71, 1174, 365, 365, 365, 365, 1179, 1180, 366, 103, 365, 82, 366, 365, 1143, 365, 155, 364, 225, 131, 114, 359, 364, 364, 124, 202, 124, 202, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 364, 1212, 180, 22, 371, 212, 364, 368, 122, 1220, 29, 1222, 31, 1561, 33, 34, 122, 36, 164, 106, 317, 156, 1233, 1234, 1235, 371, 156, 1490, 365, 48, 366, 178, 202, 364, 1245, 144, 295, 56, 147, 171, 366, 366, 366, 57, 124, 124, 364, 58, 180, 1657, 182, 1262, 69, 202, 163, 122, 300, 122, 167, 1270, 107, 1272, 194, 305, 74, 365, 175, 176, 177, 365, 118, 366, 366, 92, 183, 365, 69, 103, 80, 365, 189, 80, 1292, 1293, 103, 364, 218, 1297, 364, 260, 364, 364, 364, 364, 364, 114, 247, 206, 36, 157, 164, 122, 122, 364, 163, 119, 215, 130, 199, 159, 156, 365, 1323, 364, 156, 129, 261, 364, 156, 156, 156, 364, 155, 124, 124, 156, 156, 1337, 1338, 156, 122, 156, 220, 157, 1344, 1345, 366, 240, 152, 157, 69, 69, 87, 69, 365, 202, 1757, 161, 162, 220, 311, 365, 171, 1363, 365, 365, 365, 1367, 366, 1369, 1370, 180, 365, 182, 1374, 365, 364, 181, 365, 220, 365, 364, 69, 69, 69, 194, 54, 1387, 156, 1931, 1932, 65, 1934, 156, 364, 157, 113, 366, 364, 156, 365, 365, 364, 130, 1130, 364, 1831, 306, 365, 218, 309, 365, 90, 366, 1724, 357, 1416, 1387, 1665, 1674, 1687, 1687, 1894, 1784, 1821, 1426, 1427, 1992, 1955, 1792, 1431, 1883, 1896, 1434, 1834, 1366, 1530, 1062, 1439, 1440, 61, 869, 394, 1985, 435, 1987, 1988, 1448, 1742, 1139, 1359, 1411, 1740, 1454, 1425, 2054, 1998, 1458, 98, 871, 597, 265, 822, 862, 2037, 1466, 1657, 1662, 1469, 1661, 364, 1472, 343, 1497, 1475, 1476, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 599, 1945, 607, 1856, 1991, 1938, 1519, 1494, 604, 1512, 1085, 1049, 328, 789, 1650, 1501, 784, 1297, 1501, -1, -1, -1, -1, -1, -1, -1, 1765, -1, -1, -1, -1, -1, -1, 1519, -1, -1, -1, -1, -1, -1, -1, 1527, -1, 57, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 1547, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 1561, -1, -1, 27, 369, -1, -1, -1, -1, -1, 1571, -1, -1, -1, -1, -1, -1, 1578, -1, -1, -1, 1582, -1, 3, 4, -1, 57, -1, 1589, 1547, 119, -1, -1, -1, -1, -1, 60, -1, 62, -1, 129, -1, -1, -1, -1, -1, -1, 71, -1, 1610, 30, -1, -1, -1, -1, -1, -1, -1, 82, -1, 1578, -1, -1, 152, -1, 1627, 97, -1, -1, -1, -1, 51, 161, 162, -1, -1, -1, -1, 58, -1, 1642, -1, -1, -1, -1, -1, -1, -1, 119, 1650, -1, -1, 181, -1, -1, -1, 1658, -1, 129, 1661, -1, 1872, 1873, 1874, 1665, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1676, 1678, -1, 1679, -1, 144, 152, 1683, 147, -1, -1, 106, 107, -1, -1, 161, 162, -1, 113, -1, -1, 116, -1, 118, -1, -1, -1, 122, 167, -1, -1, -1, -1, -1, -1, 181, 175, 176, 177, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 189, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, 265, 157, -1, -1, -1, -1, 206, 163, -1, -1, 1748, 1749, -1, -1, 1752, 215, -1, -1, 1756, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 197, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 1790, 129, -1, -1, -1, 265, -1, -1, -1, -1, 219, 220, -1, -1, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, 240, -1, 161, 162, -1, -1, 355, 356, 357, 358, 359, 360, 361, 1834, -1, -1, 1838, -1, -1, -1, 369, -1, 181, -1, 1846, 309, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 1866, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, 1879, -1, 300, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 311, -1, -1, 314, 366, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 1866, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1921, -1, 1923, -1, -1, -1, -1, 265, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 1942, -1, -1, -1, -1, 365, 366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 1973, 129, -1, -1, -1, -1, -1, 1980, 57, 1982, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, 29, 2005, -1, 161, 162, 2008, 2009, -1, 37, -1, -1, -1, 41, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, 181, 365, 366, 2029, -1, -1, -1, -1, -1, 2035, 57, -1, -1, -1, -1, -1, -1, 119, -1, -1, 2047, -1, -1, -1, -1, -1, 78, 129, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 98, -1, -1, -1, 152, -1, 104, -1, -1, -1, -1, -1, -1, 161, 162, -1, 114, -1, -1, 117, -1, -1, -1, -1, -1, 123, 119, -1, -1, -1, -1, -1, -1, 181, 132, -1, 129, -1, 265, -1, 57, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 152, 158, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, 57, -1, -1, 196, -1, 198, 199, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, 222, 57, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, -1, 365, 366, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 181, -1, -1, 129, -1, -1, -1, -1, 265, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 119, -1, -1, 152, -1, -1, -1, -1, -1, -1, 129, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 366, 181, 152, -1, -1, -1, -1, -1, -1, 57, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, 265, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, -1, 365, 366, -1, 181, -1, -1, -1, -1, 129, -1, 57, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 366, -1, -1, -1, 181, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 119, -1, -1, 355, 356, 357, 358, 359, 360, 361, 129, -1, -1, 365, 366, 265, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 181, -1, -1, 129, -1, -1, -1, -1, -1, -1, 265, -1, -1, 57, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 366, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 265, 129, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 152, -1, 365, 366, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 181, -1, 265, 129, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 366, -1, -1, -1, -1, -1, -1, 181, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, -1, 365, 366, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 181, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, 265, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 355, 356, 357, 358, 359, 360, 361, -1, 181, -1, -1, 366, -1, -1, -1, -1, -1, -1, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 366, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 265, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, 152, 366, -1, -1, -1, 181, -1, 129, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 181, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 152, 366, -1, -1, -1, 181, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, 181, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, -1, 366, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 57, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, -1, 366, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, 152, 366, -1, -1, -1, 181, -1, 129, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, -1, 366, -1, -1, -1, 181, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, 181, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 265, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, 152, 366, -1, -1, -1, -1, -1, 129, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, -1, 366, -1, -1, -1, 181, 152, 129, 57, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 152, 366, -1, -1, -1, 181, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 366, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 366, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 119, -1, 355, 356, 357, 358, 359, 360, 361, 265, 129, -1, -1, 366, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, -1, -1, 366, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 181, -1, 129, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 152, 366, -1, -1, -1, -1, -1, 181, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 181, -1, 129, -1, -1, -1, -1, -1, 265, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 366, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, 355, 356, 357, 358, 359, 360, 361, 152, -1, 129, -1, 366, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, 152, 366, -1, -1, 181, -1, -1, 129, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 181, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 366, -1, -1, -1, 181, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, 181, 366, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, 119, -1, 366, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 366, 152, -1, 181, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, 265, -1, 181, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, 119, -1, 366, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 119, -1, -1, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, -1, 119, 366, 181, 97, -1, -1, 161, 162, -1, -1, 129, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, 181, -1, 366, -1, -1, -1, -1, 152, -1, 129, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, 181, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, -1, 366, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 119, 366, -1, -1, -1, -1, -1, 152, -1, -1, 129, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, 119, 181, 366, -1, -1, -1, -1, 161, 162, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, -1, 365, 181, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 289, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 57, 119, 365, -1, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, 181, 365, -1, -1, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 119, 181, -1, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, 181, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, 181, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 365, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, -1, 365, -1, 181, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, 181, 365, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, 181, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, -1, 365, 119, 181, -1, -1, -1, 161, 162, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, 181, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 365, 119, -1, -1, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, 181, 365, -1, -1, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, -1, 365, -1, 181, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, 181, 365, -1, -1, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 119, 181, -1, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, 181, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, 181, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 365, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, -1, 365, -1, 181, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, 181, 365, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, 181, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, -1, -1, 365, 119, 181, -1, -1, -1, 161, 162, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, 181, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 365, 119, -1, -1, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, 181, 365, -1, -1, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, -1, 365, -1, 181, -1, -1, -1, -1, 152, 129, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, 181, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 57, 119, -1, 365, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, 181, 365, -1, -1, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 119, 181, -1, -1, -1, -1, 152, -1, -1, -1, 129, -1, -1, -1, -1, 161, 162, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 152, -1, 181, -1, -1, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, 181, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, 265, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, 265, -1, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 365, 119, -1, -1, -1, -1, -1, -1, -1, 152, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 119, -1, 365, -1, -1, -1, -1, -1, -1, 152, 129, -1, -1, 181, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 152, 119, -1, 365, -1, 181, -1, -1, -1, 161, 162, 129, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, 181, 365, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 181, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 355, 356, 357, 358, 359, 360, 361, 57, -1, -1, 365, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 152, 129, 355, 356, 357, 358, 359, 360, 361, 161, 162, -1, 365, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 365, 119, -1, -1, -1, -1, -1, 181, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, 181, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 276, 277, 278, 279, 119, -1, -1, -1, -1, -1, -1, -1, -1, 265, 129, -1, 292, 293, 294, -1, -1, -1, -1, -1, -1, 57, -1, 303, 304, -1, -1, 307, -1, -1, -1, -1, -1, 152, -1, -1, 316, -1, -1, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, 334, -1, -1, -1, -1, -1, -1, -1, 181, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 338, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 338, -1, -1, -1, -1, -1, -1, 181, 265, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, 57, 355, 356, 357, 358, 359, 360, 361, 119, -1, -1, 57, -1, -1, -1, -1, -1, -1, 129, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, 119, 161, 162, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 181, -1, 129, 119, 57, -1, -1, -1, -1, -1, -1, -1, 152, 129, 355, 356, 357, 358, 359, 360, 361, 161, 162, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 161, 162, 152, -1, -1, -1, -1, 181, -1, -1, -1, 161, 162, -1, -1, -1, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 152, -1, 65, 66, 67, -1, -1, -1, -1, 161, 162, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, 265, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, 149, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 265, -1, 129, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, 119, -1, 191, 355, 356, 357, 358, 359, 360, 361, 129, -1, 152, -1, 355, 356, 357, 358, 359, 360, 361, 161, 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 227, 228, 229, 181, -1, 232, 233, 234, 235, 236, -1, 238, 239, -1, 241, 242, 243, 244, 245, 246, -1, -1, 249, 250, 181, 252, 253, 254, 255, 256, 257, -1, 259, 260, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 358, 359, 360, 361, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, 125, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, 365, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, 365, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, 365, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, 365, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, -1, -1, 367, 368, -1, 370, 371, 15, 16, 17, 18, 19, 20, -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, 34, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, 95, -1, -1, 98, -1, 100, -1, 102, -1, 104, 105, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, 127, -1, -1, -1, 131, 132, 133, -1, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, 179, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, 207, 208, 209, 210, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, -1, 294, 295, 296, -1, 298, 299, 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, -1, 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, 362, -1, 364, 15, -1, 367, 368, -1, 370, 371, -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, -1, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, 77, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, 114, -1, -1, 117, -1, -1, 120, 121, -1, -1, 124, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, 332, -1, 334, -1, 23, 337, 25, -1, 27, 28, -1, -1, -1, 32, -1, -1, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, 364, 52, -1, 54, 55, -1, -1, 371, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, 77, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, 114, -1, -1, 117, -1, -1, 120, 121, -1, -1, 124, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, 36, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, 118, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, 359, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, 332, -1, 334, -1, -1, 337, 23, -1, 25, -1, 27, 28, -1, -1, -1, 32, -1, -1, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, 365, -1, 52, -1, 54, 55, 371, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, 371, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, 128, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, 332, -1, 334, -1, 23, 337, 25, -1, 27, 28, -1, -1, -1, 32, -1, -1, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, 370, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, 359, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, 359, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, 359, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, 128, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, 109, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, 58, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, 202, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, 169, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, -1, -1, -1, -1, -1, -1, 316, 317, 15, -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, 27, 28, 332, -1, 334, 32, -1, 337, 35, -1, 37, 38, 39, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, 60, 61, 62, 63, 64, -1, 66, 67, -1, -1, -1, 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, -1, 82, -1, -1, -1, 86, -1, -1, 89, -1, 91, 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, 102, -1, 104, -1, -1, -1, 108, -1, -1, 111, 112, -1, -1, -1, -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, 132, -1, -1, -1, 136, 137, 138, 139, 140, 141, 142, -1, 144, 145, 146, 147, 148, 149, -1, 151, -1, 153, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, 166, 167, -1, -1, -1, 171, 172, 173, 174, 175, 176, 177, -1, -1, -1, -1, 182, -1, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, -1, 196, -1, -1, -1, 200, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, 217, -1, -1, -1, -1, 222, -1, -1, -1, 226, -1, -1, -1, 230, -1, 232, 233, -1, -1, 236, 237, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, -1, -1, 22, -1, 24, 25, 26, 263, 28, 29, -1, 31, 32, 33, 34, 35, 36, -1, 38, 39, 40, 41, -1, 279, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, -1, -1, -1, -1, 294, 295, -1, -1, -1, 63, -1, -1, -1, -1, 304, 305, 306, 307, 72, 309, -1, -1, -1, -1, -1, -1, 316, 317, -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 332, -1, 334, -1, -1, 337, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 183, -1, 185, -1, 187, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned short yystos[] = { 0, 3, 22, 24, 25, 26, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 53, 63, 72, 83, 84, 103, 183, 185, 187, 191, 219, 313, 373, 374, 375, 379, 435, 447, 448, 450, 452, 457, 459, 461, 463, 467, 540, 542, 547, 549, 569, 572, 576, 578, 584, 586, 588, 594, 598, 600, 601, 602, 627, 637, 643, 644, 646, 662, 665, 666, 113, 443, 198, 199, 639, 663, 37, 55, 99, 200, 216, 273, 387, 388, 389, 398, 430, 573, 541, 114, 199, 213, 273, 548, 589, 468, 639, 595, 599, 42, 43, 199, 577, 639, 579, 135, 571, 15, 16, 17, 18, 19, 20, 23, 25, 27, 28, 32, 34, 35, 37, 38, 39, 41, 42, 43, 44, 45, 52, 54, 55, 60, 61, 62, 63, 64, 65, 66, 67, 71, 72, 73, 76, 79, 82, 86, 89, 91, 92, 93, 94, 95, 98, 100, 102, 104, 105, 108, 109, 111, 112, 117, 120, 121, 126, 127, 131, 132, 133, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 166, 167, 171, 172, 173, 174, 175, 176, 177, 179, 182, 184, 185, 188, 189, 190, 192, 193, 194, 196, 200, 202, 205, 206, 207, 208, 209, 210, 213, 214, 217, 222, 226, 229, 230, 231, 232, 233, 236, 237, 248, 251, 252, 253, 254, 263, 264, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 279, 280, 282, 283, 284, 285, 286, 287, 288, 290, 291, 294, 295, 296, 298, 299, 300, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 334, 335, 336, 337, 357, 362, 364, 367, 368, 370, 371, 482, 483, 486, 488, 614, 616, 620, 623, 626, 79, 199, 639, 639, 639, 639, 647, 639, 639, 645, 159, 629, 15, 44, 233, 253, 254, 294, 304, 307, 309, 316, 334, 623, 550, 0, 3, 371, 467, 622, 623, 199, 458, 332, 664, 203, 296, 390, 199, 388, 213, 114, 135, 248, 574, 575, 482, 568, 623, 296, 546, 623, 546, 81, 110, 135, 551, 37, 41, 111, 132, 170, 196, 198, 590, 591, 639, 56, 85, 110, 197, 347, 348, 349, 471, 472, 473, 453, 37, 41, 596, 597, 37, 545, 622, 462, 29, 37, 41, 78, 98, 104, 114, 117, 123, 132, 158, 196, 198, 199, 222, 429, 580, 583, 443, 364, 364, 364, 364, 364, 364, 364, 364, 482, 364, 364, 364, 494, 495, 482, 364, 364, 364, 364, 364, 364, 614, 614, 614, 364, 364, 364, 482, 497, 364, 364, 364, 481, 364, 481, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 482, 364, 364, 364, 364, 364, 364, 364, 481, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 482, 482, 482, 482, 623, 128, 202, 370, 623, 624, 623, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 57, 119, 129, 152, 161, 162, 181, 265, 355, 356, 357, 358, 359, 360, 361, 202, 371, 76, 135, 605, 622, 638, 451, 460, 22, 29, 31, 33, 34, 36, 48, 56, 92, 103, 114, 171, 180, 182, 194, 218, 648, 649, 650, 464, 449, 648, 628, 81, 552, 571, 623, 585, 371, 622, 544, 545, 376, 152, 623, 390, 623, 623, 97, 574, 366, 157, 90, 544, 623, 443, 224, 366, 592, 359, 475, 476, 477, 473, 544, 366, 132, 544, 199, 132, 196, 196, 129, 582, 289, 196, 198, 582, 97, 581, 196, 582, 97, 74, 172, 545, 489, 490, 85, 359, 489, 489, 489, 489, 489, 482, 482, 482, 482, 494, 263, 496, 620, 365, 482, 482, 482, 491, 492, 491, 482, 489, 489, 331, 491, 482, 365, 482, 365, 482, 482, 482, 482, 482, 482, 482, 276, 277, 278, 279, 292, 293, 294, 303, 304, 307, 316, 333, 334, 516, 482, 482, 482, 614, 482, 482, 482, 516, 365, 482, 482, 482, 482, 482, 482, 482, 482, 484, 486, 365, 482, 482, 482, 482, 482, 482, 482, 68, 125, 204, 482, 487, 491, 487, 487, 487, 487, 487, 614, 365, 482, 365, 482, 482, 482, 95, 156, 179, 531, 365, 482, 624, 14, 371, 482, 482, 482, 482, 482, 482, 482, 152, 155, 482, 482, 482, 364, 486, 119, 129, 181, 265, 482, 482, 482, 485, 486, 482, 482, 298, 482, 298, 482, 482, 482, 482, 623, 131, 604, 97, 622, 640, 641, 544, 544, 652, 651, 653, 170, 159, 654, 157, 366, 465, 466, 622, 544, 157, 61, 101, 102, 153, 193, 205, 217, 229, 253, 297, 299, 309, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 370, 630, 631, 633, 634, 635, 118, 545, 553, 554, 109, 202, 587, 615, 623, 623, 436, 91, 145, 206, 230, 237, 248, 366, 454, 455, 456, 136, 137, 138, 139, 140, 141, 142, 377, 378, 90, 622, 382, 157, 545, 482, 622, 70, 186, 444, 553, 178, 591, 544, 593, 97, 118, 366, 469, 470, 538, 479, 482, 618, 623, 454, 597, 203, 454, 622, 615, 624, 625, 581, 623, 582, 581, 622, 97, 191, 365, 482, 491, 365, 365, 365, 365, 365, 365, 366, 366, 366, 366, 365, 364, 366, 365, 366, 366, 365, 482, 493, 365, 365, 366, 365, 365, 499, 500, 365, 366, 365, 366, 366, 366, 366, 366, 365, 366, 366, 97, 366, 366, 365, 366, 366, 365, 366, 366, 358, 365, 366, 366, 366, 365, 365, 365, 365, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 57, 119, 129, 152, 161, 162, 181, 265, 355, 356, 357, 358, 359, 360, 361, 365, 366, 366, 365, 366, 365, 97, 366, 366, 482, 502, 502, 502, 97, 365, 365, 365, 365, 365, 365, 365, 366, 365, 365, 366, 365, 365, 366, 366, 369, 482, 623, 155, 491, 89, 522, 364, 486, 482, 485, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 57, 119, 129, 152, 161, 162, 181, 265, 355, 356, 357, 358, 359, 360, 361, 482, 482, 371, 115, 37, 4, 58, 517, 518, 366, 203, 454, 364, 658, 658, 658, 658, 359, 622, 623, 655, 650, 366, 203, 97, 655, 4, 14, 564, 564, 635, 564, 635, 120, 564, 191, 564, 564, 564, 289, 564, 564, 564, 564, 624, 366, 564, 554, 191, 364, 555, 557, 21, 22, 26, 27, 33, 60, 62, 71, 82, 144, 147, 163, 167, 175, 176, 177, 183, 189, 206, 215, 306, 309, 392, 393, 437, 438, 439, 526, 4, 545, 455, 4, 4, 4, 4, 4, 4, 4, 366, 380, 211, 622, 223, 519, 543, 555, 51, 364, 368, 503, 508, 509, 165, 166, 476, 51, 289, 474, 538, 470, 478, 371, 202, 370, 582, 582, 581, 622, 570, 620, 365, 482, 482, 491, 491, 263, 482, 620, 482, 482, 366, 482, 281, 498, 482, 501, 491, 298, 298, 202, 491, 202, 482, 482, 482, 491, 156, 482, 156, 482, 491, 482, 482, 482, 491, 482, 482, 482, 482, 482, 482, 482, 152, 155, 482, 482, 482, 482, 486, 129, 181, 265, 482, 482, 482, 485, 482, 482, 298, 482, 298, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 97, 97, 97, 482, 156, 482, 482, 482, 365, 202, 491, 522, 57, 482, 482, 482, 482, 482, 482, 482, 152, 155, 482, 482, 482, 364, 486, 119, 129, 181, 265, 482, 482, 482, 485, 482, 482, 298, 482, 298, 482, 482, 482, 482, 516, 516, 623, 202, 623, 135, 178, 225, 642, 641, 202, 623, 659, 660, 371, 371, 203, 466, 622, 202, 97, 156, 80, 531, 156, 127, 156, 80, 112, 80, 531, 95, 133, 156, 179, 532, 532, 625, 202, 309, 632, 80, 531, 80, 531, 531, 564, 631, 156, 556, 365, 558, 617, 618, 620, 36, 221, 559, 75, 442, 442, 442, 4, 96, 114, 124, 169, 428, 442, 4, 4, 4, 4, 4, 4, 69, 4, 4, 4, 4, 58, 203, 446, 4, 4, 4, 442, 4, 392, 366, 77, 99, 364, 371, 401, 402, 403, 427, 428, 621, 623, 455, 202, 202, 202, 532, 202, 531, 531, 378, 364, 383, 391, 392, 239, 249, 251, 399, 381, 482, 240, 530, 503, 623, 30, 116, 122, 150, 197, 300, 314, 366, 507, 519, 622, 202, 202, 119, 48, 58, 202, 480, 623, 359, 623, 624, 581, 366, 519, 564, 366, 365, 365, 365, 364, 365, 365, 366, 482, 365, 482, 337, 338, 331, 365, 482, 482, 365, 365, 365, 365, 366, 365, 365, 365, 365, 366, 366, 365, 365, 365, 366, 365, 155, 365, 522, 486, 482, 485, 57, 482, 482, 366, 365, 365, 289, 365, 365, 366, 366, 482, 482, 482, 365, 366, 365, 365, 365, 365, 482, 155, 491, 522, 364, 486, 482, 485, 57, 482, 482, 603, 225, 131, 365, 366, 359, 359, 625, 656, 657, 656, 178, 184, 192, 636, 564, 364, 482, 562, 563, 620, 365, 366, 560, 364, 561, 565, 621, 621, 202, 124, 124, 621, 621, 532, 531, 531, 531, 532, 532, 482, 527, 619, 531, 173, 174, 396, 531, 531, 531, 517, 80, 86, 94, 226, 395, 64, 100, 108, 117, 121, 146, 148, 394, 364, 621, 202, 439, 433, 621, 428, 400, 401, 623, 23, 93, 445, 72, 96, 169, 216, 180, 422, 433, 404, 371, 400, 113, 313, 384, 606, 212, 364, 532, 365, 508, 122, 122, 122, 300, 314, 508, 164, 510, 510, 508, 106, 523, 518, 539, 317, 202, 623, 371, 582, 620, 530, 482, 482, 482, 482, 482, 482, 516, 516, 482, 156, 482, 482, 522, 57, 482, 516, 516, 482, 482, 482, 482, 365, 365, 365, 156, 365, 491, 522, 57, 482, 516, 516, 606, 660, 295, 224, 366, 661, 73, 214, 178, 632, 202, 366, 564, 617, 471, 566, 366, 33, 191, 440, 433, 444, 366, 59, 83, 528, 622, 544, 441, 365, 366, 623, 364, 124, 124, 428, 622, 364, 65, 66, 67, 134, 149, 151, 191, 227, 228, 229, 232, 233, 234, 235, 236, 238, 239, 241, 242, 243, 244, 245, 246, 249, 250, 252, 253, 254, 255, 256, 257, 259, 260, 334, 405, 408, 409, 410, 411, 623, 365, 58, 386, 202, 431, 432, 623, 300, 508, 508, 510, 510, 122, 122, 69, 107, 520, 113, 219, 511, 74, 607, 305, 359, 564, 366, 365, 365, 338, 365, 365, 365, 366, 366, 365, 365, 482, 365, 365, 365, 365, 366, 365, 482, 118, 69, 103, 657, 365, 563, 482, 475, 567, 568, 565, 80, 80, 403, 619, 365, 405, 401, 482, 433, 143, 157, 364, 423, 424, 425, 431, 364, 364, 416, 259, 408, 409, 229, 260, 260, 407, 364, 412, 247, 406, 412, 412, 364, 364, 416, 60, 80, 152, 155, 169, 216, 418, 419, 420, 65, 261, 364, 421, 364, 416, 364, 417, 391, 36, 365, 366, 528, 364, 164, 157, 504, 122, 122, 508, 508, 524, 619, 521, 525, 526, 428, 512, 512, 87, 88, 160, 201, 608, 609, 130, 610, 482, 482, 482, 482, 489, 491, 199, 202, 309, 159, 470, 365, 233, 253, 254, 616, 528, 418, 365, 364, 98, 168, 31, 48, 431, 425, 365, 156, 156, 364, 156, 258, 262, 413, 414, 415, 364, 413, 413, 156, 156, 413, 616, 155, 124, 124, 420, 156, 156, 413, 156, 413, 384, 385, 432, 156, 122, 482, 220, 508, 508, 157, 505, 157, 506, 366, 528, 482, 240, 529, 513, 69, 69, 87, 69, 609, 195, 201, 611, 612, 365, 365, 366, 365, 365, 622, 202, 474, 431, 70, 154, 186, 191, 426, 426, 365, 365, 365, 434, 615, 365, 366, 415, 434, 365, 365, 365, 365, 366, 471, 528, 365, 508, 364, 482, 220, 482, 220, 619, 531, 311, 533, 364, 615, 615, 69, 615, 69, 69, 612, 482, 607, 365, 54, 80, 155, 423, 365, 366, 156, 365, 421, 421, 156, 475, 157, 515, 623, 364, 364, 528, 366, 623, 169, 514, 623, 615, 615, 615, 365, 610, 422, 615, 365, 365, 397, 470, 482, 365, 366, 515, 515, 531, 534, 365, 366, 113, 613, 474, 369, 623, 365, 365, 364, 623, 156, 557, 477, 535, 536, 537, 130, 482, 365, 366, 537 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ #endif #if ! defined (YYSIZE_T) && defined (size_t) # define YYSIZE_T size_t #endif #if ! defined (YYSIZE_T) # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif #endif #if ! defined (YYSIZE_T) # define YYSIZE_T unsigned int #endif #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Compute the default location (before the actions are run). */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ ((Current).first_line = (Rhs)[1].first_line, \ (Current).first_column = (Rhs)[1].first_column, \ (Current).last_line = (Rhs)[N].last_line, \ (Current).last_column = (Rhs)[N].last_column) #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (&yylval, YYLEX_PARAM) #else # define YYLEX yylex (&yylval) #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) # define YYDSYMPRINT(Args) \ do { \ if (yydebug) \ yysymprint Args; \ } while (0) # define YYDSYMPRINTF(Title, Token, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yysymprint (stderr, \ Token, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yy_stack_print (short *bottom, short *top) #else static void yy_stack_print (bottom, top) short *bottom; short *top; #endif { YYFPRINTF (stderr, "Stack now"); for (/* Nothing. */; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yy_reduce_print (int yyrule) #else static void yy_reduce_print (yyrule) int yyrule; #endif { int yyi; unsigned int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", yyrule - 1, yylno); /* Print the symbols being reduced, and their result. */ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (Rule); \ } 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 YYDSYMPRINT(Args) # define YYDSYMPRINTF(Title, Token, 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 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 # undef YYMAXDEPTH #endif #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 # if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) # else yystrlen (yystr) const char *yystr; # endif { register const char *yys = yystr; while (*yys++ != '\0') continue; return yys - yystr - 1; } # 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 * # if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) # else yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; # endif { register char *yyd = yydest; register const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif #endif /* !YYERROR_VERBOSE */ #if YYDEBUG /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else static void yysymprint (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ (void) yyvaluep; if (yytype < YYNTOKENS) { YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); # ifdef YYPRINT YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif } else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } YYFPRINTF (yyoutput, ")"); } #endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yydestruct (int yytype, YYSTYPE *yyvaluep) #else static void yydestruct (yytype, yyvaluep) int yytype; YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ (void) yyvaluep; switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) int yyparse (void *YYPARSE_PARAM); # else int yyparse (); # endif #else /* ! YYPARSE_PARAM */ #if defined (__STDC__) || defined (__cplusplus) int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) int yyparse (void *YYPARSE_PARAM) # else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; # endif #else /* ! YYPARSE_PARAM */ #if defined (__STDC__) || defined (__cplusplus) int yyparse (void) #else int yyparse () #endif #endif { /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; register int yystate; register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ short yyssa[YYINITDEPTH]; short *yyss = yyssa; register short *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; register YYSTYPE *yyvsp; #define YYPOPSTACK (yyvsp--, yyssp--) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; /* When reducing, the number of symbols on the RHS of the reduced rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; /* 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 ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyoverflowlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { short *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; 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]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 548 "sql_yacc.yy" { THD *thd=current_thd; if (!thd->bootstrap && (!(thd->lex.options & OPTION_FOUND_COMMENT))) { send_error(¤t_thd->net,ER_EMPTY_QUERY); YYABORT; } else { thd->lex.sql_command = SQLCOM_EMPTY_QUERY; } } break; case 3: #line 561 "sql_yacc.yy" {} break; case 39: #line 606 "sql_yacc.yy" { LEX *lex = Lex; lex->sql_command = SQLCOM_CHANGE_MASTER; memset(&lex->mi, 0, sizeof(lex->mi)); } break; case 40: #line 611 "sql_yacc.yy" {} break; case 43: #line 622 "sql_yacc.yy" { Lex->mi.host = yyvsp[0].lex_str.str; } break; case 44: #line 627 "sql_yacc.yy" { Lex->mi.user = yyvsp[0].lex_str.str; } break; case 45: #line 632 "sql_yacc.yy" { Lex->mi.password = yyvsp[0].lex_str.str; } break; case 46: #line 637 "sql_yacc.yy" { Lex->mi.log_file_name = yyvsp[0].lex_str.str; } break; case 47: #line 642 "sql_yacc.yy" { Lex->mi.port = yyvsp[0].ulong_num; } break; case 48: #line 647 "sql_yacc.yy" { Lex->mi.pos = yyvsp[0].ulonglong_num; } break; case 49: #line 652 "sql_yacc.yy" { Lex->mi.connect_retry = yyvsp[0].ulong_num; } break; case 50: #line 662 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_CREATE_TABLE; if (!add_table_to_list(yyvsp[0].table, (yyvsp[-3].num & HA_LEX_CREATE_TMP_TABLE ? &tmp_table_alias : (LEX_STRING*) 0),1)) YYABORT; lex->create_list.empty(); lex->key_list.empty(); lex->col_list.empty(); lex->change=NullS; bzero((char*) &lex->create_info,sizeof(lex->create_info)); lex->create_info.options=yyvsp[-3].num | yyvsp[-1].num; lex->create_info.db_type= default_table_type; } break; case 51: #line 678 "sql_yacc.yy" {} break; case 52: #line 680 "sql_yacc.yy" { Lex->sql_command= SQLCOM_CREATE_INDEX; if (!add_table_to_list(yyvsp[0].table,NULL,1)) YYABORT; Lex->create_list.empty(); Lex->key_list.empty(); Lex->col_list.empty(); Lex->change=NullS; } break; case 53: #line 690 "sql_yacc.yy" { Lex->key_list.push_back(new Key(yyvsp[-8].key_type,yyvsp[-6].lex_str.str,Lex->col_list)); Lex->col_list.empty(); } break; case 54: #line 695 "sql_yacc.yy" { Lex->sql_command=SQLCOM_CREATE_DB; Lex->name=yyvsp[0].lex_str.str; Lex->create_info.options=yyvsp[-1].num; } break; case 55: #line 701 "sql_yacc.yy" { Lex->sql_command = SQLCOM_CREATE_FUNCTION; Lex->udf.name=yyvsp[0].lex_str.str; Lex->udf.name_length=yyvsp[0].lex_str.length; Lex->udf.type= yyvsp[-2].udf_type; } break; case 56: #line 708 "sql_yacc.yy" { Lex->udf.returns=(Item_result) yyvsp[-2].num; Lex->udf.dl=yyvsp[0].lex_str.str; } break; case 57: #line 715 "sql_yacc.yy" {} break; case 58: #line 716 "sql_yacc.yy" {} break; case 59: #line 720 "sql_yacc.yy" {} break; case 60: #line 722 "sql_yacc.yy" { Lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ; mysql_init_select(Lex); } break; case 61: #line 726 "sql_yacc.yy" {} break; case 62: #line 730 "sql_yacc.yy" {} break; case 63: #line 731 "sql_yacc.yy" {} break; case 64: #line 735 "sql_yacc.yy" { yyval.num= 0; } break; case 65: #line 736 "sql_yacc.yy" { yyval.num= yyvsp[0].num;} break; case 66: #line 740 "sql_yacc.yy" { yyval.num=yyvsp[0].num; } break; case 67: #line 741 "sql_yacc.yy" { yyval.num= yyvsp[-1].num | yyvsp[0].num; } break; case 68: #line 745 "sql_yacc.yy" { yyval.num=HA_LEX_CREATE_TMP_TABLE; } break; case 69: #line 749 "sql_yacc.yy" { yyval.num= 0; } break; case 70: #line 750 "sql_yacc.yy" { yyval.num=HA_LEX_CREATE_IF_NOT_EXISTS; } break; case 75: #line 764 "sql_yacc.yy" { Lex->create_info.db_type= yyvsp[0].db_type; } break; case 76: #line 765 "sql_yacc.yy" { Lex->create_info.max_rows= yyvsp[0].ulonglong_num; } break; case 77: #line 766 "sql_yacc.yy" { Lex->create_info.min_rows= yyvsp[0].ulonglong_num; } break; case 78: #line 767 "sql_yacc.yy" { Lex->create_info.avg_row_length=yyvsp[0].ulong_num; } break; case 79: #line 768 "sql_yacc.yy" { Lex->create_info.password=yyvsp[0].lex_str.str; } break; case 80: #line 769 "sql_yacc.yy" { Lex->create_info.comment=yyvsp[0].lex_str.str; } break; case 81: #line 770 "sql_yacc.yy" { Lex->create_info.auto_increment_value=yyvsp[0].ulonglong_num; Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;} break; case 82: #line 771 "sql_yacc.yy" { Lex->create_info.table_options|= yyvsp[0].ulong_num ? HA_OPTION_PACK_KEYS : HA_OPTION_NO_PACK_KEYS; } break; case 83: #line 772 "sql_yacc.yy" { Lex->create_info.table_options|= yyvsp[0].ulong_num ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; } break; case 84: #line 773 "sql_yacc.yy" { Lex->create_info.table_options|= yyvsp[0].ulong_num ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; } break; case 85: #line 774 "sql_yacc.yy" { Lex->create_info.row_type= yyvsp[0].row_type; } break; case 86: #line 775 "sql_yacc.yy" { Lex->create_info.raid_type= yyvsp[0].ulong_num; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;} break; case 87: #line 776 "sql_yacc.yy" { Lex->create_info.raid_chunks= yyvsp[0].ulong_num; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;} break; case 88: #line 777 "sql_yacc.yy" { Lex->create_info.raid_chunksize= yyvsp[0].ulong_num*RAID_BLOCK_SIZE; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;} break; case 89: #line 779 "sql_yacc.yy" { /* Move the union list to the merge_list */ LEX *lex=Lex; TABLE_LIST *table_list= (TABLE_LIST*) lex->table_list.first; lex->create_info.merge_list= lex->table_list; lex->create_info.merge_list.elements--; lex->create_info.merge_list.first= (byte*) (table_list->next); lex->table_list.elements=1; lex->table_list.next= (byte**) &(table_list->next); table_list->next=0; lex->create_info.used_fields|= HA_CREATE_USED_UNION; } break; case 90: #line 794 "sql_yacc.yy" { yyval.db_type= DB_TYPE_ISAM; } break; case 91: #line 795 "sql_yacc.yy" { yyval.db_type= DB_TYPE_MYISAM; } break; case 92: #line 796 "sql_yacc.yy" { yyval.db_type= DB_TYPE_MRG_MYISAM; } break; case 93: #line 797 "sql_yacc.yy" { yyval.db_type= DB_TYPE_HEAP; } break; case 94: #line 798 "sql_yacc.yy" { yyval.db_type= DB_TYPE_BERKELEY_DB; } break; case 95: #line 799 "sql_yacc.yy" { yyval.db_type= DB_TYPE_INNOBASE; } break; case 96: #line 800 "sql_yacc.yy" { yyval.db_type= DB_TYPE_GEMINI; } break; case 97: #line 804 "sql_yacc.yy" { yyval.row_type= ROW_TYPE_DEFAULT; } break; case 98: #line 805 "sql_yacc.yy" { yyval.row_type= ROW_TYPE_FIXED; } break; case 99: #line 806 "sql_yacc.yy" { yyval.row_type= ROW_TYPE_DYNAMIC; } break; case 100: #line 807 "sql_yacc.yy" { yyval.row_type= ROW_TYPE_COMPRESSED; } break; case 101: #line 811 "sql_yacc.yy" { yyval.ulong_num= RAID_TYPE_0; } break; case 102: #line 812 "sql_yacc.yy" { yyval.ulong_num= RAID_TYPE_0; } break; case 103: #line 813 "sql_yacc.yy" { yyval.ulong_num=yyvsp[0].ulong_num;} break; case 106: #line 822 "sql_yacc.yy" { yyval.udf_type = UDFTYPE_FUNCTION; } break; case 107: #line 823 "sql_yacc.yy" { yyval.udf_type = UDFTYPE_AGGREGATE; } break; case 108: #line 827 "sql_yacc.yy" {yyval.num = (int) STRING_RESULT; } break; case 109: #line 828 "sql_yacc.yy" {yyval.num = (int) REAL_RESULT; } break; case 110: #line 829 "sql_yacc.yy" {yyval.num = (int) INT_RESULT; } break; case 114: #line 840 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 115: #line 844 "sql_yacc.yy" { Lex->key_list.push_back(new Key(yyvsp[-4].key_type,yyvsp[-3].simple_string,Lex->col_list)); Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 116: #line 849 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 117: #line 853 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 120: #line 865 "sql_yacc.yy" { Lex->length=Lex->dec=0; Lex->type=0; Lex->interval=0; Lex->default_value=0; } break; case 121: #line 870 "sql_yacc.yy" { if (add_field_to_list(yyvsp[-3].lex_str.str, (enum enum_field_types) yyvsp[-1].num, Lex->length,Lex->dec,Lex->type, Lex->default_value,Lex->change, Lex->interval)) YYABORT; } break; case 122: #line 881 "sql_yacc.yy" { Lex->length=yyvsp[-1].simple_string; yyval.num=yyvsp[-2].num; } break; case 123: #line 882 "sql_yacc.yy" { yyval.num=yyvsp[-2].num; } break; case 124: #line 883 "sql_yacc.yy" { yyval.num=FIELD_TYPE_FLOAT; } break; case 125: #line 884 "sql_yacc.yy" { Lex->length=(char*) "1"; yyval.num=FIELD_TYPE_TINY; } break; case 126: #line 886 "sql_yacc.yy" { Lex->length=(char*) "1"; yyval.num=FIELD_TYPE_TINY; } break; case 127: #line 888 "sql_yacc.yy" { Lex->length=yyvsp[-2].lex_str.str; yyval.num=FIELD_TYPE_STRING; } break; case 128: #line 890 "sql_yacc.yy" { Lex->length=(char*) "1"; yyval.num=FIELD_TYPE_STRING; } break; case 129: #line 892 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_STRING; } break; case 130: #line 895 "sql_yacc.yy" { Lex->length=yyvsp[-2].lex_str.str; yyval.num=FIELD_TYPE_VAR_STRING; } break; case 131: #line 897 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_VAR_STRING; } break; case 132: #line 900 "sql_yacc.yy" { yyval.num=FIELD_TYPE_YEAR; Lex->length=yyvsp[-1].simple_string; } break; case 133: #line 901 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DATE; } break; case 134: #line 902 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TIME; } break; case 135: #line 903 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TIMESTAMP; } break; case 136: #line 904 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; yyval.num=FIELD_TYPE_TIMESTAMP; } break; case 137: #line 906 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DATETIME; } break; case 138: #line 907 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_TINY_BLOB; } break; case 139: #line 909 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_BLOB; } break; case 140: #line 911 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_MEDIUM_BLOB; } break; case 141: #line 913 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_LONG_BLOB; } break; case 142: #line 915 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_MEDIUM_BLOB; } break; case 143: #line 917 "sql_yacc.yy" { yyval.num=FIELD_TYPE_MEDIUM_BLOB; } break; case 144: #line 918 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TINY_BLOB; } break; case 145: #line 919 "sql_yacc.yy" { yyval.num=FIELD_TYPE_BLOB; } break; case 146: #line 920 "sql_yacc.yy" { yyval.num=FIELD_TYPE_MEDIUM_BLOB; } break; case 147: #line 921 "sql_yacc.yy" { yyval.num=FIELD_TYPE_LONG_BLOB; } break; case 148: #line 923 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DECIMAL;} break; case 149: #line 925 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DECIMAL;} break; case 150: #line 926 "sql_yacc.yy" {Lex->interval_list.empty();} break; case 151: #line 927 "sql_yacc.yy" { Lex->interval=typelib(Lex->interval_list); yyval.num=FIELD_TYPE_ENUM; } break; case 152: #line 931 "sql_yacc.yy" { Lex->interval_list.empty();} break; case 153: #line 932 "sql_yacc.yy" { Lex->interval=typelib(Lex->interval_list); yyval.num=FIELD_TYPE_SET; } break; case 154: #line 939 "sql_yacc.yy" {} break; case 155: #line 940 "sql_yacc.yy" {} break; case 156: #line 941 "sql_yacc.yy" {} break; case 157: #line 945 "sql_yacc.yy" {} break; case 158: #line 946 "sql_yacc.yy" {} break; case 159: #line 947 "sql_yacc.yy" {} break; case 160: #line 948 "sql_yacc.yy" {} break; case 161: #line 952 "sql_yacc.yy" { yyval.num=FIELD_TYPE_LONG; } break; case 162: #line 953 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TINY; } break; case 163: #line 954 "sql_yacc.yy" { yyval.num=FIELD_TYPE_SHORT; } break; case 164: #line 955 "sql_yacc.yy" { yyval.num=FIELD_TYPE_INT24; } break; case 165: #line 956 "sql_yacc.yy" { yyval.num=FIELD_TYPE_LONGLONG; } break; case 166: #line 960 "sql_yacc.yy" { yyval.num= current_thd->sql_mode & MODE_REAL_AS_FLOAT ? FIELD_TYPE_FLOAT : FIELD_TYPE_DOUBLE; } break; case 167: #line 962 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DOUBLE; } break; case 168: #line 963 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DOUBLE; } break; case 169: #line 967 "sql_yacc.yy" {} break; case 170: #line 968 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; } break; case 171: #line 969 "sql_yacc.yy" { Lex->length=yyvsp[-3].lex_str.str; Lex->dec=yyvsp[-1].lex_str.str; } break; case 172: #line 973 "sql_yacc.yy" {} break; case 173: #line 974 "sql_yacc.yy" {} break; case 174: #line 978 "sql_yacc.yy" {} break; case 175: #line 979 "sql_yacc.yy" {} break; case 176: #line 983 "sql_yacc.yy" { Lex->type|= UNSIGNED_FLAG;} break; case 177: #line 984 "sql_yacc.yy" { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; } break; case 178: #line 988 "sql_yacc.yy" { yyval.simple_string=(char*) 0; } break; case 179: #line 989 "sql_yacc.yy" { yyval.simple_string=yyvsp[-1].lex_str.str; } break; case 180: #line 993 "sql_yacc.yy" {} break; case 181: #line 994 "sql_yacc.yy" { Lex->length=yyvsp[-3].lex_str.str; Lex->dec=yyvsp[-1].lex_str.str; } break; case 182: #line 998 "sql_yacc.yy" {} break; case 183: #line 999 "sql_yacc.yy" {} break; case 184: #line 1003 "sql_yacc.yy" {} break; case 186: #line 1008 "sql_yacc.yy" { Lex->type&= ~ NOT_NULL_FLAG; } break; case 187: #line 1009 "sql_yacc.yy" { Lex->type|= NOT_NULL_FLAG; } break; case 188: #line 1010 "sql_yacc.yy" { Lex->default_value=yyvsp[0].item; } break; case 189: #line 1011 "sql_yacc.yy" { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; } break; case 190: #line 1012 "sql_yacc.yy" { Lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG; } break; case 191: #line 1013 "sql_yacc.yy" { Lex->type|= UNIQUE_FLAG; } break; case 192: #line 1014 "sql_yacc.yy" { Lex->type|= UNIQUE_KEY_FLAG; } break; case 193: #line 1018 "sql_yacc.yy" {} break; case 194: #line 1019 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; } break; case 195: #line 1023 "sql_yacc.yy" {} break; case 196: #line 1025 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 197: #line 1031 "sql_yacc.yy" {} break; case 198: #line 1032 "sql_yacc.yy" {} break; case 199: #line 1036 "sql_yacc.yy" {} break; case 200: #line 1037 "sql_yacc.yy" {} break; case 201: #line 1041 "sql_yacc.yy" {} break; case 202: #line 1042 "sql_yacc.yy" {} break; case 203: #line 1043 "sql_yacc.yy" {} break; case 204: #line 1044 "sql_yacc.yy" {} break; case 205: #line 1048 "sql_yacc.yy" {} break; case 206: #line 1049 "sql_yacc.yy" {} break; case 207: #line 1050 "sql_yacc.yy" {} break; case 208: #line 1051 "sql_yacc.yy" {} break; case 209: #line 1052 "sql_yacc.yy" {} break; case 210: #line 1056 "sql_yacc.yy" { yyval.key_type= Key::PRIMARY; } break; case 211: #line 1057 "sql_yacc.yy" { yyval.key_type= Key::MULTIPLE; } break; case 212: #line 1058 "sql_yacc.yy" { yyval.key_type= Key::FULLTEXT; } break; case 213: #line 1059 "sql_yacc.yy" { yyval.key_type= Key::FULLTEXT; } break; case 214: #line 1060 "sql_yacc.yy" { yyval.key_type= Key::UNIQUE; } break; case 215: #line 1061 "sql_yacc.yy" { yyval.key_type= Key::UNIQUE; } break; case 216: #line 1065 "sql_yacc.yy" {} break; case 217: #line 1066 "sql_yacc.yy" {} break; case 218: #line 1070 "sql_yacc.yy" {} break; case 219: #line 1071 "sql_yacc.yy" {} break; case 220: #line 1075 "sql_yacc.yy" { yyval.key_type= Key::MULTIPLE; } break; case 221: #line 1076 "sql_yacc.yy" { yyval.key_type= Key::UNIQUE; } break; case 222: #line 1077 "sql_yacc.yy" { yyval.key_type= Key::FULLTEXT; } break; case 223: #line 1081 "sql_yacc.yy" { Lex->col_list.push_back(yyvsp[-1].key_part); } break; case 224: #line 1082 "sql_yacc.yy" { Lex->col_list.push_back(yyvsp[-1].key_part); } break; case 225: #line 1086 "sql_yacc.yy" { yyval.key_part=new key_part_spec(yyvsp[0].lex_str.str); } break; case 226: #line 1087 "sql_yacc.yy" { yyval.key_part=new key_part_spec(yyvsp[-3].lex_str.str,(uint) atoi(yyvsp[-1].lex_str.str)); } break; case 227: #line 1091 "sql_yacc.yy" { yyval.simple_string=(char*) 0; } break; case 228: #line 1092 "sql_yacc.yy" { yyval.simple_string=yyvsp[0].lex_str.str; } break; case 229: #line 1096 "sql_yacc.yy" { Lex->interval_list.push_back(yyvsp[0].string); } break; case 230: #line 1097 "sql_yacc.yy" { Lex->interval_list.push_back(yyvsp[0].string); } break; case 231: #line 1106 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_ALTER_TABLE; lex->name=0; if (!add_table_to_list(yyvsp[0].table, NULL,1)) YYABORT; lex->drop_primary=0; lex->create_list.empty(); lex->key_list.empty(); lex->col_list.empty(); lex->drop_list.empty(); lex->alter_list.empty(); lex->order_list.elements=0; lex->order_list.first=0; lex->order_list.next= (byte**) &lex->order_list.first; lex->db=lex->name=0; bzero((char*) &lex->create_info,sizeof(lex->create_info)); lex->create_info.db_type= DB_TYPE_DEFAULT; } break; case 232: #line 1126 "sql_yacc.yy" {} break; case 236: #line 1135 "sql_yacc.yy" { Lex->change=0;} break; case 239: #line 1141 "sql_yacc.yy" { Lex->change= yyvsp[0].lex_str.str; } break; case 241: #line 1143 "sql_yacc.yy" { Lex->length=Lex->dec=0; Lex->type=0; Lex->interval=0; Lex->default_value=0; } break; case 242: #line 1148 "sql_yacc.yy" { if (add_field_to_list(yyvsp[-3].lex_str.str, (enum enum_field_types) yyvsp[-1].num, Lex->length,Lex->dec,Lex->type, Lex->default_value, yyvsp[-3].lex_str.str, Lex->interval)) YYABORT; } break; case 243: #line 1157 "sql_yacc.yy" { Lex->drop_list.push_back(new Alter_drop(Alter_drop::COLUMN, yyvsp[-1].lex_str.str)); } break; case 244: #line 1159 "sql_yacc.yy" { Lex->drop_primary=1; } break; case 245: #line 1160 "sql_yacc.yy" {} break; case 246: #line 1162 "sql_yacc.yy" { Lex->drop_list.push_back(new Alter_drop(Alter_drop::KEY, yyvsp[0].lex_str.str)); } break; case 247: #line 1165 "sql_yacc.yy" { Lex->alter_list.push_back(new Alter_column(yyvsp[-3].lex_str.str,yyvsp[0].item)); } break; case 248: #line 1167 "sql_yacc.yy" { Lex->alter_list.push_back(new Alter_column(yyvsp[-2].lex_str.str,(Item*) 0)); } break; case 249: #line 1169 "sql_yacc.yy" { Lex->db=yyvsp[0].table->db.str ; Lex->name= yyvsp[0].table->table.str; } break; case 252: #line 1175 "sql_yacc.yy" {} break; case 253: #line 1176 "sql_yacc.yy" {} break; case 254: #line 1180 "sql_yacc.yy" { Lex->duplicates=DUP_ERROR; } break; case 255: #line 1181 "sql_yacc.yy" { Lex->duplicates=DUP_IGNORE; } break; case 256: #line 1185 "sql_yacc.yy" {} break; case 257: #line 1186 "sql_yacc.yy" {} break; case 258: #line 1187 "sql_yacc.yy" {} break; case 259: #line 1191 "sql_yacc.yy" {} break; case 260: #line 1192 "sql_yacc.yy" { store_position_for_column(yyvsp[0].lex_str.str); } break; case 261: #line 1193 "sql_yacc.yy" { store_position_for_column(first_keyword); } break; case 262: #line 1197 "sql_yacc.yy" {} break; case 263: #line 1198 "sql_yacc.yy" {} break; case 264: #line 1199 "sql_yacc.yy" {} break; case 265: #line 1204 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SLAVE_START; Lex->type = 0; } break; case 266: #line 1210 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SLAVE_STOP; Lex->type = 0; } break; case 267: #line 1218 "sql_yacc.yy" { Lex->sql_command = SQLCOM_RESTORE_TABLE; } break; case 268: #line 1222 "sql_yacc.yy" { Lex->backup_dir = yyvsp[0].lex_str.str; } break; case 269: #line 1229 "sql_yacc.yy" { Lex->sql_command = SQLCOM_BACKUP_TABLE; } break; case 270: #line 1233 "sql_yacc.yy" { Lex->backup_dir = yyvsp[0].lex_str.str; } break; case 271: #line 1240 "sql_yacc.yy" { Lex->sql_command = SQLCOM_REPAIR; Lex->check_opt.init(); } break; case 272: #line 1245 "sql_yacc.yy" {} break; case 273: #line 1249 "sql_yacc.yy" { Lex->check_opt.flags = T_MEDIUM; } break; case 274: #line 1250 "sql_yacc.yy" {} break; case 275: #line 1251 "sql_yacc.yy" {} break; case 276: #line 1255 "sql_yacc.yy" {} break; case 277: #line 1256 "sql_yacc.yy" {} break; case 278: #line 1260 "sql_yacc.yy" { Lex->check_opt.quick = 1; } break; case 279: #line 1261 "sql_yacc.yy" { Lex->check_opt.flags|= T_FAST; } break; case 280: #line 1262 "sql_yacc.yy" { Lex->check_opt.flags|= T_MEDIUM; } break; case 281: #line 1263 "sql_yacc.yy" { Lex->check_opt.flags|= T_EXTEND; } break; case 282: #line 1264 "sql_yacc.yy" { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } break; case 283: #line 1269 "sql_yacc.yy" { Lex->sql_command = SQLCOM_ANALYZE; Lex->check_opt.init(); } break; case 284: #line 1274 "sql_yacc.yy" {} break; case 285: #line 1279 "sql_yacc.yy" { Lex->sql_command = SQLCOM_CHECK; Lex->check_opt.init(); } break; case 286: #line 1284 "sql_yacc.yy" {} break; case 287: #line 1289 "sql_yacc.yy" { Lex->sql_command = SQLCOM_OPTIMIZE; Lex->check_opt.init(); } break; case 288: #line 1294 "sql_yacc.yy" {} break; case 289: #line 1299 "sql_yacc.yy" { Lex->sql_command=SQLCOM_RENAME_TABLE; } break; case 290: #line 1303 "sql_yacc.yy" {} break; case 292: #line 1309 "sql_yacc.yy" {} break; case 293: #line 1314 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[-2].table,NULL,1,TL_IGNORE) || !add_table_to_list(yyvsp[0].table,NULL,1,TL_IGNORE)) YYABORT; } break; case 294: #line 1327 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SELECT; lex->lock_option=TL_READ; mysql_init_select(lex); } break; case 295: #line 1334 "sql_yacc.yy" {} break; case 305: #line 1359 "sql_yacc.yy" { Lex->options|= SELECT_STRAIGHT_JOIN; } break; case 306: #line 1360 "sql_yacc.yy" { Lex->lock_option= TL_READ_HIGH_PRIORITY; } break; case 307: #line 1361 "sql_yacc.yy" { Lex->options|= SELECT_DISTINCT; } break; case 308: #line 1362 "sql_yacc.yy" { Lex->options|= SELECT_SMALL_RESULT; } break; case 309: #line 1363 "sql_yacc.yy" { Lex->options|= SELECT_BIG_RESULT; } break; case 310: #line 1364 "sql_yacc.yy" { Lex->options|= OPTION_BUFFER_RESULT; } break; case 311: #line 1365 "sql_yacc.yy" {} break; case 313: #line 1371 "sql_yacc.yy" { Lex->lock_option= TL_WRITE; } break; case 314: #line 1373 "sql_yacc.yy" { Lex->lock_option= TL_READ_WITH_SHARED_LOCKS; } break; case 317: #line 1380 "sql_yacc.yy" { if (add_item_to_list(new Item_field(NULL,NULL,"*"))) YYABORT; } break; case 318: #line 1388 "sql_yacc.yy" { if (add_item_to_list(yyvsp[-2].item)) YYABORT; if (yyvsp[0].lex_str.str) yyvsp[-2].item->set_name(yyvsp[0].lex_str.str); else if (!yyvsp[-2].item->name) yyvsp[-2].item->set_name(yyvsp[-3].simple_string,(uint) (yyvsp[-1].simple_string - yyvsp[-3].simple_string)); } break; case 319: #line 1399 "sql_yacc.yy" { yyval.simple_string=(char*) Lex->tok_start; } break; case 320: #line 1403 "sql_yacc.yy" { yyval.simple_string=(char*) Lex->tok_end; } break; case 321: #line 1407 "sql_yacc.yy" { yyval.item=yyvsp[0].item; } break; case 322: #line 1408 "sql_yacc.yy" { yyval.item=yyvsp[0].item; } break; case 323: #line 1412 "sql_yacc.yy" { yyval.lex_str.str=0;} break; case 324: #line 1413 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; } break; case 325: #line 1414 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; } break; case 326: #line 1415 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; } break; case 327: #line 1416 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; } break; case 328: #line 1420 "sql_yacc.yy" {} break; case 329: #line 1421 "sql_yacc.yy" {} break; case 330: #line 1425 "sql_yacc.yy" {yyval.item = yyvsp[0].item; } break; case 331: #line 1426 "sql_yacc.yy" {yyval.item = yyvsp[0].item; } break; case 332: #line 1432 "sql_yacc.yy" { yyval.item= new Item_func_in(yyvsp[-4].item,*yyvsp[-1].item_list); } break; case 333: #line 1434 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_in(yyvsp[-5].item,*yyvsp[-1].item_list)); } break; case 334: #line 1436 "sql_yacc.yy" { yyval.item= new Item_func_between(yyvsp[-4].item,yyvsp[-2].item,yyvsp[0].item); } break; case 335: #line 1438 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_between(yyvsp[-5].item,yyvsp[-2].item,yyvsp[0].item)); } break; case 336: #line 1439 "sql_yacc.yy" { yyval.item= or_or_concat(yyvsp[-2].item,yyvsp[0].item); } break; case 337: #line 1440 "sql_yacc.yy" { yyval.item= new Item_cond_or(yyvsp[-2].item,yyvsp[0].item); } break; case 338: #line 1441 "sql_yacc.yy" { yyval.item= new Item_cond_and(yyvsp[-2].item,yyvsp[0].item); } break; case 339: #line 1442 "sql_yacc.yy" { yyval.item= new Item_func_like(yyvsp[-3].item,yyvsp[-1].item,yyvsp[0].simple_string); } break; case 340: #line 1443 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_like(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].simple_string));} break; case 341: #line 1444 "sql_yacc.yy" { yyval.item= new Item_func_regex(yyvsp[-2].item,yyvsp[0].item); } break; case 342: #line 1445 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_regex(yyvsp[-3].item,yyvsp[0].item)); } break; case 343: #line 1446 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-2].item); } break; case 344: #line 1447 "sql_yacc.yy" { yyval.item= new Item_func_isnotnull(yyvsp[-3].item); } break; case 345: #line 1448 "sql_yacc.yy" { yyval.item= new Item_func_eq(yyvsp[-2].item,yyvsp[0].item); } break; case 346: #line 1449 "sql_yacc.yy" { yyval.item= new Item_func_equal(yyvsp[-2].item,yyvsp[0].item); } break; case 347: #line 1450 "sql_yacc.yy" { yyval.item= new Item_func_ge(yyvsp[-2].item,yyvsp[0].item); } break; case 348: #line 1451 "sql_yacc.yy" { yyval.item= new Item_func_gt(yyvsp[-2].item,yyvsp[0].item); } break; case 349: #line 1452 "sql_yacc.yy" { yyval.item= new Item_func_le(yyvsp[-2].item,yyvsp[0].item); } break; case 350: #line 1453 "sql_yacc.yy" { yyval.item= new Item_func_lt(yyvsp[-2].item,yyvsp[0].item); } break; case 351: #line 1454 "sql_yacc.yy" { yyval.item= new Item_func_ne(yyvsp[-2].item,yyvsp[0].item); } break; case 352: #line 1455 "sql_yacc.yy" { yyval.item= new Item_func_shift_left(yyvsp[-2].item,yyvsp[0].item); } break; case 353: #line 1456 "sql_yacc.yy" { yyval.item= new Item_func_shift_right(yyvsp[-2].item,yyvsp[0].item); } break; case 354: #line 1457 "sql_yacc.yy" { yyval.item= new Item_func_plus(yyvsp[-2].item,yyvsp[0].item); } break; case 355: #line 1458 "sql_yacc.yy" { yyval.item= new Item_func_minus(yyvsp[-2].item,yyvsp[0].item); } break; case 356: #line 1459 "sql_yacc.yy" { yyval.item= new Item_func_mul(yyvsp[-2].item,yyvsp[0].item); } break; case 357: #line 1460 "sql_yacc.yy" { yyval.item= new Item_func_div(yyvsp[-2].item,yyvsp[0].item); } break; case 358: #line 1461 "sql_yacc.yy" { yyval.item= new Item_func_bit_or(yyvsp[-2].item,yyvsp[0].item); } break; case 359: #line 1462 "sql_yacc.yy" { yyval.item= new Item_func_bit_and(yyvsp[-2].item,yyvsp[0].item); } break; case 360: #line 1463 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-2].item,yyvsp[0].item); } break; case 361: #line 1465 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].interval,0); } break; case 362: #line 1467 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].interval,1); } break; case 363: #line 1473 "sql_yacc.yy" { yyval.item= new Item_func_between(yyvsp[-4].item,yyvsp[-2].item,yyvsp[0].item); } break; case 364: #line 1475 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_between(yyvsp[-5].item,yyvsp[-2].item,yyvsp[0].item)); } break; case 365: #line 1476 "sql_yacc.yy" { yyval.item= or_or_concat(yyvsp[-2].item,yyvsp[0].item); } break; case 366: #line 1477 "sql_yacc.yy" { yyval.item= new Item_cond_or(yyvsp[-2].item,yyvsp[0].item); } break; case 367: #line 1478 "sql_yacc.yy" { yyval.item= new Item_cond_and(yyvsp[-2].item,yyvsp[0].item); } break; case 368: #line 1479 "sql_yacc.yy" { yyval.item= new Item_func_like(yyvsp[-3].item,yyvsp[-1].item,yyvsp[0].simple_string); } break; case 369: #line 1480 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_like(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].simple_string)); } break; case 370: #line 1481 "sql_yacc.yy" { yyval.item= new Item_func_regex(yyvsp[-2].item,yyvsp[0].item); } break; case 371: #line 1482 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_regex(yyvsp[-3].item,yyvsp[0].item)); } break; case 372: #line 1483 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-2].item); } break; case 373: #line 1484 "sql_yacc.yy" { yyval.item= new Item_func_isnotnull(yyvsp[-3].item); } break; case 374: #line 1485 "sql_yacc.yy" { yyval.item= new Item_func_eq(yyvsp[-2].item,yyvsp[0].item); } break; case 375: #line 1486 "sql_yacc.yy" { yyval.item= new Item_func_equal(yyvsp[-2].item,yyvsp[0].item); } break; case 376: #line 1487 "sql_yacc.yy" { yyval.item= new Item_func_ge(yyvsp[-2].item,yyvsp[0].item); } break; case 377: #line 1488 "sql_yacc.yy" { yyval.item= new Item_func_gt(yyvsp[-2].item,yyvsp[0].item); } break; case 378: #line 1489 "sql_yacc.yy" { yyval.item= new Item_func_le(yyvsp[-2].item,yyvsp[0].item); } break; case 379: #line 1490 "sql_yacc.yy" { yyval.item= new Item_func_lt(yyvsp[-2].item,yyvsp[0].item); } break; case 380: #line 1491 "sql_yacc.yy" { yyval.item= new Item_func_ne(yyvsp[-2].item,yyvsp[0].item); } break; case 381: #line 1492 "sql_yacc.yy" { yyval.item= new Item_func_shift_left(yyvsp[-2].item,yyvsp[0].item); } break; case 382: #line 1493 "sql_yacc.yy" { yyval.item= new Item_func_shift_right(yyvsp[-2].item,yyvsp[0].item); } break; case 383: #line 1494 "sql_yacc.yy" { yyval.item= new Item_func_plus(yyvsp[-2].item,yyvsp[0].item); } break; case 384: #line 1495 "sql_yacc.yy" { yyval.item= new Item_func_minus(yyvsp[-2].item,yyvsp[0].item); } break; case 385: #line 1496 "sql_yacc.yy" { yyval.item= new Item_func_mul(yyvsp[-2].item,yyvsp[0].item); } break; case 386: #line 1497 "sql_yacc.yy" { yyval.item= new Item_func_div(yyvsp[-2].item,yyvsp[0].item); } break; case 387: #line 1498 "sql_yacc.yy" { yyval.item= new Item_func_bit_or(yyvsp[-2].item,yyvsp[0].item); } break; case 388: #line 1499 "sql_yacc.yy" { yyval.item= new Item_func_bit_and(yyvsp[-2].item,yyvsp[0].item); } break; case 389: #line 1500 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-2].item,yyvsp[0].item); } break; case 390: #line 1502 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].interval,0); } break; case 391: #line 1504 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].interval,1); } break; case 393: #line 1511 "sql_yacc.yy" { yyval.item= new Item_func_in(yyvsp[-4].item,*yyvsp[-1].item_list); } break; case 394: #line 1513 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_in(yyvsp[-5].item,*yyvsp[-1].item_list)); } break; case 395: #line 1515 "sql_yacc.yy" { yyval.item= new Item_func_between(yyvsp[-4].item,yyvsp[-2].item,yyvsp[0].item); } break; case 396: #line 1517 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_between(yyvsp[-5].item,yyvsp[-2].item,yyvsp[0].item)); } break; case 397: #line 1518 "sql_yacc.yy" { yyval.item= or_or_concat(yyvsp[-2].item,yyvsp[0].item); } break; case 398: #line 1519 "sql_yacc.yy" { yyval.item= new Item_cond_or(yyvsp[-2].item,yyvsp[0].item); } break; case 399: #line 1520 "sql_yacc.yy" { yyval.item= new Item_func_like(yyvsp[-3].item,yyvsp[-1].item,yyvsp[0].simple_string); } break; case 400: #line 1521 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_like(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].simple_string)); } break; case 401: #line 1522 "sql_yacc.yy" { yyval.item= new Item_func_regex(yyvsp[-2].item,yyvsp[0].item); } break; case 402: #line 1523 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_regex(yyvsp[-3].item,yyvsp[0].item)); } break; case 403: #line 1524 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-2].item); } break; case 404: #line 1525 "sql_yacc.yy" { yyval.item= new Item_func_isnotnull(yyvsp[-3].item); } break; case 405: #line 1526 "sql_yacc.yy" { yyval.item= new Item_func_eq(yyvsp[-2].item,yyvsp[0].item); } break; case 406: #line 1527 "sql_yacc.yy" { yyval.item= new Item_func_equal(yyvsp[-2].item,yyvsp[0].item); } break; case 407: #line 1528 "sql_yacc.yy" { yyval.item= new Item_func_ge(yyvsp[-2].item,yyvsp[0].item); } break; case 408: #line 1529 "sql_yacc.yy" { yyval.item= new Item_func_gt(yyvsp[-2].item,yyvsp[0].item); } break; case 409: #line 1530 "sql_yacc.yy" { yyval.item= new Item_func_le(yyvsp[-2].item,yyvsp[0].item); } break; case 410: #line 1531 "sql_yacc.yy" { yyval.item= new Item_func_lt(yyvsp[-2].item,yyvsp[0].item); } break; case 411: #line 1532 "sql_yacc.yy" { yyval.item= new Item_func_ne(yyvsp[-2].item,yyvsp[0].item); } break; case 412: #line 1533 "sql_yacc.yy" { yyval.item= new Item_func_shift_left(yyvsp[-2].item,yyvsp[0].item); } break; case 413: #line 1534 "sql_yacc.yy" { yyval.item= new Item_func_shift_right(yyvsp[-2].item,yyvsp[0].item); } break; case 414: #line 1535 "sql_yacc.yy" { yyval.item= new Item_func_plus(yyvsp[-2].item,yyvsp[0].item); } break; case 415: #line 1536 "sql_yacc.yy" { yyval.item= new Item_func_minus(yyvsp[-2].item,yyvsp[0].item); } break; case 416: #line 1537 "sql_yacc.yy" { yyval.item= new Item_func_mul(yyvsp[-2].item,yyvsp[0].item); } break; case 417: #line 1538 "sql_yacc.yy" { yyval.item= new Item_func_div(yyvsp[-2].item,yyvsp[0].item); } break; case 418: #line 1539 "sql_yacc.yy" { yyval.item= new Item_func_bit_or(yyvsp[-2].item,yyvsp[0].item); } break; case 419: #line 1540 "sql_yacc.yy" { yyval.item= new Item_func_bit_and(yyvsp[-2].item,yyvsp[0].item); } break; case 420: #line 1541 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-2].item,yyvsp[0].item); } break; case 421: #line 1543 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].interval,0); } break; case 422: #line 1545 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].interval,1); } break; case 426: #line 1552 "sql_yacc.yy" { yyval.item= new Item_func_set_user_var(yyvsp[-2].lex_str,yyvsp[0].item); } break; case 427: #line 1553 "sql_yacc.yy" { yyval.item= new Item_func_get_user_var(yyvsp[0].lex_str); } break; case 428: #line 1554 "sql_yacc.yy" { if (!(yyval.item= get_system_var(yyvsp[0].lex_str))) YYABORT; } break; case 430: #line 1556 "sql_yacc.yy" { yyval.item= new Item_func_neg(yyvsp[0].item); } break; case 431: #line 1557 "sql_yacc.yy" { yyval.item= new Item_func_bit_neg(yyvsp[0].item); } break; case 432: #line 1558 "sql_yacc.yy" { yyval.item= new Item_func_not(yyvsp[0].item); } break; case 433: #line 1559 "sql_yacc.yy" { yyval.item= new Item_func_not(yyvsp[0].item); } break; case 434: #line 1560 "sql_yacc.yy" { yyval.item= yyvsp[-1].item; } break; case 435: #line 1561 "sql_yacc.yy" { yyval.item= yyvsp[-1].item; } break; case 436: #line 1563 "sql_yacc.yy" { Lex->ftfunc_list.push_back( (Item_func_match *)(yyval.item=new Item_func_match(*yyvsp[-5].item_list,yyvsp[-1].item))); } break; case 437: #line 1566 "sql_yacc.yy" { Lex->ftfunc_list.push_back( (Item_func_match *)(yyval.item=new Item_func_match(*yyvsp[-4].item_list,yyvsp[-1].item))); } break; case 438: #line 1568 "sql_yacc.yy" { yyval.item= new Item_func_binary(yyvsp[0].item); } break; case 439: #line 1570 "sql_yacc.yy" { yyval.item= new Item_func_case(* yyvsp[-2].item_list, yyvsp[-4].item, yyvsp[-1].item ); } break; case 440: #line 1572 "sql_yacc.yy" { yyval.item= ((Item*(*)(void))(yyvsp[-2].symbol.symbol->create_func))();} break; case 441: #line 1574 "sql_yacc.yy" { yyval.item= ((Item*(*)(Item*))(yyvsp[-3].symbol.symbol->create_func))(yyvsp[-1].item);} break; case 442: #line 1576 "sql_yacc.yy" { yyval.item= ((Item*(*)(Item*,Item*))(yyvsp[-5].symbol.symbol->create_func))(yyvsp[-3].item,yyvsp[-1].item);} break; case 443: #line 1578 "sql_yacc.yy" { yyval.item= ((Item*(*)(Item*,Item*,Item*))(yyvsp[-7].symbol.symbol->create_func))(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item);} break; case 444: #line 1580 "sql_yacc.yy" { yyval.item= new Item_func_atan(yyvsp[-1].item); } break; case 445: #line 1582 "sql_yacc.yy" { yyval.item= new Item_func_atan(yyvsp[-3].item,yyvsp[-1].item); } break; case 446: #line 1584 "sql_yacc.yy" { yyval.item= new Item_func_char(*yyvsp[-1].item_list); } break; case 447: #line 1586 "sql_yacc.yy" { yyval.item= new Item_func_coalesce(* yyvsp[-1].item_list); } break; case 448: #line 1588 "sql_yacc.yy" { yyval.item= new Item_func_concat(* yyvsp[-1].item_list); } break; case 449: #line 1590 "sql_yacc.yy" { yyval.item= new Item_func_concat_ws(yyvsp[-3].item, *yyvsp[-1].item_list); } break; case 450: #line 1592 "sql_yacc.yy" { yyval.item= new Item_func_curdate(); } break; case 451: #line 1594 "sql_yacc.yy" { yyval.item= new Item_func_curtime(); } break; case 452: #line 1596 "sql_yacc.yy" { yyval.item= new Item_func_curtime(yyvsp[-1].item); } break; case 453: #line 1598 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-5].item,yyvsp[-2].item,yyvsp[-1].interval,0); } break; case 454: #line 1600 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-5].item,yyvsp[-2].item,yyvsp[-1].interval,1); } break; case 455: #line 1602 "sql_yacc.yy" { yyval.item= new Item_func_database(); } break; case 456: #line 1604 "sql_yacc.yy" { yyval.item= new Item_func_elt(yyvsp[-3].item, *yyvsp[-1].item_list); } break; case 457: #line 1606 "sql_yacc.yy" { yyval.item= new Item_func_make_set(yyvsp[-3].item, *yyvsp[-1].item_list); } break; case 458: #line 1607 "sql_yacc.yy" { yyval.item= new Item_func_encrypt(yyvsp[-1].item); } break; case 459: #line 1608 "sql_yacc.yy" { yyval.item= new Item_func_encrypt(yyvsp[-3].item,yyvsp[-1].item); } break; case 460: #line 1610 "sql_yacc.yy" { yyval.item= new Item_func_decode(yyvsp[-3].item,yyvsp[-1].lex_str.str); } break; case 461: #line 1612 "sql_yacc.yy" { yyval.item= new Item_func_encode(yyvsp[-3].item,yyvsp[-1].lex_str.str); } break; case 462: #line 1614 "sql_yacc.yy" { yyval.item= new Item_func_export_set(yyvsp[-5].item, yyvsp[-3].item, yyvsp[-1].item); } break; case 463: #line 1616 "sql_yacc.yy" { yyval.item= new Item_func_export_set(yyvsp[-7].item, yyvsp[-5].item, yyvsp[-3].item, yyvsp[-1].item); } break; case 464: #line 1618 "sql_yacc.yy" { yyval.item= new Item_func_export_set(yyvsp[-9].item, yyvsp[-7].item, yyvsp[-5].item, yyvsp[-3].item, yyvsp[-1].item); } break; case 465: #line 1620 "sql_yacc.yy" { yyval.item= new Item_func_format(yyvsp[-3].item,atoi(yyvsp[-1].lex_str.str)); } break; case 466: #line 1622 "sql_yacc.yy" { yyval.item= new Item_func_from_unixtime(yyvsp[-1].item); } break; case 467: #line 1624 "sql_yacc.yy" { yyval.item= new Item_func_date_format(new Item_func_from_unixtime(yyvsp[-3].item),yyvsp[-1].item,0); } break; case 468: #line 1628 "sql_yacc.yy" { yyval.item= new Item_func_field(yyvsp[-3].item, *yyvsp[-1].item_list); } break; case 469: #line 1630 "sql_yacc.yy" { yyval.item= new Item_func_hour(yyvsp[-1].item); } break; case 470: #line 1632 "sql_yacc.yy" { yyval.item= new Item_func_if(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); } break; case 471: #line 1634 "sql_yacc.yy" { yyval.item= new Item_func_insert(yyvsp[-7].item,yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); } break; case 472: #line 1637 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[0].item,yyvsp[-3].item,yyvsp[-2].interval,0); } break; case 473: #line 1639 "sql_yacc.yy" { yyval.item= new Item_func_interval(yyvsp[-3].item,* yyvsp[-1].item_list); } break; case 474: #line 1641 "sql_yacc.yy" { yyval.item= new Item_int((char*) "last_insert_id()", current_thd->insert_id(),21); } break; case 475: #line 1646 "sql_yacc.yy" { yyval.item= new Item_func_set_last_insert_id(yyvsp[-1].item); } break; case 476: #line 1650 "sql_yacc.yy" { yyval.item= new Item_func_left(yyvsp[-3].item,yyvsp[-1].item); } break; case 477: #line 1652 "sql_yacc.yy" { yyval.item= new Item_func_locate(yyvsp[-1].item,yyvsp[-3].item); } break; case 478: #line 1654 "sql_yacc.yy" { yyval.item= new Item_func_locate(yyvsp[-3].item,yyvsp[-5].item,yyvsp[-1].item); } break; case 479: #line 1656 "sql_yacc.yy" { yyvsp[-1].item_list->push_front(yyvsp[-3].item); yyval.item= new Item_func_max(*yyvsp[-1].item_list); } break; case 480: #line 1658 "sql_yacc.yy" { yyvsp[-1].item_list->push_front(yyvsp[-3].item); yyval.item= new Item_func_min(*yyvsp[-1].item_list); } break; case 481: #line 1660 "sql_yacc.yy" { yyval.item= new Item_func_minute(yyvsp[-1].item); } break; case 482: #line 1662 "sql_yacc.yy" { yyval.item= new Item_func_month(yyvsp[-1].item); } break; case 483: #line 1664 "sql_yacc.yy" { yyval.item= new Item_func_now(); } break; case 484: #line 1666 "sql_yacc.yy" { yyval.item= new Item_func_now(yyvsp[-1].item); } break; case 485: #line 1667 "sql_yacc.yy" { yyval.item= new Item_func_password(yyvsp[-1].item); } break; case 486: #line 1669 "sql_yacc.yy" { yyval.item = new Item_func_locate(yyvsp[-1].item,yyvsp[-3].item); } break; case 487: #line 1670 "sql_yacc.yy" { yyval.item= new Item_func_rand(yyvsp[-1].item); } break; case 488: #line 1671 "sql_yacc.yy" { yyval.item= new Item_func_rand(); } break; case 489: #line 1673 "sql_yacc.yy" { yyval.item= new Item_func_replace(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); } break; case 490: #line 1675 "sql_yacc.yy" { yyval.item= new Item_func_right(yyvsp[-3].item,yyvsp[-1].item); } break; case 491: #line 1677 "sql_yacc.yy" { yyval.item= new Item_func_round(yyvsp[-1].item, new Item_int((char*)"0",0,1),0); } break; case 492: #line 1678 "sql_yacc.yy" { yyval.item= new Item_func_round(yyvsp[-3].item,yyvsp[-1].item,0); } break; case 493: #line 1680 "sql_yacc.yy" { yyval.item= new Item_func_second(yyvsp[-1].item); } break; case 494: #line 1682 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); } break; case 495: #line 1684 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-3].item,yyvsp[-1].item); } break; case 496: #line 1686 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); } break; case 497: #line 1688 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-3].item,yyvsp[-1].item); } break; case 498: #line 1690 "sql_yacc.yy" { yyval.item= new Item_func_substr_index(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); } break; case 499: #line 1692 "sql_yacc.yy" { yyval.item= new Item_func_trim(yyvsp[-1].item,new Item_string(" ",1)); } break; case 500: #line 1694 "sql_yacc.yy" { yyval.item= new Item_func_ltrim(yyvsp[-1].item,yyvsp[-3].item); } break; case 501: #line 1696 "sql_yacc.yy" { yyval.item= new Item_func_rtrim(yyvsp[-1].item,yyvsp[-3].item); } break; case 502: #line 1698 "sql_yacc.yy" { yyval.item= new Item_func_trim(yyvsp[-1].item,yyvsp[-3].item); } break; case 503: #line 1700 "sql_yacc.yy" { yyval.item= new Item_func_trim(yyvsp[-1].item,yyvsp[-3].item); } break; case 504: #line 1702 "sql_yacc.yy" { yyval.item= new Item_func_round(yyvsp[-3].item,yyvsp[-1].item,1); } break; case 505: #line 1704 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_sum_udf_str(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_sum_udf_str(yyvsp[-3].udf); } break; case 506: #line 1711 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_sum_udf_float(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_sum_udf_float(yyvsp[-3].udf); } break; case 507: #line 1718 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_sum_udf_int(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_sum_udf_int(yyvsp[-3].udf); } break; case 508: #line 1725 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_func_udf_str(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_func_udf_str(yyvsp[-3].udf); } break; case 509: #line 1732 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_func_udf_float(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_func_udf_float(yyvsp[-3].udf); } break; case 510: #line 1739 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_func_udf_int(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_func_udf_int(yyvsp[-3].udf); } break; case 511: #line 1746 "sql_yacc.yy" { yyval.item= new Item_func_unique_users(yyvsp[-7].item,atoi(yyvsp[-5].lex_str.str),atoi(yyvsp[-3].lex_str.str), * yyvsp[-1].item_list); } break; case 512: #line 1748 "sql_yacc.yy" { yyval.item= new Item_func_unix_timestamp(); } break; case 513: #line 1750 "sql_yacc.yy" { yyval.item= new Item_func_unix_timestamp(yyvsp[-1].item); } break; case 514: #line 1752 "sql_yacc.yy" { yyval.item= new Item_func_user(); } break; case 515: #line 1754 "sql_yacc.yy" { yyval.item= new Item_func_week(yyvsp[-1].item,new Item_int((char*) "0",0,1)); } break; case 516: #line 1756 "sql_yacc.yy" { yyval.item= new Item_func_week(yyvsp[-3].item,yyvsp[-1].item); } break; case 517: #line 1758 "sql_yacc.yy" { yyval.item= new Item_func_year(yyvsp[-1].item); } break; case 518: #line 1760 "sql_yacc.yy" { yyval.item= new Item_func_yearweek(yyvsp[-1].item,new Item_int((char*) "0",0,1)); } break; case 519: #line 1762 "sql_yacc.yy" { yyval.item= new Item_func_yearweek(yyvsp[-3].item, yyvsp[-1].item); } break; case 520: #line 1764 "sql_yacc.yy" { yyval.item=new Item_func_benchmark(yyvsp[-3].ulong_num,yyvsp[-1].item); } break; case 521: #line 1766 "sql_yacc.yy" { yyval.item=new Item_extract( yyvsp[-3].interval, yyvsp[-1].item); } break; case 522: #line 1770 "sql_yacc.yy" { yyval.item_list= NULL; } break; case 523: #line 1771 "sql_yacc.yy" { yyval.item_list= yyvsp[0].item_list;} break; case 524: #line 1776 "sql_yacc.yy" { yyval.item=new Item_sum_avg(yyvsp[-1].item); } break; case 525: #line 1778 "sql_yacc.yy" { yyval.item=new Item_sum_and(yyvsp[-1].item); } break; case 526: #line 1780 "sql_yacc.yy" { yyval.item=new Item_sum_or(yyvsp[-1].item); } break; case 527: #line 1782 "sql_yacc.yy" { yyval.item=new Item_sum_count(new Item_int((int32) 0L,1)); } break; case 528: #line 1784 "sql_yacc.yy" { yyval.item=new Item_sum_count(yyvsp[-1].item); } break; case 529: #line 1786 "sql_yacc.yy" { yyval.item=new Item_sum_count_distinct(* yyvsp[-1].item_list); } break; case 530: #line 1788 "sql_yacc.yy" { yyval.item= new Item_sum_unique_users(yyvsp[-7].item,atoi(yyvsp[-5].lex_str.str),atoi(yyvsp[-3].lex_str.str),yyvsp[-1].item); } break; case 531: #line 1790 "sql_yacc.yy" { yyval.item=new Item_sum_min(yyvsp[-1].item); } break; case 532: #line 1792 "sql_yacc.yy" { yyval.item=new Item_sum_max(yyvsp[-1].item); } break; case 533: #line 1794 "sql_yacc.yy" { yyval.item=new Item_sum_std(yyvsp[-1].item); } break; case 534: #line 1796 "sql_yacc.yy" { yyval.item=new Item_sum_sum(yyvsp[-1].item); } break; case 535: #line 1800 "sql_yacc.yy" { Lex->in_sum_expr++; } break; case 536: #line 1802 "sql_yacc.yy" { Lex->in_sum_expr--; yyval.item=yyvsp[0].item; } break; case 537: #line 1809 "sql_yacc.yy" { Lex->expr_list.push_front(new List); } break; case 538: #line 1811 "sql_yacc.yy" { yyval.item_list= Lex->expr_list.pop(); } break; case 539: #line 1815 "sql_yacc.yy" { Lex->expr_list.head()->push_back(yyvsp[0].item); } break; case 540: #line 1816 "sql_yacc.yy" { Lex->expr_list.head()->push_back(yyvsp[0].item); } break; case 541: #line 1820 "sql_yacc.yy" { Lex->expr_list.push_front(new List); } break; case 542: #line 1822 "sql_yacc.yy" { yyval.item_list= Lex->expr_list.pop(); } break; case 543: #line 1826 "sql_yacc.yy" { Lex->expr_list.head()->push_back(yyvsp[0].item); } break; case 544: #line 1827 "sql_yacc.yy" { Lex->expr_list.head()->push_back(yyvsp[0].item); } break; case 545: #line 1831 "sql_yacc.yy" { yyval.item= NULL; } break; case 546: #line 1832 "sql_yacc.yy" { yyval.item= yyvsp[0].item; } break; case 547: #line 1836 "sql_yacc.yy" { yyval.item= NULL; } break; case 548: #line 1837 "sql_yacc.yy" { yyval.item= yyvsp[0].item; } break; case 549: #line 1841 "sql_yacc.yy" { Lex->when_list.push_front(new List); } break; case 550: #line 1843 "sql_yacc.yy" { yyval.item_list= Lex->when_list.pop(); } break; case 551: #line 1848 "sql_yacc.yy" { Lex->when_list.head()->push_back(yyvsp[-2].item); Lex->when_list.head()->push_back(yyvsp[0].item); } break; case 552: #line 1853 "sql_yacc.yy" { Lex->when_list.head()->push_back(yyvsp[-2].item); Lex->when_list.head()->push_back(yyvsp[0].item); } break; case 553: #line 1860 "sql_yacc.yy" { yyval.item=new Item_string(" ",1); } break; case 554: #line 1861 "sql_yacc.yy" { yyval.item=yyvsp[0].item; } break; case 555: #line 1865 "sql_yacc.yy" { yyval.table_list=yyvsp[-1].table_list; } break; case 556: #line 1866 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list; } break; case 557: #line 1867 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list; } break; case 558: #line 1868 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list ; yyval.table_list->straight=1; } break; case 559: #line 1870 "sql_yacc.yy" { add_join_on(yyvsp[-2].table_list,yyvsp[0].item); yyval.table_list=yyvsp[-2].table_list; } break; case 560: #line 1872 "sql_yacc.yy" { Lex->db1=yyvsp[-3].table_list->db; Lex->table1=yyvsp[-3].table_list->alias; Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->alias; } break; case 561: #line 1875 "sql_yacc.yy" { add_join_on(yyvsp[-5].table_list,yyvsp[-1].item); yyval.table_list=yyvsp[-5].table_list; } break; case 562: #line 1877 "sql_yacc.yy" { add_join_on(yyvsp[-2].table_list,yyvsp[0].item); yyvsp[-2].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[-2].table_list; } break; case 563: #line 1879 "sql_yacc.yy" { Lex->db1=yyvsp[-4].table_list->db; Lex->table1=yyvsp[-4].table_list->alias; Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->alias; } break; case 564: #line 1882 "sql_yacc.yy" { add_join_on(yyvsp[-5].table_list,yyvsp[-1].item); yyvsp[-5].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[-5].table_list; } break; case 565: #line 1884 "sql_yacc.yy" { add_join_natural(yyvsp[-5].table_list,yyvsp[0].table_list); yyvsp[0].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[0].table_list; } break; case 566: #line 1886 "sql_yacc.yy" { add_join_on(yyvsp[-6].table_list,yyvsp[0].item); yyvsp[-6].table_list->outer_join|=JOIN_TYPE_RIGHT; yyval.table_list=yyvsp[-6].table_list; } break; case 567: #line 1888 "sql_yacc.yy" { Lex->db1=yyvsp[-4].table_list->db; Lex->table1=yyvsp[-4].table_list->alias; Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->alias; } break; case 568: #line 1891 "sql_yacc.yy" { add_join_on(yyvsp[-9].table_list,yyvsp[-1].item); yyvsp[-9].table_list->outer_join|=JOIN_TYPE_RIGHT; yyval.table_list=yyvsp[-9].table_list; } break; case 569: #line 1893 "sql_yacc.yy" { add_join_natural(yyvsp[0].table_list,yyvsp[-5].table_list); yyvsp[-5].table_list->outer_join|=JOIN_TYPE_RIGHT; yyval.table_list=yyvsp[-5].table_list; } break; case 570: #line 1895 "sql_yacc.yy" { add_join_natural(yyvsp[-3].table_list,yyvsp[0].table_list); yyval.table_list=yyvsp[0].table_list; } break; case 571: #line 1899 "sql_yacc.yy" {} break; case 572: #line 1900 "sql_yacc.yy" {} break; case 573: #line 1901 "sql_yacc.yy" {} break; case 574: #line 1905 "sql_yacc.yy" { Lex->use_index_ptr=Lex->ignore_index_ptr=0; } break; case 575: #line 1907 "sql_yacc.yy" { if (!(yyval.table_list=add_table_to_list(yyvsp[-2].table,yyvsp[-1].lex_str_ptr,0,TL_UNLOCK, Lex->use_index_ptr, Lex->ignore_index_ptr))) YYABORT; } break; case 576: #line 1910 "sql_yacc.yy" { add_join_on(yyvsp[-3].table_list,yyvsp[-1].item); yyvsp[-3].table_list->outer_join|=JOIN_TYPE_LEFT; yyval.table_list=yyvsp[-3].table_list; } break; case 577: #line 1914 "sql_yacc.yy" {} break; case 578: #line 1915 "sql_yacc.yy" {} break; case 579: #line 1919 "sql_yacc.yy" {} break; case 580: #line 1921 "sql_yacc.yy" { Lex->use_index= *yyvsp[0].string_list; Lex->use_index_ptr= &Lex->use_index; } break; case 581: #line 1923 "sql_yacc.yy" { Lex->ignore_index= *yyvsp[0].string_list; Lex->ignore_index_ptr= &Lex->ignore_index;} break; case 582: #line 1927 "sql_yacc.yy" { Lex->interval_list.empty(); } break; case 583: #line 1928 "sql_yacc.yy" { yyval.string_list= &Lex->interval_list; } break; case 584: #line 1933 "sql_yacc.yy" { Lex->interval_list.push_back(new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length)); } break; case 585: #line 1935 "sql_yacc.yy" { Lex->interval_list.push_back(new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length)); } break; case 586: #line 1937 "sql_yacc.yy" { Lex->interval_list.push_back(new String("PRIMARY",7)); } break; case 587: #line 1942 "sql_yacc.yy" { if (!(yyval.item= new Item_func_eq(new Item_field(Lex->db1,Lex->table1, yyvsp[0].lex_str.str), new Item_field(Lex->db2,Lex->table2,yyvsp[0].lex_str.str)))) YYABORT; } break; case 588: #line 1946 "sql_yacc.yy" { if (!(yyval.item= new Item_cond_and(new Item_func_eq(new Item_field(Lex->db1,Lex->table1,yyvsp[0].lex_str.str), new Item_field(Lex->db2,Lex->table2,yyvsp[0].lex_str.str)), yyvsp[-2].item))) YYABORT; } break; case 589: #line 1953 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY_HOUR; } break; case 590: #line 1954 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY_MINUTE; } break; case 591: #line 1955 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY_SECOND; } break; case 592: #line 1956 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY; } break; case 593: #line 1957 "sql_yacc.yy" { yyval.interval=INTERVAL_HOUR_MINUTE; } break; case 594: #line 1958 "sql_yacc.yy" { yyval.interval=INTERVAL_HOUR_SECOND; } break; case 595: #line 1959 "sql_yacc.yy" { yyval.interval=INTERVAL_HOUR; } break; case 596: #line 1960 "sql_yacc.yy" { yyval.interval=INTERVAL_MINUTE_SECOND; } break; case 597: #line 1961 "sql_yacc.yy" { yyval.interval=INTERVAL_MINUTE; } break; case 598: #line 1962 "sql_yacc.yy" { yyval.interval=INTERVAL_MONTH; } break; case 599: #line 1963 "sql_yacc.yy" { yyval.interval=INTERVAL_SECOND; } break; case 600: #line 1964 "sql_yacc.yy" { yyval.interval=INTERVAL_YEAR_MONTH; } break; case 601: #line 1965 "sql_yacc.yy" { yyval.interval=INTERVAL_YEAR; } break; case 605: #line 1975 "sql_yacc.yy" { yyval.lex_str_ptr=0; } break; case 606: #line 1977 "sql_yacc.yy" { yyval.lex_str_ptr= (LEX_STRING*) sql_memdup(&yyvsp[0].lex_str,sizeof(LEX_STRING)); } break; case 607: #line 1981 "sql_yacc.yy" { Lex->where= 0; } break; case 608: #line 1982 "sql_yacc.yy" { Lex->where= yyvsp[0].item; } break; case 610: #line 1987 "sql_yacc.yy" { Lex->create_refs=1; } break; case 611: #line 1988 "sql_yacc.yy" { Lex->having= yyvsp[0].item; Lex->create_refs=0; } break; case 612: #line 1992 "sql_yacc.yy" { yyval.simple_string= yyvsp[0].lex_str.str; } break; case 613: #line 1993 "sql_yacc.yy" { yyval.simple_string= (char*) "\\"; } break; case 616: #line 2007 "sql_yacc.yy" { if (add_group_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; } break; case 617: #line 2009 "sql_yacc.yy" { if (add_group_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; } break; case 621: #line 2027 "sql_yacc.yy" { if (add_order_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; } break; case 622: #line 2029 "sql_yacc.yy" { if (add_order_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; } break; case 623: #line 2033 "sql_yacc.yy" { yyval.num = 1; } break; case 624: #line 2034 "sql_yacc.yy" { yyval.num =1; } break; case 625: #line 2035 "sql_yacc.yy" { yyval.num =0; } break; case 626: #line 2040 "sql_yacc.yy" { Lex->select_limit= current_thd->default_select_limit; Lex->offset_limit= 0L; } break; case 627: #line 2045 "sql_yacc.yy" { Lex->select_limit= yyvsp[0].ulong_num; Lex->offset_limit=0L; } break; case 628: #line 2047 "sql_yacc.yy" { Lex->select_limit= yyvsp[0].ulong_num; Lex->offset_limit=yyvsp[-2].ulong_num; } break; case 629: #line 2052 "sql_yacc.yy" { Lex->select_limit= HA_POS_ERROR; } break; case 630: #line 2056 "sql_yacc.yy" { Lex->select_limit= (ha_rows) yyvsp[0].ulonglong_num; } break; case 631: #line 2060 "sql_yacc.yy" { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); } break; case 632: #line 2061 "sql_yacc.yy" { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); } break; case 633: #line 2062 "sql_yacc.yy" { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); } break; case 634: #line 2066 "sql_yacc.yy" { yyval.ulonglong_num= (ulonglong) strtoul(yyvsp[0].lex_str.str,NULL,10); } break; case 635: #line 2067 "sql_yacc.yy" { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); } break; case 636: #line 2068 "sql_yacc.yy" { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); } break; case 637: #line 2069 "sql_yacc.yy" { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); } break; case 639: #line 2075 "sql_yacc.yy" { LEX *lex=Lex; lex->proc_list.elements=0; lex->proc_list.first=0; lex->proc_list.next= (byte**) &lex->proc_list.first; if (add_proc_to_list(new Item_field(NULL,NULL,yyvsp[0].lex_str.str))) YYABORT; } break; case 641: #line 2087 "sql_yacc.yy" {} break; case 642: #line 2088 "sql_yacc.yy" {} break; case 645: #line 2098 "sql_yacc.yy" { if (add_proc_to_list(yyvsp[0].item)) YYABORT; if (!yyvsp[0].item->name) yyvsp[0].item->set_name(yyvsp[-1].simple_string,(uint) ((char*) Lex->tok_end - yyvsp[-1].simple_string)); } break; case 646: #line 2108 "sql_yacc.yy" { if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str,0))) YYABORT; } break; case 648: #line 2114 "sql_yacc.yy" { if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str,1))) YYABORT; } break; case 649: #line 2125 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_DO; if (!(lex->insert_list = new List_item)) YYABORT; } break; case 650: #line 2132 "sql_yacc.yy" {} break; case 651: #line 2141 "sql_yacc.yy" { Lex->sql_command = SQLCOM_DROP_TABLE; Lex->drop_if_exists = yyvsp[-2].num; } break; case 652: #line 2145 "sql_yacc.yy" {} break; case 653: #line 2146 "sql_yacc.yy" { Lex->sql_command= SQLCOM_DROP_INDEX; Lex->drop_list.empty(); Lex->drop_list.push_back(new Alter_drop(Alter_drop::KEY, yyvsp[-3].lex_str.str)); if (!add_table_to_list(yyvsp[-1].table,NULL, 1)) YYABORT; } break; case 654: #line 2155 "sql_yacc.yy" { Lex->sql_command= SQLCOM_DROP_DB; Lex->drop_if_exists=yyvsp[-1].num; Lex->name=yyvsp[0].lex_str.str; } break; case 655: #line 2161 "sql_yacc.yy" { Lex->sql_command = SQLCOM_DROP_FUNCTION; Lex->udf.name=yyvsp[0].lex_str.str; } break; case 658: #line 2174 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[0].table,NULL,1)) YYABORT; } break; case 659: #line 2178 "sql_yacc.yy" { yyval.num=0; } break; case 660: #line 2179 "sql_yacc.yy" { yyval.num= 1; } break; case 661: #line 2187 "sql_yacc.yy" { Lex->sql_command = SQLCOM_INSERT; } break; case 662: #line 2188 "sql_yacc.yy" {} break; case 663: #line 2192 "sql_yacc.yy" { Lex->sql_command = SQLCOM_REPLACE; } break; case 664: #line 2193 "sql_yacc.yy" {} break; case 665: #line 2197 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_CONCURRENT_INSERT; } break; case 666: #line 2198 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_LOW_PRIORITY; } break; case 667: #line 2199 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_DELAYED; } break; case 668: #line 2200 "sql_yacc.yy" { Lex->lock_option= TL_WRITE; } break; case 669: #line 2204 "sql_yacc.yy" {} break; case 670: #line 2205 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_DELAYED; } break; case 671: #line 2209 "sql_yacc.yy" {} break; case 672: #line 2210 "sql_yacc.yy" {} break; case 673: #line 2215 "sql_yacc.yy" { Lex->field_list.empty(); Lex->many_values.empty(); Lex->insert_list=0; } break; case 674: #line 2223 "sql_yacc.yy" {} break; case 675: #line 2225 "sql_yacc.yy" { if (!(Lex->insert_list = new List_item) || Lex->many_values.push_back(Lex->insert_list)) YYABORT; } break; case 677: #line 2234 "sql_yacc.yy" { } break; case 678: #line 2235 "sql_yacc.yy" { } break; case 679: #line 2236 "sql_yacc.yy" { } break; case 680: #line 2240 "sql_yacc.yy" { Lex->field_list.push_back(yyvsp[0].item); } break; case 681: #line 2241 "sql_yacc.yy" { Lex->field_list.push_back(yyvsp[0].item); } break; case 682: #line 2245 "sql_yacc.yy" {} break; case 683: #line 2247 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = (lex->sql_command == SQLCOM_INSERT ? SQLCOM_INSERT_SELECT : SQLCOM_REPLACE_SELECT); lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ; mysql_init_select(lex); } break; case 684: #line 2254 "sql_yacc.yy" {} break; case 689: #line 2270 "sql_yacc.yy" { if (Lex->field_list.push_back(yyvsp[-2].item) || Lex->insert_list->push_back(yyvsp[0].item)) YYABORT; } break; case 690: #line 2277 "sql_yacc.yy" {} break; case 691: #line 2278 "sql_yacc.yy" {} break; case 692: #line 2283 "sql_yacc.yy" { if (!(Lex->insert_list = new List_item)) YYABORT; } break; case 693: #line 2288 "sql_yacc.yy" { if (Lex->many_values.push_back(Lex->insert_list)) YYABORT; } break; case 694: #line 2295 "sql_yacc.yy" {} break; case 696: #line 2301 "sql_yacc.yy" { if (Lex->insert_list->push_back(yyvsp[0].item)) YYABORT; } break; case 697: #line 2306 "sql_yacc.yy" { if (Lex->insert_list->push_back(yyvsp[0].item)) YYABORT; } break; case 698: #line 2316 "sql_yacc.yy" { Lex->sql_command = SQLCOM_UPDATE; } break; case 699: #line 2321 "sql_yacc.yy" { if (add_item_to_list(yyvsp[-2].item) || add_value_to_list(yyvsp[0].item)) YYABORT; } break; case 700: #line 2326 "sql_yacc.yy" { if (add_item_to_list(yyvsp[-2].item) || add_value_to_list(yyvsp[0].item)) YYABORT; } break; case 701: #line 2333 "sql_yacc.yy" { Lex->lock_option= current_thd->update_lock_default; } break; case 702: #line 2334 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_LOW_PRIORITY; } break; case 703: #line 2341 "sql_yacc.yy" { Lex->sql_command= SQLCOM_DELETE; Lex->options=0; Lex->lock_option= current_thd->update_lock_default; } break; case 704: #line 2347 "sql_yacc.yy" {} break; case 705: #line 2351 "sql_yacc.yy" {} break; case 706: #line 2352 "sql_yacc.yy" {} break; case 707: #line 2356 "sql_yacc.yy" { Lex->options|= OPTION_QUICK; } break; case 708: #line 2357 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_LOW_PRIORITY; } break; case 709: #line 2362 "sql_yacc.yy" { Lex->sql_command= SQLCOM_TRUNCATE; Lex->options=0; Lex->lock_option= current_thd->update_lock_default; } break; case 712: #line 2373 "sql_yacc.yy" { Lex->wild=0;} break; case 713: #line 2374 "sql_yacc.yy" {} break; case 714: #line 2379 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_DATABASES; } break; case 715: #line 2381 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_TABLES; Lex->db= yyvsp[-1].simple_string; Lex->options=0;} break; case 716: #line 2383 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_TABLES; Lex->options|= SELECT_DESCRIBE; Lex->db= yyvsp[-1].simple_string; } break; case 717: #line 2388 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; Lex->db= yyvsp[-1].simple_string; Lex->options=0; } break; case 718: #line 2393 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_FIELDS; if (yyvsp[-1].simple_string) yyvsp[-2].table->change_db(yyvsp[-1].simple_string); if (!add_table_to_list(yyvsp[-2].table,NULL,0)) YYABORT; } break; case 719: #line 2401 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_BINLOGS; } break; case 720: #line 2405 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_KEYS; if (yyvsp[0].simple_string) yyvsp[-1].table->change_db(yyvsp[0].simple_string); if (!add_table_to_list(yyvsp[-1].table,NULL,0)) YYABORT; } break; case 721: #line 2413 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_STATUS; } break; case 722: #line 2415 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_INNODB_STATUS;} break; case 723: #line 2417 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} break; case 724: #line 2419 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_VARIABLES; } break; case 725: #line 2421 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_LOGS; } break; case 726: #line 2423 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_GRANTS; Lex->grant_user=yyvsp[0].lex_user; Lex->grant_user->password.str=NullS; } break; case 727: #line 2426 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_CREATE; if(!add_table_to_list(yyvsp[0].table, NULL,0)) YYABORT; } break; case 728: #line 2432 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_MASTER_STAT; } break; case 729: #line 2436 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; } break; case 730: #line 2442 "sql_yacc.yy" { yyval.simple_string= 0; } break; case 731: #line 2443 "sql_yacc.yy" { yyval.simple_string= yyvsp[0].lex_str.str; } break; case 733: #line 2448 "sql_yacc.yy" { Lex->wild= yyvsp[0].string; } break; case 734: #line 2452 "sql_yacc.yy" { Lex->verbose=0; } break; case 735: #line 2453 "sql_yacc.yy" { Lex->verbose=1; } break; case 736: #line 2459 "sql_yacc.yy" { Lex->wild=0; Lex->verbose=0; Lex->sql_command=SQLCOM_SHOW_FIELDS; if (!add_table_to_list(yyvsp[0].table, NULL,0)) YYABORT; } break; case 737: #line 2466 "sql_yacc.yy" {} break; case 738: #line 2467 "sql_yacc.yy" { Lex->options|= SELECT_DESCRIBE; } break; case 741: #line 2476 "sql_yacc.yy" {} break; case 742: #line 2477 "sql_yacc.yy" { Lex->wild= yyvsp[0].string; } break; case 743: #line 2478 "sql_yacc.yy" { Lex->wild= new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); } break; case 744: #line 2484 "sql_yacc.yy" {Lex->sql_command= SQLCOM_FLUSH; Lex->type=0; } break; case 745: #line 2485 "sql_yacc.yy" {} break; case 748: #line 2494 "sql_yacc.yy" { Lex->type|= REFRESH_TABLES; } break; case 749: #line 2494 "sql_yacc.yy" {} break; case 750: #line 2495 "sql_yacc.yy" { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; } break; case 751: #line 2496 "sql_yacc.yy" { Lex->type|= REFRESH_HOSTS; } break; case 752: #line 2497 "sql_yacc.yy" { Lex->type|= REFRESH_GRANT; } break; case 753: #line 2498 "sql_yacc.yy" { Lex->type|= REFRESH_LOG; } break; case 754: #line 2499 "sql_yacc.yy" { Lex->type|= REFRESH_STATUS; } break; case 755: #line 2500 "sql_yacc.yy" { Lex->type|= REFRESH_SLAVE; } break; case 756: #line 2501 "sql_yacc.yy" { Lex->type|= REFRESH_MASTER; } break; case 757: #line 2505 "sql_yacc.yy" {} break; case 758: #line 2506 "sql_yacc.yy" {} break; case 759: #line 2510 "sql_yacc.yy" {Lex->sql_command= SQLCOM_RESET; Lex->type=0; } break; case 760: #line 2511 "sql_yacc.yy" {} break; case 763: #line 2520 "sql_yacc.yy" { Lex->type|= REFRESH_SLAVE; } break; case 764: #line 2521 "sql_yacc.yy" { Lex->type|= REFRESH_MASTER; } break; case 765: #line 2525 "sql_yacc.yy" { Lex->sql_command = SQLCOM_PURGE; Lex->type=0;} break; case 766: #line 2527 "sql_yacc.yy" { Lex->to_log = yyvsp[0].lex_str.str; } break; case 767: #line 2536 "sql_yacc.yy" { if (yyvsp[0].item->fix_fields(current_thd,0)) { send_error(¤t_thd->net, ER_SET_CONSTANTS_ONLY); YYABORT; } Lex->sql_command=SQLCOM_KILL; Lex->thread_id= (ulong) yyvsp[0].item->val_int(); } break; case 768: #line 2550 "sql_yacc.yy" { Lex->sql_command=SQLCOM_CHANGE_DB; Lex->db= yyvsp[0].lex_str.str; } break; case 769: #line 2556 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_LOAD; lex->local_file= yyvsp[-2].num; if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str,0))) YYABORT; Lex->field_list.empty(); } break; case 770: #line 2566 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[-4].table,NULL,1)) YYABORT; } break; case 771: #line 2572 "sql_yacc.yy" { Lex->sql_command = SQLCOM_LOAD_MASTER_TABLE; if (!add_table_to_list(yyvsp[-2].table,NULL,1)) YYABORT; } break; case 772: #line 2581 "sql_yacc.yy" { yyval.num=0;} break; case 773: #line 2582 "sql_yacc.yy" { yyval.num=1;} break; case 774: #line 2586 "sql_yacc.yy" { Lex->lock_option= current_thd->update_lock_default; } break; case 775: #line 2587 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_CONCURRENT_INSERT ; } break; case 776: #line 2588 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_LOW_PRIORITY; } break; case 777: #line 2592 "sql_yacc.yy" { Lex->duplicates=DUP_ERROR; } break; case 778: #line 2593 "sql_yacc.yy" { Lex->duplicates=DUP_REPLACE; } break; case 779: #line 2594 "sql_yacc.yy" { Lex->duplicates=DUP_IGNORE; } break; case 784: #line 2608 "sql_yacc.yy" { Lex->exchange->field_term= yyvsp[0].string;} break; case 785: #line 2610 "sql_yacc.yy" { Lex->exchange->enclosed= yyvsp[0].string; Lex->exchange->opt_enclosed=1;} break; case 786: #line 2611 "sql_yacc.yy" { Lex->exchange->enclosed= yyvsp[0].string;} break; case 787: #line 2612 "sql_yacc.yy" { Lex->exchange->escaped= yyvsp[0].string;} break; case 792: #line 2626 "sql_yacc.yy" { Lex->exchange->line_term= yyvsp[0].string;} break; case 793: #line 2627 "sql_yacc.yy" { Lex->exchange->line_start= yyvsp[0].string;} break; case 795: #line 2633 "sql_yacc.yy" { Lex->exchange->skip_lines=atol(yyvsp[-1].lex_str.str); } break; case 796: #line 2639 "sql_yacc.yy" { yyval.item = new Item_string(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); } break; case 797: #line 2641 "sql_yacc.yy" { ((Item_string*) yyvsp[-1].item)->append(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); } break; case 798: #line 2645 "sql_yacc.yy" { yyval.string= new String(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); } break; case 799: #line 2647 "sql_yacc.yy" { Item *tmp = new Item_varbinary(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); yyval.string= tmp ? tmp->val_str((String*) 0) : (String*) 0; } break; case 800: #line 2654 "sql_yacc.yy" { yyval.item = yyvsp[0].item; } break; case 801: #line 2655 "sql_yacc.yy" { yyval.item = new Item_int(yyvsp[0].lex_str.str, (longlong) atol(yyvsp[0].lex_str.str),yyvsp[0].lex_str.length); } break; case 802: #line 2656 "sql_yacc.yy" { yyval.item = new Item_int(yyvsp[0].lex_str.str); } break; case 803: #line 2657 "sql_yacc.yy" { yyval.item = new Item_real(yyvsp[0].lex_str.str, yyvsp[0].lex_str.length); } break; case 804: #line 2658 "sql_yacc.yy" { yyval.item = new Item_float(yyvsp[0].lex_str.str, yyvsp[0].lex_str.length); } break; case 805: #line 2659 "sql_yacc.yy" { yyval.item = new Item_null(); Lex->next_state=STATE_OPERATOR_OR_IDENT;} break; case 806: #line 2661 "sql_yacc.yy" { yyval.item = new Item_varbinary(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); } break; case 807: #line 2662 "sql_yacc.yy" { yyval.item = yyvsp[0].item; } break; case 808: #line 2663 "sql_yacc.yy" { yyval.item = yyvsp[0].item; } break; case 809: #line 2664 "sql_yacc.yy" { yyval.item = yyvsp[0].item; } break; case 810: #line 2672 "sql_yacc.yy" { yyval.item=yyvsp[0].item; } break; case 811: #line 2673 "sql_yacc.yy" { yyval.item=yyvsp[0].item; } break; case 812: #line 2677 "sql_yacc.yy" { yyval.item = new Item_field(NullS,yyvsp[-2].lex_str.str,"*"); } break; case 813: #line 2679 "sql_yacc.yy" { yyval.item = new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,"*"); } break; case 814: #line 2683 "sql_yacc.yy" { yyval.item=yyvsp[0].item; } break; case 815: #line 2688 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,NullS,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,NullS,yyvsp[0].lex_str.str); } break; case 816: #line 2690 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); } break; case 817: #line 2692 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); } break; case 818: #line 2694 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); } break; case 819: #line 2698 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;} break; case 820: #line 2699 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;} break; case 821: #line 2700 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;} break; case 822: #line 2704 "sql_yacc.yy" { yyval.table=new Table_ident(yyvsp[0].lex_str); } break; case 823: #line 2705 "sql_yacc.yy" { yyval.table=new Table_ident(yyvsp[-2].lex_str,yyvsp[0].lex_str,0);} break; case 824: #line 2706 "sql_yacc.yy" { yyval.table=new Table_ident(yyvsp[0].lex_str);} break; case 825: #line 2710 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; } break; case 826: #line 2712 "sql_yacc.yy" { yyval.lex_str.str=sql_strmake(yyvsp[0].symbol.str,yyvsp[0].symbol.length); yyval.lex_str.length=yyvsp[0].symbol.length; if (Lex->next_state != STATE_END) Lex->next_state=STATE_OPERATOR_OR_IDENT; } break; case 827: #line 2721 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;} break; case 828: #line 2722 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;} break; case 829: #line 2723 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;} break; case 830: #line 2728 "sql_yacc.yy" { if (!(yyval.lex_user=(LEX_USER*) sql_alloc(sizeof(st_lex_user)))) YYABORT; yyval.lex_user->user = yyvsp[0].lex_str; yyval.lex_user->host.str=NullS; } break; case 831: #line 2734 "sql_yacc.yy" { if (!(yyval.lex_user=(LEX_USER*) sql_alloc(sizeof(st_lex_user)))) YYABORT; yyval.lex_user->user = yyvsp[-2].lex_str; yyval.lex_user->host=yyvsp[0].lex_str; } break; case 832: #line 2744 "sql_yacc.yy" {} break; case 833: #line 2745 "sql_yacc.yy" {} break; case 834: #line 2746 "sql_yacc.yy" {} break; case 835: #line 2747 "sql_yacc.yy" {} break; case 836: #line 2748 "sql_yacc.yy" {} break; case 837: #line 2749 "sql_yacc.yy" {} break; case 838: #line 2750 "sql_yacc.yy" {} break; case 839: #line 2751 "sql_yacc.yy" {} break; case 840: #line 2752 "sql_yacc.yy" {} break; case 841: #line 2753 "sql_yacc.yy" {} break; case 842: #line 2754 "sql_yacc.yy" {} break; case 843: #line 2755 "sql_yacc.yy" {} break; case 844: #line 2756 "sql_yacc.yy" {} break; case 845: #line 2757 "sql_yacc.yy" {} break; case 846: #line 2758 "sql_yacc.yy" {} break; case 847: #line 2759 "sql_yacc.yy" {} break; case 848: #line 2760 "sql_yacc.yy" {} break; case 849: #line 2761 "sql_yacc.yy" {} break; case 850: #line 2762 "sql_yacc.yy" {} break; case 851: #line 2763 "sql_yacc.yy" {} break; case 852: #line 2764 "sql_yacc.yy" {} break; case 853: #line 2765 "sql_yacc.yy" {} break; case 854: #line 2766 "sql_yacc.yy" {} break; case 855: #line 2767 "sql_yacc.yy" {} break; case 856: #line 2768 "sql_yacc.yy" {} break; case 857: #line 2769 "sql_yacc.yy" {} break; case 858: #line 2770 "sql_yacc.yy" {} break; case 859: #line 2771 "sql_yacc.yy" {} break; case 860: #line 2772 "sql_yacc.yy" {} break; case 861: #line 2773 "sql_yacc.yy" {} break; case 862: #line 2774 "sql_yacc.yy" {} break; case 863: #line 2775 "sql_yacc.yy" {} break; case 864: #line 2776 "sql_yacc.yy" {} break; case 865: #line 2777 "sql_yacc.yy" {} break; case 866: #line 2778 "sql_yacc.yy" {} break; case 867: #line 2779 "sql_yacc.yy" {} break; case 868: #line 2780 "sql_yacc.yy" {} break; case 869: #line 2781 "sql_yacc.yy" {} break; case 870: #line 2782 "sql_yacc.yy" {} break; case 871: #line 2783 "sql_yacc.yy" {} break; case 872: #line 2784 "sql_yacc.yy" {} break; case 873: #line 2785 "sql_yacc.yy" {} break; case 874: #line 2786 "sql_yacc.yy" {} break; case 875: #line 2787 "sql_yacc.yy" {} break; case 876: #line 2788 "sql_yacc.yy" {} break; case 877: #line 2789 "sql_yacc.yy" {} break; case 878: #line 2790 "sql_yacc.yy" {} break; case 879: #line 2791 "sql_yacc.yy" {} break; case 880: #line 2792 "sql_yacc.yy" {} break; case 881: #line 2793 "sql_yacc.yy" {} break; case 882: #line 2794 "sql_yacc.yy" {} break; case 883: #line 2795 "sql_yacc.yy" {} break; case 884: #line 2796 "sql_yacc.yy" {} break; case 885: #line 2797 "sql_yacc.yy" {} break; case 886: #line 2798 "sql_yacc.yy" {} break; case 887: #line 2799 "sql_yacc.yy" {} break; case 888: #line 2800 "sql_yacc.yy" {} break; case 889: #line 2801 "sql_yacc.yy" {} break; case 890: #line 2802 "sql_yacc.yy" {} break; case 891: #line 2803 "sql_yacc.yy" {} break; case 892: #line 2804 "sql_yacc.yy" {} break; case 893: #line 2805 "sql_yacc.yy" {} break; case 894: #line 2806 "sql_yacc.yy" {} break; case 895: #line 2807 "sql_yacc.yy" {} break; case 896: #line 2808 "sql_yacc.yy" {} break; case 897: #line 2809 "sql_yacc.yy" {} break; case 898: #line 2810 "sql_yacc.yy" {} break; case 899: #line 2811 "sql_yacc.yy" {} break; case 900: #line 2812 "sql_yacc.yy" {} break; case 901: #line 2813 "sql_yacc.yy" {} break; case 902: #line 2814 "sql_yacc.yy" {} break; case 903: #line 2815 "sql_yacc.yy" {} break; case 904: #line 2816 "sql_yacc.yy" {} break; case 905: #line 2817 "sql_yacc.yy" {} break; case 906: #line 2818 "sql_yacc.yy" {} break; case 907: #line 2819 "sql_yacc.yy" {} break; case 908: #line 2820 "sql_yacc.yy" {} break; case 909: #line 2821 "sql_yacc.yy" {} break; case 910: #line 2822 "sql_yacc.yy" {} break; case 911: #line 2823 "sql_yacc.yy" {} break; case 912: #line 2824 "sql_yacc.yy" {} break; case 913: #line 2825 "sql_yacc.yy" {} break; case 914: #line 2826 "sql_yacc.yy" {} break; case 915: #line 2827 "sql_yacc.yy" {} break; case 916: #line 2828 "sql_yacc.yy" {} break; case 917: #line 2829 "sql_yacc.yy" {} break; case 918: #line 2830 "sql_yacc.yy" {} break; case 919: #line 2831 "sql_yacc.yy" {} break; case 920: #line 2832 "sql_yacc.yy" {} break; case 921: #line 2833 "sql_yacc.yy" {} break; case 922: #line 2834 "sql_yacc.yy" {} break; case 923: #line 2835 "sql_yacc.yy" {} break; case 924: #line 2836 "sql_yacc.yy" {} break; case 925: #line 2837 "sql_yacc.yy" {} break; case 926: #line 2838 "sql_yacc.yy" {} break; case 927: #line 2839 "sql_yacc.yy" {} break; case 928: #line 2840 "sql_yacc.yy" {} break; case 929: #line 2841 "sql_yacc.yy" {} break; case 930: #line 2842 "sql_yacc.yy" {} break; case 931: #line 2843 "sql_yacc.yy" {} break; case 932: #line 2844 "sql_yacc.yy" {} break; case 933: #line 2845 "sql_yacc.yy" {} break; case 934: #line 2846 "sql_yacc.yy" {} break; case 935: #line 2847 "sql_yacc.yy" {} break; case 936: #line 2848 "sql_yacc.yy" {} break; case 937: #line 2849 "sql_yacc.yy" {} break; case 938: #line 2850 "sql_yacc.yy" {} break; case 939: #line 2851 "sql_yacc.yy" {} break; case 940: #line 2852 "sql_yacc.yy" {} break; case 941: #line 2853 "sql_yacc.yy" {} break; case 942: #line 2854 "sql_yacc.yy" {} break; case 943: #line 2855 "sql_yacc.yy" {} break; case 944: #line 2856 "sql_yacc.yy" {} break; case 945: #line 2857 "sql_yacc.yy" {} break; case 946: #line 2858 "sql_yacc.yy" {} break; case 947: #line 2859 "sql_yacc.yy" {} break; case 948: #line 2860 "sql_yacc.yy" {} break; case 949: #line 2867 "sql_yacc.yy" { THD *thd=current_thd; LEX *lex= &thd->lex; lex->sql_command= SQLCOM_SET_OPTION; lex->options=thd->options; lex->select_limit=thd->default_select_limit; lex->gemini_spin_retries=thd->gemini_spin_retries; lex->tx_isolation=thd->tx_isolation; } break; case 950: #line 2877 "sql_yacc.yy" {} break; case 951: #line 2881 "sql_yacc.yy" {} break; case 952: #line 2882 "sql_yacc.yy" {} break; case 955: #line 2892 "sql_yacc.yy" { if (atoi(yyvsp[0].lex_str.str) == 0) Lex->options&= ~yyvsp[-2].num; else Lex->options|= yyvsp[-2].num; } break; case 957: #line 2900 "sql_yacc.yy" { if (atoi(yyvsp[0].lex_str.str) != 0) /* Test NOT AUTOCOMMIT */ Lex->options&= ~(OPTION_NOT_AUTO_COMMIT); else Lex->options|= OPTION_NOT_AUTO_COMMIT; } break; case 958: #line 2907 "sql_yacc.yy" { Lex->select_limit= yyvsp[0].ulong_num; } break; case 959: #line 2911 "sql_yacc.yy" { Lex->select_limit= HA_POS_ERROR; } break; case 960: #line 2915 "sql_yacc.yy" { current_thd->max_join_size= yyvsp[0].ulong_num; Lex->options&= ~OPTION_BIG_SELECTS; } break; case 961: #line 2920 "sql_yacc.yy" { current_thd->max_join_size= HA_POS_ERROR; } break; case 962: #line 2924 "sql_yacc.yy" { current_thd->set_time((time_t) yyvsp[0].ulong_num); } break; case 963: #line 2928 "sql_yacc.yy" { current_thd->user_time=0; } break; case 964: #line 2932 "sql_yacc.yy" { current_thd->insert_id(yyvsp[0].ulonglong_num); } break; case 965: #line 2936 "sql_yacc.yy" { current_thd->next_insert_id=yyvsp[0].ulonglong_num; } break; case 966: #line 2940 "sql_yacc.yy" { Lex->gemini_spin_retries= yyvsp[0].ulong_num; } break; case 967: #line 2944 "sql_yacc.yy" { Lex->gemini_spin_retries= 1; } break; case 968: #line 2948 "sql_yacc.yy" { CONVERT *tmp; if (!(tmp=get_convert_set(yyvsp[0].lex_str.str))) { net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,yyvsp[0].lex_str); YYABORT; } current_thd->convert_set=tmp; } break; case 969: #line 2958 "sql_yacc.yy" { current_thd->convert_set=0; } break; case 970: #line 2962 "sql_yacc.yy" { if (change_password(current_thd,current_thd->host, current_thd->priv_user,yyvsp[0].simple_string)) YYABORT; } break; case 971: #line 2968 "sql_yacc.yy" { if (change_password(current_thd, yyvsp[-2].lex_user->host.str ? yyvsp[-2].lex_user->host.str : current_thd->host, yyvsp[-2].lex_user->user.str,yyvsp[0].simple_string)) YYABORT; } break; case 972: #line 2975 "sql_yacc.yy" { Item_func_set_user_var *item = new Item_func_set_user_var(yyvsp[-2].lex_str,yyvsp[0].item); if (item->fix_fields(current_thd,0) || item->update()) { send_error(¤t_thd->net, ER_SET_CONSTANTS_ONLY); YYABORT; } } break; case 973: #line 2984 "sql_yacc.yy" { pthread_mutex_lock(&LOCK_slave); if(slave_running) send_error(¤t_thd->net, ER_SLAVE_MUST_STOP); else slave_skip_counter = yyvsp[0].ulong_num; pthread_mutex_unlock(&LOCK_slave); } break; case 974: #line 2993 "sql_yacc.yy" { if (atoi(yyvsp[0].lex_str.str) == 0) Lex->options|= OPTION_NO_FOREIGN_KEY_CHECKS; else Lex->options&= ~(OPTION_NO_FOREIGN_KEY_CHECKS); } break; case 975: #line 3000 "sql_yacc.yy" { if (atoi(yyvsp[0].lex_str.str) == 0) Lex->options|= OPTION_RELAXED_UNIQUE_CHECKS; else Lex->options&= ~(OPTION_RELAXED_UNIQUE_CHECKS); } break; case 976: #line 3009 "sql_yacc.yy" { yyval.simple_string=yyvsp[0].lex_str.str;} break; case 977: #line 3011 "sql_yacc.yy" { if (!yyvsp[-1].lex_str.length) yyval.simple_string=yyvsp[-1].lex_str.str; else { char *buff=(char*) sql_alloc(HASH_PASSWORD_LENGTH+1); make_scrambled_password(buff,yyvsp[-1].lex_str.str); yyval.simple_string=buff; } } break; case 978: #line 3024 "sql_yacc.yy" { yyval.num= OPTION_BIG_TABLES; } break; case 979: #line 3025 "sql_yacc.yy" { yyval.num= OPTION_BIG_SELECTS; } break; case 980: #line 3026 "sql_yacc.yy" { yyval.num= OPTION_LOG_OFF; } break; case 981: #line 3028 "sql_yacc.yy" { yyval.num= (opt_sql_bin_update)? OPTION_UPDATE_LOG|OPTION_BIN_LOG: OPTION_UPDATE_LOG ; } break; case 982: #line 3034 "sql_yacc.yy" { yyval.num= (opt_sql_bin_update)? OPTION_UPDATE_LOG|OPTION_BIN_LOG: OPTION_BIN_LOG ; } break; case 983: #line 3039 "sql_yacc.yy" { yyval.num= OPTION_WARNINGS; } break; case 984: #line 3040 "sql_yacc.yy" { yyval.num= OPTION_LOW_PRIORITY_UPDATES; } break; case 985: #line 3041 "sql_yacc.yy" { yyval.num= OPTION_AUTO_IS_NULL; } break; case 986: #line 3042 "sql_yacc.yy" { yyval.num= OPTION_SAFE_UPDATES; } break; case 987: #line 3043 "sql_yacc.yy" { yyval.num= OPTION_BUFFER_RESULT; } break; case 988: #line 3044 "sql_yacc.yy" { yyval.num= OPTION_QUOTE_SHOW_CREATE; } break; case 989: #line 3049 "sql_yacc.yy" { if (check_process_priv()) YYABORT; default_tx_isolation= yyvsp[0].tx_isolation; default_tx_isolation_name=tx_isolation_typelib.type_names[default_tx_isolation]; } break; case 990: #line 3056 "sql_yacc.yy" { current_thd->session_tx_isolation= Lex->tx_isolation= yyvsp[0].tx_isolation; } break; case 991: #line 3058 "sql_yacc.yy" { Lex->tx_isolation= yyvsp[0].tx_isolation; } break; case 992: #line 3062 "sql_yacc.yy" { yyval.tx_isolation=yyvsp[0].tx_isolation; } break; case 993: #line 3066 "sql_yacc.yy" { yyval.tx_isolation= ISO_READ_UNCOMMITTED; } break; case 994: #line 3067 "sql_yacc.yy" { yyval.tx_isolation= ISO_READ_COMMITTED; } break; case 995: #line 3068 "sql_yacc.yy" { yyval.tx_isolation= ISO_REPEATABLE_READ; } break; case 996: #line 3069 "sql_yacc.yy" { yyval.tx_isolation= ISO_SERIALIZABLE; } break; case 997: #line 3076 "sql_yacc.yy" { Lex->sql_command=SQLCOM_LOCK_TABLES; } break; case 998: #line 3080 "sql_yacc.yy" {} break; case 1003: #line 3095 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[-2].table,yyvsp[-1].lex_str_ptr,0,(thr_lock_type) yyvsp[0].num)) YYABORT; } break; case 1004: #line 3099 "sql_yacc.yy" { yyval.num=TL_READ_NO_INSERT; } break; case 1005: #line 3100 "sql_yacc.yy" { yyval.num=current_thd->update_lock_default; } break; case 1006: #line 3101 "sql_yacc.yy" { yyval.num=TL_WRITE_LOW_PRIORITY; } break; case 1007: #line 3102 "sql_yacc.yy" { yyval.num= TL_READ; } break; case 1008: #line 3106 "sql_yacc.yy" { Lex->sql_command=SQLCOM_UNLOCK_TABLES; } break; case 1009: #line 3113 "sql_yacc.yy" { Lex->sql_command = SQLCOM_REVOKE; Lex->users_list.empty(); Lex->columns.empty(); Lex->grant= Lex->grant_tot_col=0; Lex->db=0; } break; case 1010: #line 3121 "sql_yacc.yy" {} break; case 1011: #line 3126 "sql_yacc.yy" { Lex->sql_command = SQLCOM_GRANT; Lex->users_list.empty(); Lex->columns.empty(); Lex->grant= Lex->grant_tot_col=0; Lex->db=0; } break; case 1012: #line 3135 "sql_yacc.yy" {} break; case 1013: #line 3139 "sql_yacc.yy" {} break; case 1014: #line 3140 "sql_yacc.yy" { Lex->grant = UINT_MAX;} break; case 1015: #line 3141 "sql_yacc.yy" { Lex->grant = UINT_MAX;} break; case 1017: #line 3147 "sql_yacc.yy" {} break; case 1018: #line 3152 "sql_yacc.yy" { Lex->which_columns = SELECT_ACL;} break; case 1019: #line 3153 "sql_yacc.yy" {} break; case 1020: #line 3155 "sql_yacc.yy" { Lex->which_columns = INSERT_ACL; } break; case 1021: #line 3156 "sql_yacc.yy" {} break; case 1022: #line 3158 "sql_yacc.yy" { Lex->which_columns = UPDATE_ACL; } break; case 1023: #line 3159 "sql_yacc.yy" {} break; case 1024: #line 3160 "sql_yacc.yy" { Lex->grant |= DELETE_ACL;} break; case 1025: #line 3161 "sql_yacc.yy" { Lex->which_columns = REFERENCES_ACL;} break; case 1026: #line 3161 "sql_yacc.yy" {} break; case 1027: #line 3162 "sql_yacc.yy" {} break; case 1028: #line 3163 "sql_yacc.yy" { Lex->grant |= INDEX_ACL;} break; case 1029: #line 3164 "sql_yacc.yy" { Lex->grant |= ALTER_ACL;} break; case 1030: #line 3165 "sql_yacc.yy" { Lex->grant |= CREATE_ACL;} break; case 1031: #line 3166 "sql_yacc.yy" { Lex->grant |= DROP_ACL;} break; case 1032: #line 3167 "sql_yacc.yy" { Lex->grant |= RELOAD_ACL;} break; case 1033: #line 3168 "sql_yacc.yy" { Lex->grant |= SHUTDOWN_ACL;} break; case 1034: #line 3169 "sql_yacc.yy" { Lex->grant |= PROCESS_ACL;} break; case 1035: #line 3170 "sql_yacc.yy" { Lex->grant |= FILE_ACL;} break; case 1036: #line 3171 "sql_yacc.yy" { Lex->grant |= GRANT_ACL;} break; case 1037: #line 3176 "sql_yacc.yy" { Lex->db=current_thd->db; if (Lex->grant == UINT_MAX) Lex->grant = DB_ACLS & ~GRANT_ACL; else if (Lex->columns.elements) { net_printf(¤t_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE); YYABORT; } } break; case 1038: #line 3187 "sql_yacc.yy" { Lex->db = yyvsp[-2].lex_str.str; if (Lex->grant == UINT_MAX) Lex->grant = DB_ACLS & ~GRANT_ACL; else if (Lex->columns.elements) { net_printf(¤t_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE); YYABORT; } } break; case 1039: #line 3198 "sql_yacc.yy" { Lex->db = NULL; if (Lex->grant == UINT_MAX) Lex->grant = GLOBAL_ACLS & ~GRANT_ACL; else if (Lex->columns.elements) { net_printf(¤t_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE); YYABORT; } } break; case 1040: #line 3209 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[0].table,NULL,0)) YYABORT; if (Lex->grant == UINT_MAX) Lex->grant = TABLE_ACLS & ~GRANT_ACL; } break; case 1041: #line 3218 "sql_yacc.yy" { if (Lex->users_list.push_back(yyvsp[0].lex_user)) YYABORT;} break; case 1042: #line 3219 "sql_yacc.yy" { if (Lex->users_list.push_back(yyvsp[0].lex_user)) YYABORT;} break; case 1043: #line 3224 "sql_yacc.yy" { yyval.lex_user=yyvsp[-3].lex_user; yyvsp[-3].lex_user->password=yyvsp[0].lex_str; if (yyvsp[0].lex_str.length) { char *buff=(char*) sql_alloc(HASH_PASSWORD_LENGTH+1); if (buff) { make_scrambled_password(buff,yyvsp[0].lex_str.str); yyvsp[-3].lex_user->password.str=buff; yyvsp[-3].lex_user->password.length=HASH_PASSWORD_LENGTH; } } } break; case 1044: #line 3238 "sql_yacc.yy" { yyval.lex_user=yyvsp[-4].lex_user; yyvsp[-4].lex_user->password=yyvsp[0].lex_str ; } break; case 1045: #line 3240 "sql_yacc.yy" { yyval.lex_user=yyvsp[0].lex_user; yyvsp[0].lex_user->password.str=NullS; } break; case 1046: #line 3244 "sql_yacc.yy" { Lex->grant |= Lex->which_columns; } break; case 1050: #line 3255 "sql_yacc.yy" { String *new_str = new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); List_iterator iter(Lex->columns); class LEX_COLUMN *point; while ((point=iter++)) { if (!my_strcasecmp(point->column.ptr(),new_str->ptr())) break; } Lex->grant_tot_col|= Lex->which_columns; if (point) point->rights |= Lex->which_columns; else Lex->columns.push_back(new LEX_COLUMN (*new_str,Lex->which_columns)); } break; case 1051: #line 3273 "sql_yacc.yy" {} break; case 1052: #line 3274 "sql_yacc.yy" { Lex->grant |= GRANT_ACL;} break; case 1053: #line 3278 "sql_yacc.yy" { Lex->sql_command = SQLCOM_BEGIN;} break; case 1054: #line 3278 "sql_yacc.yy" {} break; case 1055: #line 3282 "sql_yacc.yy" {} break; case 1056: #line 3283 "sql_yacc.yy" {} break; case 1057: #line 3287 "sql_yacc.yy" { Lex->sql_command = SQLCOM_COMMIT;} break; case 1058: #line 3291 "sql_yacc.yy" { Lex->sql_command = SQLCOM_ROLLBACK;} break; } /* Line 1000 of yacc.c. */ #line 12371 "sql_yacc.cc" yyvsp -= yylen; yyssp -= yylen; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if YYERROR_VERBOSE yyn = yypact[yystate]; if (YYPACT_NINF < yyn && yyn < YYLAST) { YYSIZE_T yysize = 0; int yytype = YYTRANSLATE (yychar); const char* yyprefix; char *yymsg; int yyx; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 0; yyprefix = ", expecting "; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); yycount += 1; if (yycount == 5) { yysize = 0; break; } } yysize += (sizeof ("syntax error, unexpected ") + yystrlen (yytname[yytype])); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { yyprefix = ", expecting "; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { yyp = yystpcpy (yyp, yyprefix); yyp = yystpcpy (yyp, yytname[yyx]); yyprefix = " or "; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ yyerror ("syntax error"); } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* If at end of input, pop the error token, then the rest of the stack, then return failure. */ if (yychar == YYEOF) for (;;) { YYPOPSTACK; if (yyssp == yyss) YYABORT; YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); yydestruct (yystos[*yyssp], yyvsp); } } else { YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); yydestruct (yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: #ifdef __GNUC__ /* Pacify GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) goto yyerrorlab; #endif yyvsp -= yylen; yyssp -= yylen; yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); yydestruct (yystos[yystate], yyvsp); YYPOPSTACK; yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; YYDPRINTF ((stderr, "Shifting error token, ")); *++yyvsp = yylval; yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*----------------------------------------------. | yyoverflowlab -- parser overflow comes here. | `----------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ #endif yyreturn: #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; }