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

/* Skeleton parser for Yacc-like parsing with Bison,
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 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

/* Substitute the variable and function names.  */
#define yyparse MYSQLparse
#define yylex   MYSQLlex
#define yyerror MYSQLerror
#define yylval  MYSQLlval
#define yychar  MYSQLchar
#define yydebug MYSQLdebug
#define yynerrs MYSQLnerrs


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ABORT_SYM = 258,
     ACCESSIBLE_SYM = 259,
     ACTION = 260,
     ADD = 261,
     ADDDATE_SYM = 262,
     AFTER_SYM = 263,
     AGAINST = 264,
     AGGREGATE_SYM = 265,
     ALGORITHM_SYM = 266,
     ALL = 267,
     ALTER = 268,
     ANALYZE_SYM = 269,
     AND_AND_SYM = 270,
     AND_SYM = 271,
     ANY_SYM = 272,
     AS = 273,
     ASC = 274,
     ASCII_SYM = 275,
     ASENSITIVE_SYM = 276,
     AT_SYM = 277,
     AUTHORS_SYM = 278,
     AUTOEXTEND_SIZE_SYM = 279,
     AUTO_INC = 280,
     AVG_ROW_LENGTH = 281,
     AVG_SYM = 282,
     BACKUP_SYM = 283,
     BEFORE_SYM = 284,
     BEGIN_SYM = 285,
     BETWEEN_SYM = 286,
     BIGINT = 287,
     BINARY = 288,
     BINLOG_SYM = 289,
     BIN_NUM = 290,
     BIT_AND = 291,
     BIT_OR = 292,
     BIT_SYM = 293,
     BIT_XOR = 294,
     BLOB_SYM = 295,
     BOOLEAN_SYM = 296,
     BOOL_SYM = 297,
     BOTH = 298,
     BTREE_SYM = 299,
     BY = 300,
     BYTE_SYM = 301,
     CACHE_SYM = 302,
     CALL_SYM = 303,
     CASCADE = 304,
     CASCADED = 305,
     CASE_SYM = 306,
     CAST_SYM = 307,
     CHAIN_SYM = 308,
     CHANGE = 309,
     CHANGED = 310,
     CHARSET = 311,
     CHAR_SYM = 312,
     CHECKSUM_SYM = 313,
     CHECK_SYM = 314,
     CIPHER_SYM = 315,
     CLIENT_SYM = 316,
     CLOSE_SYM = 317,
     COALESCE = 318,
     CODE_SYM = 319,
     COLLATE_SYM = 320,
     COLLATION_SYM = 321,
     COLUMNS = 322,
     COLUMN_SYM = 323,
     COMMENT_SYM = 324,
     COMMITTED_SYM = 325,
     COMMIT_SYM = 326,
     COMPACT_SYM = 327,
     COMPLETION_SYM = 328,
     COMPRESSED_SYM = 329,
     CONCURRENT = 330,
     CONDITION_SYM = 331,
     CONNECTION_SYM = 332,
     CONSISTENT_SYM = 333,
     CONSTRAINT = 334,
     CONTAINS_SYM = 335,
     CONTINUE_SYM = 336,
     CONTRIBUTORS_SYM = 337,
     CONVERT_SYM = 338,
     COUNT_SYM = 339,
     CREATE = 340,
     CROSS = 341,
     CUBE_SYM = 342,
     CURDATE = 343,
     CURRENT_USER = 344,
     CURSOR_SYM = 345,
     CURTIME = 346,
     DATABASE = 347,
     DATABASES = 348,
     DATAFILE_SYM = 349,
     DATA_SYM = 350,
     DATETIME = 351,
     DATE_ADD_INTERVAL = 352,
     DATE_SUB_INTERVAL = 353,
     DATE_SYM = 354,
     DAY_HOUR_SYM = 355,
     DAY_MICROSECOND_SYM = 356,
     DAY_MINUTE_SYM = 357,
     DAY_SECOND_SYM = 358,
     DAY_SYM = 359,
     DEALLOCATE_SYM = 360,
     DECIMAL_NUM = 361,
     DECIMAL_SYM = 362,
     DECLARE_SYM = 363,
     DEFAULT = 364,
     DEFINER_SYM = 365,
     DELAYED_SYM = 366,
     DELAY_KEY_WRITE_SYM = 367,
     DELETE_SYM = 368,
     DESC = 369,
     DESCRIBE = 370,
     DES_KEY_FILE = 371,
     DETERMINISTIC_SYM = 372,
     DIRECTORY_SYM = 373,
     DISABLE_SYM = 374,
     DISCARD = 375,
     DISK_SYM = 376,
     DISTINCT = 377,
     DIV_SYM = 378,
     DOUBLE_SYM = 379,
     DO_SYM = 380,
     DROP = 381,
     DUAL_SYM = 382,
     DUMPFILE = 383,
     DUPLICATE_SYM = 384,
     DYNAMIC_SYM = 385,
     EACH_SYM = 386,
     ELSE = 387,
     ELSEIF_SYM = 388,
     ENABLE_SYM = 389,
     ENCLOSED = 390,
     END = 391,
     ENDS_SYM = 392,
     END_OF_INPUT = 393,
     ENGINES_SYM = 394,
     ENGINE_SYM = 395,
     ENUM = 396,
     EQ = 397,
     EQUAL_SYM = 398,
     ERRORS = 399,
     ESCAPED = 400,
     ESCAPE_SYM = 401,
     EVENTS_SYM = 402,
     EVENT_SYM = 403,
     EVERY_SYM = 404,
     EXECUTE_SYM = 405,
     EXISTS = 406,
     EXIT_SYM = 407,
     EXPANSION_SYM = 408,
     EXTENDED_SYM = 409,
     EXTENT_SIZE_SYM = 410,
     EXTRACT_SYM = 411,
     FALSE_SYM = 412,
     FAST_SYM = 413,
     FETCH_SYM = 414,
     FILE_SYM = 415,
     FIRST_SYM = 416,
     FIXED_SYM = 417,
     FLOAT_NUM = 418,
     FLOAT_SYM = 419,
     FLUSH_SYM = 420,
     FORCE_SYM = 421,
     FOREIGN = 422,
     FOR_SYM = 423,
     FOUND_SYM = 424,
     FRAC_SECOND_SYM = 425,
     FROM = 426,
     FULL = 427,
     FULLTEXT_SYM = 428,
     FUNCTION_SYM = 429,
     GE = 430,
     GEOMETRYCOLLECTION = 431,
     GEOMETRY_SYM = 432,
     GET_FORMAT = 433,
     GLOBAL_SYM = 434,
     GRANT = 435,
     GRANTS = 436,
     GROUP_SYM = 437,
     GROUP_CONCAT_SYM = 438,
     GT_SYM = 439,
     HANDLER_SYM = 440,
     HASH_SYM = 441,
     HAVING = 442,
     HELP_SYM = 443,
     HEX_NUM = 444,
     HIGH_PRIORITY = 445,
     HOST_SYM = 446,
     HOSTS_SYM = 447,
     HOUR_MICROSECOND_SYM = 448,
     HOUR_MINUTE_SYM = 449,
     HOUR_SECOND_SYM = 450,
     HOUR_SYM = 451,
     IDENT = 452,
     IDENTIFIED_SYM = 453,
     IDENT_QUOTED = 454,
     IF = 455,
     IGNORE_SYM = 456,
     IMPORT = 457,
     INDEXES = 458,
     INDEX_SYM = 459,
     INFILE = 460,
     INITIAL_SIZE_SYM = 461,
     INNER_SYM = 462,
     INNOBASE_SYM = 463,
     INOUT_SYM = 464,
     INSENSITIVE_SYM = 465,
     INSERT = 466,
     INSERT_METHOD = 467,
     INSTALL_SYM = 468,
     INTERVAL_SYM = 469,
     INTO = 470,
     INT_SYM = 471,
     INVOKER_SYM = 472,
     IN_SYM = 473,
     IS = 474,
     ISOLATION = 475,
     ISSUER_SYM = 476,
     ITERATE_SYM = 477,
     JOIN_SYM = 478,
     KEYS = 479,
     KEY_BLOCK_SIZE = 480,
     KEY_SYM = 481,
     KILL_SYM = 482,
     LANGUAGE_SYM = 483,
     LAST_SYM = 484,
     LE = 485,
     LEADING = 486,
     LEAVES = 487,
     LEAVE_SYM = 488,
     LEFT = 489,
     LESS_SYM = 490,
     LEVEL_SYM = 491,
     LEX_HOSTNAME = 492,
     LIKE = 493,
     LIMIT = 494,
     LINEAR_SYM = 495,
     LINES = 496,
     LINESTRING = 497,
     LIST_SYM = 498,
     LOAD = 499,
     LOCAL_SYM = 500,
     LOCATOR_SYM = 501,
     LOCKS_SYM = 502,
     LOCK_SYM = 503,
     LOGFILE_SYM = 504,
     LOGS_SYM = 505,
     LONGBLOB = 506,
     LONGTEXT = 507,
     LONG_NUM = 508,
     LONG_SYM = 509,
     LOOP_SYM = 510,
     LOW_PRIORITY = 511,
     LT = 512,
     MASTER_CONNECT_RETRY_SYM = 513,
     MASTER_HOST_SYM = 514,
     MASTER_LOG_FILE_SYM = 515,
     MASTER_LOG_POS_SYM = 516,
     MASTER_PASSWORD_SYM = 517,
     MASTER_PORT_SYM = 518,
     MASTER_SERVER_ID_SYM = 519,
     MASTER_SSL_CAPATH_SYM = 520,
     MASTER_SSL_CA_SYM = 521,
     MASTER_SSL_CERT_SYM = 522,
     MASTER_SSL_CIPHER_SYM = 523,
     MASTER_SSL_KEY_SYM = 524,
     MASTER_SSL_SYM = 525,
     MASTER_SSL_VERIFY_SERVER_CERT_SYM = 526,
     MASTER_SYM = 527,
     MASTER_USER_SYM = 528,
     MATCH = 529,
     MAX_CONNECTIONS_PER_HOUR = 530,
     MAX_QUERIES_PER_HOUR = 531,
     MAX_ROWS = 532,
     MAX_SIZE_SYM = 533,
     MAX_SYM = 534,
     MAX_UPDATES_PER_HOUR = 535,
     MAX_USER_CONNECTIONS_SYM = 536,
     MAX_VALUE_SYM = 537,
     MEDIUMBLOB = 538,
     MEDIUMINT = 539,
     MEDIUMTEXT = 540,
     MEDIUM_SYM = 541,
     MEMORY_SYM = 542,
     MERGE_SYM = 543,
     MICROSECOND_SYM = 544,
     MIGRATE_SYM = 545,
     MINUTE_MICROSECOND_SYM = 546,
     MINUTE_SECOND_SYM = 547,
     MINUTE_SYM = 548,
     MIN_ROWS = 549,
     MIN_SYM = 550,
     MODE_SYM = 551,
     MODIFIES_SYM = 552,
     MODIFY_SYM = 553,
     MOD_SYM = 554,
     MONTH_SYM = 555,
     MULTILINESTRING = 556,
     MULTIPOINT = 557,
     MULTIPOLYGON = 558,
     MUTEX_SYM = 559,
     NAMES_SYM = 560,
     NAME_SYM = 561,
     NATIONAL_SYM = 562,
     NATURAL = 563,
     NCHAR_STRING = 564,
     NCHAR_SYM = 565,
     NDBCLUSTER_SYM = 566,
     NE = 567,
     NEG = 568,
     NEW_SYM = 569,
     NEXT_SYM = 570,
     NODEGROUP_SYM = 571,
     NONE_SYM = 572,
     NOT2_SYM = 573,
     NOT_SYM = 574,
     NOW_SYM = 575,
     NO_SYM = 576,
     NO_WAIT_SYM = 577,
     NO_WRITE_TO_BINLOG = 578,
     NULL_SYM = 579,
     NUM = 580,
     NUMERIC_SYM = 581,
     NVARCHAR_SYM = 582,
     OFFSET_SYM = 583,
     OLD_PASSWORD = 584,
     ON = 585,
     ONE_SHOT_SYM = 586,
     ONE_SYM = 587,
     OPEN_SYM = 588,
     OPTIMIZE = 589,
     OPTIONS_SYM = 590,
     OPTION = 591,
     OPTIONALLY = 592,
     OR2_SYM = 593,
     ORDER_SYM = 594,
     OR_OR_SYM = 595,
     OR_SYM = 596,
     OUTER = 597,
     OUTFILE = 598,
     OUT_SYM = 599,
     OWNER_SYM = 600,
     PACK_KEYS_SYM = 601,
     PAGE_SYM = 602,
     PARAM_MARKER = 603,
     PARSER_SYM = 604,
     PARTIAL = 605,
     PARTITIONING_SYM = 606,
     PARTITIONS_SYM = 607,
     PARTITION_SYM = 608,
     PASSWORD = 609,
     PHASE_SYM = 610,
     PLUGINS_SYM = 611,
     PLUGIN_SYM = 612,
     POINT_SYM = 613,
     POLYGON = 614,
     PORT_SYM = 615,
     POSITION_SYM = 616,
     PRECISION = 617,
     PREPARE_SYM = 618,
     PRESERVE_SYM = 619,
     PREV_SYM = 620,
     PRIMARY_SYM = 621,
     PRIVILEGES = 622,
     PROCEDURE = 623,
     PROCESS = 624,
     PROCESSLIST_SYM = 625,
     PURGE = 626,
     QUARTER_SYM = 627,
     QUERY_SYM = 628,
     QUICK = 629,
     RANGE_SYM = 630,
     READS_SYM = 631,
     READ_ONLY_SYM = 632,
     READ_SYM = 633,
     READ_WRITE_SYM = 634,
     REAL = 635,
     REBUILD_SYM = 636,
     RECOVER_SYM = 637,
     REDOFILE_SYM = 638,
     REDO_BUFFER_SIZE_SYM = 639,
     REDUNDANT_SYM = 640,
     REFERENCES = 641,
     REGEXP = 642,
     RELAY_LOG_FILE_SYM = 643,
     RELAY_LOG_POS_SYM = 644,
     RELAY_THREAD = 645,
     RELEASE_SYM = 646,
     RELOAD = 647,
     REMOVE_SYM = 648,
     RENAME = 649,
     REORGANIZE_SYM = 650,
     REPAIR = 651,
     REPEATABLE_SYM = 652,
     REPEAT_SYM = 653,
     REPLACE = 654,
     REPLICATION = 655,
     REQUIRE_SYM = 656,
     RESET_SYM = 657,
     RESOURCES = 658,
     RESTORE_SYM = 659,
     RESTRICT = 660,
     RESUME_SYM = 661,
     RETURNS_SYM = 662,
     RETURN_SYM = 663,
     REVOKE = 664,
     RIGHT = 665,
     ROLLBACK_SYM = 666,
     ROLLUP_SYM = 667,
     ROUTINE_SYM = 668,
     ROWS_SYM = 669,
     ROW_FORMAT_SYM = 670,
     ROW_SYM = 671,
     RTREE_SYM = 672,
     SAVEPOINT_SYM = 673,
     SCHEDULE_SYM = 674,
     SECOND_MICROSECOND_SYM = 675,
     SECOND_SYM = 676,
     SECURITY_SYM = 677,
     SELECT_SYM = 678,
     SENSITIVE_SYM = 679,
     SEPARATOR_SYM = 680,
     SERIALIZABLE_SYM = 681,
     SERIAL_SYM = 682,
     SESSION_SYM = 683,
     SERVER_SYM = 684,
     SERVER_OPTIONS = 685,
     SET = 686,
     SET_VAR = 687,
     SHARE_SYM = 688,
     SHIFT_LEFT = 689,
     SHIFT_RIGHT = 690,
     SHOW = 691,
     SHUTDOWN = 692,
     SIGNED_SYM = 693,
     SIMPLE_SYM = 694,
     SLAVE = 695,
     SMALLINT = 696,
     SNAPSHOT_SYM = 697,
     SOCKET_SYM = 698,
     SONAME_SYM = 699,
     SOUNDS_SYM = 700,
     SPATIAL_SYM = 701,
     SPECIFIC_SYM = 702,
     SQLEXCEPTION_SYM = 703,
     SQLSTATE_SYM = 704,
     SQLWARNING_SYM = 705,
     SQL_BIG_RESULT = 706,
     SQL_BUFFER_RESULT = 707,
     SQL_CACHE_SYM = 708,
     SQL_CALC_FOUND_ROWS = 709,
     SQL_NO_CACHE_SYM = 710,
     SQL_SMALL_RESULT = 711,
     SQL_SYM = 712,
     SQL_THREAD = 713,
     SSL_SYM = 714,
     STARTING = 715,
     STARTS_SYM = 716,
     START_SYM = 717,
     STATUS_SYM = 718,
     STDDEV_SAMP_SYM = 719,
     STD_SYM = 720,
     STOP_SYM = 721,
     STORAGE_SYM = 722,
     STRAIGHT_JOIN = 723,
     STRING_SYM = 724,
     SUBDATE_SYM = 725,
     SUBJECT_SYM = 726,
     SUBPARTITIONS_SYM = 727,
     SUBPARTITION_SYM = 728,
     SUBSTRING = 729,
     SUM_SYM = 730,
     SUPER_SYM = 731,
     SUSPEND_SYM = 732,
     SYSDATE = 733,
     TABLES = 734,
     TABLESPACE = 735,
     TABLE_REF_PRIORITY = 736,
     TABLE_SYM = 737,
     TEMPORARY = 738,
     TEMPTABLE_SYM = 739,
     TERMINATED = 740,
     TEXT_STRING = 741,
     TEXT_SYM = 742,
     THAN_SYM = 743,
     THEN_SYM = 744,
     TIMESTAMP = 745,
     TIMESTAMP_ADD = 746,
     TIMESTAMP_DIFF = 747,
     TIME_SYM = 748,
     TINYBLOB = 749,
     TINYINT = 750,
     TINYTEXT = 751,
     TO_SYM = 752,
     TRAILING = 753,
     TRANSACTION_SYM = 754,
     TRANSACTIONAL_SYM = 755,
     TRIGGERS_SYM = 756,
     TRIGGER_SYM = 757,
     TRIM = 758,
     TRUE_SYM = 759,
     TRUNCATE_SYM = 760,
     TYPES_SYM = 761,
     TYPE_SYM = 762,
     UDF_RETURNS_SYM = 763,
     ULONGLONG_NUM = 764,
     UNCOMMITTED_SYM = 765,
     UNDEFINED_SYM = 766,
     UNDERSCORE_CHARSET = 767,
     UNDOFILE_SYM = 768,
     UNDO_BUFFER_SIZE_SYM = 769,
     UNDO_SYM = 770,
     UNICODE_SYM = 771,
     UNINSTALL_SYM = 772,
     UNION_SYM = 773,
     UNIQUE_SYM = 774,
     UNKNOWN_SYM = 775,
     UNLOCK_SYM = 776,
     UNSIGNED = 777,
     UNTIL_SYM = 778,
     UPDATE_SYM = 779,
     UPGRADE_SYM = 780,
     USAGE = 781,
     USER = 782,
     USE_FRM = 783,
     USE_SYM = 784,
     USING = 785,
     UTC_DATE_SYM = 786,
     UTC_TIMESTAMP_SYM = 787,
     UTC_TIME_SYM = 788,
     VALUES = 789,
     VALUE_SYM = 790,
     VARBINARY = 791,
     VARCHAR = 792,
     VARIABLES = 793,
     VARIANCE_SYM = 794,
     VARYING = 795,
     VAR_SAMP_SYM = 796,
     VIEW_SYM = 797,
     WAIT_SYM = 798,
     WARNINGS = 799,
     WEEK_SYM = 800,
     WHEN_SYM = 801,
     WHERE = 802,
     WHILE_SYM = 803,
     WITH = 804,
     WORK_SYM = 805,
     WRAPPER_SYM = 806,
     WRITE_SYM = 807,
     X509_SYM = 808,
     XA_SYM = 809,
     XOR = 810,
     YEAR_MONTH_SYM = 811,
     YEAR_SYM = 812,
     ZEROFILL = 813
   };
#endif
#define ABORT_SYM 258
#define ACCESSIBLE_SYM 259
#define ACTION 260
#define ADD 261
#define ADDDATE_SYM 262
#define AFTER_SYM 263
#define AGAINST 264
#define AGGREGATE_SYM 265
#define ALGORITHM_SYM 266
#define ALL 267
#define ALTER 268
#define ANALYZE_SYM 269
#define AND_AND_SYM 270
#define AND_SYM 271
#define ANY_SYM 272
#define AS 273
#define ASC 274
#define ASCII_SYM 275
#define ASENSITIVE_SYM 276
#define AT_SYM 277
#define AUTHORS_SYM 278
#define AUTOEXTEND_SIZE_SYM 279
#define AUTO_INC 280
#define AVG_ROW_LENGTH 281
#define AVG_SYM 282
#define BACKUP_SYM 283
#define BEFORE_SYM 284
#define BEGIN_SYM 285
#define BETWEEN_SYM 286
#define BIGINT 287
#define BINARY 288
#define BINLOG_SYM 289
#define BIN_NUM 290
#define BIT_AND 291
#define BIT_OR 292
#define BIT_SYM 293
#define BIT_XOR 294
#define BLOB_SYM 295
#define BOOLEAN_SYM 296
#define BOOL_SYM 297
#define BOTH 298
#define BTREE_SYM 299
#define BY 300
#define BYTE_SYM 301
#define CACHE_SYM 302
#define CALL_SYM 303
#define CASCADE 304
#define CASCADED 305
#define CASE_SYM 306
#define CAST_SYM 307
#define CHAIN_SYM 308
#define CHANGE 309
#define CHANGED 310
#define CHARSET 311
#define CHAR_SYM 312
#define CHECKSUM_SYM 313
#define CHECK_SYM 314
#define CIPHER_SYM 315
#define CLIENT_SYM 316
#define CLOSE_SYM 317
#define COALESCE 318
#define CODE_SYM 319
#define COLLATE_SYM 320
#define COLLATION_SYM 321
#define COLUMNS 322
#define COLUMN_SYM 323
#define COMMENT_SYM 324
#define COMMITTED_SYM 325
#define COMMIT_SYM 326
#define COMPACT_SYM 327
#define COMPLETION_SYM 328
#define COMPRESSED_SYM 329
#define CONCURRENT 330
#define CONDITION_SYM 331
#define CONNECTION_SYM 332
#define CONSISTENT_SYM 333
#define CONSTRAINT 334
#define CONTAINS_SYM 335
#define CONTINUE_SYM 336
#define CONTRIBUTORS_SYM 337
#define CONVERT_SYM 338
#define COUNT_SYM 339
#define CREATE 340
#define CROSS 341
#define CUBE_SYM 342
#define CURDATE 343
#define CURRENT_USER 344
#define CURSOR_SYM 345
#define CURTIME 346
#define DATABASE 347
#define DATABASES 348
#define DATAFILE_SYM 349
#define DATA_SYM 350
#define DATETIME 351
#define DATE_ADD_INTERVAL 352
#define DATE_SUB_INTERVAL 353
#define DATE_SYM 354
#define DAY_HOUR_SYM 355
#define DAY_MICROSECOND_SYM 356
#define DAY_MINUTE_SYM 357
#define DAY_SECOND_SYM 358
#define DAY_SYM 359
#define DEALLOCATE_SYM 360
#define DECIMAL_NUM 361
#define DECIMAL_SYM 362
#define DECLARE_SYM 363
#define DEFAULT 364
#define DEFINER_SYM 365
#define DELAYED_SYM 366
#define DELAY_KEY_WRITE_SYM 367
#define DELETE_SYM 368
#define DESC 369
#define DESCRIBE 370
#define DES_KEY_FILE 371
#define DETERMINISTIC_SYM 372
#define DIRECTORY_SYM 373
#define DISABLE_SYM 374
#define DISCARD 375
#define DISK_SYM 376
#define DISTINCT 377
#define DIV_SYM 378
#define DOUBLE_SYM 379
#define DO_SYM 380
#define DROP 381
#define DUAL_SYM 382
#define DUMPFILE 383
#define DUPLICATE_SYM 384
#define DYNAMIC_SYM 385
#define EACH_SYM 386
#define ELSE 387
#define ELSEIF_SYM 388
#define ENABLE_SYM 389
#define ENCLOSED 390
#define END 391
#define ENDS_SYM 392
#define END_OF_INPUT 393
#define ENGINES_SYM 394
#define ENGINE_SYM 395
#define ENUM 396
#define EQ 397
#define EQUAL_SYM 398
#define ERRORS 399
#define ESCAPED 400
#define ESCAPE_SYM 401
#define EVENTS_SYM 402
#define EVENT_SYM 403
#define EVERY_SYM 404
#define EXECUTE_SYM 405
#define EXISTS 406
#define EXIT_SYM 407
#define EXPANSION_SYM 408
#define EXTENDED_SYM 409
#define EXTENT_SIZE_SYM 410
#define EXTRACT_SYM 411
#define FALSE_SYM 412
#define FAST_SYM 413
#define FETCH_SYM 414
#define FILE_SYM 415
#define FIRST_SYM 416
#define FIXED_SYM 417
#define FLOAT_NUM 418
#define FLOAT_SYM 419
#define FLUSH_SYM 420
#define FORCE_SYM 421
#define FOREIGN 422
#define FOR_SYM 423
#define FOUND_SYM 424
#define FRAC_SECOND_SYM 425
#define FROM 426
#define FULL 427
#define FULLTEXT_SYM 428
#define FUNCTION_SYM 429
#define GE 430
#define GEOMETRYCOLLECTION 431
#define GEOMETRY_SYM 432
#define GET_FORMAT 433
#define GLOBAL_SYM 434
#define GRANT 435
#define GRANTS 436
#define GROUP_SYM 437
#define GROUP_CONCAT_SYM 438
#define GT_SYM 439
#define HANDLER_SYM 440
#define HASH_SYM 441
#define HAVING 442
#define HELP_SYM 443
#define HEX_NUM 444
#define HIGH_PRIORITY 445
#define HOST_SYM 446
#define HOSTS_SYM 447
#define HOUR_MICROSECOND_SYM 448
#define HOUR_MINUTE_SYM 449
#define HOUR_SECOND_SYM 450
#define HOUR_SYM 451
#define IDENT 452
#define IDENTIFIED_SYM 453
#define IDENT_QUOTED 454
#define IF 455
#define IGNORE_SYM 456
#define IMPORT 457
#define INDEXES 458
#define INDEX_SYM 459
#define INFILE 460
#define INITIAL_SIZE_SYM 461
#define INNER_SYM 462
#define INNOBASE_SYM 463
#define INOUT_SYM 464
#define INSENSITIVE_SYM 465
#define INSERT 466
#define INSERT_METHOD 467
#define INSTALL_SYM 468
#define INTERVAL_SYM 469
#define INTO 470
#define INT_SYM 471
#define INVOKER_SYM 472
#define IN_SYM 473
#define IS 474
#define ISOLATION 475
#define ISSUER_SYM 476
#define ITERATE_SYM 477
#define JOIN_SYM 478
#define KEYS 479
#define KEY_BLOCK_SIZE 480
#define KEY_SYM 481
#define KILL_SYM 482
#define LANGUAGE_SYM 483
#define LAST_SYM 484
#define LE 485
#define LEADING 486
#define LEAVES 487
#define LEAVE_SYM 488
#define LEFT 489
#define LESS_SYM 490
#define LEVEL_SYM 491
#define LEX_HOSTNAME 492
#define LIKE 493
#define LIMIT 494
#define LINEAR_SYM 495
#define LINES 496
#define LINESTRING 497
#define LIST_SYM 498
#define LOAD 499
#define LOCAL_SYM 500
#define LOCATOR_SYM 501
#define LOCKS_SYM 502
#define LOCK_SYM 503
#define LOGFILE_SYM 504
#define LOGS_SYM 505
#define LONGBLOB 506
#define LONGTEXT 507
#define LONG_NUM 508
#define LONG_SYM 509
#define LOOP_SYM 510
#define LOW_PRIORITY 511
#define LT 512
#define MASTER_CONNECT_RETRY_SYM 513
#define MASTER_HOST_SYM 514
#define MASTER_LOG_FILE_SYM 515
#define MASTER_LOG_POS_SYM 516
#define MASTER_PASSWORD_SYM 517
#define MASTER_PORT_SYM 518
#define MASTER_SERVER_ID_SYM 519
#define MASTER_SSL_CAPATH_SYM 520
#define MASTER_SSL_CA_SYM 521
#define MASTER_SSL_CERT_SYM 522
#define MASTER_SSL_CIPHER_SYM 523
#define MASTER_SSL_KEY_SYM 524
#define MASTER_SSL_SYM 525
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 526
#define MASTER_SYM 527
#define MASTER_USER_SYM 528
#define MATCH 529
#define MAX_CONNECTIONS_PER_HOUR 530
#define MAX_QUERIES_PER_HOUR 531
#define MAX_ROWS 532
#define MAX_SIZE_SYM 533
#define MAX_SYM 534
#define MAX_UPDATES_PER_HOUR 535
#define MAX_USER_CONNECTIONS_SYM 536
#define MAX_VALUE_SYM 537
#define MEDIUMBLOB 538
#define MEDIUMINT 539
#define MEDIUMTEXT 540
#define MEDIUM_SYM 541
#define MEMORY_SYM 542
#define MERGE_SYM 543
#define MICROSECOND_SYM 544
#define MIGRATE_SYM 545
#define MINUTE_MICROSECOND_SYM 546
#define MINUTE_SECOND_SYM 547
#define MINUTE_SYM 548
#define MIN_ROWS 549
#define MIN_SYM 550
#define MODE_SYM 551
#define MODIFIES_SYM 552
#define MODIFY_SYM 553
#define MOD_SYM 554
#define MONTH_SYM 555
#define MULTILINESTRING 556
#define MULTIPOINT 557
#define MULTIPOLYGON 558
#define MUTEX_SYM 559
#define NAMES_SYM 560
#define NAME_SYM 561
#define NATIONAL_SYM 562
#define NATURAL 563
#define NCHAR_STRING 564
#define NCHAR_SYM 565
#define NDBCLUSTER_SYM 566
#define NE 567
#define NEG 568
#define NEW_SYM 569
#define NEXT_SYM 570
#define NODEGROUP_SYM 571
#define NONE_SYM 572
#define NOT2_SYM 573
#define NOT_SYM 574
#define NOW_SYM 575
#define NO_SYM 576
#define NO_WAIT_SYM 577
#define NO_WRITE_TO_BINLOG 578
#define NULL_SYM 579
#define NUM 580
#define NUMERIC_SYM 581
#define NVARCHAR_SYM 582
#define OFFSET_SYM 583
#define OLD_PASSWORD 584
#define ON 585
#define ONE_SHOT_SYM 586
#define ONE_SYM 587
#define OPEN_SYM 588
#define OPTIMIZE 589
#define OPTIONS_SYM 590
#define OPTION 591
#define OPTIONALLY 592
#define OR2_SYM 593
#define ORDER_SYM 594
#define OR_OR_SYM 595
#define OR_SYM 596
#define OUTER 597
#define OUTFILE 598
#define OUT_SYM 599
#define OWNER_SYM 600
#define PACK_KEYS_SYM 601
#define PAGE_SYM 602
#define PARAM_MARKER 603
#define PARSER_SYM 604
#define PARTIAL 605
#define PARTITIONING_SYM 606
#define PARTITIONS_SYM 607
#define PARTITION_SYM 608
#define PASSWORD 609
#define PHASE_SYM 610
#define PLUGINS_SYM 611
#define PLUGIN_SYM 612
#define POINT_SYM 613
#define POLYGON 614
#define PORT_SYM 615
#define POSITION_SYM 616
#define PRECISION 617
#define PREPARE_SYM 618
#define PRESERVE_SYM 619
#define PREV_SYM 620
#define PRIMARY_SYM 621
#define PRIVILEGES 622
#define PROCEDURE 623
#define PROCESS 624
#define PROCESSLIST_SYM 625
#define PURGE 626
#define QUARTER_SYM 627
#define QUERY_SYM 628
#define QUICK 629
#define RANGE_SYM 630
#define READS_SYM 631
#define READ_ONLY_SYM 632
#define READ_SYM 633
#define READ_WRITE_SYM 634
#define REAL 635
#define REBUILD_SYM 636
#define RECOVER_SYM 637
#define REDOFILE_SYM 638
#define REDO_BUFFER_SIZE_SYM 639
#define REDUNDANT_SYM 640
#define REFERENCES 641
#define REGEXP 642
#define RELAY_LOG_FILE_SYM 643
#define RELAY_LOG_POS_SYM 644
#define RELAY_THREAD 645
#define RELEASE_SYM 646
#define RELOAD 647
#define REMOVE_SYM 648
#define RENAME 649
#define REORGANIZE_SYM 650
#define REPAIR 651
#define REPEATABLE_SYM 652
#define REPEAT_SYM 653
#define REPLACE 654
#define REPLICATION 655
#define REQUIRE_SYM 656
#define RESET_SYM 657
#define RESOURCES 658
#define RESTORE_SYM 659
#define RESTRICT 660
#define RESUME_SYM 661
#define RETURNS_SYM 662
#define RETURN_SYM 663
#define REVOKE 664
#define RIGHT 665
#define ROLLBACK_SYM 666
#define ROLLUP_SYM 667
#define ROUTINE_SYM 668
#define ROWS_SYM 669
#define ROW_FORMAT_SYM 670
#define ROW_SYM 671
#define RTREE_SYM 672
#define SAVEPOINT_SYM 673
#define SCHEDULE_SYM 674
#define SECOND_MICROSECOND_SYM 675
#define SECOND_SYM 676
#define SECURITY_SYM 677
#define SELECT_SYM 678
#define SENSITIVE_SYM 679
#define SEPARATOR_SYM 680
#define SERIALIZABLE_SYM 681
#define SERIAL_SYM 682
#define SESSION_SYM 683
#define SERVER_SYM 684
#define SERVER_OPTIONS 685
#define SET 686
#define SET_VAR 687
#define SHARE_SYM 688
#define SHIFT_LEFT 689
#define SHIFT_RIGHT 690
#define SHOW 691
#define SHUTDOWN 692
#define SIGNED_SYM 693
#define SIMPLE_SYM 694
#define SLAVE 695
#define SMALLINT 696
#define SNAPSHOT_SYM 697
#define SOCKET_SYM 698
#define SONAME_SYM 699
#define SOUNDS_SYM 700
#define SPATIAL_SYM 701
#define SPECIFIC_SYM 702
#define SQLEXCEPTION_SYM 703
#define SQLSTATE_SYM 704
#define SQLWARNING_SYM 705
#define SQL_BIG_RESULT 706
#define SQL_BUFFER_RESULT 707
#define SQL_CACHE_SYM 708
#define SQL_CALC_FOUND_ROWS 709
#define SQL_NO_CACHE_SYM 710
#define SQL_SMALL_RESULT 711
#define SQL_SYM 712
#define SQL_THREAD 713
#define SSL_SYM 714
#define STARTING 715
#define STARTS_SYM 716
#define START_SYM 717
#define STATUS_SYM 718
#define STDDEV_SAMP_SYM 719
#define STD_SYM 720
#define STOP_SYM 721
#define STORAGE_SYM 722
#define STRAIGHT_JOIN 723
#define STRING_SYM 724
#define SUBDATE_SYM 725
#define SUBJECT_SYM 726
#define SUBPARTITIONS_SYM 727
#define SUBPARTITION_SYM 728
#define SUBSTRING 729
#define SUM_SYM 730
#define SUPER_SYM 731
#define SUSPEND_SYM 732
#define SYSDATE 733
#define TABLES 734
#define TABLESPACE 735
#define TABLE_REF_PRIORITY 736
#define TABLE_SYM 737
#define TEMPORARY 738
#define TEMPTABLE_SYM 739
#define TERMINATED 740
#define TEXT_STRING 741
#define TEXT_SYM 742
#define THAN_SYM 743
#define THEN_SYM 744
#define TIMESTAMP 745
#define TIMESTAMP_ADD 746
#define TIMESTAMP_DIFF 747
#define TIME_SYM 748
#define TINYBLOB 749
#define TINYINT 750
#define TINYTEXT 751
#define TO_SYM 752
#define TRAILING 753
#define TRANSACTION_SYM 754
#define TRANSACTIONAL_SYM 755
#define TRIGGERS_SYM 756
#define TRIGGER_SYM 757
#define TRIM 758
#define TRUE_SYM 759
#define TRUNCATE_SYM 760
#define TYPES_SYM 761
#define TYPE_SYM 762
#define UDF_RETURNS_SYM 763
#define ULONGLONG_NUM 764
#define UNCOMMITTED_SYM 765
#define UNDEFINED_SYM 766
#define UNDERSCORE_CHARSET 767
#define UNDOFILE_SYM 768
#define UNDO_BUFFER_SIZE_SYM 769
#define UNDO_SYM 770
#define UNICODE_SYM 771
#define UNINSTALL_SYM 772
#define UNION_SYM 773
#define UNIQUE_SYM 774
#define UNKNOWN_SYM 775
#define UNLOCK_SYM 776
#define UNSIGNED 777
#define UNTIL_SYM 778
#define UPDATE_SYM 779
#define UPGRADE_SYM 780
#define USAGE 781
#define USER 782
#define USE_FRM 783
#define USE_SYM 784
#define USING 785
#define UTC_DATE_SYM 786
#define UTC_TIMESTAMP_SYM 787
#define UTC_TIME_SYM 788
#define VALUES 789
#define VALUE_SYM 790
#define VARBINARY 791
#define VARCHAR 792
#define VARIABLES 793
#define VARIANCE_SYM 794
#define VARYING 795
#define VAR_SAMP_SYM 796
#define VIEW_SYM 797
#define WAIT_SYM 798
#define WARNINGS 799
#define WEEK_SYM 800
#define WHEN_SYM 801
#define WHERE 802
#define WHILE_SYM 803
#define WITH 804
#define WORK_SYM 805
#define WRAPPER_SYM 806
#define WRITE_SYM 807
#define X509_SYM 808
#define XA_SYM 809
#define XOR 810
#define YEAR_MONTH_SYM 811
#define YEAR_SYM 812
#define ZEROFILL 813




/* Copy the first part of user declarations.  */
#line 18 "sql_yacc.yy"

/* thd is passed as an arg to yyparse(), and subsequently to yylex().
** The type will be void*, so it must be  cast to (THD*) when used.
** Use the YYTHD macro for this.
*/
#define YYPARSE_PARAM yythd
#define YYLEX_PARAM yythd
#define YYTHD ((THD *)yythd)

#define MYSQL_YACC
#define YYINITDEPTH 100
#define YYMAXDEPTH 3200				/* Because of 64K stack */
#define Lex (YYTHD->lex)
#define Select Lex->current_select
#include "mysql_priv.h"
#include "slave.h"
#include "lex_symbol.h"
#include "item_create.h"
#include "sp_head.h"
#include "sp_pcontext.h"
#include "sp_rcontext.h"
#include "sp.h"
#include "event_data_objects.h"
#include <myisam.h>
#include <myisammrg.h>

int yylex(void *yylval, void *yythd);

const LEX_STRING null_lex_str={0,0};

#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; }}

#define MYSQL_YYABORT                         \
  do                                          \
  {					\
    LEX::cleanup_lex_after_parse_error(YYTHD);\
    YYABORT;				\
  } while (0)

#define MYSQL_YYABORT_UNLESS(A)         \
  if (!(A))                             \
  {                                     \
    my_parse_error(ER(ER_SYNTAX_ERROR));\
    MYSQL_YYABORT;                      \
  }

/*
  Work around for broken code generated by bison 1.875.

  The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok.
  With bison 1.875 however, the generated code contains:
<pre>
  yyerrlab1:
  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
    __attribute__ ((__unused__))
  #endif
</pre>
  This usage of __attribute__ is illegal, so we remove it.
  See the following references for details:
  http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
*/

#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
#undef __attribute__
#define __attribute__(X)
#endif


#ifndef DBUG_OFF
#define YYDEBUG 1
#else
#define YYDEBUG 0
#endif

/**
  @brief Push an error message into MySQL error stack with line
  and position information.

  This function provides semantic action implementers with a way
  to push the famous "You have a syntax error near..." error
  message into the error stack, which is normally produced only if
  a parse error is discovered internally by the Bison generated
  parser.
*/

void my_parse_error(const char *s)
{
  THD *thd= current_thd;
  Lex_input_stream *lip= thd->m_lip;

  const char *yytext= lip->get_tok_start();
  /* Push an error into the error stack */
  my_printf_error(ER_PARSE_ERROR,  ER(ER_PARSE_ERROR), MYF(0), s,
                  (yytext ? yytext : ""),
                  lip->yylineno);
}

/**
  @brief Bison callback to report a syntax/OOM error

  This function is invoked by the bison-generated parser
  when a syntax error, a parse error or an out-of-memory
  condition occurs. This function is not invoked when the
  parser is requested to abort by semantic action code
  by means of YYABORT or YYACCEPT macros. This is why these
  macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT
  instead).

  The parser will abort immediately after invoking this callback.

  This function is not for use in semantic actions and is internal to
  the parser, as it performs some pre-return cleanup. 
  In semantic actions, please use my_parse_error or my_error to
  push an error into the error stack and MYSQL_YYABORT
  to abort from the parser.
*/

void MYSQLerror(const char *s)
{
  THD *thd= current_thd;

  /*
    Restore the original LEX if it was replaced when parsing
    a stored procedure. We must ensure that a parsing error
    does not leave any side effects in the THD.
  */
  LEX::cleanup_lex_after_parse_error(thd);

  /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */
  if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0)
    s= ER(ER_SYNTAX_ERROR);
  my_parse_error(s);
}


#ifndef DBUG_OFF
void turn_parser_debug_on()
{
  /*
     MYSQLdebug is in sql/sql_yacc.cc, in bison generated code.
     Turning this option on is **VERY** verbose, and should be
     used when investigating a syntax error problem only.

     The syntax to run with bison traces is as follows :
     - Starting a server manually :
       mysqld --debug="d,parser_debug" ...
     - Running a test :
       mysql-test-run.pl --mysqld="--debug=d,parser_debug" ...

     The result will be in the process stderr (var/log/master.err)
   */

  extern int yydebug;
  yydebug= 1;
}
#endif

static bool is_native_function(THD *thd, const LEX_STRING *name)
{
  if (find_native_function_builder(thd, *name))
    return true;

  if (is_lex_native_function(name))
    return true;

  return false;
}


/**
  Helper action for a case statement (entering the CASE).
  This helper is used for both 'simple' and 'searched' cases.
  This helper, with the other case_stmt_action_..., is executed when
  the following SQL code is parsed:
<pre>
CREATE PROCEDURE proc_19194_simple(i int)
BEGIN
  DECLARE str CHAR(10);

  CASE i
    WHEN 1 THEN SET str="1";
    WHEN 2 THEN SET str="2";
    WHEN 3 THEN SET str="3";
    ELSE SET str="unknown";
  END CASE;

  SELECT str;
END
</pre>
  The actions are used to generate the following code:
<pre>
SHOW PROCEDURE CODE proc_19194_simple;
Pos     Instruction
0       set str@1 NULL
1       set_case_expr (12) 0 i@0
2       jump_if_not 5(12) (case_expr@0 = 1)
3       set str@1 _latin1'1'
4       jump 12
5       jump_if_not 8(12) (case_expr@0 = 2)
6       set str@1 _latin1'2'
7       jump 12
8       jump_if_not 11(12) (case_expr@0 = 3)
9       set str@1 _latin1'3'
10      jump 12
11      set str@1 _latin1'unknown'
12      stmt 0 "SELECT str"
</pre>

  @param lex the parser lex context
*/

void case_stmt_action_case(LEX *lex)
{
  lex->sphead->new_cont_backpatch(NULL);

  /*
    BACKPATCH: Creating target label for the jump to
    "case_stmt_action_end_case"
    (Instruction 12 in the example)
  */

  lex->spcont->push_label((char *)"", lex->sphead->instructions());
}

/**
  Helper action for a case expression statement (the expr in 'CASE expr').
  This helper is used for 'searched' cases only.
  @param lex the parser lex context
  @param expr the parsed expression
  @return 0 on success
*/

int case_stmt_action_expr(LEX *lex, Item* expr)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *parsing_ctx= lex->spcont;
  int case_expr_id= parsing_ctx->register_case_expr();
  sp_instr_set_case_expr *i;

  if (parsing_ctx->push_case_expr_id(case_expr_id))
    return 1;

  i= new sp_instr_set_case_expr(sp->instructions(),
                                parsing_ctx, case_expr_id, expr, lex);

  sp->add_cont_backpatch(i);
  sp->add_instr(i);

  return 0;
}

/**
  Helper action for a case when condition.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param when the parsed expression for the WHEN clause
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_when(LEX *lex, Item *when, bool simple)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump_if_not *i;
  Item_case_expr *var;
  Item *expr;

  if (simple)
  {
    var= new Item_case_expr(ctx->get_current_case_expr_id());

#ifndef DBUG_OFF
    if (var)
    {
      var->m_sp= sp;
    }
#endif

    expr= new Item_func_eq(var, when);
    i= new sp_instr_jump_if_not(ip, ctx, expr, lex);
  }
  else
    i= new sp_instr_jump_if_not(ip, ctx, when, lex);

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->push_backpatch(i, ctx->push_label((char *)"", 0));
  sp->add_cont_backpatch(i);
  sp->add_instr(i);
}

/**
  Helper action for a case then statements.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
*/

void case_stmt_action_then(LEX *lex)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump *i = new sp_instr_jump(ip, ctx);
  sp->add_instr(i);

  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->backpatch(ctx->pop_label());

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */

  sp->push_backpatch(i, ctx->last_label());
}

/**
  Helper action for an end case.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_end_case(LEX *lex, bool simple)
{
  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */
  lex->sphead->backpatch(lex->spcont->pop_label());

  if (simple)
    lex->spcont->pop_case_expr_id();

  lex->sphead->do_cont_backpatch();
}

/**
  Helper to resolve the SQL:2003 Syntax exception 1) in <in predicate>.
  See SQL:2003, Part 2, section 8.4 <in predicate>, Note 184, page 383.
  This function returns the proper item for the SQL expression
  <code>left [NOT] IN ( expr )</code>
  @param thd the current thread
  @param left the in predicand
  @param equal true for IN predicates, false for NOT IN predicates
  @param expr first and only expression of the in value list
  @return an expression representing the IN predicate.
*/
Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
                                       Item *expr)
{
  /*
    Relevant references for this issue:
    - SQL:2003, Part 2, section 8.4 <in predicate>, page 383,
    - SQL:2003, Part 2, section 7.2 <row value expression>, page 296,
    - SQL:2003, Part 2, section 6.3 <value expression primary>, page 174,
    - SQL:2003, Part 2, section 7.15 <subquery>, page 370,
    - SQL:2003 Feature F561, "Full value expressions".

    The exception in SQL:2003 Note 184 means:
    Item_singlerow_subselect, which corresponds to a <scalar subquery>,
    should be re-interpreted as an Item_in_subselect, which corresponds
    to a <table subquery> when used inside an <in predicate>.

    Our reading of Note 184 is reccursive, so that all:
    - IN (( <subquery> ))
    - IN ((( <subquery> )))
    - IN '('^N <subquery> ')'^N
    - etc
    should be interpreted as a <table subquery>, no matter how deep in the
    expression the <subquery> is.
  */

  Item *result;

  DBUG_ENTER("handle_sql2003_note184_exception");

  if (expr->type() == Item::SUBSELECT_ITEM)
  {
    Item_subselect *expr2 = (Item_subselect*) expr;

    if (expr2->substype() == Item_subselect::SINGLEROW_SUBS)
    {
      Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2;
      st_select_lex *subselect;

      /*
        Implement the mandated change, by altering the semantic tree:
          left IN Item_singlerow_subselect(subselect)
        is modified to
          left IN (subselect)
        which is represented as
          Item_in_subselect(left, subselect)
      */
      subselect= expr3->invalidate_and_restore_select_lex();
      result= new (thd->mem_root) Item_in_subselect(left, subselect);

      if (! equal)
        result = negate_expression(thd, result);

      DBUG_RETURN(result);
    }
  }

  if (equal)
    result= new (thd->mem_root) Item_func_eq(left, expr);
  else
    result= new (thd->mem_root) Item_func_ne(left, expr);

  DBUG_RETURN(result);
}



/* 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 444 "sql_yacc.yy"
typedef union YYSTYPE {
  int  num;
  ulong ulong_num;
  ulonglong ulonglong_number;
  longlong longlong_number;
  LEX_STRING lex_str;
  LEX_STRING *lex_str_ptr;
  LEX_SYMBOL symbol;
  Table_ident *table;
  char *simple_string;
  Item *item;
  Item_num *item_num;
  List<Item> *item_list;
  List<String> *string_list;
  String *string;
  Key_part_spec *key_part;
  TABLE_LIST *table_list;
  udf_func *udf;
  LEX_USER *lex_user;
  struct sys_var_with_base variable;
  enum enum_var_type var_type;
  Key::Keytype key_type;
  enum ha_key_alg key_alg;
  handlerton *db_type;
  enum row_type row_type;
  enum ha_rkey_function ha_rkey_mode;
  enum enum_tx_isolation tx_isolation;
  enum Cast_target cast_type;
  enum Item_udftype udf_type;
  CHARSET_INFO *charset;
  thr_lock_type lock_type;
  interval_type interval, interval_time_st;
  timestamp_type date_time_type;
  st_select_lex *select_lex;
  chooser_compare_func_creator boolfunc2creator;
  struct sp_cond_type *spcondtype;
  struct { int vars, conds, hndlrs, curs; } spblock;
  sp_name *spname;
  struct st_lex *lex;
  sp_head *sphead;
  struct p_elem_val *p_elem_value;
  enum index_hint_type index_hint;
} YYSTYPE;
/* Line 190 of yacc.c.  */
#line 1671 "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 488 "sql_yacc.yy"

bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);


/* Line 213 of yacc.c.  */
#line 1686 "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
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   else
#    define YYSTACK_ALLOC 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 <stdlib.h> /* 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 int 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 int) + 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 int yysigned_char;
#endif

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

/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS  578
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS  845
/* YYNRULES -- Number of rules. */
#define YYNRULES  2343
/* YYNRULES -- Number of states. */
#define YYNSTATES  4006

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

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

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

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const unsigned short int 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,
      80,    82,    84,    86,    88,    90,    92,    94,    96,    98,
     100,   102,   104,   106,   108,   110,   112,   114,   118,   120,
     122,   127,   129,   132,   133,   138,   139,   142,   146,   148,
     151,   152,   156,   157,   163,   165,   169,   173,   177,   181,
     185,   189,   193,   197,   201,   205,   209,   213,   217,   219,
     223,   227,   231,   235,   236,   244,   245,   258,   259,   266,
     267,   271,   276,   281,   285,   288,   299,   301,   305,   308,
     311,   314,   317,   320,   323,   326,   327,   340,   341,   348,
     351,   352,   354,   358,   360,   361,   364,   365,   368,   369,
     371,   375,   380,   381,   384,   385,   388,   390,   392,   394,
     396,   398,   400,   402,   404,   406,   408,   410,   411,   415,
     417,   422,   423,   424,   425,   426,   427,   440,   441,   444,
     445,   448,   451,   454,   457,   460,   464,   468,   470,   472,
     474,   477,   481,   485,   486,   491,   492,   496,   497,   499,
     503,   505,   506,   508,   512,   514,   515,   519,   520,   522,
     526,   528,   533,   534,   536,   538,   540,   541,   545,   548,
     552,   553,   557,   558,   564,   570,   571,   579,   585,   586,
     589,   591,   593,   595,   599,   601,   603,   607,   608,   610,
     612,   614,   616,   619,   621,   623,   627,   628,   631,   633,
     635,   637,   639,   641,   643,   645,   647,   649,   651,   653,
     654,   660,   661,   664,   665,   669,   670,   673,   676,   679,
     682,   683,   690,   693,   694,   697,   699,   701,   705,   706,
     707,   708,   716,   717,   720,   723,   725,   727,   728,   729,
     738,   739,   746,   748,   751,   753,   756,   757,   758,   765,
     766,   767,   774,   775,   778,   779,   785,   786,   788,   789,
     795,   800,   801,   802,   811,   812,   820,   822,   824,   826,
     828,   830,   833,   838,   844,   845,   850,   855,   860,   864,
     868,   871,   874,   875,   878,   880,   883,   887,   889,   891,
     893,   894,   897,   899,   902,   906,   908,   910,   912,   914,
     916,   918,   920,   922,   923,   926,   928,   931,   935,   937,
     939,   941,   943,   945,   946,   949,   951,   954,   958,   960,
     962,   964,   966,   968,   970,   972,   973,   976,   978,   981,
     985,   987,   989,   991,   994,   997,  1000,  1002,  1004,  1006,
    1008,  1011,  1015,  1019,  1023,  1027,  1031,  1035,  1039,  1043,
    1048,  1049,  1051,  1053,  1055,  1057,  1059,  1062,  1063,  1068,
    1071,  1076,  1077,  1084,  1085,  1086,  1093,  1094,  1095,  1101,
    1102,  1110,  1111,  1113,  1114,  1118,  1119,  1123,  1124,  1125,
    1133,  1139,  1140,  1145,  1146,  1150,  1151,  1155,  1156,  1158,
    1159,  1161,  1163,  1167,  1169,  1175,  1181,  1182,  1185,  1186,
    1187,  1195,  1196,  1206,  1208,  1212,  1214,  1216,  1217,  1220,
    1221,  1225,  1227,  1231,  1232,  1233,  1234,  1235,  1245,  1247,
    1248,  1253,  1259,  1261,  1263,  1265,  1269,  1273,  1275,  1279,
    1281,  1283,  1284,  1288,  1290,  1294,  1295,  1300,  1302,  1303,
    1305,  1308,  1310,  1314,  1319,  1323,  1327,  1331,  1336,  1341,
    1345,  1346,  1347,  1354,  1355,  1357,  1358,  1360,  1362,  1365,
    1367,  1369,  1370,  1372,  1374,  1377,  1379,  1380,  1384,  1385,
    1387,  1389,  1392,  1394,  1397,  1401,  1405,  1409,  1413,  1417,
    1421,  1425,  1429,  1433,  1437,  1441,  1445,  1449,  1453,  1459,
    1461,  1463,  1467,  1472,  1477,  1480,  1483,  1486,  1490,  1494,
    1498,  1503,  1508,  1510,  1512,  1514,  1516,  1518,  1520,  1522,
    1524,  1526,  1528,  1530,  1532,  1534,  1537,  1538,  1540,  1542,
    1544,  1546,  1548,  1550,  1554,  1556,  1558,  1561,  1564,  1572,
    1581,  1590,  1593,  1596,  1597,  1599,  1602,  1603,  1605,  1608,
    1609,  1614,  1618,  1622,  1626,  1628,  1633,  1635,  1637,  1643,
    1646,  1652,  1655,  1660,  1662,  1668,  1674,  1679,  1683,  1685,
    1687,  1690,  1692,  1694,  1697,  1699,  1701,  1703,  1706,  1710,
    1713,  1717,  1720,  1723,  1727,  1731,  1735,  1736,  1743,  1744,
    1751,  1754,  1756,  1758,  1760,  1762,  1764,  1766,  1768,  1770,
    1772,  1774,  1776,  1779,  1782,  1784,  1787,  1789,  1792,  1796,
    1799,  1801,  1803,  1805,  1807,  1809,  1811,  1813,  1816,  1817,
    1821,  1823,  1829,  1830,  1832,  1835,  1837,  1839,  1841,  1843,
    1844,  1848,  1849,  1851,  1852,  1854,  1857,  1859,  1861,  1864,
    1867,  1872,  1874,  1878,  1881,  1883,  1886,  1889,  1892,  1895,
    1897,  1900,  1902,  1904,  1906,  1908,  1910,  1911,  1914,  1916,
    1918,  1920,  1922,  1924,  1925,  1928,  1930,  1932,  1933,  1935,
    1936,  1939,  1941,  1944,  1948,  1951,  1952,  1954,  1955,  1957,
    1959,  1962,  1963,  1965,  1966,  1971,  1973,  1978,  1982,  1984,
    1985,  1987,  1990,  1992,  1996,  2000,  2003,  2006,  2009,  2011,
    2013,  2016,  2019,  2022,  2024,  2027,  2030,  2033,  2036,  2038,
    2040,  2041,  2043,  2045,  2047,  2049,  2050,  2052,  2054,  2056,
    2057,  2059,  2062,  2063,  2065,  2067,  2070,  2073,  2076,  2078,
    2082,  2086,  2088,  2090,  2092,  2097,  2100,  2102,  2107,  2108,
    2110,  2111,  2114,  2116,  2120,  2121,  2128,  2129,  2135,  2136,
    2142,  2143,  2149,  2150,  2156,  2157,  2162,  2163,  2174,  2178,
    2183,  2187,  2191,  2199,  2200,  2204,  2206,  2211,  2212,  2216,
    2217,  2220,  2221,  2223,  2224,  2227,  2230,  2233,  2236,  2238,
    2240,  2242,  2246,  2251,  2252,  2260,  2261,  2268,  2269,  2275,
    2276,  2283,  2288,  2290,  2293,  2295,  2297,  2298,  2304,  2305,
    2309,  2312,  2313,  2319,  2320,  2321,  2328,  2330,  2334,  2336,
    2338,  2342,  2345,  2349,  2352,  2357,  2358,  2365,  2366,  2367,
    2376,  2381,  2386,  2390,  2394,  2397,  2400,  2407,  2413,  2417,
    2423,  2425,  2427,  2429,  2430,  2432,  2433,  2435,  2436,  2438,
    2440,  2441,  2444,  2446,  2447,  2449,  2451,  2453,  2454,  2460,
    2464,  2465,  2471,  2475,  2479,  2480,  2484,  2485,  2488,  2490,
    2494,  2495,  2497,  2499,  2500,  2503,  2505,  2509,  2510,  2517,
    2518,  2525,  2526,  2532,  2533,  2535,  2537,  2538,  2545,  2546,
    2548,  2550,  2553,  2555,  2557,  2559,  2560,  2567,  2570,  2571,
    2577,  2578,  2580,  2582,  2585,  2587,  2589,  2591,  2593,  2595,
    2598,  2599,  2606,  2607,  2609,  2611,  2612,  2617,  2618,  2623,
    2628,  2632,  2638,  2640,  2644,  2648,  2652,  2658,  2660,  2664,
    2667,  2669,  2671,  2672,  2679,  2681,  2685,  2689,  2690,  2693,
    2694,  2699,  2700,  2703,  2705,  2708,  2713,  2716,  2720,  2721,
    2725,  2726,  2727,  2734,  2737,  2739,  2741,  2744,  2747,  2756,
    2761,  2762,  2764,  2767,  2769,  2771,  2773,  2775,  2777,  2779,
    2781,  2783,  2785,  2787,  2789,  2790,  2793,  2798,  2802,  2804,
    2806,  2811,  2812,  2813,  2815,  2817,  2818,  2821,  2824,  2826,
    2828,  2829,  2832,  2833,  2837,  2838,  2842,  2846,  2847,  2851,
    2852,  2856,  2859,  2861,  2865,  2870,  2874,  2879,  2883,  2888,
    2890,  2894,  2899,  2903,  2907,  2914,  2916,  2922,  2929,  2935,
    2943,  2950,  2959,  2965,  2972,  2977,  2982,  2988,  2992,  2997,
    2999,  3003,  3005,  3009,  3011,  3015,  3019,  3021,  3025,  3029,
    3034,  3039,  3041,  3045,  3049,  3053,  3057,  3061,  3063,  3067,
    3069,  3071,  3073,  3075,  3077,  3079,  3081,  3083,  3085,  3087,
    3089,  3091,  3093,  3095,  3097,  3099,  3101,  3104,  3106,  3108,
    3110,  3112,  3114,  3118,  3120,  3122,  3124,  3126,  3130,  3133,
    3136,  3139,  3142,  3146,  3150,  3156,  3163,  3168,  3173,  3181,
    3184,  3191,  3197,  3204,  3211,  3216,  3221,  3226,  3228,  3233,
    3240,  3243,  3248,  3253,  3258,  3269,  3276,  3281,  3286,  3293,
    3298,  3303,  3308,  3315,  3320,  3328,  3336,  3344,  3351,  3358,
    3365,  3372,  3376,  3381,  3388,  3397,  3400,  3403,  3408,  3416,
    3424,  3431,  3438,  3441,  3446,  3453,  3460,  3469,  3478,  3485,
    3494,  3501,  3504,  3509,  3518,  3527,  3530,  3533,  3536,  3541,
    3546,  3551,  3556,  3560,  3569,  3574,  3581,  3586,  3591,  3596,
    3603,  3612,  3619,  3624,  3631,  3633,  3640,  3645,  3650,  3655,
    3660,  3665,  3672,  3677,  3678,  3684,  3691,  3694,  3698,  3699,
    3704,  3705,  3709,  3710,  3712,  3713,  3716,  3718,  3722,  3727,
    3732,  3738,  3743,  3748,  3753,  3759,  3764,  3765,  3766,  3774,
    3779,  3785,  3790,  3796,  3801,  3806,  3811,  3816,  3821,  3827,
    3828,  3837,  3838,  3842,  3846,  3848,  3853,  3854,  3856,  3857,
    3860,  3861,  3863,  3864,  3868,  3871,  3875,  3878,  3880,  3883,
    3885,  3888,  3890,  3892,  3894,  3897,  3898,  3900,  3901,  3904,
    3906,  3910,  3912,  3916,  3917,  3920,  3922,  3926,  3927,  3929,
    3930,  3933,  3938,  3944,  3946,  3948,  3950,  3952,  3956,  3960,
    3964,  3965,  3972,  3973,  3980,  3981,  3990,  3995,  3996,  4005,
    4006,  4017,  4024,  4025,  4034,  4035,  4046,  4053,  4055,  4058,
    4061,  4062,  4067,  4068,  4080,  4084,  4091,  4092,  4096,  4097,
    4098,  4104,  4105,  4107,  4108,  4110,  4111,  4114,  4118,  4122,
    4124,  4126,  4127,  4135,  4136,  4144,  4146,  4149,  4150,  4151,
    4154,  4155,  4158,  4159,  4161,  4163,  4165,  4167,  4171,  4173,
    4177,  4179,  4181,  4183,  4185,  4187,  4189,  4191,  4193,  4195,
    4197,  4199,  4201,  4203,  4205,  4207,  4209,  4211,  4213,  4215,
    4217,  4219,  4221,  4223,  4225,  4227,  4229,  4230,  4232,  4234,
    4235,  4238,  4239,  4241,  4242,  4243,  4247,  4248,  4249,  4253,
    4256,  4257,  4258,  4263,  4268,  4271,  4272,  4275,  4278,  4282,
    4286,  4288,  4291,  4292,  4294,  4295,  4300,  4305,  4308,  4309,
    4311,  4313,  4314,  4316,  4317,  4319,  4322,  4324,  4328,  4332,
    4334,  4336,  4338,  4340,  4341,  4344,  4346,  4348,  4350,  4352,
    4354,  4356,  4358,  4360,  4362,  4364,  4366,  4368,  4370,  4372,
    4374,  4376,  4378,  4380,  4382,  4384,  4386,  4388,  4390,  4391,
    4392,  4399,  4400,  4402,  4406,  4408,  4412,  4413,  4416,  4420,
    4422,  4425,  4427,  4428,  4432,  4433,  4439,  4442,  4444,  4445,
    4449,  4456,  4457,  4464,  4469,  4474,  4479,  4484,  4490,  4495,
    4500,  4506,  4513,  4518,  4520,  4524,  4526,  4527,  4530,  4531,
    4533,  4534,  4535,  4544,  4545,  4546,  4553,  4554,  4556,  4558,
    4560,  4562,  4564,  4567,  4569,  4571,  4573,  4577,  4582,  4583,
    4587,  4591,  4593,  4596,  4599,  4600,  4604,  4605,  4611,  4615,
    4617,  4621,  4623,  4627,  4629,  4631,  4632,  4634,  4635,  4640,
    4641,  4643,  4647,  4649,  4651,  4653,  4654,  4655,  4662,  4663,
    4664,  4676,  4680,  4682,  4686,  4690,  4692,  4696,  4697,  4699,
    4700,  4705,  4706,  4713,  4714,  4720,  4721,  4728,  4730,  4734,
    4738,  4744,  4745,  4748,  4749,  4752,  4754,  4756,  4758,  4762,
    4763,  4765,  4766,  4770,  4773,  4778,  4783,  4787,  4792,  4797,
    4800,  4802,  4806,  4810,  4817,  4834,  4837,  4840,  4841,  4848,
    4854,  4857,  4860,  4863,  4865,  4867,  4869,  4875,  4881,  4884,
    4887,  4891,  4894,  4897,  4900,  4904,  4907,  4910,  4912,  4916,
    4921,  4925,  4929,  4932,  4935,  4939,  4943,  4947,  4951,  4955,
    4959,  4963,  4967,  4969,  4971,  4973,  4975,  4977,  4978,  4980,
    4981,  4984,  4985,  4987,  4989,  4991,  4992,  4995,  4996,  4999,
    5000,  5003,  5006,  5007,  5012,  5013,  5018,  5020,  5022,  5023,
    5025,  5027,  5028,  5030,  5032,  5033,  5038,  5042,  5044,  5045,
    5049,  5054,  5057,  5059,  5061,  5063,  5065,  5067,  5069,  5071,
    5073,  5074,  5076,  5077,  5081,  5085,  5087,  5089,  5091,  5094,
    5095,  5099,  5103,  5106,  5109,  5113,  5114,  5116,  5118,  5121,
    5122,  5127,  5133,  5134,  5135,  5136,  5137,  5156,  5159,  5160,
    5162,  5163,  5165,  5167,  5168,  5170,  5172,  5173,  5176,  5179,
    5181,  5185,  5190,  5194,  5198,  5199,  5202,  5205,  5207,  5211,
    5215,  5216,  5220,  5221,  5225,  5228,  5232,  5234,  5236,  5239,
    5240,  5243,  5245,  5247,  5250,  5253,  5255,  5257,  5259,  5261,
    5263,  5266,  5269,  5271,  5273,  5275,  5277,  5279,  5281,  5283,
    5286,  5289,  5292,  5295,  5298,  5300,  5302,  5304,  5306,  5308,
    5310,  5312,  5316,  5322,  5324,  5326,  5328,  5330,  5332,  5336,
    5341,  5347,  5349,  5355,  5359,  5362,  5364,  5368,  5371,  5373,
    5375,  5377,  5379,  5381,  5383,  5385,  5387,  5389,  5391,  5393,
    5395,  5397,  5399,  5401,  5405,  5408,  5410,  5412,  5414,  5416,
    5418,  5420,  5422,  5424,  5426,  5428,  5430,  5432,  5434,  5436,
    5438,  5440,  5442,  5444,  5446,  5448,  5450,  5452,  5454,  5456,
    5458,  5460,  5462,  5464,  5466,  5468,  5470,  5472,  5474,  5476,
    5478,  5480,  5482,  5484,  5486,  5488,  5490,  5492,  5494,  5496,
    5498,  5500,  5502,  5504,  5506,  5508,  5510,  5512,  5514,  5516,
    5518,  5520,  5522,  5524,  5526,  5528,  5530,  5532,  5534,  5536,
    5538,  5540,  5542,  5544,  5546,  5548,  5550,  5552,  5554,  5556,
    5558,  5560,  5562,  5564,  5566,  5568,  5570,  5572,  5574,  5576,
    5578,  5580,  5582,  5584,  5586,  5588,  5590,  5592,  5594,  5596,
    5598,  5600,  5602,  5604,  5606,  5608,  5610,  5612,  5614,  5616,
    5618,  5620,  5622,  5624,  5626,  5628,  5630,  5632,  5634,  5636,
    5638,  5640,  5642,  5644,  5646,  5648,  5650,  5652,  5654,  5656,
    5658,  5660,  5662,  5664,  5666,  5668,  5670,  5672,  5674,  5676,
    5678,  5680,  5682,  5684,  5686,  5688,  5690,  5692,  5694,  5696,
    5698,  5700,  5702,  5704,  5706,  5708,  5710,  5712,  5714,  5716,
    5718,  5720,  5722,  5724,  5726,  5728,  5730,  5732,  5734,  5736,
    5738,  5740,  5742,  5744,  5746,  5748,  5750,  5752,  5754,  5756,
    5758,  5760,  5762,  5764,  5766,  5768,  5770,  5772,  5774,  5776,
    5778,  5780,  5782,  5784,  5786,  5788,  5790,  5792,  5794,  5796,
    5798,  5800,  5802,  5804,  5806,  5808,  5810,  5812,  5814,  5816,
    5818,  5820,  5822,  5824,  5826,  5828,  5830,  5832,  5834,  5836,
    5838,  5840,  5842,  5844,  5846,  5848,  5850,  5852,  5854,  5856,
    5858,  5860,  5862,  5864,  5866,  5868,  5870,  5872,  5874,  5876,
    5878,  5880,  5882,  5884,  5886,  5888,  5890,  5892,  5894,  5896,
    5898,  5900,  5902,  5904,  5906,  5908,  5910,  5912,  5914,  5916,
    5918,  5920,  5922,  5924,  5926,  5928,  5930,  5932,  5934,  5936,
    5938,  5940,  5942,  5944,  5946,  5948,  5950,  5952,  5954,  5956,
    5958,  5960,  5962,  5964,  5966,  5968,  5970,  5972,  5974,  5976,
    5978,  5980,  5982,  5984,  5986,  5988,  5990,  5992,  5994,  5996,
    5998,  6000,  6002,  6004,  6005,  6010,  6011,  6013,  6015,  6019,
    6020,  6023,  6025,  6027,  6029,  6031,  6032,  6034,  6035,  6037,
    6039,  6041,  6042,  6045,  6048,  6051,  6053,  6056,  6061,  6067,
    6072,  6079,  6082,  6086,  6090,  6094,  6100,  6102,  6106,  6110,
    6113,  6116,  6119,  6121,  6123,  6128,  6133,  6135,  6137,  6139,
    6141,  6143,  6144,  6149,  6151,  6153,  6155,  6159,  6163,  6165,
    6167,  6170,  6173,  6174,  6178,  6183,  6187,  6188,  6196,  6198,
    6201,  6203,  6205,  6207,  6209,  6211,  6213,  6214,  6220,  6222,
    6224,  6226,  6228,  6230,  6234,  6241,  6248,  6255,  6263,  6267,
    6276,  6285,  6294,  6295,  6297,  6299,  6302,  6303,  6305,  6307,
    6311,  6312,  6316,  6317,  6321,  6322,  6326,  6327,  6331,  6333,
    6335,  6337,  6339,  6341,  6343,  6345,  6347,  6349,  6351,  6353,
    6356,  6359,  6361,  6365,  6368,  6371,  6374,  6377,  6380,  6383,
    6386,  6389,  6391,  6393,  6394,  6396,  6400,  6402,  6405,  6408,
    6411,  6413,  6417,  6421,  6423,  6425,  6429,  6431,  6435,  6440,
    6446,  6448,  6449,  6453,  6457,  6459,  6461,  6462,  6465,  6468,
    6471,  6474,  6475,  6478,  6481,  6483,  6486,  6489,  6492,  6495,
    6498,  6499,  6503,  6504,  6506,  6507,  6511,  6514,  6515,  6517,
    6520,  6521,  6523,  6528,  6533,  6539,  6542,  6546,  6547,  6549,
    6550,  6555,  6556,  6558,  6560,  6561,  6564,  6567,  6569,  6570,
    6572,  6574,  6579,  6580,  6588,  6590,  6591,  6592,  6595,  6599,
    6601,  6603,  6605,  6607,  6608,  6612,  6614,  6617,  6619,  6622,
    6626,  6630,  6634,  6635,  6639,  6643,  6644,  6645,  6654,  6655,
    6659,  6661,  6665,  6666,  6670,  6673,  6678,  6679,  6683,  6688,
    6693,  6694,  6695,  6696,  6713,  6714,  6721,  6722,  6723,  6724,
    6725,  6738,  6743,  6748,  6752,  6757,  6761,  6764,  6766,  6770,
    6776,  6778,  6780,  6781,  6783,  6785,  6786,  6789,  6790,  6791,
    6795,  6796,  6799,  6805
};

/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const short int yyrhs[] =
{
     579,     0,    -1,   138,    -1,   580,   138,    -1,   581,    -1,
    1364,    -1,   907,    -1,   969,    -1,   959,    -1,   971,    -1,
     632,    -1,   593,    -1,   972,    -1,   961,    -1,  1370,    -1,
     598,    -1,   582,    -1,  1210,    -1,  1236,    -1,  1166,    -1,
    1168,    -1,   586,    -1,  1242,    -1,  1339,    -1,  1330,    -1,
     591,    -1,  1174,    -1,  1421,    -1,  1256,    -1,  1259,    -1,
    1322,    -1,   977,    -1,   987,    -1,   766,    -1,   991,    -1,
     584,    -1,  1252,    -1,  1373,    -1,   980,    -1,   964,    -1,
    1177,    -1,  1248,    -1,   957,    -1,  1337,    -1,  1371,    -1,
    1372,    -1,   999,    -1,  1305,    -1,  1223,    -1,   946,    -1,
     949,    -1,  1221,    -1,  1422,    -1,  1328,    -1,  1202,    -1,
    1258,    -1,  1413,    -1,   583,   363,  1299,    -1,   105,    -1,
     126,    -1,   363,  1299,   171,   585,    -1,  1296,    -1,   574,
    1301,    -1,    -1,   150,  1299,   587,   588,    -1,    -1,   530,
     589,    -1,   589,   570,   590,    -1,   590,    -1,   574,  1301,
      -1,    -1,   188,   592,  1301,    -1,    -1,    54,   272,   497,
     594,   595,    -1,   596,    -1,   595,   570,   596,    -1,   259,
     142,  1296,    -1,   273,   142,  1296,    -1,   262,   142,  1296,
      -1,   263,   142,  1147,    -1,   258,   142,  1147,    -1,   270,
     142,  1147,    -1,   266,   142,  1296,    -1,   265,   142,  1296,
      -1,   267,   142,  1296,    -1,   268,   142,  1296,    -1,   269,
     142,  1296,    -1,   271,   142,  1147,    -1,   597,    -1,   260,
     142,  1296,    -1,   261,   142,  1149,    -1,   388,   142,  1296,
      -1,   389,   142,  1147,    -1,    -1,    85,   819,   482,   822,
    1293,   599,   754,    -1,    -1,    85,   894,   204,  1299,   896,
     330,  1293,   600,   568,   902,   569,   897,    -1,    -1,    85,
      92,   822,  1299,   601,   816,    -1,    -1,    85,   602,  1387,
      -1,    85,   527,   619,  1355,    -1,    85,   249,   182,   713,
      -1,    85,   480,   710,    -1,    85,   603,    -1,   429,  1301,
     167,    95,   551,  1301,   335,   568,   604,   569,    -1,   605,
      -1,   604,   570,   605,    -1,   527,  1296,    -1,   191,  1296,
      -1,    92,  1296,    -1,   345,  1296,    -1,   354,  1296,    -1,
     443,  1296,    -1,   360,  1147,    -1,    -1,   148,   822,   620,
     607,   330,   419,   608,   613,   610,   615,   125,   616,    -1,
      -1,   149,  1020,  1119,   609,   611,   612,    -1,    22,  1020,
      -1,    -1,   134,    -1,   119,   330,   440,    -1,   119,    -1,
      -1,   461,  1020,    -1,    -1,   137,  1020,    -1,    -1,   614,
      -1,   330,    73,   364,    -1,   330,    73,   319,   364,    -1,
      -1,    69,  1296,    -1,    -1,   617,   618,    -1,   664,    -1,
     666,    -1,   662,    -1,   683,    -1,   698,    -1,   668,    -1,
     670,    -1,   671,    -1,   672,    -1,   673,    -1,   675,    -1,
      -1,  1299,   575,  1299,    -1,  1299,    -1,   407,   835,   444,
    1296,    -1,    -1,    -1,    -1,    -1,    -1,   568,   622,   637,
     569,   623,   407,   624,   846,   625,   628,   626,   661,    -1,
      -1,   627,   629,    -1,    -1,   628,   630,    -1,    69,  1296,
      -1,   228,   457,    -1,   321,   457,    -1,    80,   457,    -1,
     376,   457,    95,    -1,   297,   457,    95,    -1,   631,    -1,
     629,    -1,   117,    -1,  1038,   117,    -1,   457,   422,   110,
      -1,   457,   422,   217,    -1,    -1,    48,   620,   633,   634,
      -1,    -1,   568,   635,   569,    -1,    -1,   636,    -1,   636,
     570,  1020,    -1,  1020,    -1,    -1,   638,    -1,   638,   570,
     640,    -1,   640,    -1,    -1,  1299,   639,   846,    -1,    -1,
     642,    -1,   642,   570,   643,    -1,   643,    -1,   644,   639,
    1299,   846,    -1,    -1,   218,    -1,   344,    -1,   209,    -1,
      -1,   645,   661,   576,    -1,   661,   576,    -1,   646,   661,
     576,    -1,    -1,   647,   648,   576,    -1,    -1,   108,   659,
     649,   846,   660,    -1,   108,  1299,    76,   168,   656,    -1,
      -1,   108,   653,   185,   168,   650,   654,   661,    -1,   108,
    1299,    90,   168,   651,    -1,    -1,   652,   581,    -1,   152,
      -1,    81,    -1,   655,    -1,   654,   570,   655,    -1,   658,
      -1,  1147,    -1,   449,   657,  1297,    -1,    -1,   535,    -1,
     656,    -1,  1299,    -1,   450,    -1,  1038,   169,    -1,   448,
      -1,  1299,    -1,   659,   570,  1299,    -1,    -1,   109,  1020,
      -1,   664,    -1,   666,    -1,   662,    -1,   683,    -1,   698,
      -1,   668,    -1,   670,    -1,   671,    -1,   672,    -1,   673,
      -1,   675,    -1,    -1,   200,   663,   678,   136,   200,    -1,
      -1,   665,   581,    -1,    -1,   408,   667,  1020,    -1,    -1,
     669,   701,    -1,   233,  1300,    -1,   222,  1300,    -1,   333,
    1299,    -1,    -1,   159,   676,  1299,   215,   674,   677,    -1,
      62,  1299,    -1,    -1,   315,   171,    -1,   171,    -1,  1299,
      -1,   677,   570,  1299,    -1,    -1,    -1,    -1,   679,  1020,
     489,   680,   646,   681,   682,    -1,    -1,   133,   678,    -1,
     132,   646,    -1,   684,    -1,   687,    -1,    -1,    -1,    51,
     685,  1020,   686,   689,   697,   136,    51,    -1,    -1,    51,
     688,   690,   697,   136,    51,    -1,   691,    -1,   689,   691,
      -1,   694,    -1,   690,   694,    -1,    -1,    -1,   546,   692,
    1020,   693,   489,   646,    -1,    -1,    -1,   546,   695,  1020,
     696,   489,   646,    -1,    -1,   132,   646,    -1,    -1,  1300,
     577,   699,   701,   700,    -1,    -1,  1300,    -1,    -1,    30,
     702,   647,   645,   136,    -1,   255,   646,   136,   255,    -1,
      -1,    -1,   548,   703,  1020,   125,   704,   646,   136,   548,
      -1,    -1,   398,   646,   523,   705,  1020,   136,   398,    -1,
      29,    -1,     8,    -1,   211,    -1,   524,    -1,   113,    -1,
     739,   741,    -1,   739,    54,   736,   716,    -1,   739,     6,
     736,   711,   720,    -1,    -1,   529,   249,   182,  1299,    -1,
     739,     6,   736,   724,    -1,   739,   126,   736,   724,    -1,
     740,   715,   728,    -1,   740,   715,   732,    -1,     6,   737,
      -1,     6,   738,    -1,    -1,   717,   718,    -1,   719,    -1,
     718,   719,    -1,   718,   570,   719,    -1,   742,    -1,   743,
      -1,   744,    -1,    -1,   721,   722,    -1,   723,    -1,   722,
     723,    -1,   722,   570,   723,    -1,   742,    -1,   743,    -1,
     744,    -1,   745,    -1,   748,    -1,   750,    -1,   752,    -1,
     749,    -1,    -1,   725,   726,    -1,   727,    -1,   726,   727,
      -1,   726,   570,   727,    -1,   742,    -1,   743,    -1,   744,
      -1,   750,    -1,   752,    -1,    -1,   729,   730,    -1,   731,
      -1,   730,   731,    -1,   730,   570,   731,    -1,   742,    -1,
     746,    -1,   747,    -1,   748,    -1,   750,    -1,   752,    -1,
     749,    -1,    -1,   733,   734,    -1,   735,    -1,   734,   735,
      -1,   734,   570,   735,    -1,   742,    -1,   750,    -1,   752,
      -1,    94,  1296,    -1,   513,  1296,    -1,   383,  1296,    -1,
    1299,    -1,  1299,    -1,   377,    -1,   379,    -1,   319,     4,
      -1,   206,  1194,   753,    -1,    24,  1194,   753,    -1,   278,
    1194,   753,    -1,   155,  1194,   753,    -1,   514,  1194,   753,
      -1,   384,  1194,   753,    -1,   316,  1194,  1148,    -1,    69,
    1194,  1296,    -1,  1229,   140,  1194,   829,    -1,    -1,   752,
      -1,   543,    -1,   322,    -1,  1148,    -1,   197,    -1,   568,
     756,    -1,    -1,   823,   763,   755,   760,    -1,   238,  1293,
      -1,   568,   238,  1293,   569,    -1,    -1,   836,   569,   823,
     763,   757,   760,    -1,    -1,    -1,   763,   758,   812,   569,
     759,  1377,    -1,    -1,    -1,  1268,   815,   812,   761,  1374,
      -1,    -1,  1268,   815,   568,   812,   569,   762,  1377,    -1,
      -1,   764,    -1,    -1,   353,   765,   768,    -1,    -1,   353,
     767,   768,    -1,    -1,    -1,    45,   771,   781,   769,   782,
     770,   789,    -1,   775,   226,   568,   776,   569,    -1,    -1,
     775,   186,   772,   779,    -1,    -1,   375,   773,   779,    -1,
      -1,   243,   774,   779,    -1,    -1,   240,    -1,    -1,   777,
      -1,   778,    -1,   777,   570,   778,    -1,  1299,    -1,   568,
    1015,   787,  1016,   569,    -1,   568,  1015,   787,  1016,   569,
      -1,    -1,   352,  1148,    -1,    -1,    -1,   473,    45,   775,
     186,   780,   783,   788,    -1,    -1,   473,    45,   775,   226,
     568,   785,   569,   784,   788,    -1,   786,    -1,   785,   570,
     786,    -1,  1299,    -1,  1030,    -1,    -1,   472,  1148,    -1,
      -1,   568,   790,   569,    -1,   791,    -1,   790,   570,   791,
      -1,    -1,    -1,    -1,    -1,   353,   792,   796,   793,   797,
     794,   809,   795,   804,    -1,  1299,    -1,    -1,   534,   235,
     488,   798,    -1,   534,   218,   568,   801,   569,    -1,   799,
      -1,   800,    -1,   282,    -1,   568,   282,   569,    -1,   568,
     803,   569,    -1,   802,    -1,   801,   570,   802,    -1,   803,
      -1,  1030,    -1,    -1,   568,   805,   569,    -1,   806,    -1,
     805,   570,   806,    -1,    -1,   473,   807,   808,   809,    -1,
    1301,    -1,    -1,   810,    -1,   810,   811,    -1,   811,    -1,
     480,  1194,  1301,    -1,  1229,   140,  1194,   829,    -1,   316,
    1194,  1148,    -1,   277,  1194,  1150,    -1,   294,  1194,  1150,
      -1,    95,   118,  1194,  1296,    -1,   204,   118,  1194,  1296,
      -1,    69,  1194,  1296,    -1,    -1,    -1,   423,   813,  1009,
    1013,   814,   833,    -1,    -1,    18,    -1,    -1,   817,    -1,
     818,    -1,   817,   818,    -1,   828,    -1,   827,    -1,    -1,
     820,    -1,   821,    -1,   821,   820,    -1,   483,    -1,    -1,
     200,  1038,   151,    -1,    -1,   825,    -1,   826,    -1,   826,
     824,    -1,   826,    -1,   826,   825,    -1,   826,   570,   825,
      -1,   140,  1194,   829,    -1,   507,  1194,   829,    -1,   277,
    1194,  1149,    -1,   294,  1194,  1149,    -1,    26,  1194,  1147,
      -1,   354,  1194,  1296,    -1,    69,  1194,  1296,    -1,    25,
    1194,  1149,    -1,   346,  1194,  1147,    -1,   346,  1194,   109,
      -1,    58,  1194,  1147,    -1,   112,  1194,  1147,    -1,   415,
    1194,   831,    -1,   518,  1194,   568,  1170,   569,    -1,   827,
      -1,   828,    -1,   212,  1194,   832,    -1,    95,   118,  1194,
    1296,    -1,   204,   118,  1194,  1296,    -1,   480,  1299,    -1,
     467,   121,    -1,   467,   287,    -1,    77,  1194,  1296,    -1,
     225,  1194,  1147,    -1,   500,  1194,  1147,    -1,   876,   867,
    1194,   869,    -1,   876,    65,  1194,   875,    -1,  1301,    -1,
    1301,    -1,   109,    -1,   162,    -1,   130,    -1,    74,    -1,
     385,    -1,    72,    -1,   347,    -1,   321,    -1,   161,    -1,
     229,    -1,  1142,    -1,  1008,  1012,    -1,    -1,    10,    -1,
     469,    -1,   380,    -1,   107,    -1,   216,    -1,   837,    -1,
     836,   570,   837,    -1,   838,    -1,   839,    -1,   844,   840,
      -1,   844,   881,    -1,   889,   904,   896,   568,   902,   569,
     897,    -1,   842,   890,   904,   896,   568,   902,   569,   897,
      -1,   842,   167,   226,   904,   568,   902,   569,   881,    -1,
     843,   840,    -1,   842,   841,    -1,    -1,   841,    -1,    59,
    1020,    -1,    -1,   843,    -1,    79,   904,    -1,    -1,  1292,
     845,   846,   863,    -1,   854,   861,   858,    -1,   855,   862,
     858,    -1,   164,   856,   858,    -1,    38,    -1,    38,   568,
     325,   569,    -1,    42,    -1,    41,    -1,   850,   568,   325,
     569,   877,    -1,   850,   877,    -1,   851,   568,   325,   569,
     878,    -1,   851,   878,    -1,    33,   568,   325,   569,    -1,
      33,    -1,   852,   568,   325,   569,   877,    -1,   853,   568,
     325,   569,   878,    -1,   536,   568,   325,   569,    -1,   557,
     861,   858,    -1,    99,    -1,   493,    -1,   490,   861,    -1,
      96,    -1,   494,    -1,    40,   861,    -1,   849,    -1,   283,
      -1,   251,    -1,   254,   536,    -1,   254,   852,   877,    -1,
     496,   877,    -1,   487,   861,   877,    -1,   285,   877,    -1,
     252,   877,    -1,   107,   856,   858,    -1,   326,   856,   858,
      -1,   162,   856,   858,    -1,    -1,   141,   847,   568,   906,
     569,   877,    -1,    -1,   431,   848,   568,   906,   569,   877,
      -1,   254,   877,    -1,   427,    -1,   177,    -1,   176,    -1,
     358,    -1,   302,    -1,   242,    -1,   301,    -1,   359,    -1,
     303,    -1,    57,    -1,   310,    -1,   307,    57,    -1,   850,
     540,    -1,   537,    -1,   307,   537,    -1,   327,    -1,   310,
     537,    -1,   307,    57,   540,    -1,   310,   540,    -1,   216,
      -1,   495,    -1,   441,    -1,   284,    -1,    32,    -1,   380,
      -1,   124,    -1,   124,   362,    -1,    -1,   568,   325,   569,
      -1,   857,    -1,   568,   325,   570,   325,   569,    -1,    -1,
     859,    -1,   859,   860,    -1,   860,    -1,   438,    -1,   522,
      -1,   558,    -1,    -1,   568,   325,   569,    -1,    -1,   857,
      -1,    -1,   864,    -1,   864,   865,    -1,   865,    -1,   324,
      -1,  1038,   324,    -1,   109,   866,    -1,   330,   524,   320,
    1019,    -1,    25,    -1,   427,   109,   535,    -1,   880,   226,
      -1,   519,    -1,   519,   226,    -1,    69,  1296,    -1,    65,
     873,    -1,   320,  1019,    -1,  1283,    -1,    57,   431,    -1,
      56,    -1,  1301,    -1,    33,    -1,   868,    -1,   109,    -1,
      -1,   867,   869,    -1,  1301,    -1,    33,    -1,   871,    -1,
     109,    -1,  1301,    -1,    -1,    65,   875,    -1,   873,    -1,
     109,    -1,    -1,   109,    -1,    -1,    20,   878,    -1,    46,
      -1,   516,   878,    -1,   867,   868,   878,    -1,    33,   879,
      -1,    -1,    33,    -1,    -1,    20,    -1,   516,    -1,   867,
     868,    -1,    -1,   366,    -1,    -1,   386,  1293,   882,   883,
      -1,   885,    -1,   568,   884,   569,   885,    -1,   884,   570,
    1299,    -1,  1299,    -1,    -1,   886,    -1,   886,   887,    -1,
     887,    -1,   330,   113,   888,    -1,   330,   524,   888,    -1,
     274,   172,    -1,   274,   350,    -1,   274,   439,    -1,   405,
      -1,    49,    -1,   431,   324,    -1,   321,     5,    -1,   431,
     109,    -1,   891,    -1,   173,   892,    -1,   446,   892,    -1,
     366,   226,    -1,   519,   892,    -1,   226,    -1,   204,    -1,
      -1,   891,    -1,   224,    -1,   204,    -1,   203,    -1,    -1,
     519,    -1,   173,    -1,   446,    -1,    -1,   895,    -1,   895,
     899,    -1,    -1,   898,    -1,   900,    -1,   898,   900,    -1,
     530,   901,    -1,   507,   901,    -1,   899,    -1,   225,  1194,
    1147,    -1,   549,   349,  1295,    -1,    44,    -1,   417,    -1,
     186,    -1,   902,   570,   903,  1140,    -1,   903,  1140,    -1,
    1299,    -1,  1299,   568,   325,   569,    -1,    -1,  1292,    -1,
      -1,   575,  1299,    -1,  1281,    -1,   906,   570,  1281,    -1,
      -1,    13,   942,   482,  1293,   908,   919,    -1,    -1,    13,
      92,   918,   909,   817,    -1,    -1,    13,   368,   620,   910,
     627,    -1,    -1,    13,   174,   620,   911,   627,    -1,    -1,
      13,  1392,  1389,   912,  1394,    -1,    -1,    13,  1389,   913,
    1394,    -1,    -1,    13,  1389,   148,   620,   914,   915,   916,
     610,   615,   917,    -1,    13,   480,   712,    -1,    13,   249,
     182,   714,    -1,    13,   480,   709,    -1,    13,   480,   708,
      -1,    13,   429,  1301,   335,   568,   604,   569,    -1,    -1,
     330,   419,   608,    -1,   614,    -1,   330,   419,   608,   614,
      -1,    -1,   394,   497,   620,    -1,    -1,   125,   616,    -1,
      -1,  1299,    -1,    -1,   120,   480,    -1,   202,   480,    -1,
     935,   763,    -1,   935,   924,    -1,   924,    -1,   764,    -1,
     926,    -1,   126,   353,   933,    -1,   381,   353,   979,   925,
      -1,    -1,   334,   353,   979,   925,   920,   979,   974,    -1,
      -1,    14,   353,   979,   925,   921,   974,    -1,    -1,    59,
     353,   925,   922,   974,    -1,    -1,   396,   353,   979,   925,
     923,   966,    -1,    63,   353,   979,  1148,    -1,   929,    -1,
     393,   351,    -1,    12,    -1,   933,    -1,    -1,     6,   353,
     979,   927,   928,    -1,    -1,   568,   790,   569,    -1,   352,
    1148,    -1,    -1,   395,   353,   979,   930,   931,    -1,    -1,
      -1,   933,   932,   215,   568,   790,   569,    -1,   934,    -1,
     933,   570,   934,    -1,  1299,    -1,   937,    -1,   935,   570,
     937,    -1,     6,   941,    -1,   936,   838,   944,    -1,     6,
     839,    -1,   936,   568,   836,   569,    -1,    -1,    54,   941,
    1292,   938,   844,   944,    -1,    -1,    -1,   298,   941,  1292,
     939,   846,   863,   940,   944,    -1,   126,   941,  1292,   943,
      -1,   126,   167,   226,   904,    -1,   126,   366,   226,    -1,
     126,   891,  1292,    -1,   119,   224,    -1,   134,   224,    -1,
      13,   941,  1292,   431,   109,  1283,    -1,    13,   941,  1292,
     126,   109,    -1,   394,   945,  1293,    -1,    83,   497,   867,
     869,   874,    -1,   824,    -1,   166,    -1,  1133,    -1,    -1,
      68,    -1,    -1,   201,    -1,    -1,   405,    -1,    49,    -1,
      -1,     8,  1299,    -1,   161,    -1,    -1,   497,    -1,   142,
      -1,    18,    -1,    -1,   462,   440,   951,   947,   955,    -1,
     466,   440,   951,    -1,    -1,   440,   462,   951,   948,   955,
      -1,   440,   466,   951,    -1,   462,   499,   950,    -1,    -1,
     549,    78,   442,    -1,    -1,   952,   953,    -1,   954,    -1,
     953,   570,   954,    -1,    -1,   458,    -1,   390,    -1,    -1,
     523,   956,    -1,   597,    -1,   956,   570,   597,    -1,    -1,
     404,  1324,   958,  1170,   171,  1296,    -1,    -1,    28,  1324,
     960,  1170,   497,  1296,    -1,    -1,    58,  1324,   962,  1170,
     963,    -1,    -1,   374,    -1,   154,    -1,    -1,   396,   979,
    1324,   965,  1170,   966,    -1,    -1,   967,    -1,   968,    -1,
     968,   967,    -1,   374,    -1,   154,    -1,   528,    -1,    -1,
      14,   979,  1324,   970,  1170,   974,    -1,    34,  1296,    -1,
      -1,    59,  1324,   973,  1170,   974,    -1,    -1,   975,    -1,
     976,    -1,   976,   975,    -1,   374,    -1,   158,    -1,   286,
      -1,   154,    -1,    55,    -1,   168,   525,    -1,    -1,   334,
     979,  1324,   978,  1170,   974,    -1,    -1,   323,    -1,   245,
      -1,    -1,   394,  1324,   981,   984,    -1,    -1,   394,    92,
     982,   986,    -1,   394,   527,   619,   983,    -1,  1302,   497,
    1302,    -1,   983,   570,  1302,   497,  1302,    -1,   985,    -1,
     984,   570,   985,    -1,  1293,   497,  1293,    -1,  1299,   497,
    1299,    -1,    47,   204,   988,   218,   990,    -1,   989,    -1,
     988,   570,   989,    -1,  1293,   995,    -1,  1299,    -1,   109,
      -1,    -1,   244,   204,   215,    47,   992,   993,    -1,   994,
      -1,   993,   570,   994,    -1,  1293,   995,   998,    -1,    -1,
     996,   997,    -1,    -1,   891,   568,  1115,   569,    -1,    -1,
     201,   232,    -1,  1000,    -1,   423,  1002,    -1,   568,  1001,
     569,  1377,    -1,   423,  1004,    -1,   568,  1001,   569,    -1,
      -1,  1004,  1003,  1374,    -1,    -1,    -1,  1005,  1009,  1013,
    1006,  1007,  1012,    -1,  1136,  1142,    -1,  1162,    -1,  1008,
      -1,  1162,  1008,    -1,  1008,  1162,    -1,   171,  1083,  1125,
    1130,  1127,  1136,  1142,  1153,    -1,   171,   127,  1125,  1142,
      -1,    -1,  1010,    -1,  1010,  1011,    -1,  1011,    -1,   468,
      -1,   190,    -1,   122,    -1,   456,    -1,   451,    -1,   452,
      -1,   454,    -1,   455,    -1,   453,    -1,    12,    -1,    -1,
     168,   524,    -1,   248,   218,   433,   296,    -1,  1013,   570,
    1014,    -1,  1014,    -1,   563,    -1,  1015,  1017,  1016,  1018,
      -1,    -1,    -1,  1287,    -1,  1020,    -1,    -1,    18,  1299,
      -1,    18,  1296,    -1,  1299,    -1,  1296,    -1,    -1,   568,
     569,    -1,    -1,  1023,  1021,  1022,    -1,    -1,  1022,  1036,
    1023,    -1,  1023,   555,  1023,    -1,    -1,  1026,  1024,  1025,
      -1,    -1,  1025,  1037,  1026,    -1,   319,  1026,    -1,  1027,
      -1,  1028,   219,   504,    -1,  1028,   219,  1038,   504,    -1,
    1028,   219,   157,    -1,  1028,   219,  1038,   157,    -1,  1028,
     219,   520,    -1,  1028,   219,  1038,   520,    -1,  1028,    -1,
    1028,   219,   324,    -1,  1028,   219,  1038,   324,    -1,  1028,
     143,  1029,    -1,  1028,  1040,  1029,    -1,  1028,  1040,  1041,
     568,  1382,   569,    -1,  1029,    -1,  1030,   218,   568,  1382,
     569,    -1,  1030,  1038,   218,   568,  1382,   569,    -1,  1030,
     218,   568,  1020,   569,    -1,  1030,   218,   568,  1020,   570,
    1072,   569,    -1,  1030,  1038,   218,   568,  1020,   569,    -1,
    1030,  1038,   218,   568,  1020,   570,  1072,   569,    -1,  1030,
      31,  1030,    16,  1029,    -1,  1030,  1038,    31,  1030,    16,
    1029,    -1,  1030,   445,   238,  1030,    -1,  1030,   238,  1043,
    1129,    -1,  1030,  1038,   238,  1043,  1129,    -1,  1030,   387,
    1030,    -1,  1030,  1038,   387,  1030,    -1,  1030,    -1,  1030,
     559,  1031,    -1,  1031,    -1,  1031,   560,  1032,    -1,  1032,
      -1,  1032,   434,  1033,    -1,  1032,   435,  1033,    -1,  1033,
      -1,  1033,   562,  1034,    -1,  1033,   561,  1034,    -1,  1033,
     562,  1042,  1119,    -1,  1033,   561,  1042,  1119,    -1,  1034,
      -1,  1034,   563,  1035,    -1,  1034,   564,  1035,    -1,  1034,
     565,  1035,    -1,  1034,   123,  1035,    -1,  1034,   299,  1035,
      -1,  1035,    -1,  1035,   566,  1043,    -1,  1043,    -1,   341,
      -1,   338,    -1,    16,    -1,    15,    -1,   319,    -1,   318,
      -1,   571,    -1,   318,    -1,   142,    -1,   175,    -1,   184,
      -1,   230,    -1,   257,    -1,   312,    -1,    12,    -1,    17,
      -1,   214,  1020,    -1,  1289,    -1,  1044,    -1,  1045,    -1,
    1048,    -1,  1046,    -1,  1043,    65,  1301,    -1,  1284,    -1,
    1282,    -1,  1062,    -1,  1058,    -1,  1043,   340,  1043,    -1,
     562,  1043,    -1,   561,  1043,    -1,   567,  1043,    -1,  1039,
    1043,    -1,   568,  1382,   569,    -1,   568,  1020,   569,    -1,
     568,  1020,   570,  1072,   569,    -1,   416,   568,  1020,   570,
    1072,   569,    -1,   151,   568,  1382,   569,    -1,   572,  1299,
    1020,   573,    -1,   274,  1075,     9,   568,  1030,  1050,   569,
      -1,    33,  1043,    -1,    52,   568,  1020,    18,  1070,   569,
      -1,    51,  1079,  1081,  1080,   136,    -1,    83,   568,  1020,
     570,  1070,   569,    -1,    83,   568,  1020,   530,   868,   569,
      -1,   109,   568,  1289,   569,    -1,   534,   568,  1290,   569,
      -1,  1042,  1119,   562,  1020,    -1,  1042,    -1,    57,   568,
    1072,   569,    -1,    57,   568,  1072,   530,   868,   569,    -1,
      89,  1019,    -1,    99,   568,  1020,   569,    -1,   104,   568,
    1020,   569,    -1,   196,   568,  1020,   569,    -1,   211,   568,
    1020,   570,  1020,   570,  1020,   570,  1020,   569,    -1,   234,
     568,  1020,   570,  1020,   569,    -1,   293,   568,  1020,   569,
      -1,   300,   568,  1020,   569,    -1,   410,   568,  1020,   570,
    1020,   569,    -1,   421,   568,  1020,   569,    -1,   493,   568,
    1020,   569,    -1,   490,   568,  1020,   569,    -1,   490,   568,
    1020,   570,  1020,   569,    -1,   503,   568,  1020,   569,    -1,
     503,   568,   231,  1020,   171,  1020,   569,    -1,   503,   568,
     498,  1020,   171,  1020,   569,    -1,   503,   568,    43,  1020,
     171,  1020,   569,    -1,   503,   568,   231,   171,  1020,   569,
      -1,   503,   568,   498,   171,  1020,   569,    -1,   503,   568,
      43,   171,  1020,   569,    -1,   503,   568,  1020,   171,  1020,
     569,    -1,   527,   568,   569,    -1,   557,   568,  1020,   569,
      -1,     7,   568,  1020,   570,  1020,   569,    -1,     7,   568,
    1020,   570,   214,  1020,  1119,   569,    -1,    88,  1019,    -1,
      91,  1019,    -1,    91,   568,  1020,   569,    -1,    97,   568,
    1020,   570,  1042,  1119,   569,    -1,    98,   568,  1020,   570,
    1042,  1119,   569,    -1,   156,   568,  1119,   171,  1020,   569,
      -1,   178,   568,  1121,   570,  1020,   569,    -1,   320,  1019,
      -1,   320,   568,  1020,   569,    -1,   361,   568,  1030,   218,
    1020,   569,    -1,   470,   568,  1020,   570,  1020,   569,    -1,
     470,   568,  1020,   570,   214,  1020,  1119,   569,    -1,   474,
     568,  1020,   570,  1020,   570,  1020,   569,    -1,   474,   568,
    1020,   570,  1020,   569,    -1,   474,   568,  1020,   171,  1020,
     168,  1020,   569,    -1,   474,   568,  1020,   171,  1020,   569,
      -1,   478,  1019,    -1,   478,   568,  1020,   569,    -1,   491,
     568,  1120,   570,  1020,   570,  1020,   569,    -1,   492,   568,
    1120,   570,  1020,   570,  1020,   569,    -1,   531,  1019,    -1,
     533,  1019,    -1,   532,  1019,    -1,    20,   568,  1020,   569,
      -1,    56,   568,  1020,   569,    -1,    63,   568,  1072,   569,
      -1,    66,   568,  1020,   569,    -1,    92,   568,   569,    -1,
     200,   568,  1020,   570,  1020,   570,  1020,   569,    -1,   289,
     568,  1020,   569,    -1,   299,   568,  1020,   570,  1020,   569,
      -1,   329,   568,  1020,   569,    -1,   354,   568,  1020,   569,
      -1,   372,   568,  1020,   569,    -1,   398,   568,  1020,   570,
    1020,   569,    -1,   399,   568,  1020,   570,  1020,   570,  1020,
     569,    -1,   505,   568,  1020,   570,  1020,   569,    -1,   545,
     568,  1020,   569,    -1,   545,   568,  1020,   570,  1020,   569,
      -1,  1047,    -1,    80,   568,  1020,   570,  1020,   569,    -1,
     176,   568,  1072,   569,    -1,   242,   568,  1072,   569,    -1,
     301,   568,  1072,   569,    -1,   302,   568,  1072,   569,    -1,
     303,   568,  1072,   569,    -1,   358,   568,  1020,   570,  1020,
     569,    -1,   359,   568,  1072,   569,    -1,    -1,  1295,   568,
    1049,  1053,   569,    -1,  1299,   575,  1299,   568,  1071,   569,
      -1,  1051,  1052,    -1,   218,    41,   296,    -1,    -1,   218,
     308,   228,   296,    -1,    -1,   549,   373,   153,    -1,    -1,
    1054,    -1,    -1,  1055,  1056,    -1,  1057,    -1,  1056,   570,
    1057,    -1,  1015,  1020,  1016,  1018,    -1,    27,   568,  1068,
     569,    -1,    27,   568,   122,  1068,   569,    -1,    36,   568,
    1068,   569,    -1,    37,   568,  1068,   569,    -1,    39,   568,
    1068,   569,    -1,    84,   568,  1124,   563,   569,    -1,    84,
     568,  1068,   569,    -1,    -1,    -1,    84,   568,   122,  1059,
    1072,  1060,   569,    -1,   295,   568,  1068,   569,    -1,   295,
     568,   122,  1068,   569,    -1,   279,   568,  1068,   569,    -1,
     279,   568,   122,  1068,   569,    -1,   465,   568,  1068,   569,
      -1,   539,   568,  1068,   569,    -1,   464,   568,  1068,   569,
      -1,   541,   568,  1068,   569,    -1,   475,   568,  1068,   569,
      -1,   475,   568,   122,  1068,   569,    -1,    -1,   183,   568,
    1065,  1061,  1072,  1067,  1066,   569,    -1,    -1,   574,  1063,
    1064,    -1,  1301,   432,  1020,    -1,  1301,    -1,   574,  1314,
    1301,   905,    -1,    -1,   122,    -1,    -1,   425,  1281,    -1,
      -1,  1137,    -1,    -1,  1124,  1069,  1020,    -1,    33,   861,
      -1,    57,   861,   877,    -1,   310,   861,    -1,   438,    -1,
     438,   216,    -1,   522,    -1,   522,   216,    -1,    99,    -1,
     493,    -1,    96,    -1,   107,   856,    -1,    -1,  1072,    -1,
      -1,  1073,  1074,    -1,  1020,    -1,  1074,   570,  1020,    -1,
    1076,    -1,   568,  1076,   569,    -1,    -1,  1077,  1078,    -1,
    1289,    -1,  1078,   570,  1289,    -1,    -1,  1020,    -1,    -1,
     132,  1020,    -1,   546,  1020,   489,  1020,    -1,  1081,   546,
    1020,   489,  1020,    -1,  1094,    -1,  1085,    -1,  1084,    -1,
    1082,    -1,  1084,   570,  1082,    -1,  1082,  1093,  1082,    -1,
    1082,   468,  1094,    -1,    -1,  1082,  1093,  1082,   330,  1086,
    1020,    -1,    -1,  1082,   468,  1094,   330,  1087,  1020,    -1,
      -1,  1082,  1093,  1082,   530,  1088,   568,  1118,   569,    -1,
    1082,   308,   223,  1094,    -1,    -1,  1082,   234,  1104,   223,
    1082,   330,  1089,  1020,    -1,    -1,  1082,   234,  1104,   223,
    1094,  1090,   530,   568,  1118,   569,    -1,  1082,   308,   234,
    1104,   223,  1094,    -1,    -1,  1082,   410,  1104,   223,  1082,
     330,  1091,  1020,    -1,    -1,  1082,   410,  1104,   223,  1094,
    1092,   530,   568,  1118,   569,    -1,  1082,   308,   410,  1104,
     223,  1094,    -1,   223,    -1,   207,   223,    -1,    86,   223,
      -1,    -1,  1095,  1293,  1123,  1113,    -1,    -1,   572,  1299,
    1082,   234,   342,   223,  1082,   330,  1096,  1020,   573,    -1,
    1103,  1102,  1099,    -1,   568,  1102,  1097,  1377,   569,  1123,
      -1,    -1,  1102,  1098,  1084,    -1,    -1,    -1,  1100,  1009,
    1013,  1101,   833,    -1,    -1,   423,    -1,    -1,   342,    -1,
      -1,   168,   223,    -1,   168,   339,    45,    -1,   168,   182,
      45,    -1,   166,    -1,   201,    -1,    -1,  1106,   891,  1105,
    1108,   568,  1117,   569,    -1,    -1,   529,   891,  1105,  1109,
     568,  1115,   569,    -1,  1107,    -1,  1110,  1107,    -1,    -1,
      -1,  1112,  1110,    -1,    -1,  1114,  1111,    -1,    -1,  1117,
      -1,  1299,    -1,   366,    -1,  1116,    -1,  1117,   570,  1116,
      -1,  1299,    -1,  1118,   570,  1299,    -1,  1120,    -1,   100,
      -1,   101,    -1,   102,    -1,   103,    -1,   193,    -1,   194,
      -1,   195,    -1,   289,    -1,   291,    -1,   292,    -1,   420,
      -1,   556,    -1,   104,    -1,   545,    -1,   196,    -1,   170,
      -1,   293,    -1,   300,    -1,   372,    -1,   421,    -1,   557,
      -1,    99,    -1,   493,    -1,    96,    -1,   490,    -1,    -1,
      18,    -1,   142,    -1,    -1,  1122,  1299,    -1,    -1,    12,
      -1,    -1,    -1,   547,  1126,  1020,    -1,    -1,    -1,   187,
    1128,  1020,    -1,   146,  1043,    -1,    -1,    -1,   182,    45,
    1131,  1132,    -1,  1131,   570,  1288,  1140,    -1,  1288,  1140,
      -1,    -1,   549,    87,    -1,   549,   412,    -1,   339,    45,
    1134,    -1,  1134,   570,  1135,    -1,  1135,    -1,  1290,  1140,
      -1,    -1,  1137,    -1,    -1,   339,    45,  1138,  1139,    -1,
    1139,   570,  1288,  1140,    -1,  1288,  1140,    -1,    -1,    19,
      -1,   114,    -1,    -1,  1143,    -1,    -1,  1143,    -1,   239,
    1144,    -1,  1145,    -1,  1145,   570,  1145,    -1,  1145,   328,
    1145,    -1,  1282,    -1,   509,    -1,   253,    -1,   325,    -1,
      -1,   239,  1145,    -1,   325,    -1,   189,    -1,   253,    -1,
     509,    -1,   106,    -1,   163,    -1,   325,    -1,   189,    -1,
     253,    -1,   509,    -1,  1151,    -1,   325,    -1,   509,    -1,
     253,    -1,   106,    -1,   163,    -1,   325,    -1,   509,    -1,
     253,    -1,  1151,    -1,  1152,    -1,   106,    -1,   163,    -1,
      -1,    -1,   368,  1299,  1154,   568,  1155,   569,    -1,    -1,
    1156,    -1,  1156,   570,  1157,    -1,  1157,    -1,  1015,  1020,
    1016,    -1,    -1,  1159,  1160,    -1,  1160,   570,  1161,    -1,
    1161,    -1,   574,  1301,    -1,  1301,    -1,    -1,   215,  1163,
    1164,    -1,    -1,   343,  1298,  1165,  1269,  1272,    -1,   128,
    1298,    -1,  1158,    -1,    -1,   125,  1167,  1072,    -1,   126,
    1173,  1324,  1172,  1170,   943,    -1,    -1,   126,   204,  1299,
     330,  1293,  1169,    -1,   126,    92,  1172,  1299,    -1,   126,
     174,  1172,   620,    -1,   126,   368,  1172,   620,    -1,   126,
     527,   619,  1354,    -1,   126,   542,  1172,  1170,   943,    -1,
     126,   148,  1172,   620,    -1,   126,   502,  1172,   620,    -1,
     126,   480,   739,   750,   751,    -1,   126,   249,   182,   740,
     750,   751,    -1,   126,   429,  1172,  1301,    -1,  1171,    -1,
    1170,   570,  1171,    -1,  1293,    -1,    -1,   200,   151,    -1,
      -1,   483,    -1,    -1,    -1,   211,  1175,  1180,   942,  1182,
    1176,  1184,  1200,    -1,    -1,    -1,   399,  1178,  1181,  1182,
    1179,  1184,    -1,    -1,   256,    -1,   111,    -1,   190,    -1,
    1209,    -1,   111,    -1,   215,  1183,    -1,  1183,    -1,  1171,
      -1,  1187,    -1,   568,   569,  1187,    -1,   568,  1186,   569,
    1187,    -1,    -1,   431,  1185,  1191,    -1,  1186,   570,  1286,
      -1,  1286,    -1,   534,  1190,    -1,   535,  1190,    -1,    -1,
     812,  1188,  1374,    -1,    -1,   568,   812,   569,  1189,  1377,
      -1,  1190,   570,  1195,    -1,  1195,    -1,  1191,   570,  1192,
      -1,  1192,    -1,  1290,  1193,  1199,    -1,   142,    -1,   432,
      -1,    -1,  1193,    -1,    -1,   568,  1196,  1197,   569,    -1,
      -1,  1198,    -1,  1198,   570,  1199,    -1,  1199,    -1,  1020,
      -1,   109,    -1,    -1,    -1,   330,   129,  1201,   226,   524,
    1207,    -1,    -1,    -1,   524,  1203,  1209,   942,  1083,   431,
    1205,  1204,  1125,  1136,  1146,    -1,  1205,   570,  1206,    -1,
    1206,    -1,  1290,  1193,  1199,    -1,  1207,   570,  1208,    -1,
    1208,    -1,  1290,  1193,  1199,    -1,    -1,   256,    -1,    -1,
     113,  1211,  1219,  1212,    -1,    -1,   171,  1293,  1213,  1125,
    1136,  1146,    -1,    -1,  1216,  1214,   171,  1083,  1125,    -1,
      -1,   171,  1216,  1215,   530,  1083,  1125,    -1,  1217,    -1,
    1216,   570,  1217,    -1,  1299,  1218,  1123,    -1,  1299,   575,
    1299,  1218,  1123,    -1,    -1,   575,   563,    -1,    -1,  1220,
    1219,    -1,   374,    -1,   256,    -1,   201,    -1,   505,  1222,
    1171,    -1,    -1,   482,    -1,    -1,   436,  1224,  1225,    -1,
      93,  1235,    -1,  1231,   479,  1230,  1235,    -1,  1231,   501,
    1230,  1235,    -1,   147,  1230,  1235,    -1,   482,   463,  1230,
    1235,    -1,   333,   479,  1230,  1235,    -1,  1231,   357,    -1,
     356,    -1,   140,   830,  1227,    -1,   140,    12,  1227,    -1,
    1231,    67,  1232,  1293,  1230,  1235,    -1,   314,   272,   168,
     440,   549,   260,   142,  1296,    16,   261,   142,  1149,    16,
     264,   142,  1147,    -1,  1228,   250,    -1,   440,   192,    -1,
      -1,    34,   147,  1233,  1234,  1226,  1141,    -1,   893,  1232,
    1293,  1230,  1125,    -1,    68,   506,    -1,   482,   506,    -1,
    1229,   139,    -1,    23,    -1,    82,    -1,   367,    -1,    84,
     568,   563,   569,   544,    -1,    84,   568,   563,   569,   144,
      -1,   544,  1141,    -1,   144,  1141,    -1,  1313,   463,  1235,
      -1,   208,   463,    -1,   304,   463,    -1,  1231,   370,    -1,
    1313,   538,  1235,    -1,   867,  1235,    -1,    66,  1235,    -1,
     181,    -1,   181,   168,  1302,    -1,    85,    92,   822,  1299,
      -1,    85,   482,  1293,    -1,    85,   542,  1293,    -1,   272,
     463,    -1,   440,   463,    -1,    85,   368,   620,    -1,    85,
     174,   620,    -1,    85,   502,   620,    -1,   368,   463,  1235,
      -1,   174,   463,  1235,    -1,   368,    64,   620,    -1,   174,
      64,   620,    -1,    85,   148,   620,    -1,   463,    -1,   304,
      -1,   250,    -1,   272,    -1,    33,    -1,    -1,   467,    -1,
      -1,  1232,  1299,    -1,    -1,   172,    -1,   171,    -1,   218,
      -1,    -1,   218,  1296,    -1,    -1,   171,  1149,    -1,    -1,
     238,  1296,    -1,   547,  1020,    -1,    -1,  1239,  1293,  1237,
    1241,    -1,    -1,  1239,  1240,  1238,   999,    -1,   114,    -1,
     115,    -1,    -1,   154,    -1,   352,    -1,    -1,  1281,    -1,
    1299,    -1,    -1,   165,   979,  1243,  1244,    -1,  1244,   570,
    1245,    -1,  1245,    -1,    -1,  1324,  1246,  1247,    -1,   479,
     549,   378,   248,    -1,   373,    47,    -1,   192,    -1,   367,
      -1,   250,    -1,   463,    -1,   440,    -1,   272,    -1,   116,
      -1,   403,    -1,    -1,  1170,    -1,    -1,   402,  1249,  1250,
      -1,  1250,   570,  1251,    -1,  1251,    -1,   440,    -1,   272,
      -1,   373,    47,    -1,    -1,   371,  1253,  1254,    -1,  1228,
     250,  1255,    -1,   497,  1296,    -1,    29,  1020,    -1,   227,
    1257,  1020,    -1,    -1,    77,    -1,   373,    -1,   529,  1299,
      -1,    -1,   244,    95,  1260,  1261,    -1,   244,   482,  1293,
     171,   272,    -1,    -1,    -1,    -1,    -1,  1267,  1266,   205,
    1298,  1262,  1268,   215,  1263,   482,  1293,  1264,   870,  1265,
    1269,  1272,  1275,  1276,  1279,    -1,   171,   272,    -1,    -1,
     245,    -1,    -1,    75,    -1,   256,    -1,    -1,   399,    -1,
     201,    -1,    -1,    67,  1270,    -1,  1270,  1271,    -1,  1271,
      -1,   485,    45,  1281,    -1,   337,   135,    45,  1281,    -1,
     135,    45,  1281,    -1,   145,    45,  1281,    -1,    -1,   241,
    1273,    -1,  1273,  1274,    -1,  1274,    -1,   485,    45,  1281,
      -1,   460,    45,  1281,    -1,    -1,   201,   325,   241,    -1,
      -1,   568,  1277,   569,    -1,   568,   569,    -1,  1277,   570,
    1278,    -1,  1278,    -1,  1290,    -1,   574,  1301,    -1,    -1,
     431,  1207,    -1,   486,    -1,   309,    -1,   512,   486,    -1,
    1280,  1297,    -1,  1297,    -1,   189,    -1,    35,    -1,   348,
      -1,  1284,    -1,   562,  1285,    -1,   561,  1285,    -1,  1280,
      -1,  1285,    -1,   324,    -1,   157,    -1,   504,    -1,   189,
      -1,    35,    -1,   512,   189,    -1,   512,    35,    -1,    99,
    1280,    -1,   493,  1280,    -1,   490,  1280,    -1,   325,    -1,
     253,    -1,   509,    -1,   106,    -1,   163,    -1,  1290,    -1,
    1287,    -1,  1299,   575,   563,    -1,  1299,   575,  1299,   575,
     563,    -1,  1020,    -1,  1299,    -1,  1291,    -1,  1299,    -1,
    1291,    -1,  1299,   575,  1299,    -1,   575,  1299,   575,  1299,
      -1,  1299,   575,  1299,   575,  1299,    -1,  1299,    -1,  1299,
     575,  1299,   575,  1299,    -1,  1299,   575,  1299,    -1,   575,
    1299,    -1,  1299,    -1,  1299,   575,  1299,    -1,   575,  1299,
      -1,  1299,    -1,   197,    -1,   199,    -1,   486,    -1,   486,
      -1,   486,    -1,  1295,    -1,   377,    -1,  1303,    -1,  1295,
      -1,  1304,    -1,  1299,    -1,  1296,    -1,   237,    -1,  1301,
      -1,  1301,   574,  1301,    -1,    89,  1019,    -1,  1304,    -1,
      20,    -1,    28,    -1,    30,    -1,    46,    -1,    47,    -1,
      56,    -1,    58,    -1,    62,    -1,    69,    -1,    71,    -1,
      80,    -1,   105,    -1,   125,    -1,   136,    -1,   150,    -1,
     165,    -1,   185,    -1,   188,    -1,   191,    -1,   213,    -1,
     228,    -1,   321,    -1,   333,    -1,   335,    -1,   345,    -1,
     349,    -1,   353,    -1,   360,    -1,   363,    -1,   393,    -1,
     396,    -1,   402,    -1,   404,    -1,   411,    -1,   418,    -1,
     422,    -1,   429,    -1,   438,    -1,   443,    -1,   440,    -1,
     444,    -1,   462,    -1,   466,    -1,   505,    -1,   516,    -1,
     517,    -1,   551,    -1,   554,    -1,   525,    -1,     5,    -1,
       7,    -1,     8,    -1,     9,    -1,    10,    -1,    11,    -1,
      17,    -1,    22,    -1,    23,    -1,    25,    -1,    24,    -1,
      26,    -1,    27,    -1,    34,    -1,    38,    -1,    42,    -1,
      41,    -1,    44,    -1,    50,    -1,    53,    -1,    55,    -1,
      60,    -1,    61,    -1,    63,    -1,    64,    -1,    66,    -1,
      67,    -1,    70,    -1,    72,    -1,    73,    -1,    74,    -1,
      75,    -1,    77,    -1,    78,    -1,    82,    -1,    87,    -1,
      95,    -1,    94,    -1,    96,    -1,    99,    -1,   104,    -1,
     110,    -1,   112,    -1,   116,    -1,   118,    -1,   119,    -1,
     120,    -1,   121,    -1,   128,    -1,   129,    -1,   130,    -1,
     137,    -1,   141,    -1,   140,    -1,   139,    -1,   144,    -1,
     146,    -1,   148,    -1,   147,    -1,   149,    -1,   153,    -1,
     154,    -1,   155,    -1,   158,    -1,   169,    -1,   134,    -1,
     172,    -1,   160,    -1,   161,    -1,   162,    -1,   170,    -1,
     177,    -1,   176,    -1,   178,    -1,   181,    -1,   179,    -1,
     186,    -1,   192,    -1,   196,    -1,   198,    -1,   217,    -1,
     202,    -1,   203,    -1,   206,    -1,   220,    -1,   221,    -1,
     208,    -1,   212,    -1,   225,    -1,   229,    -1,   232,    -1,
     235,    -1,   236,    -1,   242,    -1,   243,    -1,   245,    -1,
     247,    -1,   249,    -1,   250,    -1,   277,    -1,   272,    -1,
     259,    -1,   263,    -1,   260,    -1,   261,    -1,   273,    -1,
     262,    -1,   264,    -1,   258,    -1,   270,    -1,   266,    -1,
     265,    -1,   267,    -1,   268,    -1,   269,    -1,   275,    -1,
     276,    -1,   278,    -1,   280,    -1,   281,    -1,   282,    -1,
     286,    -1,   287,    -1,   288,    -1,   289,    -1,   290,    -1,
     293,    -1,   294,    -1,   298,    -1,   296,    -1,   300,    -1,
     301,    -1,   302,    -1,   303,    -1,   304,    -1,   306,    -1,
     305,    -1,   307,    -1,   310,    -1,   311,    -1,   315,    -1,
     314,    -1,   322,    -1,   316,    -1,   317,    -1,   327,    -1,
     328,    -1,   329,    -1,   331,    -1,   332,    -1,   346,    -1,
     347,    -1,   350,    -1,   351,    -1,   352,    -1,   354,    -1,
     355,    -1,   357,    -1,   356,    -1,   358,    -1,   359,    -1,
     364,    -1,   365,    -1,   367,    -1,   369,    -1,   370,    -1,
     372,    -1,   373,    -1,   374,    -1,   381,    -1,   382,    -1,
     384,    -1,   383,    -1,   385,    -1,   388,    -1,   389,    -1,
     390,    -1,   392,    -1,   395,    -1,   397,    -1,   400,    -1,
     403,    -1,   406,    -1,   407,    -1,   412,    -1,   413,    -1,
     414,    -1,   415,    -1,   416,    -1,   417,    -1,   419,    -1,
     421,    -1,   427,    -1,   426,    -1,   428,    -1,   439,    -1,
     433,    -1,   437,    -1,   442,    -1,   445,    -1,   453,    -1,
     452,    -1,   455,    -1,   458,    -1,   461,    -1,   463,    -1,
     467,    -1,   469,    -1,   470,    -1,   471,    -1,   473,    -1,
     472,    -1,   476,    -1,   477,    -1,   479,    -1,   480,    -1,
     483,    -1,   484,    -1,   487,    -1,   488,    -1,   499,    -1,
     500,    -1,   501,    -1,   490,    -1,   491,    -1,   492,    -1,
     493,    -1,   506,    -1,   507,    -1,   508,    -1,   174,    -1,
     510,    -1,   511,    -1,   514,    -1,   513,    -1,   520,    -1,
     523,    -1,   527,    -1,   528,    -1,   538,    -1,   542,    -1,
     535,    -1,   544,    -1,   543,    -1,   545,    -1,   550,    -1,
     553,    -1,   557,    -1,    -1,   431,  1307,  1306,  1308,    -1,
      -1,   336,    -1,  1309,    -1,  1308,   570,  1309,    -1,    -1,
    1310,  1315,    -1,  1312,    -1,   179,    -1,   245,    -1,   428,
      -1,    -1,   331,    -1,    -1,   179,    -1,   245,    -1,   428,
      -1,    -1,   179,   575,    -1,   245,   575,    -1,   428,   575,
      -1,  1316,    -1,  1312,  1317,    -1,  1311,  1318,  1193,  1321,
      -1,  1311,   499,   220,   236,  1319,    -1,   574,  1301,  1193,
    1020,    -1,   574,   574,  1314,  1318,  1193,  1321,    -1,   867,
     872,    -1,   305,  1193,  1020,    -1,   305,   869,   874,    -1,
     354,  1193,  1320,    -1,   354,   168,  1302,  1193,  1320,    -1,
    1299,    -1,  1299,   575,  1299,    -1,   109,   575,  1299,    -1,
     378,   510,    -1,   378,    70,    -1,   397,   378,    -1,   426,
      -1,   486,    -1,   354,   568,   486,   569,    -1,   329,   568,
     486,   569,    -1,  1020,    -1,   109,    -1,   330,    -1,    12,
      -1,    33,    -1,    -1,   248,  1324,  1323,  1325,    -1,   482,
      -1,   479,    -1,  1326,    -1,  1325,   570,  1326,    -1,  1293,
    1123,  1327,    -1,   378,    -1,   552,    -1,   256,   552,    -1,
     378,   245,    -1,    -1,   521,  1329,  1324,    -1,   185,  1293,
     333,  1123,    -1,   185,  1294,    62,    -1,    -1,   185,  1294,
     378,  1331,  1332,  1125,  1142,    -1,  1333,    -1,  1299,  1334,
      -1,   161,    -1,   315,    -1,   161,    -1,   315,    -1,   365,
      -1,   229,    -1,    -1,  1336,  1335,   568,  1198,   569,    -1,
     142,    -1,   175,    -1,   230,    -1,   184,    -1,   257,    -1,
     409,   619,  1338,    -1,  1342,   330,  1341,  1353,   171,  1355,
      -1,  1342,   330,   174,  1353,   171,  1355,    -1,  1342,   330,
     368,  1353,   171,  1355,    -1,    12,  1343,   570,   180,   336,
     171,  1355,    -1,   180,   619,  1340,    -1,  1342,   330,  1341,
    1353,   497,  1355,  1360,  1361,    -1,  1342,   330,   174,  1353,
     497,  1355,  1360,  1361,    -1,  1342,   330,   368,  1353,   497,
    1355,  1360,  1361,    -1,    -1,   482,    -1,  1344,    -1,    12,
    1343,    -1,    -1,   367,    -1,  1345,    -1,  1344,   570,  1345,
      -1,    -1,   423,  1346,  1357,    -1,    -1,   211,  1347,  1357,
      -1,    -1,   524,  1348,  1357,    -1,    -1,   386,  1349,  1357,
      -1,   113,    -1,   526,    -1,   204,    -1,    13,    -1,    85,
      -1,   126,    -1,   150,    -1,   392,    -1,   437,    -1,   369,
      -1,   160,    -1,   180,   336,    -1,   436,    93,    -1,   476,
      -1,    85,   483,   479,    -1,   248,   479,    -1,   400,   440,
      -1,   400,    61,    -1,    85,   542,    -1,   436,   542,    -1,
      85,   413,    -1,    13,   413,    -1,    85,   527,    -1,   148,
      -1,   502,    -1,    -1,    16,    -1,  1352,  1350,  1351,    -1,
    1352,    -1,   471,   486,    -1,   221,   486,    -1,    60,   486,
      -1,   563,    -1,  1299,   575,   563,    -1,   563,   575,   563,
      -1,  1293,    -1,  1302,    -1,  1354,   570,  1302,    -1,  1356,
      -1,  1355,   570,  1356,    -1,  1302,   198,    45,   486,    -1,
    1302,   198,    45,   354,   486,    -1,  1302,    -1,    -1,   568,
    1358,   569,    -1,  1358,   570,  1359,    -1,  1359,    -1,  1299,
      -1,    -1,   401,  1351,    -1,   401,   459,    -1,   401,   553,
      -1,   401,   317,    -1,    -1,   549,  1362,    -1,  1362,  1363,
      -1,  1363,    -1,   180,   336,    -1,   276,  1147,    -1,   280,
    1147,    -1,   275,  1147,    -1,   281,  1147,    -1,    -1,    30,
    1365,  1366,    -1,    -1,   550,    -1,    -1,    16,   321,    53,
      -1,    16,    53,    -1,    -1,   391,    -1,   321,   391,    -1,
      -1,   418,    -1,    71,  1366,  1367,  1368,    -1,   411,  1366,
    1367,  1368,    -1,   411,  1366,   497,  1369,  1299,    -1,   418,
    1299,    -1,   391,   418,  1299,    -1,    -1,  1375,    -1,    -1,
     518,  1381,  1376,  1000,    -1,    -1,  1375,    -1,  1378,    -1,
      -1,  1379,  1380,    -1,  1137,  1141,    -1,  1143,    -1,    -1,
     122,    -1,    12,    -1,   423,  1385,  1384,  1386,    -1,    -1,
     568,  1385,  1382,   569,  1383,  1374,  1386,    -1,  1002,    -1,
      -1,    -1,  1389,  1388,    -1,  1390,  1389,  1394,    -1,  1394,
      -1,  1403,    -1,  1407,    -1,   606,    -1,    -1,   110,   142,
    1302,    -1,  1391,    -1,  1391,  1392,    -1,  1392,    -1,   341,
     399,    -1,    11,   142,   511,    -1,    11,   142,   288,    -1,
      11,   142,   484,    -1,    -1,   457,   422,   110,    -1,   457,
     422,   217,    -1,    -1,    -1,  1393,   542,  1293,  1395,  1397,
      18,  1396,  1399,    -1,    -1,   568,  1398,   569,    -1,  1299,
      -1,  1398,   570,  1299,    -1,    -1,  1400,  1401,  1402,    -1,
     423,  1002,    -1,   568,  1001,   569,  1377,    -1,    -1,   549,
      59,   336,    -1,   549,    50,    59,   336,    -1,   549,   245,
      59,   336,    -1,    -1,    -1,    -1,   502,  1015,   620,   706,
     707,   330,  1015,  1404,  1293,   168,  1015,  1405,   131,   416,
    1406,   661,    -1,    -1,   834,  1015,   174,   620,  1408,   621,
      -1,    -1,    -1,    -1,    -1,   368,  1015,   620,  1409,   568,
    1410,   641,   569,  1411,   628,  1412,   661,    -1,   554,  1415,
    1414,  1416,    -1,   554,   136,  1414,  1418,    -1,   554,   363,
    1414,    -1,   554,    71,  1414,  1417,    -1,   554,   411,  1414,
      -1,   554,   382,    -1,  1281,    -1,  1281,   570,  1281,    -1,
    1281,   570,  1281,   570,  1147,    -1,    30,    -1,   462,    -1,
      -1,   223,    -1,   406,    -1,    -1,   332,   355,    -1,    -1,
      -1,   477,  1419,  1420,    -1,    -1,   168,   290,    -1,   213,
     357,  1299,   444,  1296,    -1,   517,   357,  1299,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const unsigned short int yyrline[] =
{
       0,  1289,  1289,  1303,  1306,  1307,  1312,  1313,  1314,  1315,
    1316,  1317,  1318,  1319,  1320,  1321,  1322,  1323,  1324,  1325,
    1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,  1334,  1335,
    1336,  1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,
    1346,  1347,  1348,  1349,  1350,  1351,  1352,  1353,  1354,  1355,
    1356,  1357,  1358,  1359,  1360,  1361,  1362,  1366,  1375,  1376,
    1381,  1390,  1397,  1407,  1406,  1417,  1419,  1423,  1424,  1427,
    1440,  1439,  1458,  1457,  1468,  1469,  1472,  1477,  1482,  1487,
    1492,  1496,  1501,  1505,  1509,  1513,  1517,  1521,  1527,  1531,
    1535,  1551,  1555,  1567,  1566,  1601,  1599,  1628,  1627,  1640,
    1639,  1647,  1651,  1655,  1659,  1665,  1674,  1675,  1679,  1684,
    1689,  1694,  1699,  1704,  1709,  1721,  1716,  1766,  1765,  1772,
    1778,  1779,  1784,  1789,  1797,  1800,  1806,  1807,  1813,  1814,
    1818,  1824,  1832,  1833,  1841,  1841,  1899,  1900,  1901,  1902,
    1903,  1904,  1905,  1906,  1907,  1908,  1909,  1915,  1929,  1943,
    1961,  1988,  2031,  2039,  2047,  2070,  1987,  2136,  2137,  2141,
    2142,  2147,  2149,  2151,  2153,  2155,  2157,  2159,  2165,  2166,
    2167,  2171,  2175,  2183,  2182,  2195,  2197,  2200,  2202,  2206,
    2210,  2217,  2219,  2223,  2224,  2229,  2248,  2274,  2276,  2280,
    2281,  2285,  2311,  2312,  2313,  2314,  2318,  2319,  2323,  2324,
    2329,  2332,  2359,  2358,  2414,  2429,  2428,  2472,  2496,  2496,
    2530,  2531,  2536,  2538,  2543,  2566,  2572,  2587,  2588,  2592,
    2596,  2605,  2610,  2615,  2623,  2638,  2656,  2657,  2661,  2662,
    2663,  2664,  2665,  2666,  2667,  2668,  2669,  2670,  2671,  2675,
    2675,  2681,  2681,  2734,  2733,  2759,  2759,  2773,  2805,  2836,
    2855,  2854,  2874,  2891,  2893,  2894,  2898,  2919,  2942,  2944,
    2958,  2942,  2976,  2978,  2979,  2983,  2984,  2989,  2995,  2988,
    3014,  3013,  3029,  3030,  3034,  3035,  3040,  3044,  3039,  3061,
    3065,  3060,  3080,  3088,  3093,  3092,  3130,  3131,  3136,  3135,
    3162,  3173,  3175,  3172,  3199,  3198,  3216,  3218,  3223,  3225,
    3227,  3244,  3249,  3255,  3262,  3263,  3270,  3277,  3285,  3291,
    3297,  3298,  3302,  3302,  3307,  3308,  3309,  3313,  3314,  3315,
    3319,  3319,  3324,  3325,  3326,  3330,  3331,  3332,  3333,  3334,
    3335,  3336,  3337,  3341,  3341,  3346,  3347,  3348,  3352,  3353,
    3354,  3355,  3356,  3360,  3360,  3365,  3366,  3367,  3371,  3372,
    3373,  3374,  3375,  3376,  3377,  3381,  3381,  3386,  3387,  3388,
    3392,  3393,  3394,  3399,  3406,  3413,  3420,  3429,  3438,  3443,
    3448,  3455,  3462,  3469,  3476,  3483,  3490,  3497,  3509,  3521,
    3533,  3535,  3539,  3544,  3556,  3557,  3608,  3610,  3609,  3612,
    3621,  3634,  3633,  3636,  3638,  3636,  3642,  3644,  3643,  3646,
    3645,  3674,  3675,  3680,  3679,  3712,  3711,  3728,  3728,  3728,
    3732,  3739,  3738,  3742,  3741,  3745,  3744,  3750,  3751,  3756,
    3757,  3761,  3762,  3766,  3777,  3789,  3802,  3803,  3819,  3821,
    3820,  3825,  3823,  3834,  3835,  3839,  3850,  3866,  3867,  3883,
    3884,  3907,  3908,  3913,  3929,  3930,  3931,  3912,  3936,  3947,
    3967,  3982,  4000,  4012,  4028,  4029,  4033,  4043,  4044,  4048,
    4065,  4124,  4132,  4159,  4160,  4165,  4164,  4185,  4190,  4191,
    4195,  4196,  4200,  4202,  4208,  4210,  4212,  4214,  4216,  4218,
    4228,  4244,  4227,  4258,  4259,  4262,  4263,  4266,  4267,  4270,
    4271,  4274,  4275,  4278,  4279,  4282,  4285,  4286,  4288,  4290,
    4293,  4294,  4297,  4298,  4299,  4302,  4303,  4310,  4311,  4312,
    4313,  4314,  4315,  4316,  4331,  4337,  4338,  4339,  4340,  4355,
    4356,  4357,  4358,  4359,  4360,  4361,  4362,  4363,  4364,  4369,
    4378,  4395,  4411,  4434,  4448,  4449,  4450,  4451,  4452,  4453,
    4454,  4457,  4458,  4459,  4462,  4463,  4466,  4467,  4470,  4471,
    4472,  4473,  4476,  4477,  4481,  4482,  4486,  4487,  4494,  4507,
    4517,  4536,  4540,  4546,  4548,  4552,  4556,  4557,  4561,  4566,
    4565,  4586,  4587,  4588,  4589,  4591,  4593,  4595,  4597,  4599,
    4601,  4604,  4607,  4610,  4613,  4615,  4618,  4621,  4622,  4623,
    4624,  4637,  4638,  4640,  4642,  4654,  4656,  4658,  4660,  4661,
    4662,  4663,  4664,  4665,  4667,  4669,  4671,  4671,  4673,  4673,
    4675,  4676,  4685,  4686,  4687,  4690,  4691,  4692,  4693,  4694,
    4698,  4702,  4703,  4707,  4708,  4712,  4713,  4714,  4715,  4716,
    4720,  4721,  4722,  4723,  4724,  4727,  4729,  4730,  4734,  4735,
    4736,  4739,  4746,  4747,  4750,  4751,  4754,  4755,  4756,  4759,
    4760,  4763,  4764,  4767,  4768,  4771,  4772,  4775,  4776,  4777,
    4778,  4780,  4781,  4787,  4793,  4799,  4805,  4806,  4822,  4823,
    4827,  4828,  4832,  4840,  4844,  4845,  4848,  4849,  4853,  4862,
    4866,  4867,  4870,  4880,  4881,  4885,  4886,  4889,  4890,  4893,
    4894,  4895,  4896,  4905,  4906,  4909,  4910,  4913,  4914,  4915,
    4924,  4926,  4928,  4933,  4932,  4944,  4945,  4948,  4949,  4953,
    4954,  4957,  4958,  4961,  4962,  4963,  4964,  4965,  4968,  4969,
    4970,  4971,  4972,  4975,  4976,  4977,  4989,  4990,  4993,  4994,
    4997,  4998,  5002,  5003,  5004,  5007,  5008,  5009,  5010,  5023,
    5035,  5036,  5040,  5041,  5045,  5046,  5050,  5051,  5055,  5056,
    5058,  5072,  5073,  5077,  5080,  5081,  5084,  5085,  5096,  5097,
    5100,  5101,  5104,  5105,  5113,  5112,  5139,  5138,  5153,  5152,
    5171,  5170,  5189,  5188,  5207,  5201,  5225,  5220,  5274,  5279,
    5284,  5289,  5294,  5303,  5304,  5305,  5306,  5309,  5310,  5321,
    5322,  5326,  5327,  5329,  5330,  5331,  5332,  5334,  5336,  5337,
    5346,  5347,  5351,  5360,  5358,  5369,  5367,  5377,  5376,  5385,
    5383,  5392,  5399,  5403,  5410,  5414,  5419,  5418,  5434,  5435,
    5440,  5449,  5448,  5464,  5469,  5468,  5480,  5481,  5485,  5500,
    5501,  5505,  5513,  5514,  5518,  5523,  5522,  5530,  5539,  5529,
    5551,  5558,  5562,  5569,  5576,  5582,  5588,  5594,  5601,  5620,
    5641,  5646,  5650,  5657,  5658,  5661,  5662,  5666,  5667,  5668,
    5672,  5673,  5674,  5677,  5678,  5679,  5680,  5688,  5687,  5698,
    5706,  5705,  5715,  5725,  5734,  5735,  5742,  5742,  5748,  5749,
    5753,  5754,  5755,  5759,  5760,  5777,  5778,  5783,  5782,  5793,
    5792,  5803,  5802,  5812,  5813,  5814,  5819,  5818,  5830,  5831,
    5834,  5835,  5838,  5839,  5840,  5844,  5843,  5855,  5864,  5863,
    5880,  5881,  5884,  5885,  5888,  5889,  5890,  5891,  5892,  5893,
    5897,  5896,  5908,  5909,  5910,  5915,  5914,  5921,  5920,  5927,
    5934,  5939,  5947,  5948,  5951,  5963,  5974,  5983,  5984,  5987,
    5996,  5997,  6002,  6001,  6011,  6012,  6015,  6024,  6024,  6035,
    6036,  6041,  6042,  6051,  6060,  6062,  6065,  6087,  6091,  6090,
    6110,  6118,  6110,  6124,  6125,  6126,  6127,  6128,  6131,  6138,
    6145,  6147,  6158,  6159,  6162,  6163,  6169,  6170,  6171,  6172,
    6178,  6184,  6190,  6204,  6207,  6209,  6215,  6225,  6226,  6227,
    6240,  6260,  6267,  6274,  6275,  6278,  6279,  6280,  6281,  6282,
    6286,  6287,  6291,  6291,  6308,  6310,  6315,  6316,  6316,  6333,
    6335,  6340,  6341,  6344,  6346,  6348,  6350,  6352,  6353,  6354,
    6358,  6359,  6360,  6361,  6363,  6365,  6368,  6372,  6378,  6382,
    6388,  6392,  6400,  6402,  6408,  6411,  6413,  6415,  6416,  6418,
    6421,  6422,  6425,  6426,  6429,  6431,  6433,  6436,  6437,  6438,
    6440,  6442,  6445,  6446,  6447,  6448,  6449,  6450,  6453,  6454,
    6456,  6456,  6457,  6457,  6458,  6458,  6459,  6459,  6461,  6462,
    6463,  6464,  6465,  6466,  6469,  6470,  6474,  6478,  6479,  6480,
    6481,  6482,  6483,  6491,  6492,  6493,  6494,  6495,  6497,  6498,
    6500,  6502,  6504,  6508,  6509,  6514,  6519,  6523,  6524,  6531,
    6536,  6544,  6546,  6553,  6555,  6567,  6570,  6573,  6591,  6593,
    6595,  6600,  6602,  6604,  6606,  6608,  6610,  6612,  6614,  6616,
    6618,  6620,  6622,  6624,  6626,  6628,  6630,  6632,  6634,  6636,
    6638,  6640,  6645,  6662,  6667,  6669,  6674,  6679,  6684,  6686,
    6688,  6690,  6692,  6697,  6702,  6704,  6709,  6711,  6713,  6715,
    6717,  6719,  6727,  6735,  6737,  6739,  6744,  6749,  6762,  6764,
    6766,  6768,  6770,  6775,  6777,  6779,  6781,  6783,  6793,  6795,
    6797,  6799,  6801,  6810,  6812,  6825,  6831,  6838,  6845,  6852,
    6859,  6866,  6868,  6888,  6887,  6955,  6987,  6989,  6994,  6995,
    6999,  7000,  7004,  7005,  7009,  7009,  7015,  7019,  7026,  7046,
    7048,  7050,  7052,  7054,  7056,  7058,  7061,  7063,  7060,  7066,
    7073,  7075,  7077,  7079,  7081,  7083,  7085,  7087,  7089,  7092,
    7091,  7106,  7105,  7120,  7126,  7132,  7145,  7146,  7150,  7153,
    7158,  7161,  7173,  7172,  7188,  7189,  7190,  7191,  7192,  7193,
    7194,  7195,  7196,  7197,  7198,  7202,  7203,  7207,  7207,  7212,
    7213,  7216,  7217,  7220,  7220,  7225,  7226,  7229,  7230,  7233,
    7234,  7237,  7243,  7253,  7254,  7263,  7268,  7269,  7289,  7291,
    7295,  7293,  7310,  7308,  7326,  7324,  7331,  7340,  7338,  7356,
    7355,  7365,  7376,  7374,  7393,  7392,  7403,  7413,  7414,  7415,
    7420,  7420,  7435,  7433,  7452,  7474,  7521,  7520,  7543,  7560,
    7543,  7567,  7571,  7597,  7598,  7602,  7606,  7607,  7608,  7612,
    7613,  7618,  7617,  7623,  7622,  7630,  7631,  7634,  7636,  7636,
    7640,  7640,  7645,  7646,  7650,  7651,  7658,  7659,  7663,  7671,
    7680,  7681,  7682,  7683,  7684,  7685,  7686,  7687,  7688,  7689,
    7690,  7691,  7692,  7695,  7696,  7697,  7698,  7699,  7700,  7701,
    7702,  7703,  7707,  7708,  7709,  7710,  7713,  7715,  7716,  7719,
    7720,  7723,  7725,  7729,  7731,  7730,  7744,  7747,  7746,  7761,
    7767,  7780,  7782,  7785,  7787,  7791,  7792,  7805,  7823,  7827,
    7828,  7832,  7845,  7847,  7851,  7850,  7882,  7884,  7888,  7889,
    7890,  7895,  7901,  7905,  7906,  7910,  7914,  7921,  7928,  7937,
    7941,  7942,  7943,  7948,  7952,  7960,  7961,  7962,  7963,  7964,
    7965,  7969,  7970,  7971,  7972,  7973,  7977,  7978,  7979,  7980,
    7981,  7985,  7986,  7987,  7988,  7992,  7997,  7998,  8001,  8004,
    8003,  8032,  8033,  8036,  8037,  8040,  8053,  8053,  8063,  8064,
    8068,  8080,  8113,  8112,  8125,  8124,  8133,  8145,  8156,  8155,
    8172,  8179,  8179,  8191,  8198,  8210,  8222,  8226,  8232,  8238,
    8245,  8250,  8255,  8265,  8266,  8269,  8277,  8278,  8282,  8283,
    8291,  8300,  8290,  8310,  8317,  8309,  8327,  8339,  8340,  8341,
    8345,  8346,  8349,  8350,  8353,  8362,  8363,  8364,  8366,  8365,
    8375,  8376,  8379,  8380,  8381,  8381,  8382,  8382,  8386,  8387,
    8390,  8392,  8395,  8403,  8404,  8408,  8409,  8414,  8413,  8426,
    8427,  8430,  8435,  8443,  8444,  8447,  8449,  8449,  8457,  8466,
    8456,  8488,  8489,  8492,  8499,  8500,  8503,  8512,  8513,  8519,
    8518,  8532,  8531,  8540,  8539,  8547,  8546,  8556,  8557,  8560,
    8567,  8580,  8581,  8585,  8586,  8589,  8590,  8591,  8594,  8604,
    8606,  8611,  8610,  8624,  8631,  8639,  8647,  8655,  8663,  8671,
    8679,  8686,  8688,  8690,  8699,  8709,  8713,  8718,  8717,  8722,
    8731,  8736,  8744,  8751,  8756,  8761,  8766,  8768,  8770,  8772,
    8774,  8782,  8794,  8806,  8808,  8816,  8823,  8830,  8840,  8847,
    8853,  8862,  8870,  8874,  8878,  8885,  8892,  8898,  8907,  8916,
    8926,  8936,  8944,  8946,  8948,  8952,  8953,  8955,  8957,  8960,
    8961,  8964,  8965,  8968,  8969,  8972,  8973,  8976,  8977,  8979,
    8981,  8984,  8996,  8995,  9009,  9008,  9018,  9019,  9022,  9023,
    9024,  9029,  9030,  9031,  9039,  9038,  9050,  9051,  9054,  9054,
    9055,  9056,  9057,  9058,  9059,  9060,  9061,  9062,  9063,  9064,
    9067,  9068,  9072,  9071,  9080,  9081,  9084,  9085,  9086,  9090,
    9089,  9099,  9103,  9107,  9119,  9128,  9129,  9130,  9135,  9145,
    9144,  9160,  9177,  9188,  9195,  9205,  9176,  9210,  9219,  9220,
    9223,  9224,  9236,  9240,  9241,  9242,  9244,  9246,  9249,  9250,
    9253,  9258,  9265,  9270,  9276,  9278,  9281,  9282,  9285,  9290,
    9296,  9298,  9305,  9306,  9307,  9310,  9312,  9317,  9318,  9323,
    9324,  9330,  9348,  9356,  9361,  9380,  9382,  9393,  9406,  9427,
    9428,  9429,  9438,  9439,  9440,  9445,  9446,  9447,  9448,  9449,
    9465,  9479,  9480,  9481,  9484,  9485,  9486,  9487,  9495,  9510,
    9511,  9514,  9520,  9531,  9534,  9571,  9575,  9583,  9587,  9656,
    9671,  9695,  9696,  9712,  9722,  9725,  9726,  9727,  9731,  9735,
    9736,  9762,  9775,  9789,  9802,  9803,  9809,  9818,  9819,  9828,
    9829,  9830,  9833,  9847,  9861,  9875,  9876,  9877,  9878,  9879,
    9880,  9881,  9882,  9883,  9884,  9885,  9886,  9887,  9888,  9889,
    9890,  9891,  9892,  9893,  9894,  9895,  9896,  9897,  9898,  9899,
    9900,  9901,  9902,  9903,  9904,  9905,  9906,  9907,  9908,  9909,
    9910,  9911,  9912,  9913,  9914,  9915,  9916,  9917,  9918,  9919,
    9920,  9921,  9922,  9923,  9924,  9934,  9935,  9936,  9937,  9938,
    9939,  9940,  9941,  9942,  9943,  9944,  9945,  9946,  9947,  9948,
    9949,  9950,  9951,  9952,  9953,  9954,  9955,  9956,  9957,  9958,
    9959,  9960,  9961,  9962,  9963,  9964,  9965,  9966,  9967,  9968,
    9969,  9970,  9971,  9972,  9973,  9974,  9975,  9976,  9977,  9978,
    9979,  9980,  9981,  9982,  9983,  9984,  9985,  9986,  9987,  9988,
    9989,  9990,  9991,  9992,  9993,  9994,  9995,  9996,  9997,  9998,
    9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008,
   10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018,
   10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028,
   10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038,
   10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048,
   10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058,
   10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068,
   10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078,
   10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088,
   10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098,
   10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108,
   10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118,
   10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128,
   10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138,
   10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148,
   10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158,
   10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168,
   10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178,
   10179, 10180, 10181, 10188, 10187, 10201, 10202, 10205, 10206, 10209,
   10209, 10287, 10288, 10289, 10290, 10294, 10295, 10299, 10300, 10301,
   10302, 10306, 10307, 10308, 10309, 10313, 10314, 10317, 10398, 10410,
   10414, 10419, 10426, 10441, 10454, 10475, 10482, 10514, 10557, 10571,
   10572, 10573, 10574, 10578, 10579, 10586, 10595, 10596, 10597, 10598,
   10599, 10607, 10606, 10622, 10623, 10626, 10627, 10630, 10638, 10639,
   10640, 10641, 10646, 10645, 10666, 10678, 10691, 10690, 10713, 10714,
   10718, 10719, 10723, 10724, 10725, 10726, 10728, 10727, 10738, 10739,
   10740, 10741, 10742, 10748, 10753, 10760, 10773, 10785, 10792, 10797,
   10805, 10818, 10832, 10834, 10837, 10838, 10845, 10847, 10851, 10852,
   10855, 10855, 10856, 10856, 10857, 10857, 10858, 10858, 10859, 10860,
   10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870,
   10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880,
   10881, 10882, 10883, 10888, 10889, 10893, 10894, 10898, 10908, 10918,
   10931, 10946, 10959, 10972, 10985, 10986, 10995, 10996, 11005, 11030,
   11032, 11039, 11043, 11046, 11047, 11050, 11071, 11072, 11076, 11080,
   11084, 11091, 11092, 11095, 11096, 11100, 11101, 11107, 11113, 11119,
   11129, 11128, 11138, 11139, 11143, 11144, 11145, 11149, 11150, 11151,
   11155, 11156, 11160, 11170, 11177, 11187, 11196, 11210, 11211, 11216,
   11215, 11250, 11251, 11252, 11256, 11256, 11280, 11281, 11285, 11286,
   11287, 11291, 11296, 11295, 11315, 11321, 11341, 11363, 11365, 11370,
   11372, 11374, 11376, 11388, 11398, 11411, 11413, 11415, 11420, 11425,
   11427, 11429, 11435, 11436, 11438, 11444, 11453, 11443, 11477, 11478,
   11482, 11487, 11495, 11495, 11519, 11520, 11525, 11526, 11528, 11530,
   11548, 11557, 11565, 11541, 11637, 11636, 11646, 11675, 11687, 11696,
   11645, 11723, 11727, 11731, 11735, 11739, 11743, 11749, 11756, 11763,
   11772, 11773, 11777, 11778, 11779, 11783, 11784, 11788, 11789, 11789,
   11794, 11795, 11799, 11808
};
#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", "ABORT_SYM", "ACCESSIBLE_SYM", "ACTION",
  "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM",
  "ALGORITHM_SYM", "ALL", "ALTER", "ANALYZE_SYM", "AND_AND_SYM", "AND_SYM",
  "ANY_SYM", "AS", "ASC", "ASCII_SYM", "ASENSITIVE_SYM", "AT_SYM",
  "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM", "AUTO_INC", "AVG_ROW_LENGTH",
  "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM", "BEGIN_SYM", "BETWEEN_SYM",
  "BIGINT", "BINARY", "BINLOG_SYM", "BIN_NUM", "BIT_AND", "BIT_OR",
  "BIT_SYM", "BIT_XOR", "BLOB_SYM", "BOOLEAN_SYM", "BOOL_SYM", "BOTH",
  "BTREE_SYM", "BY", "BYTE_SYM", "CACHE_SYM", "CALL_SYM", "CASCADE",
  "CASCADED", "CASE_SYM", "CAST_SYM", "CHAIN_SYM", "CHANGE", "CHANGED",
  "CHARSET", "CHAR_SYM", "CHECKSUM_SYM", "CHECK_SYM", "CIPHER_SYM",
  "CLIENT_SYM", "CLOSE_SYM", "COALESCE", "CODE_SYM", "COLLATE_SYM",
  "COLLATION_SYM", "COLUMNS", "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM",
  "COMMIT_SYM", "COMPACT_SYM", "COMPLETION_SYM", "COMPRESSED_SYM",
  "CONCURRENT", "CONDITION_SYM", "CONNECTION_SYM", "CONSISTENT_SYM",
  "CONSTRAINT", "CONTAINS_SYM", "CONTINUE_SYM", "CONTRIBUTORS_SYM",
  "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
  "CURRENT_USER", "CURSOR_SYM", "CURTIME", "DATABASE", "DATABASES",
  "DATAFILE_SYM", "DATA_SYM", "DATETIME", "DATE_ADD_INTERVAL",
  "DATE_SUB_INTERVAL", "DATE_SYM", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM",
  "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM",
  "DECIMAL_NUM", "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER_SYM",
  "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DELETE_SYM", "DESC", "DESCRIBE",
  "DES_KEY_FILE", "DETERMINISTIC_SYM", "DIRECTORY_SYM", "DISABLE_SYM",
  "DISCARD", "DISK_SYM", "DISTINCT", "DIV_SYM", "DOUBLE_SYM", "DO_SYM",
  "DROP", "DUAL_SYM", "DUMPFILE", "DUPLICATE_SYM", "DYNAMIC_SYM",
  "EACH_SYM", "ELSE", "ELSEIF_SYM", "ENABLE_SYM", "ENCLOSED", "END",
  "ENDS_SYM", "END_OF_INPUT", "ENGINES_SYM", "ENGINE_SYM", "ENUM", "EQ",
  "EQUAL_SYM", "ERRORS", "ESCAPED", "ESCAPE_SYM", "EVENTS_SYM",
  "EVENT_SYM", "EVERY_SYM", "EXECUTE_SYM", "EXISTS", "EXIT_SYM",
  "EXPANSION_SYM", "EXTENDED_SYM", "EXTENT_SIZE_SYM", "EXTRACT_SYM",
  "FALSE_SYM", "FAST_SYM", "FETCH_SYM", "FILE_SYM", "FIRST_SYM",
  "FIXED_SYM", "FLOAT_NUM", "FLOAT_SYM", "FLUSH_SYM", "FORCE_SYM",
  "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
  "FULLTEXT_SYM", "FUNCTION_SYM", "GE", "GEOMETRYCOLLECTION",
  "GEOMETRY_SYM", "GET_FORMAT", "GLOBAL_SYM", "GRANT", "GRANTS",
  "GROUP_SYM", "GROUP_CONCAT_SYM", "GT_SYM", "HANDLER_SYM", "HASH_SYM",
  "HAVING", "HELP_SYM", "HEX_NUM", "HIGH_PRIORITY", "HOST_SYM",
  "HOSTS_SYM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
  "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENT_QUOTED",
  "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM", "INFILE",
  "INITIAL_SIZE_SYM", "INNER_SYM", "INNOBASE_SYM", "INOUT_SYM",
  "INSENSITIVE_SYM", "INSERT", "INSERT_METHOD", "INSTALL_SYM",
  "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", "IN_SYM", "IS",
  "ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "JOIN_SYM", "KEYS",
  "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LANGUAGE_SYM", "LAST_SYM",
  "LE", "LEADING", "LEAVES", "LEAVE_SYM", "LEFT", "LESS_SYM", "LEVEL_SYM",
  "LEX_HOSTNAME", "LIKE", "LIMIT", "LINEAR_SYM", "LINES", "LINESTRING",
  "LIST_SYM", "LOAD", "LOCAL_SYM", "LOCATOR_SYM", "LOCKS_SYM", "LOCK_SYM",
  "LOGFILE_SYM", "LOGS_SYM", "LONGBLOB", "LONGTEXT", "LONG_NUM",
  "LONG_SYM", "LOOP_SYM", "LOW_PRIORITY", "LT", "MASTER_CONNECT_RETRY_SYM",
  "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM", "MASTER_LOG_POS_SYM",
  "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM", "MASTER_SERVER_ID_SYM",
  "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM", "MASTER_SSL_CERT_SYM",
  "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM", "MASTER_SSL_SYM",
  "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MASTER_SYM", "MASTER_USER_SYM",
  "MATCH", "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_ROWS",
  "MAX_SIZE_SYM", "MAX_SYM", "MAX_UPDATES_PER_HOUR",
  "MAX_USER_CONNECTIONS_SYM", "MAX_VALUE_SYM", "MEDIUMBLOB", "MEDIUMINT",
  "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM", "MERGE_SYM", "MICROSECOND_SYM",
  "MIGRATE_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM",
  "MINUTE_SYM", "MIN_ROWS", "MIN_SYM", "MODE_SYM", "MODIFIES_SYM",
  "MODIFY_SYM", "MOD_SYM", "MONTH_SYM", "MULTILINESTRING", "MULTIPOINT",
  "MULTIPOLYGON", "MUTEX_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
  "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM", "NE", "NEG",
  "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM", "NOT2_SYM",
  "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM", "NO_WRITE_TO_BINLOG",
  "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM", "OFFSET_SYM",
  "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM", "OPEN_SYM", "OPTIMIZE",
  "OPTIONS_SYM", "OPTION", "OPTIONALLY", "OR2_SYM", "ORDER_SYM",
  "OR_OR_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM", "OWNER_SYM",
  "PACK_KEYS_SYM", "PAGE_SYM", "PARAM_MARKER", "PARSER_SYM", "PARTIAL",
  "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM", "PASSWORD",
  "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", "POINT_SYM", "POLYGON",
  "PORT_SYM", "POSITION_SYM", "PRECISION", "PREPARE_SYM", "PRESERVE_SYM",
  "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE", "PROCESS",
  "PROCESSLIST_SYM", "PURGE", "QUARTER_SYM", "QUERY_SYM", "QUICK",
  "RANGE_SYM", "READS_SYM", "READ_ONLY_SYM", "READ_SYM", "READ_WRITE_SYM",
  "REAL", "REBUILD_SYM", "RECOVER_SYM", "REDOFILE_SYM",
  "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM", "REFERENCES", "REGEXP",
  "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM", "RELAY_THREAD", "RELEASE_SYM",
  "RELOAD", "REMOVE_SYM", "RENAME", "REORGANIZE_SYM", "REPAIR",
  "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", "REPLICATION", "REQUIRE_SYM",
  "RESET_SYM", "RESOURCES", "RESTORE_SYM", "RESTRICT", "RESUME_SYM",
  "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT", "ROLLBACK_SYM",
  "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM",
  "RTREE_SYM", "SAVEPOINT_SYM", "SCHEDULE_SYM", "SECOND_MICROSECOND_SYM",
  "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM", "SENSITIVE_SYM",
  "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM", "SESSION_SYM",
  "SERVER_SYM", "SERVER_OPTIONS", "SET", "SET_VAR", "SHARE_SYM",
  "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN", "SIGNED_SYM",
  "SIMPLE_SYM", "SLAVE", "SMALLINT", "SNAPSHOT_SYM", "SOCKET_SYM",
  "SONAME_SYM", "SOUNDS_SYM", "SPATIAL_SYM", "SPECIFIC_SYM",
  "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT",
  "SQL_BUFFER_RESULT", "SQL_CACHE_SYM", "SQL_CALC_FOUND_ROWS",
  "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM", "SQL_THREAD",
  "SSL_SYM", "STARTING", "STARTS_SYM", "START_SYM", "STATUS_SYM",
  "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM", "STORAGE_SYM", "STRAIGHT_JOIN",
  "STRING_SYM", "SUBDATE_SYM", "SUBJECT_SYM", "SUBPARTITIONS_SYM",
  "SUBPARTITION_SYM", "SUBSTRING", "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM",
  "SYSDATE", "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
  "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM",
  "THAN_SYM", "THEN_SYM", "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF",
  "TIME_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING",
  "TRANSACTION_SYM", "TRANSACTIONAL_SYM", "TRIGGERS_SYM", "TRIGGER_SYM",
  "TRIM", "TRUE_SYM", "TRUNCATE_SYM", "TYPES_SYM", "TYPE_SYM",
  "UDF_RETURNS_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM",
  "UNDERSCORE_CHARSET", "UNDOFILE_SYM", "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM",
  "UNICODE_SYM", "UNINSTALL_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM",
  "UNLOCK_SYM", "UNSIGNED", "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM",
  "USAGE", "USER", "USE_FRM", "USE_SYM", "USING", "UTC_DATE_SYM",
  "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM", "VALUES", "VALUE_SYM", "VARBINARY",
  "VARCHAR", "VARIABLES", "VARIANCE_SYM", "VARYING", "VAR_SAMP_SYM",
  "VIEW_SYM", "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE",
  "WHILE_SYM", "WITH", "WORK_SYM", "WRAPPER_SYM", "WRITE_SYM", "X509_SYM",
  "XA_SYM", "XOR", "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL", "'|'", "'&'",
  "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "'('", "')'", "','",
  "'!'", "'{'", "'}'", "'@'", "'.'", "';'", "':'", "$accept", "query",
  "verb_clause", "statement", "deallocate", "deallocate_or_drop",
  "prepare", "prepare_src", "execute", "@1", "execute_using",
  "execute_var_list", "execute_var_ident", "help", "@2", "change", "@3",
  "master_defs", "master_def", "master_file_def", "create", "@4", "@5",
  "@6", "@7", "server_def", "server_options_list", "server_option",
  "event_tail", "@8", "ev_schedule_time", "@9", "opt_ev_status",
  "ev_starts", "ev_ends", "opt_ev_on_completion", "ev_on_completion",
  "opt_ev_comment", "ev_sql_stmt", "@10", "ev_sql_stmt_inner",
  "clear_privileges", "sp_name", "create_function_tail", "@11", "@12",
  "@13", "@14", "@15", "sp_a_chistics", "sp_c_chistics", "sp_chistic",
  "sp_c_chistic", "sp_suid", "call", "@16", "opt_sp_cparam_list",
  "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", "sp_fdparams",
  "sp_init_param", "sp_fdparam", "sp_pdparam_list", "sp_pdparams",
  "sp_pdparam", "sp_opt_inout", "sp_proc_stmts", "sp_proc_stmts1",
  "sp_decls", "sp_decl", "@17", "@18", "sp_cursor_stmt", "@19",
  "sp_handler_type", "sp_hcond_list", "sp_hcond_element", "sp_cond",
  "opt_value", "sp_hcond", "sp_decl_idents", "sp_opt_default",
  "sp_proc_stmt", "sp_proc_stmt_if", "@20", "sp_proc_stmt_statement",
  "@21", "sp_proc_stmt_return", "@22", "sp_proc_stmt_unlabeled", "@23",
  "sp_proc_stmt_leave", "sp_proc_stmt_iterate", "sp_proc_stmt_open",
  "sp_proc_stmt_fetch", "@24", "sp_proc_stmt_close", "sp_opt_fetch_noise",
  "sp_fetch_list", "sp_if", "@25", "@26", "@27", "sp_elseifs",
  "case_stmt_specification", "simple_case_stmt", "@28", "@29",
  "searched_case_stmt", "@30", "simple_when_clause_list",
  "searched_when_clause_list", "simple_when_clause", "@31", "@32",
  "searched_when_clause", "@33", "@34", "else_clause_opt",
  "sp_labeled_control", "@35", "sp_opt_label", "sp_unlabeled_control",
  "@36", "@37", "@38", "@39", "trg_action_time", "trg_event",
  "change_tablespace_access", "change_tablespace_info", "tablespace_info",
  "opt_logfile_group_name", "alter_tablespace_info", "logfile_group_info",
  "alter_logfile_group_info", "add_log_file", "change_ts_option_list",
  "@40", "change_ts_options", "change_ts_option", "tablespace_option_list",
  "@41", "tablespace_options", "tablespace_option",
  "alter_tablespace_option_list", "@42", "alter_tablespace_options",
  "alter_tablespace_option", "logfile_group_option_list", "@43",
  "logfile_group_options", "logfile_group_option",
  "alter_logfile_group_option_list", "@44", "alter_logfile_group_options",
  "alter_logfile_group_option", "ts_datafile", "lg_undofile",
  "lg_redofile", "tablespace_name", "logfile_group_name", "ts_access_mode",
  "opt_ts_initial_size", "opt_ts_autoextend_size", "opt_ts_max_size",
  "opt_ts_extent_size", "opt_ts_undo_buffer_size",
  "opt_ts_redo_buffer_size", "opt_ts_nodegroup", "opt_ts_comment",
  "opt_ts_engine", "opt_ts_wait", "ts_wait", "size_number", "create2",
  "@45", "create2a", "@46", "@47", "@48", "create3", "@49", "@50",
  "opt_partitioning", "partitioning", "@51", "partition_entry", "@52",
  "partition", "@53", "@54", "part_type_def", "@55", "@56", "@57",
  "opt_linear", "part_field_list", "part_field_item_list",
  "part_field_item", "part_func", "sub_part_func", "opt_no_parts",
  "opt_sub_part", "@58", "@59", "sub_part_field_list",
  "sub_part_field_item", "part_func_expr", "opt_no_subparts", "part_defs",
  "part_def_list", "part_definition", "@60", "@61", "@62", "@63",
  "part_name", "opt_part_values", "part_func_max", "max_value_sym",
  "part_range_func", "part_list_func", "part_list_item", "part_bit_expr",
  "opt_sub_partition", "sub_part_list", "sub_part_definition", "@64",
  "sub_name", "opt_part_options", "opt_part_option_list",
  "opt_part_option", "create_select", "@65", "@66", "opt_as",
  "opt_create_database_options", "create_database_options",
  "create_database_option", "opt_table_options", "table_options",
  "table_option", "opt_if_not_exists", "opt_create_table_options",
  "create_table_options_space_separated", "create_table_options",
  "create_table_option", "default_charset", "default_collation",
  "storage_engines", "known_storage_engines", "row_types",
  "merge_insert_types", "opt_select_from", "udf_func_type", "udf_type",
  "field_list", "field_list_item", "column_def", "key_def",
  "opt_check_constraint", "check_constraint", "opt_constraint",
  "constraint", "field_spec", "@67", "type", "@68", "@69", "spatial_type",
  "char", "nchar", "varchar", "nvarchar", "int_type", "real_type",
  "float_options", "precision", "field_options", "field_opt_list",
  "field_option", "opt_len", "opt_precision", "opt_attribute",
  "opt_attribute_list", "attribute", "now_or_signed_literal", "charset",
  "charset_name", "charset_name_or_default", "opt_load_data_charset",
  "old_or_new_charset_name", "old_or_new_charset_name_or_default",
  "collation_name", "opt_collate", "collation_name_or_default",
  "opt_default", "opt_binary", "opt_bin_mod", "opt_bin_charset",
  "opt_primary", "references", "@70", "opt_ref_list", "ref_list",
  "opt_on_delete", "opt_on_delete_list", "opt_on_delete_item",
  "delete_option", "key_type", "constraint_key_type", "key_or_index",
  "opt_key_or_index", "keys_or_index", "opt_unique_or_fulltext",
  "init_key_options", "key_alg", "key_options", "key_opts",
  "key_using_alg", "key_opt", "btree_or_rtree", "key_list", "key_part",
  "opt_ident", "opt_component", "string_list", "alter", "@71", "@72",
  "@73", "@74", "@75", "@76", "@77", "ev_alter_on_schedule_completion",
  "opt_ev_rename_to", "opt_ev_sql_stmt", "ident_or_empty",
  "alter_commands", "@78", "@79", "@80", "@81", "remove_partitioning",
  "all_or_alt_part_name_list", "add_partition_rule", "@82",
  "add_part_extra", "reorg_partition_rule", "@83", "reorg_parts_rule",
  "@84", "alt_part_name_list", "alt_part_name_item", "alter_list",
  "add_column", "alter_list_item", "@85", "@86", "@87", "opt_column",
  "opt_ignore", "opt_restrict", "opt_place", "opt_to", "slave", "@88",
  "@89", "start", "start_transaction_opts", "slave_thread_opts", "@90",
  "slave_thread_opt_list", "slave_thread_opt", "slave_until",
  "slave_until_opts", "restore", "@91", "backup", "@92", "checksum", "@93",
  "opt_checksum_type", "repair", "@94", "opt_mi_repair_type",
  "mi_repair_types", "mi_repair_type", "analyze", "@95",
  "binlog_base64_event", "check", "@96", "opt_mi_check_type",
  "mi_check_types", "mi_check_type", "optimize", "@97",
  "opt_no_write_to_binlog", "rename", "@98", "@99", "rename_list",
  "table_to_table_list", "table_to_table", "db_to_db", "keycache",
  "keycache_list", "assign_to_keycache", "key_cache_name", "preload",
  "@100", "preload_list", "preload_keys", "cache_keys_spec", "@101",
  "cache_key_list_or_empty", "opt_ignore_leaves", "select", "select_init",
  "select_paren", "select_init2", "@102", "select_part2", "@103", "@104",
  "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", "@105", "bool_or_expr", "bool_term", "@106",
  "bool_and_expr", "bool_factor", "bool_test", "bool_pri", "predicate",
  "bit_expr", "bit_term", "bit_factor", "value_expr", "term", "factor",
  "or", "and", "not", "not2", "comp_op", "all_or_any", "interval_expr",
  "simple_expr", "function_call_keyword", "function_call_nonkeyword",
  "function_call_conflict", "geometry_function", "function_call_generic",
  "@107", "fulltext_options", "opt_natural_language_mode",
  "opt_query_expansion", "udf_expr_list", "udf_expr_list2", "@108",
  "udf_expr_list3", "udf_expr", "sum_expr", "@109", "@110", "@111",
  "variable", "@112", "variable_aux", "opt_distinct",
  "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "@113",
  "cast_type", "opt_expr_list", "expr_list", "@114", "expr_list2",
  "ident_list_arg", "ident_list", "@115", "ident_list2", "opt_expr",
  "opt_else", "when_list", "table_ref", "join_table_list",
  "derived_table_list", "join_table", "@116", "@117", "@118", "@119",
  "@120", "@121", "@122", "normal_join", "table_factor", "@123", "@124",
  "select_derived", "@125", "select_derived2", "@126", "@127",
  "get_select_lex", "select_derived_init", "opt_outer",
  "index_hint_clause", "index_hint_type", "index_hint_definition", "@128",
  "@129", "index_hints_list", "opt_index_hints_list", "@130",
  "opt_key_definition", "@131", "opt_key_usage_list", "key_usage_element",
  "key_usage_list", "using_list", "interval", "interval_time_st",
  "date_time_type", "table_alias", "opt_table_alias", "opt_all",
  "where_clause", "@132", "having_clause", "@133", "opt_escape",
  "group_clause", "group_list", "olap_opt", "alter_order_clause",
  "alter_order_list", "alter_order_item", "opt_order_clause",
  "order_clause", "@134", "order_list", "order_dir",
  "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
  "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
  "real_ulong_num", "ulonglong_num", "real_ulonglong_num", "dec_num_error",
  "dec_num", "procedure_clause", "@135", "procedure_list",
  "procedure_list2", "procedure_item", "select_var_list_init", "@136",
  "select_var_list", "select_var_ident", "into", "@137",
  "into_destination", "@138", "do", "@139", "drop", "@140", "table_list",
  "table_name", "if_exists", "opt_temporary", "insert", "@141", "@142",
  "replace", "@143", "@144", "insert_lock_option", "replace_lock_option",
  "insert2", "insert_table", "insert_field_spec", "@145", "fields",
  "insert_values", "@146", "@147", "values_list", "ident_eq_list",
  "ident_eq_value", "equal", "opt_equal", "no_braces", "@148",
  "opt_values", "values", "expr_or_default", "opt_insert_update", "@149",
  "update", "@150", "@151", "update_list", "update_elem",
  "insert_update_list", "insert_update_elem", "opt_low_priority", "delete",
  "@152", "single_multi", "@153", "@154", "@155", "table_wild_list",
  "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option",
  "truncate", "opt_table_sym", "show", "@156", "show_param", "@157",
  "show_engine_param", "master_or_binary", "opt_storage", "opt_db",
  "opt_full", "from_or_in", "binlog_in", "binlog_from", "wild_and_where",
  "describe", "@158", "@159", "describe_command", "opt_extended_describe",
  "opt_describe_column", "flush", "@160", "flush_options", "flush_option",
  "@161", "opt_table_list", "reset", "@162", "reset_options",
  "reset_option", "purge", "@163", "purge_options", "purge_option", "kill",
  "kill_option", "use", "load", "@164", "load_data", "@165", "@166",
  "@167", "@168", "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",
  "opt_field_or_var_spec", "fields_or_vars", "field_or_var",
  "opt_load_data_set_spec", "text_literal", "text_string", "param_marker",
  "signed_literal", "literal", "NUM_literal", "insert_ident", "table_wild",
  "order_ident", "simple_ident", "simple_ident_nospvar", "simple_ident_q",
  "field_ident", "table_ident", "table_ident_nodb", "IDENT_sys",
  "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
  "ident", "label_ident", "ident_or_text", "user", "keyword", "keyword_sp",
  "set", "@169", "opt_option", "option_value_list", "option_type_value",
  "@170", "option_type", "option_type2", "opt_var_type",
  "opt_var_ident_type", "ext_option_value", "sys_option_value",
  "option_value", "internal_variable_name", "isolation_types",
  "text_or_password", "set_expr_or_default", "lock", "@171",
  "table_or_tables", "table_lock_list", "table_lock", "lock_option",
  "unlock", "@172", "handler", "@173", "handler_read_or_scan",
  "handler_scan_function", "handler_rkey_function", "@174",
  "handler_rkey_mode", "revoke", "revoke_command", "grant",
  "grant_command", "opt_table", "grant_privileges", "opt_privileges",
  "object_privilege_list", "object_privilege", "@175", "@176", "@177",
  "@178", "opt_and", "require_list", "require_list_element", "grant_ident",
  "user_list", "grant_list", "grant_user", "opt_column_list",
  "column_list", "column_list_id", "require_clause", "grant_options",
  "grant_option_list", "grant_option", "begin", "@179", "opt_work",
  "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
  "savepoint", "release", "union_clause", "union_list", "@180",
  "union_opt", "union_order_or_limit", "@181", "order_or_limit",
  "union_option", "subselect", "@182", "subselect_init", "subselect_start",
  "subselect_end", "view_or_trigger_or_sp_or_event",
  "view_or_trigger_or_sp_or_event_tail", "definer",
  "view_replace_or_algorithm", "view_replace", "view_algorithm",
  "view_suid", "view_tail", "@183", "@184", "view_list_opt", "view_list",
  "view_select", "@185", "view_select_aux", "view_check_option",
  "trigger_tail", "@186", "@187", "@188", "sp_tail", "@189", "@190",
  "@191", "@192", "@193", "xa", "xid", "begin_or_start",
  "opt_join_or_resume", "opt_one_phase", "opt_suspend", "@194",
  "opt_migrate", "install", "uninstall", 0
};
#endif

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

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const unsigned short int yyr1[] =
{
       0,   578,   579,   579,   580,   580,   581,   581,   581,   581,
     581,   581,   581,   581,   581,   581,   581,   581,   581,   581,
     581,   581,   581,   581,   581,   581,   581,   581,   581,   581,
     581,   581,   581,   581,   581,   581,   581,   581,   581,   581,
     581,   581,   581,   581,   581,   581,   581,   581,   581,   581,
     581,   581,   581,   581,   581,   581,   581,   582,   583,   583,
     584,   585,   585,   587,   586,   588,   588,   589,   589,   590,
     592,   591,   594,   593,   595,   595,   596,   596,   596,   596,
     596,   596,   596,   596,   596,   596,   596,   596,   596,   597,
     597,   597,   597,   599,   598,   600,   598,   601,   598,   602,
     598,   598,   598,   598,   598,   603,   604,   604,   605,   605,
     605,   605,   605,   605,   605,   607,   606,   609,   608,   608,
     610,   610,   610,   610,   611,   611,   612,   612,   613,   613,
     614,   614,   615,   615,   617,   616,   618,   618,   618,   618,
     618,   618,   618,   618,   618,   618,   618,   619,   620,   620,
     621,   622,   623,   624,   625,   626,   621,   627,   627,   628,
     628,   629,   629,   629,   629,   629,   629,   629,   630,   630,
     630,   631,   631,   633,   632,   634,   634,   635,   635,   636,
     636,   637,   637,   638,   638,   639,   640,   641,   641,   642,
     642,   643,   644,   644,   644,   644,   645,   645,   646,   646,
     647,   647,   649,   648,   648,   650,   648,   648,   652,   651,
     653,   653,   654,   654,   655,   656,   656,   657,   657,   658,
     658,   658,   658,   658,   659,   659,   660,   660,   661,   661,
     661,   661,   661,   661,   661,   661,   661,   661,   661,   663,
     662,   665,   664,   667,   666,   669,   668,   670,   671,   672,
     674,   673,   675,   676,   676,   676,   677,   677,   679,   680,
     681,   678,   682,   682,   682,   683,   683,   685,   686,   684,
     688,   687,   689,   689,   690,   690,   692,   693,   691,   695,
     696,   694,   697,   697,   699,   698,   700,   700,   702,   701,
     701,   703,   704,   701,   705,   701,   706,   706,   707,   707,
     707,   708,   709,   710,   711,   711,   712,   712,   713,   714,
     715,   715,   717,   716,   718,   718,   718,   719,   719,   719,
     721,   720,   722,   722,   722,   723,   723,   723,   723,   723,
     723,   723,   723,   725,   724,   726,   726,   726,   727,   727,
     727,   727,   727,   729,   728,   730,   730,   730,   731,   731,
     731,   731,   731,   731,   731,   733,   732,   734,   734,   734,
     735,   735,   735,   736,   737,   738,   739,   740,   741,   741,
     741,   742,   743,   744,   745,   746,   747,   748,   749,   750,
     751,   751,   752,   752,   753,   753,   754,   755,   754,   754,
     754,   757,   756,   758,   759,   756,   760,   761,   760,   762,
     760,   763,   763,   765,   764,   767,   766,   769,   770,   768,
     771,   772,   771,   773,   771,   774,   771,   775,   775,   776,
     776,   777,   777,   778,   779,   780,   781,   781,   782,   783,
     782,   784,   782,   785,   785,   786,   787,   788,   788,   789,
     789,   790,   790,   792,   793,   794,   795,   791,   796,   797,
     797,   797,   798,   798,   799,   799,   800,   801,   801,   802,
     803,   804,   804,   805,   805,   807,   806,   808,   809,   809,
     810,   810,   811,   811,   811,   811,   811,   811,   811,   811,
     813,   814,   812,   815,   815,   816,   816,   817,   817,   818,
     818,   819,   819,   820,   820,   821,   822,   822,   823,   823,
     824,   824,   825,   825,   825,   826,   826,   826,   826,   826,
     826,   826,   826,   826,   826,   826,   826,   826,   826,   826,
     826,   826,   826,   826,   826,   826,   826,   826,   826,   826,
     827,   828,   829,   830,   831,   831,   831,   831,   831,   831,
     831,   832,   832,   832,   833,   833,   834,   834,   835,   835,
     835,   835,   836,   836,   837,   837,   838,   838,   839,   839,
     839,   839,   839,   840,   840,   841,   842,   842,   843,   845,
     844,   846,   846,   846,   846,   846,   846,   846,   846,   846,
     846,   846,   846,   846,   846,   846,   846,   846,   846,   846,
     846,   846,   846,   846,   846,   846,   846,   846,   846,   846,
     846,   846,   846,   846,   846,   846,   847,   846,   848,   846,
     846,   846,   849,   849,   849,   849,   849,   849,   849,   849,
     850,   851,   851,   852,   852,   853,   853,   853,   853,   853,
     854,   854,   854,   854,   854,   855,   855,   855,   856,   856,
     856,   857,   858,   858,   859,   859,   860,   860,   860,   861,
     861,   862,   862,   863,   863,   864,   864,   865,   865,   865,
     865,   865,   865,   865,   865,   865,   865,   865,   866,   866,
     867,   867,   868,   868,   869,   869,   870,   870,   871,   871,
     872,   872,   873,   874,   874,   875,   875,   876,   876,   877,
     877,   877,   877,   877,   877,   878,   878,   879,   879,   879,
     879,   880,   880,   882,   881,   883,   883,   884,   884,   885,
     885,   886,   886,   887,   887,   887,   887,   887,   888,   888,
     888,   888,   888,   889,   889,   889,   890,   890,   891,   891,
     892,   892,   893,   893,   893,   894,   894,   894,   894,   895,
     896,   896,   897,   897,   898,   898,   899,   899,   900,   900,
     900,   901,   901,   901,   902,   902,   903,   903,   904,   904,
     905,   905,   906,   906,   908,   907,   909,   907,   910,   907,
     911,   907,   912,   907,   913,   907,   914,   907,   907,   907,
     907,   907,   907,   915,   915,   915,   915,   916,   916,   917,
     917,   918,   918,   919,   919,   919,   919,   919,   919,   919,
     919,   919,   919,   920,   919,   921,   919,   922,   919,   923,
     919,   919,   919,   924,   925,   925,   927,   926,   928,   928,
     928,   930,   929,   931,   932,   931,   933,   933,   934,   935,
     935,   936,   937,   937,   937,   938,   937,   939,   940,   937,
     937,   937,   937,   937,   937,   937,   937,   937,   937,   937,
     937,   937,   937,   941,   941,   942,   942,   943,   943,   943,
     944,   944,   944,   945,   945,   945,   945,   947,   946,   946,
     948,   946,   946,   949,   950,   950,   952,   951,   953,   953,
     954,   954,   954,   955,   955,   956,   956,   958,   957,   960,
     959,   962,   961,   963,   963,   963,   965,   964,   966,   966,
     967,   967,   968,   968,   968,   970,   969,   971,   973,   972,
     974,   974,   975,   975,   976,   976,   976,   976,   976,   976,
     978,   977,   979,   979,   979,   981,   980,   982,   980,   980,
     983,   983,   984,   984,   985,   986,   987,   988,   988,   989,
     990,   990,   992,   991,   993,   993,   994,   996,   995,   997,
     997,   998,   998,   999,  1000,  1000,  1001,  1001,  1003,  1002,
    1005,  1006,  1004,  1007,  1007,  1007,  1007,  1007,  1008,  1008,
    1009,  1009,  1010,  1010,  1011,  1011,  1011,  1011,  1011,  1011,
    1011,  1011,  1011,  1011,  1012,  1012,  1012,  1013,  1013,  1013,
    1014,  1015,  1016,  1017,  1017,  1018,  1018,  1018,  1018,  1018,
    1019,  1019,  1021,  1020,  1022,  1022,  1023,  1024,  1023,  1025,
    1025,  1026,  1026,  1027,  1027,  1027,  1027,  1027,  1027,  1027,
    1028,  1028,  1028,  1028,  1028,  1028,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1030,  1030,  1031,  1031,  1032,  1032,  1032,  1033,  1033,  1033,
    1033,  1033,  1034,  1034,  1034,  1034,  1034,  1034,  1035,  1035,
    1036,  1036,  1037,  1037,  1038,  1038,  1039,  1039,  1040,  1040,
    1040,  1040,  1040,  1040,  1041,  1041,  1042,  1043,  1043,  1043,
    1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,
    1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,
    1043,  1043,  1043,  1043,  1043,  1043,  1043,  1043,  1044,  1044,
    1044,  1044,  1044,  1044,  1044,  1044,  1044,  1044,  1044,  1044,
    1044,  1044,  1044,  1044,  1044,  1044,  1044,  1044,  1044,  1044,
    1044,  1044,  1044,  1045,  1045,  1045,  1045,  1045,  1045,  1045,
    1045,  1045,  1045,  1045,  1045,  1045,  1045,  1045,  1045,  1045,
    1045,  1045,  1045,  1045,  1045,  1045,  1045,  1045,  1046,  1046,
    1046,  1046,  1046,  1046,  1046,  1046,  1046,  1046,  1046,  1046,
    1046,  1046,  1046,  1046,  1046,  1047,  1047,  1047,  1047,  1047,
    1047,  1047,  1047,  1049,  1048,  1048,  1050,  1050,  1051,  1051,
    1052,  1052,  1053,  1053,  1055,  1054,  1056,  1056,  1057,  1058,
    1058,  1058,  1058,  1058,  1058,  1058,  1059,  1060,  1058,  1058,
    1058,  1058,  1058,  1058,  1058,  1058,  1058,  1058,  1058,  1061,
    1058,  1063,  1062,  1064,  1064,  1064,  1065,  1065,  1066,  1066,
    1067,  1067,  1069,  1068,  1070,  1070,  1070,  1070,  1070,  1070,
    1070,  1070,  1070,  1070,  1070,  1071,  1071,  1073,  1072,  1074,
    1074,  1075,  1075,  1077,  1076,  1078,  1078,  1079,  1079,  1080,
    1080,  1081,  1081,  1082,  1082,  1083,  1084,  1084,  1085,  1085,
    1086,  1085,  1087,  1085,  1088,  1085,  1085,  1089,  1085,  1090,
    1085,  1085,  1091,  1085,  1092,  1085,  1085,  1093,  1093,  1093,
    1095,  1094,  1096,  1094,  1094,  1094,  1098,  1097,  1100,  1101,
    1099,  1102,  1103,  1104,  1104,  1105,  1105,  1105,  1105,  1106,
    1106,  1108,  1107,  1109,  1107,  1110,  1110,  1111,  1112,  1111,
    1114,  1113,  1115,  1115,  1116,  1116,  1117,  1117,  1118,  1118,
    1119,  1119,  1119,  1119,  1119,  1119,  1119,  1119,  1119,  1119,
    1119,  1119,  1119,  1120,  1120,  1120,  1120,  1120,  1120,  1120,
    1120,  1120,  1121,  1121,  1121,  1121,  1122,  1122,  1122,  1123,
    1123,  1124,  1124,  1125,  1126,  1125,  1127,  1128,  1127,  1129,
    1129,  1130,  1130,  1131,  1131,  1132,  1132,  1132,  1133,  1134,
    1134,  1135,  1136,  1136,  1138,  1137,  1139,  1139,  1140,  1140,
    1140,  1141,  1141,  1142,  1142,  1143,  1144,  1144,  1144,  1145,
    1145,  1145,  1145,  1146,  1146,  1147,  1147,  1147,  1147,  1147,
    1147,  1148,  1148,  1148,  1148,  1148,  1149,  1149,  1149,  1149,
    1149,  1150,  1150,  1150,  1150,  1151,  1152,  1152,  1153,  1154,
    1153,  1155,  1155,  1156,  1156,  1157,  1159,  1158,  1160,  1160,
    1161,  1161,  1163,  1162,  1165,  1164,  1164,  1164,  1167,  1166,
    1168,  1169,  1168,  1168,  1168,  1168,  1168,  1168,  1168,  1168,
    1168,  1168,  1168,  1170,  1170,  1171,  1172,  1172,  1173,  1173,
    1175,  1176,  1174,  1178,  1179,  1177,  1180,  1180,  1180,  1180,
    1181,  1181,  1182,  1182,  1183,  1184,  1184,  1184,  1185,  1184,
    1186,  1186,  1187,  1187,  1188,  1187,  1189,  1187,  1190,  1190,
    1191,  1191,  1192,  1193,  1193,  1194,  1194,  1196,  1195,  1197,
    1197,  1198,  1198,  1199,  1199,  1200,  1201,  1200,  1203,  1204,
    1202,  1205,  1205,  1206,  1207,  1207,  1208,  1209,  1209,  1211,
    1210,  1213,  1212,  1214,  1212,  1215,  1212,  1216,  1216,  1217,
    1217,  1218,  1218,  1219,  1219,  1220,  1220,  1220,  1221,  1222,
    1222,  1224,  1223,  1225,  1225,  1225,  1225,  1225,  1225,  1225,
    1225,  1225,  1225,  1225,  1225,  1225,  1225,  1226,  1225,  1225,
    1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,
    1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,
    1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,  1225,
    1225,  1225,  1227,  1227,  1227,  1228,  1228,  1229,  1229,  1230,
    1230,  1231,  1231,  1232,  1232,  1233,  1233,  1234,  1234,  1235,
    1235,  1235,  1237,  1236,  1238,  1236,  1239,  1239,  1240,  1240,
    1240,  1241,  1241,  1241,  1243,  1242,  1244,  1244,  1246,  1245,
    1245,  1245,  1245,  1245,  1245,  1245,  1245,  1245,  1245,  1245,
    1247,  1247,  1249,  1248,  1250,  1250,  1251,  1251,  1251,  1253,
    1252,  1254,  1255,  1255,  1256,  1257,  1257,  1257,  1258,  1260,
    1259,  1259,  1262,  1263,  1264,  1265,  1261,  1261,  1266,  1266,
    1267,  1267,  1267,  1268,  1268,  1268,  1269,  1269,  1270,  1270,
    1271,  1271,  1271,  1271,  1272,  1272,  1273,  1273,  1274,  1274,
    1275,  1275,  1276,  1276,  1276,  1277,  1277,  1278,  1278,  1279,
    1279,  1280,  1280,  1280,  1280,  1281,  1281,  1281,  1282,  1283,
    1283,  1283,  1284,  1284,  1284,  1284,  1284,  1284,  1284,  1284,
    1284,  1284,  1284,  1284,  1285,  1285,  1285,  1285,  1285,  1286,
    1286,  1287,  1287,  1288,  1289,  1289,  1290,  1290,  1291,  1291,
    1291,  1292,  1292,  1292,  1292,  1293,  1293,  1293,  1294,  1295,
    1295,  1296,  1297,  1298,  1299,  1299,  1299,  1300,  1300,  1301,
    1301,  1301,  1302,  1302,  1302,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,  1303,
    1303,  1303,  1303,  1303,  1303,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1306,  1305,  1307,  1307,  1308,  1308,  1310,
    1309,  1311,  1311,  1311,  1311,  1312,  1312,  1313,  1313,  1313,
    1313,  1314,  1314,  1314,  1314,  1315,  1315,  1316,  1316,  1317,
    1317,  1317,  1317,  1317,  1317,  1317,  1318,  1318,  1318,  1319,
    1319,  1319,  1319,  1320,  1320,  1320,  1321,  1321,  1321,  1321,
    1321,  1323,  1322,  1324,  1324,  1325,  1325,  1326,  1327,  1327,
    1327,  1327,  1329,  1328,  1330,  1330,  1331,  1330,  1332,  1332,
    1333,  1333,  1334,  1334,  1334,  1334,  1335,  1334,  1336,  1336,
    1336,  1336,  1336,  1337,  1338,  1338,  1338,  1338,  1339,  1340,
    1340,  1340,  1341,  1341,  1342,  1342,  1343,  1343,  1344,  1344,
    1346,  1345,  1347,  1345,  1348,  1345,  1349,  1345,  1345,  1345,
    1345,  1345,  1345,  1345,  1345,  1345,  1345,  1345,  1345,  1345,
    1345,  1345,  1345,  1345,  1345,  1345,  1345,  1345,  1345,  1345,
    1345,  1345,  1345,  1350,  1350,  1351,  1351,  1352,  1352,  1352,
    1353,  1353,  1353,  1353,  1354,  1354,  1355,  1355,  1356,  1356,
    1356,  1357,  1357,  1358,  1358,  1359,  1360,  1360,  1360,  1360,
    1360,  1361,  1361,  1362,  1362,  1363,  1363,  1363,  1363,  1363,
    1365,  1364,  1366,  1366,  1367,  1367,  1367,  1368,  1368,  1368,
    1369,  1369,  1370,  1371,  1371,  1372,  1373,  1374,  1374,  1376,
    1375,  1377,  1377,  1377,  1379,  1378,  1380,  1380,  1381,  1381,
    1381,  1382,  1383,  1382,  1384,  1385,  1386,  1387,  1387,  1388,
    1388,  1388,  1388,  1389,  1389,  1390,  1390,  1390,  1391,  1392,
    1392,  1392,  1393,  1393,  1393,  1395,  1396,  1394,  1397,  1397,
    1398,  1398,  1400,  1399,  1401,  1401,  1402,  1402,  1402,  1402,
    1404,  1405,  1406,  1403,  1408,  1407,  1409,  1410,  1411,  1412,
    1407,  1413,  1413,  1413,  1413,  1413,  1413,  1414,  1414,  1414,
    1415,  1415,  1416,  1416,  1416,  1417,  1417,  1418,  1419,  1418,
    1420,  1420,  1421,  1422
};

/* 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,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     3,     1,     1,
       4,     1,     2,     0,     4,     0,     2,     3,     1,     2,
       0,     3,     0,     5,     1,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     1,     3,
       3,     3,     3,     0,     7,     0,    12,     0,     6,     0,
       3,     4,     4,     3,     2,    10,     1,     3,     2,     2,
       2,     2,     2,     2,     2,     0,    12,     0,     6,     2,
       0,     1,     3,     1,     0,     2,     0,     2,     0,     1,
       3,     4,     0,     2,     0,     2,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     0,     3,     1,
       4,     0,     0,     0,     0,     0,    12,     0,     2,     0,
       2,     2,     2,     2,     2,     3,     3,     1,     1,     1,
       2,     3,     3,     0,     4,     0,     3,     0,     1,     3,
       1,     0,     1,     3,     1,     0,     3,     0,     1,     3,
       1,     4,     0,     1,     1,     1,     0,     3,     2,     3,
       0,     3,     0,     5,     5,     0,     7,     5,     0,     2,
       1,     1,     1,     3,     1,     1,     3,     0,     1,     1,
       1,     1,     2,     1,     1,     3,     0,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
       5,     0,     2,     0,     3,     0,     2,     2,     2,     2,
       0,     6,     2,     0,     2,     1,     1,     3,     0,     0,
       0,     7,     0,     2,     2,     1,     1,     0,     0,     8,
       0,     6,     1,     2,     1,     2,     0,     0,     6,     0,
       0,     6,     0,     2,     0,     5,     0,     1,     0,     5,
       4,     0,     0,     8,     0,     7,     1,     1,     1,     1,
       1,     2,     4,     5,     0,     4,     4,     4,     3,     3,
       2,     2,     0,     2,     1,     2,     3,     1,     1,     1,
       0,     2,     1,     2,     3,     1,     1,     1,     1,     1,
       1,     1,     1,     0,     2,     1,     2,     3,     1,     1,
       1,     1,     1,     0,     2,     1,     2,     3,     1,     1,
       1,     1,     1,     1,     1,     0,     2,     1,     2,     3,
       1,     1,     1,     2,     2,     2,     1,     1,     1,     1,
       2,     3,     3,     3,     3,     3,     3,     3,     3,     4,
       0,     1,     1,     1,     1,     1,     2,     0,     4,     2,
       4,     0,     6,     0,     0,     6,     0,     0,     5,     0,
       7,     0,     1,     0,     3,     0,     3,     0,     0,     7,
       5,     0,     4,     0,     3,     0,     3,     0,     1,     0,
       1,     1,     3,     1,     5,     5,     0,     2,     0,     0,
       7,     0,     9,     1,     3,     1,     1,     0,     2,     0,
       3,     1,     3,     0,     0,     0,     0,     9,     1,     0,
       4,     5,     1,     1,     1,     3,     3,     1,     3,     1,
       1,     0,     3,     1,     3,     0,     4,     1,     0,     1,
       2,     1,     3,     4,     3,     3,     3,     4,     4,     3,
       0,     0,     6,     0,     1,     0,     1,     1,     2,     1,
       1,     0,     1,     1,     2,     1,     0,     3,     0,     1,
       1,     2,     1,     2,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     5,     1,
       1,     3,     4,     4,     2,     2,     2,     3,     3,     3,
       4,     4,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     2,     0,     1,     1,     1,
       1,     1,     1,     3,     1,     1,     2,     2,     7,     8,
       8,     2,     2,     0,     1,     2,     0,     1,     2,     0,
       4,     3,     3,     3,     1,     4,     1,     1,     5,     2,
       5,     2,     4,     1,     5,     5,     4,     3,     1,     1,
       2,     1,     1,     2,     1,     1,     1,     2,     3,     2,
       3,     2,     2,     3,     3,     3,     0,     6,     0,     6,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     2,     2,     1,     2,     1,     2,     3,     2,
       1,     1,     1,     1,     1,     1,     1,     2,     0,     3,
       1,     5,     0,     1,     2,     1,     1,     1,     1,     0,
       3,     0,     1,     0,     1,     2,     1,     1,     2,     2,
       4,     1,     3,     2,     1,     2,     2,     2,     2,     1,
       2,     1,     1,     1,     1,     1,     0,     2,     1,     1,
       1,     1,     1,     0,     2,     1,     1,     0,     1,     0,
       2,     1,     2,     3,     2,     0,     1,     0,     1,     1,
       2,     0,     1,     0,     4,     1,     4,     3,     1,     0,
       1,     2,     1,     3,     3,     2,     2,     2,     1,     1,
       2,     2,     2,     1,     2,     2,     2,     2,     1,     1,
       0,     1,     1,     1,     1,     0,     1,     1,     1,     0,
       1,     2,     0,     1,     1,     2,     2,     2,     1,     3,
       3,     1,     1,     1,     4,     2,     1,     4,     0,     1,
       0,     2,     1,     3,     0,     6,     0,     5,     0,     5,
       0,     5,     0,     5,     0,     4,     0,    10,     3,     4,
       3,     3,     7,     0,     3,     1,     4,     0,     3,     0,
       2,     0,     1,     0,     2,     2,     2,     2,     1,     1,
       1,     3,     4,     0,     7,     0,     6,     0,     5,     0,
       6,     4,     1,     2,     1,     1,     0,     5,     0,     3,
       2,     0,     5,     0,     0,     6,     1,     3,     1,     1,
       3,     2,     3,     2,     4,     0,     6,     0,     0,     8,
       4,     4,     3,     3,     2,     2,     6,     5,     3,     5,
       1,     1,     1,     0,     1,     0,     1,     0,     1,     1,
       0,     2,     1,     0,     1,     1,     1,     0,     5,     3,
       0,     5,     3,     3,     0,     3,     0,     2,     1,     3,
       0,     1,     1,     0,     2,     1,     3,     0,     6,     0,
       6,     0,     5,     0,     1,     1,     0,     6,     0,     1,
       1,     2,     1,     1,     1,     0,     6,     2,     0,     5,
       0,     1,     1,     2,     1,     1,     1,     1,     1,     2,
       0,     6,     0,     1,     1,     0,     4,     0,     4,     4,
       3,     5,     1,     3,     3,     3,     5,     1,     3,     2,
       1,     1,     0,     6,     1,     3,     3,     0,     2,     0,
       4,     0,     2,     1,     2,     4,     2,     3,     0,     3,
       0,     0,     6,     2,     1,     1,     2,     2,     8,     4,
       0,     1,     2,     1,     1,     1,     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,     0,     3,     0,     3,     3,     0,     3,     0,
       3,     2,     1,     3,     4,     3,     4,     3,     4,     1,
       3,     4,     3,     3,     6,     1,     5,     6,     5,     7,
       6,     8,     5,     6,     4,     4,     5,     3,     4,     1,
       3,     1,     3,     1,     3,     3,     1,     3,     3,     4,
       4,     1,     3,     3,     3,     3,     3,     1,     3,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
       1,     1,     3,     1,     1,     1,     1,     3,     2,     2,
       2,     2,     3,     3,     5,     6,     4,     4,     7,     2,
       6,     5,     6,     6,     4,     4,     4,     1,     4,     6,
       2,     4,     4,     4,    10,     6,     4,     4,     6,     4,
       4,     4,     6,     4,     7,     7,     7,     6,     6,     6,
       6,     3,     4,     6,     8,     2,     2,     4,     7,     7,
       6,     6,     2,     4,     6,     6,     8,     8,     6,     8,
       6,     2,     4,     8,     8,     2,     2,     2,     4,     4,
       4,     4,     3,     8,     4,     6,     4,     4,     4,     6,
       8,     6,     4,     6,     1,     6,     4,     4,     4,     4,
       4,     6,     4,     0,     5,     6,     2,     3,     0,     4,
       0,     3,     0,     1,     0,     2,     1,     3,     4,     4,
       5,     4,     4,     4,     5,     4,     0,     0,     7,     4,
       5,     4,     5,     4,     4,     4,     4,     4,     5,     0,
       8,     0,     3,     3,     1,     4,     0,     1,     0,     2,
       0,     1,     0,     3,     2,     3,     2,     1,     2,     1,
       2,     1,     1,     1,     2,     0,     1,     0,     2,     1,
       3,     1,     3,     0,     2,     1,     3,     0,     1,     0,
       2,     4,     5,     1,     1,     1,     1,     3,     3,     3,
       0,     6,     0,     6,     0,     8,     4,     0,     8,     0,
      10,     6,     0,     8,     0,    10,     6,     1,     2,     2,
       0,     4,     0,    11,     3,     6,     0,     3,     0,     0,
       5,     0,     1,     0,     1,     0,     2,     3,     3,     1,
       1,     0,     7,     0,     7,     1,     2,     0,     0,     2,
       0,     2,     0,     1,     1,     1,     1,     3,     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,     0,     1,     1,     0,
       2,     0,     1,     0,     0,     3,     0,     0,     3,     2,
       0,     0,     4,     4,     2,     0,     2,     2,     3,     3,
       1,     2,     0,     1,     0,     4,     4,     2,     0,     1,
       1,     0,     1,     0,     1,     2,     1,     3,     3,     1,
       1,     1,     1,     0,     2,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     0,     0,
       6,     0,     1,     3,     1,     3,     0,     2,     3,     1,
       2,     1,     0,     3,     0,     5,     2,     1,     0,     3,
       6,     0,     6,     4,     4,     4,     4,     5,     4,     4,
       5,     6,     4,     1,     3,     1,     0,     2,     0,     1,
       0,     0,     8,     0,     0,     6,     0,     1,     1,     1,
       1,     1,     2,     1,     1,     1,     3,     4,     0,     3,
       3,     1,     2,     2,     0,     3,     0,     5,     3,     1,
       3,     1,     3,     1,     1,     0,     1,     0,     4,     0,
       1,     3,     1,     1,     1,     0,     0,     6,     0,     0,
      11,     3,     1,     3,     3,     1,     3,     0,     1,     0,
       4,     0,     6,     0,     5,     0,     6,     1,     3,     3,
       5,     0,     2,     0,     2,     1,     1,     1,     3,     0,
       1,     0,     3,     2,     4,     4,     3,     4,     4,     2,
       1,     3,     3,     6,    16,     2,     2,     0,     6,     5,
       2,     2,     2,     1,     1,     1,     5,     5,     2,     2,
       3,     2,     2,     2,     3,     2,     2,     1,     3,     4,
       3,     3,     2,     2,     3,     3,     3,     3,     3,     3,
       3,     3,     1,     1,     1,     1,     1,     0,     1,     0,
       2,     0,     1,     1,     1,     0,     2,     0,     2,     0,
       2,     2,     0,     4,     0,     4,     1,     1,     0,     1,
       1,     0,     1,     1,     0,     4,     3,     1,     0,     3,
       4,     2,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     1,     0,     3,     3,     1,     1,     1,     2,     0,
       3,     3,     2,     2,     3,     0,     1,     1,     2,     0,
       4,     5,     0,     0,     0,     0,    18,     2,     0,     1,
       0,     1,     1,     0,     1,     1,     0,     2,     2,     1,
       3,     4,     3,     3,     0,     2,     2,     1,     3,     3,
       0,     3,     0,     3,     2,     3,     1,     1,     2,     0,
       2,     1,     1,     2,     2,     1,     1,     1,     1,     1,
       2,     2,     1,     1,     1,     1,     1,     1,     1,     2,
       2,     2,     2,     2,     1,     1,     1,     1,     1,     1,
       1,     3,     5,     1,     1,     1,     1,     1,     3,     4,
       5,     1,     5,     3,     2,     1,     3,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     3,     2,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     0,     4,     0,     1,     1,     3,     0,
       2,     1,     1,     1,     1,     0,     1,     0,     1,     1,
       1,     0,     2,     2,     2,     1,     2,     4,     5,     4,
       6,     2,     3,     3,     3,     5,     1,     3,     3,     2,
       2,     2,     1,     1,     4,     4,     1,     1,     1,     1,
       1,     0,     4,     1,     1,     1,     3,     3,     1,     1,
       2,     2,     0,     3,     4,     3,     0,     7,     1,     2,
       1,     1,     1,     1,     1,     1,     0,     5,     1,     1,
       1,     1,     1,     3,     6,     6,     6,     7,     3,     8,
       8,     8,     0,     1,     1,     2,     0,     1,     1,     3,
       0,     3,     0,     3,     0,     3,     0,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
       2,     1,     3,     2,     2,     2,     2,     2,     2,     2,
       2,     1,     1,     0,     1,     3,     1,     2,     2,     2,
       1,     3,     3,     1,     1,     3,     1,     3,     4,     5,
       1,     0,     3,     3,     1,     1,     0,     2,     2,     2,
       2,     0,     2,     2,     1,     2,     2,     2,     2,     2,
       0,     3,     0,     1,     0,     3,     2,     0,     1,     2,
       0,     1,     4,     4,     5,     2,     3,     0,     1,     0,
       4,     0,     1,     1,     0,     2,     2,     1,     0,     1,
       1,     4,     0,     7,     1,     0,     0,     2,     3,     1,
       1,     1,     1,     0,     3,     1,     2,     1,     2,     3,
       3,     3,     0,     3,     3,     0,     0,     8,     0,     3,
       1,     3,     0,     3,     2,     4,     0,     3,     4,     4,
       0,     0,     0,    16,     0,     6,     0,     0,     0,     0,
      12,     4,     4,     3,     4,     3,     2,     1,     3,     5,
       1,     1,     0,     1,     1,     0,     2,     0,     0,     3,
       0,     2,     5,     3
};

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

/* YYDEFGOTO[NTERM-NUM]. */
static const short int yydefgoto[] =
{
      -1,    56,    57,    58,    59,    60,    61,  1218,    62,   613,
     996,  1434,  1435,    63,   483,    64,   938,  1381,  1382,  1383,
      65,  1853,  2700,  1399,   455,   456,  1745,  1746,   962,  2316,
    2655,  3369,  2659,  3481,  3601,  3376,  1810,  2970,  3370,  3371,
    3490,   478,   436,  2990,  3208,  3628,  3778,  3858,  3935,  1336,
    3625,  1730,  3719,  1731,    66,   570,   936,  1362,  1363,  3383,
    3384,  3380,  3385,  3198,  3199,  3200,  3201,  3807,  3696,  3763,
    3808,  3891,  3953,  3959,  3960,  3849,  3974,  3975,  3976,  3982,
    3977,  3850,  3955,  3697,  3698,  3608,  3699,  3493,  3700,  3612,
    3701,  3496,  3702,  3703,  3704,  3705,  3803,  3706,  3607,  3844,
    3692,  3693,  3846,  3926,  3952,  3707,  3503,  3602,  3755,  3504,
    3603,  3798,  3688,  3799,  3839,  3922,  3689,  3756,  3842,  3759,
    3708,  3711,  3813,  3618,  3695,  3710,  3856,  3811,  2320,  2689,
     555,   556,   581,  1846,   557,   950,   910,  1338,  1750,  1751,
    2188,  2189,  2312,  2313,  2673,  2674,  1748,  1749,  2181,  2182,
    1842,  1843,  2301,  2302,  1736,  1737,  2159,  2160,  1342,  1734,
    1735,   558,   911,   921,  2161,  2184,  2185,  2678,  2304,  2305,
    2306,  2307,  2162,  1425,  2163,  2867,  2324,  2994,  2694,  3522,
    2992,  3521,  3212,  3634,  3779,  2255,  2256,  2236,    67,   494,
     792,  2061,  2790,  1215,  2062,  1616,  1615,  1216,  2456,  2457,
    2458,  2050,  3417,  1618,  2454,  3545,  3733,  3546,  3547,  2787,
    3646,  3053,  3265,  3266,  3419,  3649,  3788,  3876,  3549,  3736,
    3866,  3867,  3868,  3860,  3861,  3862,  3916,  3944,  3945,  3966,
    3992,  3831,  3832,  3833,  2082,  2462,  3267,  3390,  1840,  1329,
    1330,   457,   458,   459,   578,  2325,  1797,  2326,  2327,  1799,
    1800,  2340,  1268,  2631,  2607,  3422,   963,  3207,  2638,  2639,
    2640,  2641,  2577,  2578,  2199,  2200,  2261,  2649,  2953,  3135,
    3150,  2954,  2955,  2956,  2957,  2958,  2959,  2960,  2723,  2724,
    3337,  3338,  3339,  2720,  3181,  3165,  3166,  3167,  3353,  3016,
    2501,  2502,  3783,  2510,  2511,  2547,  2833,  2548,  1333,  3017,
    3175,  3239,  3168,  2648,  3129,  3328,  3463,  3329,  3330,  3331,
    3587,  2201,  2576,  2202,  2568,   868,   460,  1411,  1412,  3527,
    3528,  3529,  3530,  2331,  3214,  3215,  2565,  2773,  3469,    68,
    1346,   905,   913,   909,   927,   562,  1347,  1811,  2267,  3187,
     545,  1801,  3122,  3116,  2885,  3126,  1802,  2587,  1803,  2874,
    3110,  1804,  2900,  3124,  3323,  2588,  2589,  1805,  1806,  1807,
    2884,  2893,  3455,  2203,   123,  1431,  2645,  2243,    69,  1308,
    1303,    70,   879,   874,   875,  1306,  1307,  1698,  2126,    71,
     812,    72,   565,    73,   573,  1386,    74,  1228,  2074,  2075,
    2076,    75,   928,    76,    77,   574,  1393,  1394,  1395,    78,
    1211,   128,    79,   801,   799,  1223,  1225,  1226,  1221,    80,
     567,   568,  1355,    81,  1610,  2040,  2041,   933,   934,  1361,
    2786,    82,    83,   535,   508,   818,   509,   510,  1644,  2094,
    3423,   829,   830,   831,  2486,  1245,  1246,  1247,  2099,  1645,
    2491,  1055,  3005,  1143,  1567,   757,  1144,  1568,   758,   759,
     760,   761,   762,   763,   764,   765,   766,   767,  2012,  2015,
    3169,   768,  1153,  1578,   769,   770,   771,   772,   773,   774,
     775,  1605,  2744,  2745,  3030,  2034,  2035,  2036,  2441,  2442,
     776,  1925,  2733,  1939,   777,  1140,  1563,  1499,  3023,  2738,
    1463,  1908,  2373,  2443,   598,   599,   979,  1079,  1080,  1081,
    1507,  1045,  1915,  1469,  1705,  1706,  1707,  1708,  3098,  3097,
    3099,  3437,  3290,  3439,  3294,  2137,  1709,  1710,  3665,  2523,
    2847,  2541,  2542,  3305,  2128,  1711,  2529,  3576,  3302,  3303,
    3673,  3672,  3304,  3103,  3104,  2860,  2861,  2270,  2271,  2272,
    3441,  1194,  1195,  1497,  1031,  1032,  1464,  1902,  2352,  3274,
    3427,  2025,  3068,  3425,  3555,  1808,  2613,  2614,  2096,  2097,
    2545,  2864,  2898,  1271,  3424,  2354,  1678,  1679,  2999,  3958,
    2868,  2283,  3910,  2059,  2060,  3654,  3789,  3880,  3881,  3882,
    2815,  2816,  3072,  3073,  2098,  2483,  2817,  3275,    84,   462,
      85,  1867,   929,   930,   601,   475,    86,   484,  1903,    87,
     502,  1632,   651,   805,  1231,  1232,  2083,  2463,  2470,  2084,
    2475,  3061,  2465,  2795,  2796,  1871,  1872,  2466,  2798,  3058,
    3006,  3007,  2714,  3232,    88,   523,  2858,  2536,  2537,  3640,
    3641,   806,    89,   461,   973,  1859,  1417,  1858,   974,   975,
    1419,   596,   597,    90,   520,    91,   513,   869,  2514,  1673,
     796,   989,  1275,   872,  1276,  1659,  2113,  1256,    92,   901,
     900,    93,   541,  1325,    94,   614,  1007,  1008,  1439,  1880,
      95,   503,   810,   811,    96,   496,   797,  1624,    97,   488,
      98,    99,   786,  1204,  2783,  3415,  3730,  3821,  1609,  1205,
    3213,  3430,  3563,  3564,  3566,  3662,  3663,  3937,  3965,  3987,
    3988,  3991,   778,   889,   779,  3317,   780,   781,  2471,  2472,
    2865,   782,  3642,   783,  2262,   882,   481,   437,   552,   890,
    2447,   785,  3507,   907,   954,   439,   440,   100,   832,   512,
    1249,  1250,  1251,  1654,  1655,   873,  2007,  1656,  1657,  2110,
    2105,  3080,  2839,  2831,   101,   789,  1009,  1209,  1210,  2046,
     102,   522,   103,  1033,  1455,  1456,  1899,  2351,  1900,   104,
     814,   105,   638,  1449,   639,  1011,   640,   641,  1023,  1018,
    1026,  1020,  3399,  3224,  3225,  1887,   992,   955,   956,  1442,
    1882,  1883,  3001,  3227,  3405,  3406,   106,   132,   445,   576,
     945,  1239,   107,   108,   109,   110,  1242,  1320,  2090,  1321,
    1322,  1323,  1718,  1642,  1138,  2771,  2000,  1557,  2419,   585,
     964,   124,   587,   588,   125,   925,   926,  2268,  3190,  2661,
    2972,  3373,  3374,  3511,  3623,   966,  3381,  3777,  3897,   967,
    2690,  2317,  2986,  3513,  3721,   111,   891,   532,  1318,  1313,
    1315,  1714,  2144,   112,   113
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3319
static const int yypact[] =
{
    4091,   748,  1141,  1113, -3319,  -108,   179, 36417,   577,  1113,
    1113,   353,  1030, -3319, -3319, -3319, -3319, -3319,  1014, -3319,
   36417,  1141, -3319, 19318, -3319, -3319,   559,   470,   346,  1113,
    1141, -3319, 36417, -3319,   515,   292,  1141, -3319, -3319,  1113,
   -3319,   353, 36417, -3319,   639, -3319,  -121,  -103,   744,   480,
     866, -3319, -3319, 36417,   779,  -102,  1243,  1110, -3319, -3319,
     912, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, 19872, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,  1222, 36417,  1229, 36417, -3319,  1231,
   36417, 30907, 36417,   959,  1313,  1356, -3319, -3319,  1113, -3319,
   -3319, -3319,   353, -3319, -3319, 19318, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,   927, -3319,
   -3319,  1046, -3319, -3319, -3319,  1532,  1363, -3319,  1394, 30907,
   -3319, 36417, -3319, -3319, -3319,   246, -3319,  1100, -3319,  1107,
    1396,  1005, -3319,  1423,  1423,  1423, 36417,  1431,  1423,  1423,
   36417, -3319,  1423, -3319,  1423,  1113, -3319, -3319,  3103, 36417,
    1307,   168,   487, 30907,   184, 36417, -3319, -3319, 10882, -3319,
    1421, 19318, -3319,  1113,  1605,  1484,   829, 36417, -3319, -3319,
   -3319,  1113,  1138,    42, -3319,  4676,   129, -3319, -3319, -3319,
     675, -3319, -3319,  3088, -3319, -3319, -3319,  1116, -3319, -3319,
   19318, 36417,  1113,  1436, -3319, -3319,   163,   163,   163, -3319,
     163, -3319,   163, -3319,  -102,  1143, -3319, -3319, 36417,   821,
     867, -3319, -3319,  1127,   613, -3319, -3319, 28152, -3319, 36417,
   -3319, -3319, -3319, -3319,  1375, -3319, -3319, -3319,   961, -3319,
   19318, 36417,  1257, -3319, -3319, 19318, -3319,   225, -3319, -3319,
    1153, 36417, -3319, 19318, 19318,   774,    43,  1361, 36417, 36417,
    1558, -3319,  1726, 28152,  1337, -3319,   180,  1356,  1727, -3319,
    1363, -3319, 36417, -3319, -3319, -3319, 32560,  1005, -3319, 10882,
    1590, 36417, 36417, 36417,  1417, 36417, 36417, 30907,  1296, 36417,
   28152, 19318,  1423,  1221,  1367,  1411,  1370,  1083, -3319, -3319,
   -3319, -3319, -3319,  1425, -3319, -3319,  1319, -3319, -3319, -3319,
     172, -3319,   147, -3319, -3319, -3319, -3319, -3319, -3319,  1456,
    1226, -3319, -3319,   118, -3319, -3319, 36417, -3319, -3319, -3319,
   -3319,  1613,  1397,  1254,  1261,  1279, 13737, -3319,  1293,  1305,
    1325, 10882,  1342,  1358,  1365,  1371,  1382,  1384,  1391,  1398,
    1412,  1412,  1422,  1424,  1427,  1435,   906,  1438, -3319,  1440,
    1441,  1444, -3319, -3319,  1445,  1446,  1448, -3319,  1449,  1450,
    1451, 10882,  1452,  1454, -3319,  1455,  1457,  1458,  1459,  1460,
    1461,  1462,  1467,  1468,  1469, -3319, -3319, 10882,  1471, -3319,
   -3319,  1472, -3319,  1474,  1475,  1476,  1478,  1479,  1480,  1481,
    1483,  1485,  1486,  1487,  1489,  1490,  1491,  1492,  1493, -3319,
     968,  1494,  1495,  1018,  1496, -3319,  1497, -3319,   230,  1498,
    1412,  1412,  1412,  1499,  1500,  1502,  1504,  1505, 13737, 13737,
   13737,  8027, -3319, 36417, -3319, 36417, -3319,  1236, -3319, -3319,
    1637, -3319,   327,  1260,  1284,  1184,   154,  1286, 13737,  3063,
     243, -3319, -3319, -3319, -3319, -3319, -3319, -3319,  1380, -3319,
   -3319, -3319, -3319, -3319,  1507,  1310,   229,  1821,  1704, 19318,
   -3319,  1252, -3319,  -163, -3319, -3319,  1638, -3319, -3319, 36417,
   28152, 19318, -3319, -3319, -3319, 17097, -3319, -3319,  1868, -3319,
    1373, -3319, 19318,  1411, -3319,  1598,  1586,    43,  1503, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,  1515,
     675, -3319, -3319, -3319,  1877, -3319,  1610,    -6,  1546, -3319,
    1511,   567,    -6, 28703,  1841,   789, -3319,   227, -3319,  1913,
   -3319, -3319,  1619, -3319, -3319,  1620,  1621,  1813,  1607, -3319,
   -3319,   293, -3319,   656, -3319,  1063,  1841,    -6,   789, -3319,
    1837,  1949,   394,  -114, -3319,  1070, -3319, -3319,  2011, -3319,
   -3319, -3319, -3319, -3319, -3319,  1613, -3319, -3319, -3319,  1524,
   -3319,  1763,  1623, -3319, -3319,   674, -3319,  1527,   707, -3319,
     903, 29254, -3319, -3319, -3319,  1988,  1412,  1529, -3319, -3319,
   -3319,  2092, -3319, -3319,  1550,  2026,  2026,  2026,  2117, -3319,
   -3319, -3319, -3319, -3319,  1700,  1581, -3319,  1257, 19318,   524,
   -3319, 33111, 19318, -3319,   156, 10882, -3319, -3319,  1846,   177,
     162, -3319,  2071,  1734, -3319, -3319, -3319, -3319,  1975, -3319,
   -3319,  2092,  2032,  2026,  1930,  1559, -3319, -3319, -3319,  1363,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,  1257, -3319,
   19318, -3319, 19318, -3319,  1560, -3319,  1557, -3319, -3319,  1564,
   -3319, -3319, -3319, -3319, 19318,  1296, -3319, -3319,   568,  1995,
   -3319, -3319,  1567,   116, 19318,  1565, -3319, -3319, -3319, -3319,
   -3319, -3319,  2091, -3319, -3319, -3319,  1594,  1574, -3319, -3319,
   -3319, -3319, -3319, -3319,  1666, -3319, -3319, -3319,  1578, -3319,
    1578, -3319, -3319,  1578, -3319, -3319,  1578,   604,  3158, -3319,
   -3319, 36417, -3319, 36968, -3319, 17097,  -108, 10882, 10882,   305,
    2082,  2137,  2137,  2137, -3319,  1604, 10882, 10882, -3319, -3319,
   10882, 10882, 10882,   306,  1582, -3319, -3319,  8598, -3319,  1583,
   10882, 10882,  1667, 10882,  1380, 10882, 20426,   921,  3063, -3319,
     310,  2033, 10882, 10882, 10882, -3319, 10882, -3319, -3319,  2145,
   -3319, 20426,  1269, 10882, 10882,  1323, 10882, 10882, -3319, -3319,
   -3319, -3319,  8598, -3319, 10882, 10882, 10882, -3319, 13737, 10882,
   10882, 10882, 10882, 10882, 10882,  2137,  2137, 10882, 10882,  1360,
    8598, -3319, 10882,  1380,   784,   784, 10882,  1380,  6885, 10882,
   -3319, -3319, -3319,  1587, -3319, -3319, -3319, 20426,  2137,  2137,
   10882, 10882,  2082,  2082,  2082, -3319,  8027,  1186,  1588, 10882,
   21534,  1585, 10882, -3319, -3319, -3319, 13737, -3319, -3319,  1131,
   -3319, -3319, -3319, 11453, 13737,  1593, 13737, 13737,  1920, 13737,
     852, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 13737,
   13737, 13737,  2082, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,  1600, -3319, 30907, 13737, -3319, -3319,
   36417, -3319,  1891, -3319, -3319,  1919, -3319,  1893,   151,  1596,
   -3319, 19318, -3319, -3319, -3319,  1815,  1242, 30907, -3319, -3319,
     119, -3319,  1671,  1599,  1673,  1601, -3319,  1675, 19318, 19318,
   -3319, -3319, -3319, -3319,    42,   198,  1603,  1006, -3319, 36417,
   -3319,  1368, -3319, -3319, -3319,  1606, -3319, 10882, -3319,  1608,
   -3319,  1047,  1956, -3319,  -108, 10882, -3319, -3319,  1612,  1363,
   36417, 36417, 36417, 19318, 36417, 19318, -3319,   750,   750, -3319,
    1009, -3319, -3319, -3319, -3319,    -6, 36417, 36417,    -6, 28152,
   -3319, -3319, -3319,  2009,   789, 36417,    -6, -3319, -3319,   789,
   -3319, -3319, -3319, 19318, -3319, -3319,   789, -3319, -3319,   789,
     789,    -6,    -6,  1656, -3319, -3319,  1611, -3319,  1656,  1738,
    -137,   163,  1827, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319,    90, -3319, -3319, -3319, -3319, -3319,   128,
   -3319, -3319, -3319,  1687, -3319, 30907,  1117,   -76, -3319,  1117,
     790,  -108, -3319, -3319, -3319, -3319,  2294,  1853,   803, 19318,
   -3319,   162,  -108, 19318, -3319, -3319, -3319, -3319, -3319, -3319,
    1617, -3319,  1622,  1616, -3319,  2046,  2047,  2048,  2050,  2053,
    2054,  2056,  2058,  2060,  2062,  2063,  2064,  2065,  2067,  2068,
    2070,  1644, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
    1692, -3319, -3319, -3319, -3319,   980, -3319, -3319, -3319,   137,
   -3319,  1669,  1693,  2178, 28152, 36417, 36417, 36417,  2055, -3319,
   -3319,  -153,  1894,  1560, -3319,   278, 36417,  2057, 23744,   121,
   10882, -3319,   568, -3319, -3319, -3319, -3319,   402, 28152, -3319,
   -3319, -3319,   116, 30907,  1660, -3319, -3319,  1859,  1367, 19318,
   -3319, 36417, -3319, -3319, -3319, -3319, 17651, 17651, -3319, 17651,
   -3319, -3319,   164,   187,  1547,  1684, -3319, -3319, -3319,  1668,
    1670, -3319,  2137,  1672, -3319,  1674,  1676,  1677, 10882,   212,
    2222,  1678,  -167,  1679,  1680,  1688,  1007, -3319,  1690,  1694,
   -3319,  1691, -3319,  1695,  1696,  1698,  1699,  1701,  1689, -3319,
    1702,  2098,  1703, -3319, -3319, -3319, -3319,  1706, -3319, -3319,
    1708,  1709,  1711,  1712,  1714,  1715,  1705,  1717, -3319,  2137,
    1716,  1719,  1720,  2137,  1721,  1722,  1724,  1725,  1730,  1732,
    1733,  1737,  1740,  1741,  1743,   190,  1744,  1747,  1748,  1751,
    1752,  1745,  1754,  1755,  1756,   200,  2137,  1758,  1759,  1196,
    1760,  1761,  1764,  9169,  9740, 10311,    64,  1765, -3319,  1767,
   -3319,  1689,  1768,  1770,  1205,  1775, -3319,   921, -3319, -3319,
   -3319,  1718,  1174, -3319,  1810, 36417, -3319,  1303,  1779, -3319,
   -3319, -3319, -3319, -3319,   794, -3319,  1710, -3319,  1735,   101,
    8027,   166,  1736, 13737,  1260, 13737,  1742, 13737, 13737,  1284,
    1184,  1184,   154,  3063,   154,  3063,  1286,  1286,  1286,  1286,
    1286,  2082, 10882, -3319,  2082,  1777,   417, -3319, -3319,  2120,
   19318, -3319,   635, 19318,   162,  1766,  1766,   170, -3319, -3319,
    1781, -3319, 10882,  -108, -3319, 36417, 28152, 28152, 19318, 19318,
     260, -3319,  1000, -3319,  -108,  2083, 17651, 17651, 17651, -3319,
   -3319, -3319, -3319, -3319,  1056, -3319, -3319, -3319,  1772, -3319,
   -3319, -3319, -3319, -3319, 33662,    96, -3319, -3319,  -108,  2158,
   -3319, -3319,  1782, 36417, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,   533,
   -3319, -3319, -3319, -3319, -3319, -3319,  1910,    -6, -3319, -3319,
      -6,   789, 19318,    -6,    -6, -3319, -3319,  1192, -3319,  1070,
   -3319, -3319, -3319, -3319, 36417,  1299,  1924,  1786, -3319, -3319,
   19318, -3319,  1788, -3319,  2191,  2315,  1841, -3319, -3319, -3319,
     402,   402, -3319,  -108,  1904,  1905,  1907,  1909,  1911,  1945,
   -3319, -3319,  -108,  -108, -3319, -3319, -3319,   778,  -108,  -108,
    -108,  -108,   741,  -108,  -108,  1262, -3319, -3319, -3319,   169,
   -3319,   907, -3319,  1133,  2301,  2017,   402,   402,  2301,   402,
    2021,  2022,   402,   402,  1879,  2260,   402,  2155,  1900,  1347,
    2157,   402, -3319,  1902,  2266,   402,   402,   402,   402,  2301,
    2034,  2340,   402, -3319,   402,  2035,  2039,   161,  2038,  2040,
     402,   932, 36417,   402,   402,   402, -3319, -3319,  2943, -3319,
   -3319, -3319, -3319, -3319, -3319,   482, 18208, -3319, -3319,   372,
   -3319,  1998, -3319, -3319, -3319, -3319, -3319, -3319, 34213, -3319,
   10882,   741,  -108,  -108,   949,  -108,   741,  -108,  -108,  -108,
    -108,  -108,   741,   741,  -108,  -108,   741,  1846, -3319, -3319,
   -3319,   144, -3319,   385, 30907,  2146, -3319,   -66, -3319, -3319,
   -3319,   347, 36417,  2864,   424,   424, -3319, 19318,  1866,  1684,
   23744, -3319,  -137, -3319,  1822, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, 30907, -3319, -3319, -3319,  1565,  2150, -3319,  1829,
   -3319, -3319,  1264, -3319,  1830, -3319,  1832,  1912,  1914,  1915,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319,  1841,  1000, 12024, -3319,  1833, -3319, 10882, -3319,
   -3319, -3319,  1921, 10882, 10882,  2268,   228, -3319, 29805, -3319,
   -3319, -3319, 10882, 29805,   228, -3319, -3319,  1839, -3319,  2201,
    2201, -3319, -3319, -3319, 36417, -3319, 10882, -3319, 10882, -3319,
   -3319, 10882, 10882, 10882, -3319, -3319, 13737, 20426,  1847, -3319,
   -3319, -3319,  1848, -3319, 10882, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, 10882, -3319, 10882, -3319, 10882, 10882, 10882, -3319,
   -3319, -3319, -3319, 12595, 10882, 10882,  1849, -3319, -3319, -3319,
   10882, 10882, 10882, -3319, 10882,  2248, 10882,  2250, 10882,  2251,
   10882, -3319, 10882, -3319, -3319, -3319, -3319, 10882, -3319, -3319,
   -3319,  1854,  1855, -3319,  1851,  1852,  1856, 30907, 10882, -3319,
   -3319, -3319, 10882, -3319, -3319, 10882, -3319, -3319, -3319, -3319,
     921, 13737,  1266,  1861, 13737, -3319,  1736,   125,  8027,   166,
    1736, -3319, -3319, -3319,  1864, -3319, -3319,  1867, 36417,  1951,
    1869, -3319, -3319,  1886,  2195, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319,  1970,  1766, 36417, -3319, -3319, -3319,  1947, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319,   251, -3319, -3319,  1878,
    1878, 15987, -3319, -3319, -3319, -3319,  2109,  2276,  2277,  2278,
     903, -3319,    41, -3319,   142,  2235,  1841, -3319,  2281, 31458,
   24295, -3319,  1884,  2234,  1889,   402, 26499,   732, 22087, 27050,
   -3319, -3319,   949, -3319,    36, -3319,  1009,  1009,  1916, -3319,
   -3319,  1684,   789, -3319, -3319, -3319,  1896, -3319, -3319,  -137,
    2244,  2245, -3319,  2131,   837,  2131,  -137,  -137, 20426,  -137,
    2376, -3319,   741,  2185, -3319, -3319, -3319, 30356, 27601, -3319,
   -3319, -3319,  2381, -3319,  2382,   819, -3319, -3319,   402,   529,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,   790,   402,
     402,   140, -3319, -3319, -3319, -3319, -3319, -3319,   103, -3319,
   -3319, -3319, -3319, -3319, 20980,   156,  1141,   156, -3319,   183,
     220, 20980, -3319, -3319, 20980,  1141,   949,   741, 20980,   741,
   34764,  1141,  -108,  -108,  1783,   402,   741, -3319, -3319,  2252,
   36417,  2255, 20980, 20980, -3319, 30907, -3319,   402,  1103,   741,
     949,   949, 20980,  1141, 20426,   838,  1605,  -108,  1141, -3319,
   -3319, -3319, -3319, 19318,  1141,  1141,  1453, -3319, -3319, -3319,
     741, 30907,  1917, -3319,  5151, -3319, -3319, -3319, 15433, 36417,
     314,   440, -3319,  1918,  1048,   289,  1985,  1413,  1922, -3319,
    1923, -3319,  1925, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,   402,   402,   402,
     402,   626, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
    2149,  2304, -3319,   465,  2001, -3319,  2169,  1932, -3319, -3319,
      73, -3319, 19318, 14879, -3319,  2135, -3319,  1865, -3319, -3319,
   -3319, -3319, -3319, -3319,  -137,  2162,   606,  1684,  1940,   121,
   -3319, -3319, -3319, -3319, -3319, 36417,  1942, 24846, 28152, 28152,
   28152,  1939, 10882, -3319, -3319,  2179, 10882,  1943, -3319, -3319,
   10882, -3319,  2019, -3319,  1948,  1948, -3319, -3319,  1952,  1948,
    2295, -3319,  2297,  1946, -3319,  1954, -3319,  1955,  1958,  1959,
   -3319, -3319,  3063,  3063,  1950,  1961,  1962,  2162,  1963,  1964,
    1967,   240, -3319, -3319, -3319,  1968,  1969,  1971,  1972,  1973,
    1976,  1977, 10882,  1978,    13,  1274, -3319,  1979,  1980,  1981,
    1983, 10882,  1984, 10882,  1986, 10882,  1987,  1990,  1991, -3319,
   -3319, -3319, -3319, -3319, -3319,  1957, -3319,  1236, -3319,  1992,
   -3319, -3319, -3319, -3319,   243, 13737,  1285,  1996, -3319, -3319,
   10882,  1994, -3319,  1997, -3319, -3319, -3319, -3319, 19318,  2316,
   -3319, -3319, 13737,  2504, -3319, -3319,  1999,  2000, -3319, -3319,
   28152, -3319,   675, 20426, -3319,  2002, -3319,  2002,  -122,  2004,
    1288, -3319, -3319, -3319,  1982,  1503,  2383, 28152, 28152, 28152,
   -3319,  1684,  1684,   739,  2043,  2357, -3319, -3319, -3319, -3319,
   35315, -3319, -3319, -3319, -3319,  1033, 36417,  2342, 36417,  7456,
   -3319, -3319,  2511, 10882, 28152,   589,  1174,   402, -3319, -3319,
   -3319, -3319, -3319, -3319,  1841, -3319, -3319, -3319, -3319,  2319,
   -3319,    -6,  1192,   434, -3319,  1316, -3319, -3319, -3319,  2358,
    -137,  2131,  2131,  2359,  2254,   584,  2015, -3319,   402,  1299,
   -3319, -3319,   675, -3319, -3319, 10882, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319,  1102,   778, -3319, -3319,  1102,
    1102,   169, -3319,   907, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, 10882,  2363,  2367,   156, -3319, 20980, -3319, -3319, -3319,
     377, 34764, -3319, -3319, -3319, -3319, -3319, -3319,  2024, -3319,
   -3319,   170, -3319, -3319, 27601,  -108, -3319, 20980,  2024, -3319,
   -3319,   174, -3319,  -108, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, 34764,  2027, -3319,   918, -3319, -3319, -3319, -3319,
   34764, -3319, -3319, 34764, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, 19318,   950,  1320, -3319,  1290, -3319,
   -3319, -3319, -3319, 36417, -3319, -3319, 19318, -3319, -3319,  4283,
   36417,  2232, -3319, 10882, 10882,  2270, 36417,  2271, -3319,  2529,
   36417,  2584, -3319, 34213,  -108,   170,  1102,  1102,   385, -3319,
    2036, 36417,   402,   474, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,  2184, -3319, -3319, -3319, -3319,  2279,
    -129, -3319, 19318,  2561, -3319, -3319,  1294, -3319,  4918, -3319,
    2051,  1684,  2368, -3319, -3319, -3319, -3319, -3319,   522,   522,
     522, 13166, -3319,  2479, -3319,  3063, -3319, -3319, 10882,  2286,
   -3319,   193,  2289, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319,  2049,  2052,  2066, -3319, -3319,  2197, -3319,
   10882, 10882, -3319,   796,  2069,  2074, -3319, -3319, -3319, -3319,
   10882, -3319, -3319,  3063, -3319, 10882, -3319, -3319, 10882, -3319,
   10882, 10882, -3319,  2072, -3319,  2073, -3319,  2076, -3319, -3319,
   -3319,  1503, 36417, -3319, -3319,  2077, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319,   756, -3319,  2388, -3319, -3319,  1736,  2385,
    2061, -3319, 36417, -3319,  1515,  2080, -3319,   402, 13166,  1878,
    2208, -3319, -3319,  -122, 20426, 24295, -3319, 28152,  1559,  1559,
    1559,  1841,  2450,  1951,  1951, -3319, 22640, -3319, -3319,  2204,
   -3319, -3319, 25397, -3319,   608, -3319, -3319, 13737,  1440, -3319,
   -3319, -3319, 30356, -3319, -3319,   402,  2086,  2093, -3319, -3319,
   35866, 10882, -3319,  2492, -3319, -3319,  2094,  -137,  2309,  -137,
   -3319,  2437,  2439,  -137, -3319, -3319, -3319, 20426,  1684, 13166,
   -3319,   315,  1515, -3319,  2095,   918, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,   -80, -3319, 20980, -3319, -3319, -3319,
    2099,  2557,  2559, -3319, 20980,   980, 36417, -3319,  2511, -3319,
   -3319, -3319, -3319,  4283, -3319, 20426, -3319, -3319, -3319, -3319,
   36417, -3319,  1300, -3319, 15433, -3319, -3319, -3319,  2101,  2102,
    1948, -3319, -3319, -3319, -3319, -3319,  1952,  2310, -3319,  1952,
    1952, -3319, -3319, -3319, -3319, -3319,   193,   286, -3319, -3319,
     193, -3319, -3319, -3319,   115,  1144,  1952, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,  1948,  1948, -3319, -3319, -3319,   193,
    2103, -3319,  1948,   841, -3319,   138,   107,  2105,  2111,  1948,
    2112,  2106, -3319, -3319,  3063,  2604, -3319, -3319,  2242,  -108,
    2558, -3319,  1312, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
     790, -3319,  1102,   465, -3319,   289,   662, -3319,   956, -3319,
   -3319,  2122,  2208,  2943,   209, -3319, 36417, -3319,  1009, -3319,
     152,  2143,  2143,  2143,  1440, -3319,  1317, -3319, -3319,  2124,
   -3319,  2125,  2653,   158, -3319,  2653, 29805, -3319,  1326, -3319,
   -3319, -3319,   163,  2126,  2127,  2128,  2403,  2474, -3319,  2331,
   -3319,  2136,  2138,  2139,  2141,  2142,  2147, -3319, -3319, -3319,
   -3319, -3319, -3319,  2151, 31458, -3319, -3319, -3319,  2497, -3319,
    2152,  1352,  2361, -3319, -3319,  1606, 20426, 13166,  2153,  2156,
   -3319,   707, -3319, -3319,  2144,  1559, -3319,  2678,  2538, -3319,
   -3319, 30907,  2159, -3319, -3319,  2431, -3319,   188,  2350, -3319,
   -3319, -3319,   589,  2247,  2249,   402, -3319,  -108,  2287,  1786,
    2507,  1053,  2206,  -137,  -137,  1199,  2207, 10882, 10882,  2163,
   -3319,  2162, -3319, -3319,   645,  1606, 10882, -3319,   170,  2361,
   -3319,  2166,  2170, 36417, -3319,   958,   980,   314, -3319, -3319,
   -3319,   841,  1141, -3319, -3319,  2024,   251, -3319, -3319,   610,
    2415,  2416, -3319,  1104, -3319,  2174,  1104,  1104, -3319,  1610,
   -3319,  2205,   193, -3319, -3319,  2209, -3319, -3319, -3319,  1104,
    2182,   193, -3319, -3319,  2421,  1104, -3319, 30907,  -108,  2423,
   -3319,  2227, -3319,  2643,  2527, -3319,   841, -3319,  2528,  2432,
   -3319,  2433, -3319, -3319,  2434, -3319,  2435,  2438,  1104,  2443,
   -3319,  1104, 36417, -3319, -3319, -3319, -3319, -3319, -3319, 36417,
   -3319,  1328, -3319, -3319,  2270, -3319, -3319, -3319,  2188,  2192,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,  2320, 36417, -3319,
    2202,  2135, -3319,  2752,  1330,   918,  2210, -3319,  2290,  2291,
   -3319, -3319,  2293, -3319, -3319,    91,  1473, -3319, -3319, -3319,
   -3319, 13166,  2546, -3319, -3319, -3319, -3319, -3319, 29805, -3319,
   -3319,  2653, -3319,  2448, -3319, -3319, -3319, 10882, -3319,  2484,
    2622, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319,  2213,  2215, -3319,  1332, -3319,  1301, -3319, -3319,
   -3319, -3319, 10882, -3319,  2162,  2717, -3319, 22640, -3319, -3319,
   -3319, -3319, -3319,  2218,  2219,  7456,  2773, -3319,  -137, -3319,
    2261, -3319, -3319, -3319,  2262, -3319, -3319, 36417,  2368, -3319,
   -3319,   156,   156, -3319,   645,  1301,   918, -3319,  1334, 36417,
   36417,  1336,   999,   999,   999,   982,   982, -3319, -3319, -3319,
   -3319, -3319,   980,  2575, -3319,   799,    94, 36417, -3319, -3319,
    1298, -3319,  2224,  2226, -3319, -3319, -3319, -3319,  1104, -3319,
     163, -3319, -3319, -3319, -3319, -3319,   163, -3319,  2230, -3319,
   -3319, -3319,  1412, -3319, -3319,  2476,  2267, -3319, -3319, -3319,
   -3319,  2237,  2239,  2241,  2257, -3319,  2233, -3319, -3319,  2343,
   -3319, 41927, -3319, -3319,   984, -3319,  1413, -3319, -3319,  1157,
   36417, 19318,  -108,  2258,  2243, -3319, -3319, -3319, -3319, -3319,
     993,   668, 36417, -3319,  2486, -3319, -3319, -3319, -3319,   117,
    2478,   741,   741,   741,   741,  1473, -3319, -3319,  2292, -3319,
   -3319,  2259,  2263, -3319, -3319,  2337, -3319, -3319, 36417, 36417,
   -3319,  2361, -3319,   142, -3319,   995,   918, 10882,  1841,   694,
    2579, -3319, -3319, -3319, -3319,  2560,  1223, 10882,  2256, 10882,
    2269,  1339, -3319, -3319,  2655,  2655, -3319, -3319, -3319, -3319,
    1344,  1348,   668, -3319, -3319,   314, -3319,  2272, -3319, -3319,
   -3319,   768,   768,  1350, -3319, -3319, -3319, -3319, -3319,  1355,
   -3319,  1362, -3319, -3319,  1412, -3319,   193,  2653,   193,  2653,
   10882,  2692,  2285, 36417,   134, -3319, 43029, 43029, 36417, -3319,
   -3319, -3319, -3319,  4935, -3319, -3319,   124, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,  2264, -3319, -3319,
    -102,  2296,  2529, -3319, -3319,  4283,  2667, -3319, -3319, 36417,
    4283,   707,   209,  2208, -3319,   402,  2489, -3319,   668, -3319,
   -3319,   918,  2273, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   20426, -3319, -3319, 19318, 13737,  2371,  1366, -3319, -3319, -3319,
   -3319, -3319, -3319,   646, 10882, -3319, -3319, -3319,  2471,  2801,
    2802,  2713,  2804,   694, -3319,   514, -3319,  2709, -3319, -3319,
   36417, -3319, 36417, -3319, 36417,  1161, -3319, -3319,  2467,   668,
   -3319, -3319,  2361, -3319,  2853, -3319,   913, -3319, -3319,  1298,
   36417,   193,   163,   193, -3319, -3319, -3319, -3319, -3319, -3319,
   10882, -3319, 10882,  2313, -3319, -3319,  2689, 36417, -3319, -3319,
   -3319, -3319, 10882, -3319, -3319, 41927, 41927, -3319, -3319, -3319,
   -3319,  2298,  1272, -3319,  2736,  1270, -3319, -3319,  2455, -3319,
   -3319, -3319, -3319,  2299,  1503,   741,   173, -3319, -3319, -3319,
    2302, -3319,   402, -3319, -3319,   170, -3319, -3319, 36417,  2330,
   -3319, -3319,   918, 36417, -3319,   163,   163,  2820,   163, -3319,
    2828,  2829,   514, -3319,   949, 10882,  1376,  1378, -3319,  2830,
   -3319,  2831,  2312,  2317, -3319, -3319,  1385, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,   219, -3319,
   -3319,  2663,  2745, 10882, -3319, -3319, 39172,  2307, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 42478,
   10882,   124,   707,  2825,  2550,  2832, -3319, -3319, -3319, -3319,
    2770, 41927, -3319, -3319, -3319, -3319, -3319, -3319, 20426, 13166,
    1783,  2326, -3319,  2371, -3319,   130, -3319, -3319, -3319, -3319,
   -3319,   163, -3319,   163,   163, -3319,  2880,  2325, -3319, -3319,
   -3319, -3319, 34213, 34213, -3319,  2353, 10882, 41927, -3319,  2764,
   -3319,  2702,  2418,  2796,  2656,  2334, -3319,  2335,  2789, 43029,
   -3319,  2581, -3319,  2582, -3319, -3319, -3319,  2784,  4283,   707,
   -3319, -3319, 27601, -3319, -3319, -3319,  2351,  2436,   762,  2360,
   -3319, -3319, -3319,  2662, -3319,  2362,  1387, -3319,   221, -3319,
   -3319, 39723,  2879, 36417, -3319, -3319, 32009, 40274,  2364, -3319,
   -3319, 10882, -3319, -3319, -3319, -3319, -3319,  2518, -3319, -3319,
   -3319,  2717, 13737,   287,   402,  2818,  2819,   402,   402,   402,
     402, -3319,   762, -3319,  2798,  2370,  2800, -3319, -3319, 10882,
   -3319,  2807,  2458, -3319,  2374, -3319, 41927, -3319, -3319,  2763,
    2379,  1183, -3319,  2375, -3319,  2814, 41927, -3319, -3319,  2579,
    1392, -3319, -3319,  1736, -3319, 14308, -3319, -3319, -3319,  -108,
     402,   402,  1051,  1051,   170, 30907,  2386, -3319,   402, 10882,
    2384,  2387, -3319,   741, -3319,  2904, 41927, 36417, 37519,  2790,
   36417,  4283,  2792,  2793, -3319,  2564, 40825, 41927,  1270,  2762,
   -3319, 13737,  2395,  2396, -3319,  -108,  -108, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319,  2493, -3319, 30907, -3319, -3319,
   -3319, -3319,  2481, -3319, 38070, -3319,  1836, -3319, -3319,  2862,
     884, -3319, -3319,  2424, -3319, 41927,  2649,  2407, -3319, -3319,
   -3319, -3319, -3319, -3319,  1401, -3319, -3319, -3319, -3319, 41927,
   41927, -3319, -3319, 25948, 10882, -3319,  2442, -3319, -3319, -3319,
    4935, -3319, -3319,  2737, 16541,  2548, 30907, -3319,  2493, 38621,
   41376, -3319, -3319, -3319, 23193, -3319, -3319, -3319,  2811, -3319,
   -3319, -3319,  1380, -3319, -3319, -3319, 30907,  1403, -3319, -3319,
   20426, -3319,   762, -3319, -3319, 25948, -3319, -3319, -3319, -3319,
   -3319, 18762,  2302, -3319, -3319, -3319
};

/* YYPGOTO[NTERM-NUM].  */
static const short int yypgoto[] =
{
   -3319, -3319, -3319, -3318, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319,  1106, -3319, -3319, -3319, -3319, -3319,  1146, -1602,
   -3319, -3319, -3319, -3319, -3319, -3319,     6,   809, -3319, -3319,
       3, -3319,  -386, -3319, -3319, -3319, -2517,  -521,  -724, -3319,
   -3319,   254,   -94, -3319, -3319, -3319, -3319, -3319, -3319,  2081,
    -865, -2766, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319,  -391,  -523, -3319, -3319,  -382, -3319, -3319, -2301, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,  -997,  -928, -3319,
   -3319, -3319, -3319, -1959,  -368, -3319,  -366, -3319,  -365, -3319,
    -364, -3319,  -361,  -360,  -358,  -357, -3319,  -356, -3319, -3319,
    -935, -3319, -3319, -3319, -3319,  -354, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319,  -779, -3319, -3319,  -667, -3319, -3319,  -776,
    -348, -3319, -3319,  -687, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,  2075, -3319, -3319,
   -3319, -1920, -3319, -3319, -3319, -2448,  1681, -3319, -3319, -1868,
   -3319, -3319, -3319, -1939, -3319, -3319, -3319, -1892,   520, -3319,
   -3319,   879,   705, -3319, -1625, -1694, -1678, -3319, -3319, -3319,
   -2208, -2176,  -597,  1609,  -945, -2193, -3319, -3319, -3319, -3319,
   -3319, -3319,  -495, -3319, -3319, -2241,  1682, -3319, -3319, -3319,
     793, -3319, -3319, -3319, -3319, -3319, -3319,   241, -3319, -3319,
     242, -1405, -3319, -3319, -3319, -3319, -3319, -3319,  -616,  -511,
    -698, -3319, -2935,  -385, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,  -862,  -825, -3319, -3319,  -925, -3319,
   -3319,  -951, -3319,  -788, -2039, -3319, -3319, -3319, -3319,  1646,
   -1185, -3319,  2587, -3319,  -458,    54,  1250, -2083, -1265,  -822,
    -818, -2187, -3319, -3319, -3319,  -254, -3319, -3319,   730,   150,
    1251, -1674,   795,   859, -3319, -3319,   175, -3319, -2823, -3319,
   -3319, -3319,   133, -3319,   135, -3319, -3319, -3319, -1282,   105,
   -1461, -3319,  -277, -2214, -3319,   -58, -3319,  -100, -3319,  -509,
   -1865, -2108, -3319, -3319, -3319,   -90,   181,   238, -3319, -2721,
   -2816, -3319, -3319,  -507, -3319, -3319, -3319,  -517, -3319,  -257,
    -388, -3319, -3319,  -901, -2006, -3319, -3319, -3319, -2317, -2159,
   -3319,  1664,  -451,  1224, -2008,  -314, -2058, -3319,  -266, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319,  1276,  -922, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -2116,   196, -3319, -3319,   830,
   -3319, -3319, -3319, -1660,  -353, -1385, -2895, -3319, -3319, -3319,
   -3319, -3319, -3319,  1148, -3319, -3319,  1386,  1778, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,   -38,  1011,
   -3319, -3319, -3319, -3319, -3319, -3319, -1315,  1697, -3319, -3319,
   -3319,   -12, -3319, -3319, -3319, -3319, -3319,  1463, -3319, -3319,
   -3319,  2164, -3319, -3319, -3319, -3319,   642,  1052, -3319, -3319,
   -3319,  2198,  1010,  -529, -1534, -3319,  2562, -3319, -3319, -3319,
   -1468, -2147, -3319,  2274,  -326, -1291,  1464,  -953, -2718, -3319,
      55,  -652,  2754, -3319, -3319, -1039, -3319, -3319,  -663, -3319,
   -3319, -1087, -1083,  1944,  1953,   816,   817,   657, -3319, -3319,
    -575, -3319, -3319, -3319, -1053,  -619, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,   320,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
    -649, -3319,  1181, -3319,  -927, -3319, -3319, -3319,  2030, -3319,
   -3319, -3319, -3319, -3319, -2037, -1706,   262, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -2043, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -1538, -3319, -1755,  -333, -3319,  -191,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,  -635,   455,  -634,
   -1958, -1020,   869, -3319, -3319, -1181,  2078, -1782, -3319, -3319,
   -3319,  1091, -3319, -3319, -3319, -3319, -3319,   231, -2263, -1262,
   -3319, -3319, -2745,  -827, -1853,  -799, -3319, -2020,  -174, -1585,
   -1600, -2071,  -748, -1886, -3319, -3319, -3319, -3319, -3319,  -793,
   -3319, -3319, -3319,  -149,  1034, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319,  -543,  -414,  1341, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319,  2097,  1901,  1230, -3319, -3319, -2244,
   -3319, -3319,  1054, -3319,    79, -2055, -1574,   338, -3319, -3319,
     340, -2760, -3319, -3319, -3319, -3319, -3319, -3319,   282,  -850,
    -586,  2620, -3319, -3319, -3319, -3319, -3319, -3319,  2176,  1753,
   -1698,  2549, -3319, -3319, -3319, -3319, -3319, -3319, -3319,  1881,
    2638,  -510, -1166, -3319,  -641, -3319, -3319,  -782, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319,  1723, -3319, -3319,
   -3319, -3319, -3319,  1926, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
     369,  -668, -3319,  -406,  -700, -3319,  -488, -3319, -3319, -3319,
    -824, -3319,  -655,  -889, -1238,    17, -1712, -1327,   374,  1933,
   -2817,  -965, -1093, -1098, -1949,    32, -3319,  2930,    49,  -777,
    -817,    -7, -2449,  -115,  -519, -3319, -2292, -3319, -3319, -3319,
   -3319,  1530, -3319, -3319, -3319, -3319,   677, -3319, -3319, -3319,
     344, -3319,   104,   -98, -3319, -3319,   261, -3319,  1572, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319,  1960,  2684,  2377, -3319,  2165, -3319, -3319,
   -3319, -3319, -3319,  -208, -3319,   -39, -3319, -1951,  1790,   673,
   -3319,   847,  -711, -1001, -3319,  -210, -3319, -3319,   285,  2690,
    2389, -3319, -3319, -3319, -3319, -3319, -2410,  -804, -3319, -2460,
   -3319, -3319, -3319, -3319,  -987, -3319, -3319,  2079,   159, -3319,
   -3319,    75, -3319, -3319,   426, -3319,  -154, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319, -3319,  1241, -3319, -3319, -3319,
   -3319, -3319, -3319, -3319, -3319
};

/* 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 -2293
static const short int yytable[] =
{
     438,  1198,   948,   871,   867,   897,   554,  1406,  1407,   477,
    1408,   988,  1326,   476,  1243,  1525,   482,  2058,   493,  1056,
    1058,  1064,  1999,   548,   501,   495,   550,  1612,   908,  1550,
     939,   940,  1680,  1360,  1549,   507,  1815,  1040,  2602,  1291,
    2550,  2513,  2469,  1426,  1091,  1272,   524,  1874,  1491,  2353,
    2499,  2503,  2505,  2375,   134,   480,  1093,  2191,  2378,  1569,
    1266,  1716,  3044,  2846,  2633,  2806,  1577,  1272,   993,  3050,
    3121,  1579,  2702,  2192,  1582,  1113,  1111,  2335,  1117,  2198,
    1490,  1798,  2695,  1331,  2697,  1292,   543,  1332,  1124,  1125,
    1126,   991,  2525,  2534,  2204,  2125,  2517,  2518,  2208,  3102,
    2535,  1487,  2539,  1566,  2598,  2679,   881,  3398,   546,  2223,
     438,  1593,  1595,   438,   553,   559,  1508,  2021,  1687,  2232,
    3107,  1472,  1473,  1690,  2183,   542,  2190,  2179,   543,  1132,
    1133,  1134,   970,  1693,  1694,  2582,  1029,  2680,  2966,  1029,
    3173,  2435,  1492,  2579,  1719,   575,  2147,  2148,  1622,  1172,
    1504,  2721,   835,   836,  3614,  2725,  2337,  2174,  3012,  2609,
    2610,  1517,  1518,  1519,  2179,  1429,  2339,   569,  2481,  1029,
    1524,  3013,  3145,  2141,  3308,  3613,  2095,  3218,  3236,  2240,
    2515,  2755,  2206,  2207,  3014,  2209,  2686,  1160,  2212,  2213,
     958,  2570,  2216,  2179,   835,   836,  3235,  2225,   886,  3240,
     563,  2228,  2229,  2230,  2231,  3138,  3143,  3461,  2235,  3144,
    2237,  2051,  3218,  3012,   835,   836,  2246,  1387,  2303,  2250,
    2251,  2252,  3320,  1429,  2801,  2984,  3013,  1293,  3153, -2206,
     644,  1196,  1254,  1021,  3172,  1990,  2275,  1328,  1865,  3014,
    1024,  2285,  2571,  2488,  2699,  2566,  1328,  2291,  2292,   835,
     836,  2295,  2566,  1328,  1334,  2580, -1359,   114,  3279,  2584,
    1030,  2364,  2880,  1030,   131,  1120,  -767,  2557,  2564,  1235,
     442,   443,  3108,  2600,  2601,  -485,  2052,  1166,  2988,  2571,
   -1607,  1224,  -486,  2611,  2687,  2365,  1702,  1198,  2314,  3306,
     492,  1277, -1359,  1030,   505,   648,   500,  3269,  1035,  2048,
     504,  2077, -2140,  2241,  1201,  3605,  3012,  1732,  1196,  2158,
    2484,  2653,  2024,  2562,   807,  2794,  1388,  1461,  1461,  3013,
    1389,   533,  2643,   133,  2366, -2141,   506,  2367,   959,  1270,
    1390,  1384,  3014,  2053,   580,  2368,  1198,   516,  3219,  2520,
    1198,   514,   835,  3139,  1913,   515,  2158,  -396,  3786,  1301,
    2572,  3757,   887,  3757,  1854,  2318,   116,  1285,  1154,  2054,
    1358,  3040,  2669,  1918,   943,  3787,  2870,  2871,   647,  1634,
     235,  1974,   237,  3219,   649,  2158,  2319,  1855,   133,  3615,
    2533,  2180,  1359,   135,   498,  1351,  2482,  -567,  1422,   564,
    2485,  1230,  1465,  1466,  1467,  2862,   517,  2708,  2709,  2710,
    1202,  2106,  1919, -2140,  1478,  2071,  1493, -1359,  1964,  1494,
    3046,  1217,  2079,  2080,  2071,   808, -1755,   566,  2180,  1121,
    2315,  3343,  1712,  2055,  1302,  3410, -2141,  1462,  1477,  1715,
    3347,  1703,   965,  1510,   944,  1704,  1514,  1733,  2654,  2989,
     650,   489,   553,   931,   559,  2264,  2800,  2180,  1391,  3606,
    2107,  1432,  2841,  1167,  2297,  3426,  1532,  1533,  2743,   604,
    1537,  1296,  1423,   559,  1702,  2679,   534,   923,  2328,  3220,
    3393,  3407,   642,  2977,  2978,  2644,   553,  1426,   652,  1552,
    1553, -1318,   809,  2859,   543,  1203,  2888,  2850,  3109,  2179,
     798,  1423,   987,  1681,  2191,  2056,  1684,  2680,  2179,  2571,
    2026,  1405,  2027,  2881,  1689,  2030,  1197,  1331,   982,   983,
    2192,  1332,   986,   543,   883,   990, -1318, -1755,  2879,  1695,
    1696,  1430,  3616,   788,  1717,  2121,  2808,  2809,  2810, -1359,
     586,   899,  1310,  1798,  2297,  3193,  1392,  1581,  2369,  2890,
     553,  1255,   912,  2297,  1869,  1155,   645,   486,   960,  2573,
     490,  1385,  1601,   543,   438,  2703,  2183,  2543,   543,  3062,
    3581,  3448,  3112,  2190,   937,  1156,   543,   543,  2878,  3864,
    2001,   949,   912,  2031,  1574,  2032,   553,  1331,  1604,  1430,
    2516,  1332,  2756,  1197,  2555,   971,  -567,   584,  3222,   976,
    2524,  2158,   922,  2023,   981,   438,   438,  2688,   912,   438,
     553,  3271,   438,   553,   543,  2559,  2560,   864,  3047,  1703,
    2329,  3221,  1022,  1704, -1607,  2995,  1623, -1755,  3462,  2676,
    2672,  1230,  2583,  3222,  2585,  2072,   816,  2566,  2701,  2672,
    2489,  2596,  2002,  1991,  2072,  2677,   864,   924,  2339,  1034,
   -2206,  2595,  3983,  2873,  2608,   946,   947,  3676,  2566,   888,
    2617, -1359,  3146,  2603,  3015,  1692,  1719,  2455,  2242,  1259,
    1159,  3596,   968,  3598,  2869,  2632,  2370, -2206,  1614, -1607,
    2108,  2158,  3617,  2563,  3237,  3174,  2303,  3377,  3170,  2057,
    2158,  3556,   961,  1424,  1159,  1630,  1353,   819,  2675,  1025,
    1278, -1359,  3626,  2872, -1359,  2297,  3132,  3630,  3280,  2811,
    2812,  2298,  2574, -1359,  -767,  3223,  3171,  1423,   583,  3015,
    2561, -2140,  1424,  -485,  1157,  1260,  1122,  1168,  1169,  1170,
    -486,  2371, -2292,  2664,  2665,  2666,  2667,   610,  1269,  2979,
    3151,  3152,  1353,  3650, -2141,  2158,   612,  3652,  3155,  -567,
   -2140,  1261,  3057,  2180, -1756,  3178,  1139,  1353,  1141,  1159,
    2372,  1297,  2180,   800,   790,  3595,  1286,  3597,  1914,   114,
    1685,  2469,   802, -2141,  1298,  3687, -1607,  3797,  1353,  2299,
    1975,   129,  1158,  1350,   130,  2679,  2851,  2852,  1446,  2073,
    3082,  2298,   543,   884,  3125,  -396,  3638,  1423,  2073,  3192,
    2298,  2265,  1222,   553,   543,   932,  1423,   820,   543,  1159,
    1495,  1663,  3015,  1496,  2187,   543,  3092,  2680,  2882,   525,
    3096,  3299,  3091,  1906,  1409,  1230,  3095,  3583,  3111,   499,
   -1755,  1208,  3140,  2951,  1721, -1755,  2646,   941,   491,  3559,
    1353,  3824,  2158,  1227,  1870,  1783,   553,  3026,  3298,  3560,
     115,  2330,  1219,   487, -1318, -1756,  3300,  2168,  1287,   441,
     526,  1423,   864,  1860, -1755,  3865,  3065,  3825,   116,  3718,
    1948,  2116,   794,  2391,  1952,   821,  3156,  2813,  2222,  2191,
    3682,  3195,  3684,  1299,  1869,  1786,  2382,  2383,  1680,  1680,
    3196,   589,  1738,  1585,  3325,  2192,  1159,  1976,  1177,  2146,
    1423,  2043,  2134,  3525,  1327,  1300,  1879,  1316,  2309,  2300,
    2504,   902, -1607,   444,  2169,  2119,  3157,  3737,  2120,  1873,
    3158,  2123,  2124,  1812,  2855,   527,   485,  1272,  2836,  2997,
    2845,   543,   117,  3000,  1356,   543,  3731,  2566,  1424,  2553,
    2170,  2179,   864,   497,  2430,  1262,  2183,  2896,  2190,  1817,
    3326,   864,  2298,  2837,  2168, -1756, -2264,  2616,  1423,   118,
    3159,  2016,  1241,  3210,  1178,  3818,  2521,  3046,  3066,  2540,
    1273,  2198,   519,   543,   569,  1415,  3826,   915,  2029,  3781,
    3388,  3458,  1447,  2427,  3660,   511,  2223,   543,  3217,  2676,
    1182,  1739,  2392,  1550,  2158,  2037,  3077,   543,  2473,  1798,
    2168,  2887,  2038,   657,  2171,  2677,   864,   119,  2380,  3661,
    1670,  2169,  1410, -2261,  1414,  3078,  3197,  1274,  1424,  -566,
    2299,  3428,  2387,  2044,   969,   916,  1421,  1424,  2193,  1331,
    1813,  1352,  3678,  1332,  1451,  1564,  1454,  2170,   543,  2194,
    3285,  3561,  2897,  2429,  3079,  1387,  2554,  3609,  3610,  3827,
    1550,  2437,  2401,  2303,  2983,  2538, -2264,  2169,  2675,  1263,
    3291,  3292,  2254,  2247,  1671,  2278,  3828,  3312,  3651,  1488,
    2530,  3631,   646,  3203,   678,  2976,  2172,  -701,  3929,  1264,
    1586,  2531,  1424,  2170,  1488,  2838,  3101,  1186,  3829,  3508,
    1317,  1603,  2814,  2440,  1187,  1458,  1448,   917,   678,  3584,
    1587,  2171,  1404,   864,  1353,   942,  2452,   903,  2982,  2556,
    1423,   795,  1621,  2117,  3027,  3311,   463,  2067,  2068,  1265,
    2444,  1424,  2279,  2158,  2856,   682,   120,  -566,  2017,  1288,
    1551,   683,   446,  2195,   904,  2739,   822,   823,   824,   825,
     826,   827,  3718,   553,  1388,  1740,  1550,  2171,  1389,  2130,
    2300,  2615,   528,   828,  1741,   683,  2109,   687,  1390,  3459,
    1742,  3241,  2186, -1756,  1358,  3047,  1188,  2052,  2704,   946,
     947,   529,   464,  2172,  1870,  3160,  1664,  1665,  1666,  1424,
    1668,  3161,  3204,  3585,  3301,  1854,  1359,   121,  3327,  3562,
    1636,  2338, -1756,  1683,   518,  2180,  1723,  2045,   465,   553,
     530,  1688,  -566,  1606,  3508,  3508,  2668,  1724,  1855,  3586,
    3947,  2193,  2280,   447,   543,  1190,   593,  3162,  2052,  2172,
     553,   694,  2194,  1672,  2053,   705,  2891,  3526,   466,  2248,
    1722,   543,   543,   521,  3725,  1241,  1650,  2092,   122,   864,
    -855,  -187,  1639,  1743,  -735,   694,  2187,  3679,  3460,  1588,
    1648,   531,  3830,   536, -1629,   864,  2308,  2532,   537,   803,
    2173,  3436,  3770,   438,   438,   438,   543,   438,   543,  3892,
    2131,   594,  1675,   467,  2604,  2053,  1391,   705,  3163,  1682,
     438,  2093,   553,  3893,  2281,   538,  2132,   705,   438,   448,
     918,  1461,   709,   710,   951,  2130,   543,  2133,  1570,  2676,
   -1630,  2054,  1651,  3580,  2567,  1667,  2567,  1669,  2018,  2866,
    -566,  3450,  3451,  1660,  3907,  2677,  2195,   710,   705,  2130,
     985,  1849,  1850,  1851,  2019,  3709,  -566,  1744,  1875,  3819,
    3814,  1424,  3713,  3508,  3508,  1691,    43,   705,   553,  1191,
     582,  3714,  2605,  3956,  1676,  1461,  3205,  1358,   919,  1723,
     920,  1193,   543,  3669,  1135,  1725,   543,  2173,  2776,   608,
    1724,  3524,  2428,  2004,  1392,  2055,  2309,   712,  2675,  1359,
    3164,  2134,  2734,  2735,   544,  1550,  3195,  2651,  2682,  2788,
    2797,   547,  1461,  3409,  1637,  3196,  3908,   -59,  1652,   595,
    1640,  1814,   468,  3289,  3670,  2130,   126,  3717,  2193, -1629,
    1747,  1509,   729,  2173,   804,  1715,  2197,   553,   438,   438,
     438,  1816,  2130,  3318,  3508,  2434,  2131,  3509,  1888,   976,
    1889,  1864,  2652,   549,  1726,  2193,  2077,  3508,  1062,  2005,
    3675,   553,  2132,  2077,  2606,  3206,   553,  2056,  1619,  3508,
    2131,  2078,   543,  2133,  1881, -1630,  1343,  1344,  1727,  1886,
    1886,   560,  1886,   469,   729,  1513,  2132,  3318,  3313,   946,
     947,  3314,  1367,  1368,   729,  1571,  3801,  2133,  2282,   449,
    1304,   561,   735,  2135,   127,  3508,   116,   737,  1620,  -566,
     738,    55,  2092,  1402,  1063,  1653,   450,  3508,  1885,  1885,
    1062,  1885,  1536,   997,  3633,   729,  2196,  2219,  1448,  1489,
    1641,   737,  1212,  1728,   470,  1213,  1013,   471,  1725,  -566,
    3671,  3197,   571,  3055,   729,  2775,  2131,  2134,  3307,  3508,
     451,  1062,  -491,   452,  2219,  3508,   472,  3715,  1677,  3315,
    3316,  2136,  2132,  2131,  1358,  2624,  1289,  2625,  1305,  3293,
    1062,  2134,  2657,  2133,  2079,  2080,  1112,  1923,  3262,  2132,
    1270,   473,  3334,   572,  3553,  3888,  1359,  2658,   575,   453,
    2848,  1358,  3510,  3568,  3508,  3896,   474,   454,  2009,   998,
    3909,  3523,  2626,   577,  3508,  3554,  1014,  1726,  2081,  1290,
    3118,  3105,  3325,  1359,  1729,  3558,   579,  1924,  3263,  2197,
    1379,  1380,   590,  2627,  2186,  3924,  1116,  3729,   946,   947,
     452,  1727,   129,  3746,  3508,   130,  3508,  2087,  2088,  2089,
     592,  2037,  2006,   543,  3508,  3508,   543,  2134,  2822,  2135,
    1015,  2057,  3666,   605,  3667,  2628,  2187,   999,  2066,   553,
     553,   543,   543,   600,  2134,  1016,  3335,  1214,  3326,  1886,
    1886,  1886,  3508,  2135,  3133,  1572,   787,  3136,  3137,  1000,
     643,  2010,  2042,  3508,  2011,  1208,  1728,  2104,  3969,  3970,
     791,  1573,  -566,  3400,  3149,   793,  2115,  3508,  3508,  2883,
    1227,  2070,  3336,   876,   877,   878,   880,  2136,  1885,  1885,
    1885,  1243,  2065,  2567,  3820,  3341,  3342,  3508,  3508,   946,
     947,  3147,  3508,  2085,  3148,   543,  2221,  2842,  3345,  1890,
    2894,  2136,   804,  1443,  3349,  3009,  1444,  2129,  2899,  1445,
    2220,  2901,   646,   543,  2308,  2594,  1550,  2111,  1891,  2135,
     914,  2473,   898,  2221,   924,  1272,  2681,  3365,  1162,  1163,
    3367,   935,  1892,  2309,  2122,   952,  2135,  1729,  2682,  2310,
    3946,  1893,   953,  3032,  1001,  2222,   957,  3765,   114,  2844,
    1002,   980,  2140,   835,   836,  1164,  1165,   984,  3401,  3402,
    3765,   995,  1720,  3403,  3404,  1558,  1559,  2341,  2321,  1550,
    1680,  1017,  3776,   864,  2538,  1979,  1980,  2136,   892,   893,
    1003,   894,  2149,   895,  1996,  1997,  1894,  1895,  1010,  1145,
    1146,  2156,  2157,  1012,  2136,  2249,  1027,  2164,  2165,  2166,
    2167,  1142,  2175,  2176,  2013,  2014,  1028,  1550,  1019,  2263,
    2629,  3319,  2615,  2376,  1896,   602,   603,  1004,  2376,   606,
     607,  2273,  1147,   609,   118,   611,  3535,  3536,  3537,  3538,
    1161,  1148,  1037,  1596,  1597,  1598,  1599,  1600,  2440,  1038,
    1005,  2177,  2178,  2344,  2345,  2431,  2432,   553,  2630,   835,
     836,  1036,  3765,  2757,  2758,   438,  1006,  1039,  3853,   130,
     543,  3043,  1171,  2336,  2777,  2778,  1149,  2803,  2804,  2903,
    2904,  1041,  1897,  2993,  2904,   553,   888,  1150,  1206,  3127,
    1353,  2276,  2277,  1042,  2284,  1207,  2286,  2287,  2288,  2289,
    2290,  3188,  3189,  2293,  2294,  1200,  3230,  3231,  1220,  2333,
    1756,  1757,  2425,  1043,  1151,  3242,  3243,  3375,  2178,  3391,
    3392,  3420,  3421,  3449,  3421,  3452,  3392,  3287,  3573,  3574,
    1046,   553,  1898,  3578,  3392,  1233,   553,  3579,  3392,  3589,
    3590,  -687,  -687,  1759,  3591,  3592,  1047,  2384,  1237,  3765,
    -687,  3593,  3592,  1048,  1762,  3647,  3648,  3765,  3934,  1049,
    1488,  2793,  1763,  1234,  3183,  3748,  3574,  3749,  3574,  1152,
    1050,  3635,  1051,   994,  3754,  3421,  3838,  2663,  1550,  1052,
    1765,  3900,  3901,  2797,  2186,  3765,  1053,  1243,  3950,  3951,
    3967,  3968,  4000,  4001,  1328,  3620,  3962,  1766,  1590,  1591,
    1054,  1592,  1594,  1540,  1541,  2835,  3911,  3911,  3453,  3454,
    1057,  2376,  1059,  2507,  2512,  1060,  3069,  3070,  3002,  3003,
     553,  3228,  3229,  1061,  1238,  1771,  1065,  3456,  1066,  1067,
    3765,  3765,  1068,  1069,  1070,  3996,  1071,  1072,  1073,  1074,
    1076,  1241,  1077,  1078,  1252,  1082,  1083,  1084,  1085,  1086,
    1087,  2445,  2549,  2376,  3202,  1088,  1089,  1090,  2682,  1092,
    1094,  1253,  1095,  1096,  1097,  3732,  1098,  1099,  1100,  1101,
    3726,  1102,  1257,  1103,  1104,  1105,  2459,  1106,  1107,  1108,
    1109,  1110,  1114,  1115,  1118,  1119,  1123,  1127,  1128,  1774,
    1129,  2308,  1130,  1131,  2474,  1199,  2681,  1775,  1244,  1258,
    1270,  1279,  1280,  1281,  1282,  1283,  1284,  1294,  1295,  1309,
    1776,  2902,  2493,  2495,  1311,  1312,  1319,  1328,  1337,   553,
    1314,   553,   553,  1335,  1365,  1366,  1367,  1368,  1369,  1370,
    2341,  1371,  1372,  1373,  1374,  1375,  1376,  1377,  1340,  1378,
    1341,  1345,  1348,  1349,  1396,  1397,  1398,  1401,  1403,  1404,
    1416,  1551,  1418,  3244,  1420,  1427,  2341,  1428,  1436,  1433,
     553,   553,  1777,  1437,  1438,  1440,  1441,  1196,  2492,  1461,
    1468,  1480,  1482,  1122,  1506,  1498,  1548,  1560,  1583,  1778,
    1565,  1580,  1602,  1607,  1608,  1611,  1613,  1617,  1625,  1626,
    1627,  1628,  1629,  1635,  1658,  1662,  1643,  1686,  1649,  1697,
    1701,  1699,  1713,  1809,  2569,  1818,  1820,  2263,  1821,  1822,
    1823,  1819,  1824,  2581,  2263,  1825,  1826,  2263,  1827,  2591,
    1828,  2263,  1829,  2590,  1830,  1831,  1832,  1833,  1040,  1834,
    1835,  1782,  1836,  2590,  1837,  2263,  2263,  1838,   553,  1784,
    1844,  2612,  1845,  1847,  1857,  2263,  2620,  1551,  1862,  1852,
    1876,  1901,  2622,  2623,  1379,  1380,   543,  1877,  1904,  1905,
    1916,  1907,  2008,  1909,   553,  1910,  1911,  1917,  1920,  1921,
    3869,  2263,  2642,  3872,  3873,  3874,  3875,  1927,  1922,  1926,
    1928,  2592,  2593,  2086,  1934,  1929,  1930,  1931,  1932,  1936,
    1933,  1935,  1937,  1946,  3913,  2621,  1938,  1940, -1075,  1941,
    1790,  1942,  1943,  1944,  1945,  1949,  2619,  1947,  1950,  1951,
    1953,  2003,  1954,  1955,  1956,  1159,  3905,  3906,  3921,  1957,
    1753,  1958,  1959,  2020,  3917,  1029,  1960,  1754,  1755,  1961,
    2028,  1962,  1963,  1965,  1970,   543,  2263,  1966,  1967,  1756,
    1757,  1968,  1969,  1971,  1972,  2039,  1973,  1977,  1978,  2112,
    1981,  1982,  1791,  1983,  2049,  1992,  1993,  1994,  1881,  1995,
    1034,   553,   553,   553,  1998,  1792, -1192,  2100,  1758,  2063,
    2118,  2114,  1759,  1760,  2691,  2138,  2139,  1761,  2142,  2143,
    2145,  2150,  2151,  1762,  2152,  1793,  2153,  2155,  2154,  2193,
    2205,  1763,  1794, -1359,  2210,  2211,  2214,  1764,  2215,  2217,
    2218,  2224,  2226,  1795,  2227,  2234,  2681,  2233,  2238,  1765,
    2239,  2244,  2266,  2245,  1029,  2311,  2334,  2338,  2343,  1353,
    3444,  3445,  2358,  1328,  2363,  2346,  1766,  2347,  2381,  2348,
    2360,  2349,  2350,  1767,  1768,   691,  2393,  2394,  2406,  2411,
    1769,  2413,  2415,  2420,  2421, -1359,  2422,  2423,  1770,  1030,
    2433,  2424,  -793,  2439,  1771,  2698, -1245,  2446,  2450,  2448,
    2451,   543,  1550,  2453,  2460,  2476,  2464,  2477,  2478,  2479,
    2093,  3470,  2092,   553,  2497, -1359,  1551,  3470,   657,  2496,
    1772,  2788, -1359,  3544,  2498,  2519,  2522,  2526,  2527, -1359,
     553,   553,   553,  2528, -1359,  2544,  2551,  2552,  2597,  2376,
    2042,  2599,  2656,  2821,  2670,  2634,  2671,  2683,  1783,  2823,
    2660,  2825,  2662,  2650, -1359,  2663,  1773,   553,  1774,  2684,
    2685,  1715, -1359,  1863,  3238,  2706,  1775,  2711,  2718,  2713,
   -1359,  2726,  2716,  2727, -1359,  2728,  2719,  2785,  1030,  1776,
    2722, -1359,  3312,  2729,  2730,  2038, -1359,  2731,  2732,   678,
    2736,  2737,  2772,  2740,  2741, -1359,  2742,  2746,  2747,  2820,
    2748,  2749, -1359,  2750, -1359,  2751,  2752,  2754,  2759,  2789,
    2760,  2761,  2762,  2764,  2807,  2766,  2768,  2805, -1359,  2769,
    2770,  2774,  2967, -1359,  2781,  2779,  2782,  2818,  2791,  2263,
    2792,  1777,  2799,  2802,  2590,  2819,  2832, -1359,  2824,  2843,
     682,  2849,  2853, -1359,  2854,  2857,   683,   553,  1778,  2876,
    2263, -1359,  1779,  2877,  2886, -1359,  2962,  2895,  2969, -1359,
    2965,  2968,  2973,  2985,  2980,  2590,  -403,  2998,  3008,  2987,
   -1359,  3011,   687,  2590,  3018, -1359,  2590, -1359,  3019,  2996,
    3049,  3020,  3022,  3029, -1359,  1212, -1359,   543,  1780,  3052,
    1550,  2077,  3067,  1781,  3087,  3021,  2905,  3075,  3028,   543,
    1782,  3037,  3038,  2961,  2889,  3039,  3042,  1783,  1784,   438,
    3056,  3090,  2892,  2971,  3083, -1359,  2273,  1064,  1113,  1117,
    3093,  3084,  3094,  3088,  2981,  3106,  3114,  3113,  3115,  3130,
    3131,  3154,  3134,  3176,  3722,  1785,   694,  2264,  2906,  3177,
    3179,  3182,  3184,  3186, -1359,   543,  3173,  1786,  1787,  1788,
    1789,  3209,  3226,  3233,  3234,  3245,  3246, -1359,  3247,  3248,
    3473,  3074,  3249,  3683,  3250,  3251, -1359,  3252,  3253,  1790,
    3254,  3255,  3260,  2975,  3264, -1359,  3256,  2549, -1359,  2822,
    3258,  3261,  3270,  3272,  2991,  3273,  3231,  3278,  3281,  3277,
    3288,  3297,   705,  3283,  3309,  3284, -1279, -1284,  3310,  3863,
    3332,  3333,  3340,  3352, -1359,  3170,  3348,   709,   710,  3344,
    3346,  3355,  3356,  3357,  3359, -1359,  3360,  3378,  3361,  3362,
    3363,  1791,  3379,  3364,  3382,  3041,  3739,  3740,  3366,  3742,
    3389,  3387,  3408,  3411,  1792,  3414,  3395,  3396,  3394,  3397,
    3413,  3416,  3863,  3418,  3429,  2459, -1359,  3432,  3433,  3435,
    3457,  3438,  3440,  3466,  1793,  3467,  3474,  2474,  3064,  3472,
     553,  1794,  3475,  3243,  3480, -1359,  3476, -1359,  3477,   553,
    3478,  3532,  1795,  3519,  3534,  2445,  3540, -1359,  3863,  3543,
    3565,  3567,  3594,  3575,  3570,   553,  3479,  3518,  3541,  3600,
    1243,  -270,  3542,  2104, -1359,  3627, -1359,  3572,  3636,  3653,
    3582,  3619,  3639,  3645, -1359,  3622,  3655,  3656,  3657,  3658,
    1551,  3664,  3790,  2646,  3791,  3792, -1359, -1359,  3677,  3687,
    3690,  3716,  3723, -1359,  3735,  3741,  1550,  3712,  3724,  2263,
    -793,  3989,  3728,  3743,  3744,  3750,  3751,  2263,  3760,  2590,
    3752,  3761,  3879,  3766,  3771,  3753,  3772,  3775,  1551,  1756,
    1757,  3773,  1550,  2590, -1359,  3784,  3793,  2263,  3794,  3797,
    3802,  2376,  3804,  1550,  3806, -1359, -1359,  3805,  3989,   729,
    3810,  3809, -2061,  3313,  3812,  3817,  3314,  3815,  3816,  3822,
    -687,  -687,  1759, -1359,  3823, -1359,  3836,   735,  3835,  -687,
    3843,  3837,   737,  1762,  3857,   738,  3870,  3871,  3878, -1431,
    3854,  1763,  3883,  3885,  3887, -1359, -1359,  3886,  3889,  3890,
    3895,  3894, -1359,  3919,  3915,  3923,  3276,  3920,  3927,  1765,
    3930,  3931,  3932,  3936,  3939,  3940,  3943,  3879,  1756,  1757,
    3949,  3954,  3961,  1328,  3963,  3964,  1766,  3981,  3984,  3990,
    3997,  3621,  2342,  2296,  3315,  3316,  3191,  2558,  3194,  3216,
    3512,  3624,  3774,  3898,  1339,  3520,  3629,  3514,  4004,  -687,
    -687,  1759,  3957,  3491,  1771,  3492,  3494,  3495,  -687,   553,
    3497,  3498,  1762,  3499,  3500,  3501,  3971,  3502,  3185,  3840,
    1763,  3758,  3841,  3505,  3769,  1752,  1400,  3632,  1796,  2618,
    3051,  1868,  3734,  3644,  3054,  3785,  3551,  2493,  1765,  3938,
    3903,  4003,  2549,  3994,  3877,  1841,   591,  3211,  2253,  1551,
    3720,  3447,  1328,  2696,  3128,  1766,  2647,  2260,  2575,  3117,
    3141,  3468,  3142,  3321,   553,  3180,  3358,  3350,  1774,  3120,
    3081,  3674,  3680,  3465,  3588,  1856,  1775,  3637,  3531,  2332,
    3471,  2257,  3119,  1771,  2637,  2127,  1700,  2461,  3324,  1776,
    2784,  2069,  1839,  2492,  2449,   896,  1357,  3552,  1324,  3259,
    2480,  3045,  2322,  1584,  1248,  2379,  3216,  2091,  1505,  3089,
    3322,   833,  3577,  3446,  1589,   615,   616,  3795,  2974,  3796,
    2438,   794,   834,  2376,  3443,  3912,  3123,  3948,  3431,  2487,
    1631,  1479,  1457,  2355,  2467,  3268,  3286,  3060,  3059,  3100,
    4002,  1777,  3780,   885,   835,   836,   977,  1774,  1413,  1674,
     553,   870,  3048,  3859,   837,  1775,   838,  3659,  1778,  3899,
    1633,  1878,  3074,  1173,  1174,  1175,  1176,  1177,  1776,  1861,
     839,   616,   840,   841,  3745,  3368,  3354,  4005,  3063,  2101,
    1647,   842,  3372,  2840,  3085,  2047,  3282,  3434,   617,   815,
    1236,  3533,  2705,  1450,  1848,  3539,   817,  1638,     0,  3257,
       0,  3386,     0,     0,     0,  3998,  1240,  3351,     0,     0,
    1782,     0,     0,     0,  1556,     0,   618,     0,  1784,     0,
    1777,  3782,     0,     0,     0,     0,     0, -1607,   843,   619,
       0,   553,   844,  1178,     0,   845,     0,  1778,     0,     0,
       0,     0,   756,   617,     0,     0,     0,     0,     0,     0,
       0,   620,     0,   621,     0,     0,  1179,  1180,  1181,  1182,
     846,     0,   847,   622,     0,     0,     0,   848,     0,   849,
     553,   618,     0,     0,     0,     0,     0,     0,  3834,  1790,
       0,     0,     0,   623,   619,     0,     0,     0,     0,  1782,
    3442,   850,   851,     0,     0,     0,   852,  1784,     0,     0,
       0,     0,  3216,  3216,     0,     0,   620,   624,   621,     0,
       0,     0,   853,     0,   625,     0,     0,     0,   622,     0,
    3464,     0,  3834,  3720,     0,     0,     0,     0,     0,     0,
       0,  1791,     0,   854,     0,     0,     0,     0,   623,     0,
       0,     0,     0,     0,  1792,     0,     0,     0,     0,     0,
       0,   626,  1183,   978,  1184,  1185,  1186,     0,  1790,     0,
     855,     0,   624,  1187,  1793,     0,     0,     0,     0,   625,
       0,  1794,     0,  3515,   543,     0,     0,     0,  3978,     0,
       0,     0,  1795,     0,     0,  3216,     0,     0,     0,     0,
       0,     0,   856,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   857,     0,     0,     0,   626,     0,     0,     0,
    1791,  3548,  3550,  3516,     0,  1044,     0,     0,   784,     0,
    3978,   858,     0,  1792,     0,     0,     0,     0,     0,     0,
       0,  3517,  2323,     0,     0,  1188,     0,     0,     0,     0,
       0,     0,     0,  1793,   859,  1075,     0,     0,     0,     0,
    1794,     0,     0,     0,     0,   860,   861,     0,     0,     0,
       0,  1795,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   627,     0,     0,     0,  3604,     0,     0,     0,
       0,  3611,  3834,  1189,  1190,     0,     0,     0,     0,   628,
       0,     0,     0,     0,     0,   629,     0,     0,     0,     0,
       0,     0,     0,   630,     0,  1137,     0,     0,     0,     0,
       0,     0,  3386,     0,     0,     0,   862,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   631,   627,   863,   784,
       0,     0,     0,  1551,     0,     0,   543,     0,     0,   632,
     633,     0,     0,     0,   628,     0,     0,     0,     0,     0,
     629, -2087,     0,     0,     0,   864,     0,     0,   630,     0,
       0,     0,     0,  3442,     0,  3442,     0,  3668,     0,     0,
     865,     0,     0,     0,     0,  3643,     0,     0,     0,   634,
       0,   631,     0,  3681,     0,     0,   784,     0,     0,     0,
       0,   784,     0,     0,   632,   633,     0,     0,     0,     0,
    3691,     0,     0,     0,     0,   635,     0,     0,  1191,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1192,
    1193,   784,     0,     0,     0,     0, -2087,   636,     0,   637,
       0,     0,   866,     0,   634,     0,     0,   784,     0,     0,
       0,  3548,     0,     0,     0,     0,  3738,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     635,     0,     0,     0,     0,     0,     0,  2376,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   784,   784,
     784,   784,   636,     0,   637,     0,     0,     0,     0,  1364,
       0,     0,     0,     0,     0,     0,     0,     0,   784,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1551,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  2273,  2273,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3914,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   553,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1459,  1460,     0,     0,     0,  3845,     0,     0,  3851,
    1470,  1471,  2341,     0,  1474,  1475,  1476,     0,     0,     0,
       0,  1481,     0,     0,  1483,  1484,     0,  1485,     0,  1486,
       0,     0,     0,     0,     0,     0,  1500,  1501,  1502,     0,
    1503,     0,     0,     0,     0,     0,     0,  1511,  1512,     0,
    1515,  1516,     0,     0,     0,     0,  1520,     0,  1521,  1522,
    1523,  3993,     0,  1526,  1527,  1528,  1529,  1530,  1531,     0,
       0,  1534,  1535,     0,  1538,   784,  1539,     0,   553,     0,
    1542,  3999,  1546,  1547,     0,     0,     0,     0,     0,     0,
    3925,     0,     0,  3928,  1554,  1555,     0,     0,     0,     0,
    1137,     0,     0,  1561,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     553,     0,     0,     0,     0,     0,     0,     0,  3904,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3979,     0,     0,     0,
       0,     0,     0,     0,  3941,  3942,     0,  1551,     0,   553,
       0,     0,     0,     0,     0,     0,     0,   784,   784,     0,
       0,     0,     0,     0,     0,     0,   784,   784,     0,   553,
     784,   784,   784,  1551,     0,     0,     0,   784,  3979,     0,
     784,   784,     0,   784,  1551,   784,     0,     0,     0,     0,
       0,  1646,   784,   784,   784,     0,   784,     0,     0,  1661,
       0,     0,     0,   784,   784,     0,   784,   784,     0,     0,
       0,     0,   784,     0,   784,   784,   784,     0,   784,   784,
     784,   784,   784,   784,   784,     0,     0,   784,   784,     0,
     784,     0,   784,     0,     0,     0,   784,     0,   784,   784,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     784,   784,     0,     0,     0,     0,   784,     0,     0,   784,
       0,     0,   784,     0,     0,     0,   784,     0,     0,     0,
       0,     0,     0,   784,   784,     0,   784,   784,     0,   784,
       0,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,     0,     0,     1,     2,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     3,
       0,     4,     0,     0,     0,     5,     0,   784,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     6,     7,
       0,     0,     0,     0,     0,     8,     0,     0,     0,     9,
      10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    11,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1866,     0,    12,   784,     0,     0,
       0,     0,     0,     0,     0,   784,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    13,     0,     0,     0,
       0,     0,     0,     0,    14,    15,    16,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    17,    18,     0,     0,
       0,     0,  1912,     0,     0,     0,     0,     0,     0,    19,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    20,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    21,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    22,     0,     0,     0,     0,    23,     0,     0,    24,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1985,  1987,  1989,
       0,     0,    25,     0,    26,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  2907,  2908,     0,    27,     0,
       0,  2909,     0,  2910,  2911,  2912,     0,     0,     0,     0,
       0,     0,     0,     0,  2022,    28,     0,     0,     0,    29,
    2913,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     784,     0,     0,     0,     0,     0,  2033,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2064,     0,     0,  2914,
       0,     0,  2915,     0,     0,     0,     0,     0,     0,     0,
    2916,     0,     0,     0,     0,     0,     0,     0,   784,     0,
       0,     0,     0,     0,     0,     0,     0,  2917,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2918,    30,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    31,  2919,     0,  2920,     0,     0,
       0,     0,     0,     0,    32,     0,     0,     0,     0,  2921,
    2922,     0,    33,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   784,   784,   784,     0,     0,     0,     0,
       0,     0,    34,     0,     0,    35,     0,    36,     0,     0,
      37,     0,     0,    38,     0,    39,     0,     0,     0,  2923,
      40,     0,    41,     0,     0,     0,     0,     0,     0,    42,
     784,     0,     0,   784,    43,   784,     0,   784,   784,     0,
       0,     0,    44,     0,     0,  2924,     0,    45,     0,     0,
       0,    46,   784,     0,  2925,  2926,     0,  2927,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   784,    47,     0,     0,     0,    48,     0,     0,
       0,     0,     0,     0,     0,     0,  2928,  2929,  2930,     0,
       0,     0,     0,     0,  2274,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2931,  2932,  2933,     0,     0,     0,
    2934,     0,     0,  2935,     0,     0,    49,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    50,  2936,
    2937,     0,    51,     0,     0,    52,     0,     0,     0,     0,
      53,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2938,  2939,     0,     0,    54,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2357,    55,
       0,     0,  2359,  2940,     0,     0,     0,  2361,  2362,     0,
       0,     0,     0,     0,     0,     0,  2377,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   813,   616,
    2385,     0,  2386,     0,     0,  2388,  2389,  2390,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2395,     0,
    2941,     0,     0,     0,  2942,     0,  2396,     0,  2397,     0,
    2398,  2399,  2400,     0,  2943,     0,     0,  2403,  2404,  2405,
       0,     0,     0,     0,  2407,  2408,  2409,     0,  2410,     0,
    2412,     0,  2414,     0,  2416,     0,  2417,     0,     0,     0,
     784,  2418,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   617,  2426,     0,     0,     0,     0,     0,     0,     0,
    2944,     0,     0,  2945,     0,     0,  2946,  2947,  2948,  2949,
       0,     0,  2436,     0,     0,     0,     0,     0,     0,   618,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   619,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2950,
    2951,     0,     0,     0,   620,     0,   621,     0,     0,     0,
       0,     0,     0,     0,   784,     0,   622,     0,   784,     0,
    2952,     0,     0,   784,   784,     0,     0,     0,     0,     0,
       0,     0,   784,     0,     0,     0,   623,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   784,     0,   784,     0,
       0,   784,   784,   784,     0,     0,   784,     0,     0,     0,
     624,     0,     0,     0,   784,     0,     0,   625,     0,     0,
       0,     0,   784,     0,   784,     0,   784,   784,   784,     0,
       0,     0,     0,   784,   784,   784,     0,     0,     0,     0,
     784,   784,   784,     0,   784,     0,   784,     0,   784,     0,
     784,     0,   784,     0,   626,     0,     0,   784,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   784,     0,
       0,     0,   784,  1756,  1757,   784,     0,     0,     1,     2,
       0,   784,     0,     0,   784,     0,     0,     0,   784,     0,
       0,     0,     0,     3,     0,     0,     0,     0,     0,     5,
       0,     0,     0,     0,     0,     0,  1759,     0,     0,     0,
       0,     0,     6,     7,     0,     0,     0,  1762,     0,     8,
       0,     0,     0,     9,    10,  1763,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    11,     0,     0,     0,
       0,     0,     0,  1765,     0,     0,     0,     0,     0,     0,
      12,     0,     0,     0,     0,     0,     0,  1328,     0,     0,
    1766,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13,     0,     0,     0,     0,   627,     0,     0,    14,    15,
      16,     0,     0,     0,     0,     0,     0,     0,  1771,     0,
      17,    18,   628,     0,     0,     0,     0,     0,   629,     0,
       0,     0,     0,     0,     0,     0,   630,     0,     0,     0,
       0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   631,
      21,     0,     0,     0,     0,     0,  2712,     0,     0,     0,
    2715,     0,   632,   633,  2717,    22,     0,     0,     0,     0,
      23,     0,  1774,    24,     0,     0,     0,     0,     0,     0,
    1775,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1776,     0,     0,    25,     0,    26,     0,
       0,     0,   634,     0,     0,     0,  2753,  2635,     0,     0,
       0,     0,    27,     0,  1754,  2763,     0,  2765,     0,  2767,
       0,     0,     0,     0,     0,     0,  1756,  1757,   635,    28,
       0,     0,     0,    29,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2780,  1777,     0,     0,     0,     0,
     636,     0,   637,     0,     0,  1758,     0,     0,     0,  1759,
       0,     0,  1778,     0,     0,     0,     0,     0,     0,     0,
    1762,     0,     0,     0,     0,     0,     0,     0,  1763,     0,
       0,     0,     0,     0,  1764,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1765,     0,     0,     0,
       0,     0,     0,  2830,     0,     0,     0,  2834,     0,     0,
    1328,     0,     0,  1766,  1782,     0,     0,     0,     0,    30,
    1767,     0,  1784,     0,     0,     0,     0,  2636,     0,     0,
       0,     0,   784,     0,     0,  1770,   784,     0,    31,     0,
     784,  1771,     0,     0,     0,     0,     0,     0,    32,  2863,
       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1772,     0,     0,
       0,     0,     0,     0,     0,  2875,    34,     0,     0,    35,
       0,    36,   784,  1790,    37,     0,     0,    38,     0,    39,
       0,   784,     0,   784,    40,   784,    41,     0,     0,     0,
       0,     0,     0,    42,     0,  1774,     0,     0,    43,     0,
       0,     0,     0,  1775,     0,   784,    44,     0,     0,     0,
     784,    45,     0,     0,     0,    46,  1776,     0,     0,     0,
       0,     0,   784,     0,     0,  1791,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    47,  1792,     0,
       0,    48,     0,     0,     0,     0,     0,  2963,  2964,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1793,     0,
       0,     0,     0,     0,     0,  1794,     0,     0,  1777,   784,
       0,     0,     0,   784,     0,     0,  1795,     0,     0,     0,
      49,     0,     0,     0,     0,  1778,     0,     0,     0,  1779,
       0,     0,    50,     0,     0,     0,    51,     0,     0,    52,
       0,     0,     0,     0,    53,     0,     0,     0,     0,     0,
       0,     0,  3010,     0,     0,   784,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
    1781,     0,     0,     0,  3024,  3025,     0,  1782,     0,     0,
       0,   784,     0,    55,  3031,  1784,     0,     0,     0,  3033,
       0,     0,  3034,     0,  3035,  3036,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1787,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1790,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   784,   784,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3086,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1791,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1792,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   784,     0,     0,     0,     0,     0,     0,   784,     0,
       0,  1793,     0,     0,     0,     0,     0,     0,  1794,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1795,
     784,   784,     0,     0,     0,     0,     0,     0,     0,     0,
     784,     0,     0,     0,     0,   784,     0,     0,   784,     0,
     784,   784,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   784,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   784,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   784,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   784,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3295,  3296,     0,     0,     0,     0,     0,     0,     0,
    2863,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   784,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3412,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2863,   784,   784,     0,
       0,     0,     0,     0,     0,     0,   784,     0,     0,  2830,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   784,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   784,     0,     0,
       0,  3557,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3569,     0,  3571,     0,     0,     0,     0,     0,     0,
       0,     0,   784,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   784,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3599,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3506,     0,     0,     0,     0,     0,     0,  2863,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3685,     0,  3686,   784,     0,     0,
       0,     0,     0,     0,     0,     0,  3694,   784,     0,   784,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     784,     0,     0,     0,     0,     0,  3506,  3506,     0,  3747,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3762,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3768,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   784,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   784,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3800,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     784,     0,   784,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   784,     0,     0,  3506,  3506,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3855,  3727,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  3884,     0,   784,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   784,     0,     0,  3506,     0,     0,     0,
       0,     0,     0,  3918,     0,     0,     0,     0,     0,  3506,
     784,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3506,     0,     0,     0,     0,     0,     0,     0,   784,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   784,  3506,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3506,
       0,     0,     0,     0,     0,     0,     0,     0,  3980,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3506,     0,     0,     0,     0,     0,  3506,     0,     0,
       0,   784,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   784,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   784,
       0,     0,     0,     0,     0,     0,  3506,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3506,     0,     0,     0,
       0,     0,     0,     0,     0,   784,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   784,
       0,     0,     0,     0,     0,     0,  3506,     0,  3506,     0,
       0,     0,     0,     0,     0,     0,  3506,  3506,     0,     0,
       0,   784,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3506,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3506,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3506,
    3506,     0,     0,     0,   784,     0,     0,     0,     0,     0,
     136,     0,   653,   138,   139,   140,   141,     0,     0,  3506,
    3506,     0,   142,     0,  3506,   654,     0,   144,   145,   146,
     147,   148,   655,   150,     0,   151,     0,     0,   656,   152,
     657,   658,   659,   153,   660,     0,   154,   155,  1543,   156,
       0,   157,   158,     0,     0,   159,   661,   662,   160,     0,
     161,   663,   664,   163,     0,   164,   165,   166,   665,   168,
       0,   666,   170,     0,   171,   172,   173,   174,   175,   176,
     177,     0,   178,   179,     0,   667,     0,   181,   668,   669,
       0,     0,   182,   670,   671,     0,   672,   673,     0,   183,
     184,   185,   674,   675,   676,     0,     0,     0,     0,   677,
     188,   678,     0,     0,   679,   189,     0,   190,     0,     0,
       0,   191,     0,   192,   193,   194,   195,     0,     0,     0,
     196,     0,     0,   197,   198,   199,     0,     0,     0,   200,
       0,   201,   202,     0,   203,   204,   205,     0,     0,   206,
       0,   207,   208,   209,   210,   211,   680,     0,   212,   213,
     214,   681,   682,   215,     0,   216,   217,   218,   683,     0,
     219,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   684,   225,   685,   227,     0,   228,     0,   686,     0,
     229,   230,     0,   231,   687,     0,   232,   233,     0,     0,
       0,   688,   235,   236,   237,   689,     0,   238,   239,     0,
       0,   240,     0,   241,     0,     0,   690,   242,   243,   691,
       0,     0,   244,     0,     0,   245,   246,     0,     0,     0,
     247,     0,     0,   248,   249,     0,  1544,   250,     0,   692,
     251,   252,     0,     0,     0,     0,     0,   693,   254,     0,
     255,     0,   256,     0,   257,   258,     0,     0,   694,     0,
       0,     0,     0,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,     0,   272,   273,   695,
     274,   275,   276,   277,   696,   278,   279,   280,     0,     0,
       0,   281,   282,   283,   697,   285,     0,     0,   698,   287,
     699,   288,     0,   289,   700,   701,   702,   703,   704,   294,
     295,   296,   297,     0,   705,   298,   299,     0,     0,   300,
     301,   302,   303,   706,   707,   708,   304,   305,     0,   709,
     710,     0,   306,   307,   711,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,   712,   316,   317,   318,   319,   320,   713,
     322,   323,   324,   714,   715,   327,   716,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   717,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,   718,   719,   351,     0,   352,   353,   354,
       0,   355,   356,     0,     0,   720,   357,   358,   359,   360,
     361,   721,   363,   364,   365,     0,   722,   367,     0,     0,
       0,   368,   369,   370,   371,     0,     0,     0,   372,     0,
       0,     0,   373,   374,   375,   376,     0,   377,   378,   379,
     380,     0,     0,     0,     0,     0,     0,   381,   382,     0,
     383,     0,     0,   384,     0,     0,   385,   386,   387,   723,
     724,   388,   389,     0,   390,   725,   392,   393,   394,   726,
     727,   395,   396,   728,   397,   398,     0,     0,   399,   400,
       0,   729,   401,   402,     0,   730,   731,   732,   733,     0,
       0,     0,     0,  1545,   407,   408,   409,     0,   734,   735,
     736,   411,   412,   413,   737,   414,   415,   738,   416,   417,
       0,   418,   419,     0,     0,   420,     0,     0,   421,     0,
     422,     0,   739,   424,     0,     0,   740,   741,   742,   743,
     425,     0,     0,   426,   744,     0,   745,   427,   428,   429,
     746,     0,     0,     0,     0,   431,   432,     0,   433,   434,
       0,     0,   747,     0,     0,     0,   748,   749,     0,     0,
       0,     0,   750,   751,     0,     0,   752,   753,     0,   754,
     755,   136,     0,   653,   138,   139,   140,   141,  2826,     0,
       0,     0,     0,   142,     0,     0,   654,     0,   144,   145,
     146,   147,   148,   655,   150,     0,   151,     0,     0,  2827,
     152,   657,   658,   659,   153,   660,     0,   154,   155,     0,
     156,     0,   157,   158,     0,     0,   159,   661,   662,   160,
       0,   161,   663,   664,   163,     0,   164,   165,   166,   665,
     168,     0,   666,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,     0,   667,     0,   181,   668,
     669,     0,     0,   182,   670,   671,     0,   672,   673,     0,
     183,   184,   185,   674,   675,   676,     0,     0,     0,     0,
     677,   188,   678,     0,     0,  2828,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,   196,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,   201,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,   211,   680,     0,   212,
     213,   214,   681,   682,   215,     0,   216,   217,   218,   683,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   684,   225,   685,   227,     0,   228,     0,   686,
       0,   229,   230,     0,   231,   687,     0,   232,   233,     0,
       0,     0,   688,   235,   236,   237,   689,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,   690,   242,   243,
     691,     0,     0,   244,     0,     0,   245,   246,     0,     0,
       0,   247,     0,     0,   248,   249,     0,     0,   250,     0,
     692,   251,   252,     0,     0,     0,     0,     0,   693,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,   694,
       0,     0,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
     695,   274,   275,   276,   277,   696,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   697,   285,     0,     0,   698,
     287,   699,   288,     0,   289,   700,   701,   702,   703,   704,
     294,   295,   296,   297,     0,   705,   298,   299,     0,     0,
     300,   301,   302,   303,   706,   707,   708,   304,   305,     0,
     709,   710,     0,   306,   307,   711,  2829,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,   712,   316,   317,   318,   319,   320,
     713,   322,   323,   324,   714,   715,   327,   716,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   717,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,   718,   719,   351,     0,   352,   353,
     354,     0,   355,   356,     0,     0,   720,   357,   358,   359,
     360,   361,   721,   363,   364,   365,     0,   722,   367,     0,
       0,     0,   368,   369,   370,   371,     0,     0,     0,   372,
       0,     0,     0,   373,   374,   375,   376,     0,   377,   378,
     379,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,   386,   387,
     723,   724,   388,   389,     0,   390,   725,   392,   393,   394,
     726,   727,   395,   396,   728,   397,   398,     0,     0,   399,
     400,     0,   729,   401,   402,     0,   730,   731,   732,   733,
       0,     0,     0,     0,     0,   407,   408,   409,     0,   734,
     735,   736,   411,   412,   413,   737,   414,   415,   738,   416,
     417,     0,   418,   419,     0,     0,   420,     0,     0,   421,
       0,   422,     0,   739,   424,     0,     0,   740,   741,   742,
     743,   425,     0,     0,   426,   744,     0,   745,   427,   428,
     429,   746,     0,     0,     0,     0,   431,   432,     0,   433,
     434,     0,     0,   747,     0,     0,     0,   748,   749,     0,
       0,     0,     0,   750,   751,     0,     0,   752,   753,     0,
     754,   755,   136,     0,   653,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,   654,     0,   144,
     145,   146,   147,   148,   655,   150,     0,   151,     0,     0,
     656,   152,   657,   658,   659,   153,   660,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,   661,   662,
     160,     0,   161,   663,   664,   163,     0,   164,   165,   166,
     665,   168,     0,   666,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   667,     0,   181,
     668,   669,     0,     0,   182,   670,   671,     0,   672,   673,
       0,   183,   184,   185,   674,   675,   676,     0,     0,     0,
       0,   677,   188,   678,     0,     0,   679,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,   680,     0,
     212,   213,   214,   681,   682,   215,     0,   216,   217,   218,
     683,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   684,   225,   685,   227,     0,   228,     0,
     686,     0,   229,   230,     0,   231,   687,     0,   232,   233,
       0,     0,     0,   688,   235,   236,   237,   689,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,   690,   242,
     243,   691,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,   692,   251,   252,     0,     0,     0,     0,     0,   693,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
     694,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,   695,   274,   275,   276,   277,   696,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   697,   285,     0,     0,
     698,   287,   699,   288,     0,   289,   700,   701,   702,   703,
     704,   294,   295,   296,   297,     0,   705,   298,   299,     0,
       0,   300,   301,   302,   303,   706,   707,   708,   304,   305,
       0,   709,   710,     0,   306,   307,   711,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,   712,   316,   317,   318,   319,
     320,   713,   322,   323,   324,   714,   715,   327,   716,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   717,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,   718,   719,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,   720,   357,   358,
     359,   360,   361,   721,   363,   364,   365,     0,   722,   367,
    1135,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,   723,   724,   388,   389,     0,   390,   725,   392,   393,
     394,   726,   727,   395,   396,   728,   397,   398,     0,     0,
     399,   400,     0,   729,   401,   402,     0,   730,   731,   732,
     733,     0,     0,     0,     0,     0,   407,   408,   409,     0,
     734,   735,   736,   411,   412,   413,   737,   414,   415,   738,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   739,   424,     0,     0,   740,   741,
     742,   743,   425,     0,     0,   426,   744,     0,   745,   427,
     428,   429,   746,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,     0,   747,     0,     0,     0,   748,   749,
       0,     0,     0,     0,   750,  1136,     0,     0,   752,   753,
       0,   754,   755,   136,     0,   653,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,     0,     0,   654,     0,
     144,   145,   146,   147,   148,   655,   150,     0,   151,     0,
       0,   656,   152,   657,   658,   659,   153,   660,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,   661,
     662,   160,     0,   161,   663,   664,   163,     0,   164,   165,
     166,   665,   168,     0,   666,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   667,     0,
     181,   668,   669,     0,     0,   182,   670,   671,     0,   672,
     673,     0,   183,   184,   185,   674,   675,   676,     0,     0,
       0,     0,   677,   188,   678,     0,     0,   679,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,   680,
       0,   212,   213,   214,   681,   682,   215,     0,   216,   217,
     218,   683,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   684,   225,   685,   227,     0,   228,
       0,   686,     0,   229,   230,     0,   231,   687,     0,   232,
     233,     0,     0,     0,   688,   235,   236,   237,   689,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,   690,
     242,   243,   691,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,   692,   251,   252,     0,     0,     0,     0,     0,
     693,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,   694,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,   695,   274,   275,   276,   277,   696,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   697,   285,     0,
       0,   698,   287,   699,   288,     0,   289,   700,   701,   702,
     703,   704,   294,   295,   296,   297,     0,   705,   298,   299,
       0,     0,   300,   301,   302,   303,   706,   707,   708,   304,
     305,     0,   709,   710,     0,   306,   307,   711,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,   712,   316,   317,   318,
     319,   320,   713,   322,   323,   324,   714,   715,   327,   716,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     717,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,   718,   719,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,   720,   357,
     358,   359,   360,   361,   721,   363,   364,   365,     0,   722,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,   723,   724,   388,   389,     0,   390,   725,   392,
     393,   394,   726,   727,   395,   396,   728,   397,   398,     0,
       0,   399,   400,     0,   729,   401,   402,     0,   730,   731,
     732,   733,     0,     0,     0,     0,     0,   407,   408,   409,
       0,   734,   735,   736,   411,   412,   413,   737,   414,   415,
     738,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   739,   424,     0,     0,   740,
     741,   742,   743,   425,     0,     0,   426,   744,     0,   745,
     427,   428,   429,   746,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,     0,   747,     0,     0,     0,   748,
     749,     0,     0,     0,     0,   750,   751,  1480,     0,   752,
     753,     0,   754,   755,   136,     0,   653,   138,   139,   140,
     141,     0,     0,     0,     0,     0,   142,     0,     0,   654,
       0,   144,   145,   146,   147,   148,   655,   150,     0,   151,
       0,     0,   656,   152,   657,   658,   659,   153,   660,     0,
     154,   155,     0,   156,     0,   157,   158,     0,     0,   159,
     661,   662,   160,     0,   161,   663,   664,   163,     0,   164,
     165,   166,   665,   168,     0,   666,   170,     0,   171,   172,
     173,   174,   175,   176,   177,     0,   178,   179,     0,   667,
       0,   181,   668,   669,     0,     0,   182,   670,   671,     0,
     672,   673,     0,   183,   184,   185,   674,   675,   676,     0,
       0,     0,     0,   677,   188,   678,     0,     0,   679,   189,
       0,   190,     0,     0,     0,   191,     0,   192,   193,   194,
     195,     0,     0,     0,   196,     0,     0,   197,   198,   199,
       0,     0,     0,   200,     0,   201,   202,     0,   203,   204,
     205,     0,     0,   206,     0,   207,   208,   209,   210,   211,
     680,     0,   212,   213,   214,   681,   682,   215,     0,   216,
     217,   218,   683,     0,   219,     0,     0,     0,   220,   221,
    1984,   222,     0,   223,     0,   684,   225,   685,   227,     0,
     228,     0,   686,     0,   229,   230,     0,   231,   687,     0,
     232,   233,     0,     0,     0,   688,   235,   236,   237,   689,
       0,   238,   239,     0,     0,   240,     0,   241,     0,     0,
     690,   242,   243,   691,     0,     0,   244,     0,     0,   245,
     246,     0,     0,     0,   247,     0,     0,   248,   249,     0,
       0,   250,     0,   692,   251,   252,     0,     0,     0,     0,
       0,   693,   254,     0,   255,     0,   256,     0,   257,   258,
       0,     0,   694,     0,     0,     0,     0,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
       0,   272,   273,   695,   274,   275,   276,   277,   696,   278,
     279,   280,     0,     0,     0,   281,   282,   283,   697,   285,
       0,     0,   698,   287,   699,   288,     0,   289,   700,   701,
     702,   703,   704,   294,   295,   296,   297,     0,   705,   298,
     299,     0,     0,   300,   301,   302,   303,   706,   707,   708,
     304,   305,     0,   709,   710,     0,   306,   307,   711,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,   712,   316,   317,
     318,   319,   320,   713,   322,   323,   324,   714,   715,   327,
     716,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   717,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,   718,   719,   351,
       0,   352,   353,   354,     0,   355,   356,     0,     0,   720,
     357,   358,   359,   360,   361,   721,   363,   364,   365,     0,
     722,   367,     0,     0,     0,   368,   369,   370,   371,     0,
       0,     0,   372,     0,     0,     0,   373,   374,   375,   376,
       0,   377,   378,   379,   380,     0,     0,     0,     0,     0,
       0,   381,   382,     0,   383,     0,     0,   384,     0,     0,
     385,   386,   387,   723,   724,   388,   389,     0,   390,   725,
     392,   393,   394,   726,   727,   395,   396,   728,   397,   398,
       0,     0,   399,   400,     0,   729,   401,   402,     0,   730,
     731,   732,   733,     0,     0,     0,     0,     0,   407,   408,
     409,     0,   734,   735,   736,   411,   412,   413,   737,   414,
     415,   738,   416,   417,     0,   418,   419,     0,     0,   420,
       0,     0,   421,     0,   422,     0,   739,   424,     0,     0,
     740,   741,   742,   743,   425,     0,     0,   426,   744,     0,
     745,   427,   428,   429,   746,     0,     0,     0,     0,   431,
     432,     0,   433,   434,     0,     0,   747,     0,     0,     0,
     748,   749,     0,     0,     0,     0,   750,   751,     0,     0,
     752,   753,     0,   754,   755,   136,     0,   653,   138,   139,
     140,   141,     0,     0,     0,     0,     0,   142,     0,     0,
     654,     0,   144,   145,   146,   147,   148,   655,   150,     0,
     151,     0,     0,   656,   152,   657,   658,   659,   153,   660,
       0,   154,   155,     0,   156,     0,   157,   158,     0,     0,
     159,   661,   662,   160,     0,   161,   663,   664,   163,     0,
     164,   165,   166,   665,   168,     0,   666,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,     0,
     667,     0,   181,   668,   669,     0,     0,   182,   670,   671,
       0,   672,   673,     0,   183,   184,   185,   674,   675,   676,
       0,     0,     0,     0,   677,   188,   678,     0,     0,   679,
     189,     0,   190,     0,     0,     0,   191,     0,   192,   193,
     194,   195,     0,     0,     0,   196,     0,     0,   197,   198,
     199,     0,     0,     0,   200,     0,   201,   202,     0,   203,
     204,   205,     0,     0,   206,     0,   207,   208,   209,   210,
     211,   680,     0,   212,   213,   214,   681,   682,   215,     0,
     216,   217,   218,   683,     0,   219,     0,     0,     0,   220,
     221,  1986,   222,     0,   223,     0,   684,   225,   685,   227,
       0,   228,     0,   686,     0,   229,   230,     0,   231,   687,
       0,   232,   233,     0,     0,     0,   688,   235,   236,   237,
     689,     0,   238,   239,     0,     0,   240,     0,   241,     0,
       0,   690,   242,   243,   691,     0,     0,   244,     0,     0,
     245,   246,     0,     0,     0,   247,     0,     0,   248,   249,
       0,     0,   250,     0,   692,   251,   252,     0,     0,     0,
       0,     0,   693,   254,     0,   255,     0,   256,     0,   257,
     258,     0,     0,   694,     0,     0,     0,     0,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,     0,   272,   273,   695,   274,   275,   276,   277,   696,
     278,   279,   280,     0,     0,     0,   281,   282,   283,   697,
     285,     0,     0,   698,   287,   699,   288,     0,   289,   700,
     701,   702,   703,   704,   294,   295,   296,   297,     0,   705,
     298,   299,     0,     0,   300,   301,   302,   303,   706,   707,
     708,   304,   305,     0,   709,   710,     0,   306,   307,   711,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,   712,   316,
     317,   318,   319,   320,   713,   322,   323,   324,   714,   715,
     327,   716,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   717,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,   718,   719,
     351,     0,   352,   353,   354,     0,   355,   356,     0,     0,
     720,   357,   358,   359,   360,   361,   721,   363,   364,   365,
       0,   722,   367,     0,     0,     0,   368,   369,   370,   371,
       0,     0,     0,   372,     0,     0,     0,   373,   374,   375,
     376,     0,   377,   378,   379,   380,     0,     0,     0,     0,
       0,     0,   381,   382,     0,   383,     0,     0,   384,     0,
       0,   385,   386,   387,   723,   724,   388,   389,     0,   390,
     725,   392,   393,   394,   726,   727,   395,   396,   728,   397,
     398,     0,     0,   399,   400,     0,   729,   401,   402,     0,
     730,   731,   732,   733,     0,     0,     0,     0,     0,   407,
     408,   409,     0,   734,   735,   736,   411,   412,   413,   737,
     414,   415,   738,   416,   417,     0,   418,   419,     0,     0,
     420,     0,     0,   421,     0,   422,     0,   739,   424,     0,
       0,   740,   741,   742,   743,   425,     0,     0,   426,   744,
       0,   745,   427,   428,   429,   746,     0,     0,     0,     0,
     431,   432,     0,   433,   434,     0,     0,   747,     0,     0,
       0,   748,   749,     0,     0,     0,     0,   750,   751,     0,
       0,   752,   753,     0,   754,   755,   136,     0,   653,   138,
     139,   140,   141,     0,     0,     0,     0,     0,   142,     0,
       0,   654,     0,   144,   145,   146,   147,   148,   655,   150,
       0,   151,     0,     0,   656,   152,   657,   658,   659,   153,
     660,     0,   154,   155,     0,   156,     0,   157,   158,     0,
       0,   159,   661,   662,   160,     0,   161,   663,   664,   163,
       0,   164,   165,   166,   665,   168,     0,   666,   170,     0,
     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
       0,   667,     0,   181,   668,   669,     0,     0,   182,   670,
     671,     0,   672,   673,     0,   183,   184,   185,   674,   675,
     676,     0,     0,     0,     0,   677,   188,   678,     0,     0,
     679,   189,     0,   190,     0,     0,     0,   191,     0,   192,
     193,   194,   195,     0,     0,     0,   196,     0,     0,   197,
     198,   199,     0,     0,     0,   200,     0,   201,   202,     0,
     203,   204,   205,     0,     0,   206,     0,   207,   208,   209,
     210,   211,   680,     0,   212,   213,   214,   681,   682,   215,
       0,   216,   217,   218,   683,     0,   219,     0,     0,     0,
     220,   221,  1988,   222,     0,   223,     0,   684,   225,   685,
     227,     0,   228,     0,   686,     0,   229,   230,     0,   231,
     687,     0,   232,   233,     0,     0,     0,   688,   235,   236,
     237,   689,     0,   238,   239,     0,     0,   240,     0,   241,
       0,     0,   690,   242,   243,   691,     0,     0,   244,     0,
       0,   245,   246,     0,     0,     0,   247,     0,     0,   248,
     249,     0,     0,   250,     0,   692,   251,   252,     0,     0,
       0,     0,     0,   693,   254,     0,   255,     0,   256,     0,
     257,   258,     0,     0,   694,     0,     0,     0,     0,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,     0,   272,   273,   695,   274,   275,   276,   277,
     696,   278,   279,   280,     0,     0,     0,   281,   282,   283,
     697,   285,     0,     0,   698,   287,   699,   288,     0,   289,
     700,   701,   702,   703,   704,   294,   295,   296,   297,     0,
     705,   298,   299,     0,     0,   300,   301,   302,   303,   706,
     707,   708,   304,   305,     0,   709,   710,     0,   306,   307,
     711,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,   712,
     316,   317,   318,   319,   320,   713,   322,   323,   324,   714,
     715,   327,   716,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   717,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,   718,
     719,   351,     0,   352,   353,   354,     0,   355,   356,     0,
       0,   720,   357,   358,   359,   360,   361,   721,   363,   364,
     365,     0,   722,   367,     0,     0,     0,   368,   369,   370,
     371,     0,     0,     0,   372,     0,     0,     0,   373,   374,
     375,   376,     0,   377,   378,   379,   380,     0,     0,     0,
       0,     0,     0,   381,   382,     0,   383,     0,     0,   384,
       0,     0,   385,   386,   387,   723,   724,   388,   389,     0,
     390,   725,   392,   393,   394,   726,   727,   395,   396,   728,
     397,   398,     0,     0,   399,   400,     0,   729,   401,   402,
       0,   730,   731,   732,   733,     0,     0,     0,     0,     0,
     407,   408,   409,     0,   734,   735,   736,   411,   412,   413,
     737,   414,   415,   738,   416,   417,     0,   418,   419,     0,
       0,   420,     0,     0,   421,     0,   422,     0,   739,   424,
       0,     0,   740,   741,   742,   743,   425,     0,     0,   426,
     744,     0,   745,   427,   428,   429,   746,     0,     0,     0,
       0,   431,   432,     0,   433,   434,     0,     0,   747,     0,
       0,     0,   748,   749,     0,     0,     0,     0,   750,   751,
       0,     0,   752,   753,     0,   754,   755,   136,     0,   653,
     138,   139,   140,   141,     0,     0,     0,     0,     0,   142,
       0,     0,   654,     0,   144,   145,   146,   147,   148,   655,
     150,     0,   151,     0,     0,   656,   152,   657,   658,   659,
     153,   660,     0,   154,   155,     0,   156,     0,   157,   158,
       0,     0,   159,   661,   662,   160,     0,   161,   663,   664,
     163,     0,   164,   165,   166,   665,   168,     0,   666,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,     0,   667,     0,   181,   668,   669,     0,     0,   182,
     670,   671,     0,   672,   673,     0,   183,   184,   185,   674,
     675,   676,     0,     0,     0,     0,   677,   188,   678,     0,
       0,   679,   189,     0,   190,     0,     0,     0,   191,     0,
     192,   193,   194,   195,     0,     0,     0,   196,     0,     0,
     197,   198,   199,     0,     0,     0,   200,     0,   201,   202,
       0,   203,   204,   205,     0,     0,   206,     0,   207,   208,
     209,   210,   211,   680,     0,   212,   213,   214,   681,   682,
     215,     0,   216,   217,   218,   683,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   684,   225,
     685,   227,     0,   228,     0,   686,     0,   229,   230,     0,
     231,   687,     0,   232,   233,     0,     0,     0,   688,   235,
     236,   237,   689,     0,   238,   239,     0,     0,   240,     0,
     241,     0,     0,   690,   242,   243,   691,     0,     0,   244,
       0,     0,   245,   246,     0,     0,     0,   247,     0,     0,
     248,   249,     0,     0,   250,     0,   692,   251,   252,     0,
       0,     0,     0,     0,   693,   254,     0,   255,     0,   256,
       0,   257,   258,     0,     0,   694,     0,     0,     0,     0,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,     0,   272,   273,   695,   274,   275,   276,
     277,   696,   278,   279,   280,     0,     0,     0,   281,   282,
     283,   697,   285,     0,     0,   698,   287,   699,   288,     0,
     289,   700,   701,   702,   703,   704,   294,   295,   296,   297,
       0,   705,   298,   299,     0,     0,   300,   301,   302,   303,
     706,   707,   708,   304,   305,     0,   709,   710,     0,   306,
     307,   711,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
     712,   316,   317,   318,   319,   320,   713,   322,   323,   324,
     714,   715,   327,   716,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   717,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
     718,   719,   351,     0,   352,   353,   354,     0,   355,   356,
       0,     0,   720,   357,   358,   359,   360,   361,   721,   363,
     364,   365,     0,   722,   367,     0,     0,     0,   368,   369,
     370,   371,     0,     0,     0,   372,     0,     0,     0,   373,
     374,   375,   376,     0,   377,   378,   379,   380,     0,     0,
       0,     0,     0,     0,   381,   382,     0,   383,     0,     0,
     384,     0,     0,   385,   386,   387,   723,   724,   388,   389,
       0,   390,   725,   392,   393,   394,   726,   727,   395,   396,
     728,   397,   398,     0,     0,   399,   400,     0,   729,   401,
     402,     0,   730,   731,   732,   733,     0,     0,     0,     0,
       0,   407,   408,   409,     0,   734,   735,   736,   411,   412,
     413,   737,   414,   415,   738,   416,   417,     0,   418,   419,
       0,     0,   420,     0,     0,   421,     0,   422,     0,   739,
     424,     0,     0,   740,   741,   742,   743,   425,     0,     0,
     426,   744,     0,   745,   427,   428,   429,   746,     0,     0,
       0,     0,   431,   432,     0,   433,   434,     0,     0,   747,
       0,     0,     0,   748,   749,     0,     0,     0,     0,   750,
     751,     0,     0,   752,   753,     0,   754,   755,   136,     0,
     653,   138,   139,   140,   141,  1575,     0,     0,     0,     0,
    1576,     0,     0,   654,     0,   144,   145,   146,   147,   148,
     655,   150,     0,   151,     0,     0,   656,   152,   657,   658,
     659,   153,   660,     0,   154,   155,     0,   156,     0,   157,
     158,     0,     0,   159,   661,   662,   160,     0,   161,   663,
     664,   163,     0,   164,   165,   166,   665,   168,     0,   666,
     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
     178,   179,     0,   667,     0,   181,   668,   669,     0,     0,
     182,   670,   671,     0,   672,   673,     0,   183,   184,   185,
     674,   675,   676,     0,     0,     0,     0,   677,   188,   678,
       0,     0,   679,   189,     0,   190,     0,     0,     0,   191,
       0,   192,   193,   194,   195,     0,     0,     0,   196,     0,
       0,   197,   198,   199,     0,     0,     0,   200,     0,   201,
     202,     0,   203,   204,   205,     0,     0,   206,     0,   207,
     208,   209,   210,   211,   680,     0,   212,   213,   214,   681,
     682,   215,     0,   216,   217,   218,   683,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   684,
     225,   685,   227,     0,   228,     0,   686,     0,   229,   230,
       0,   231,   687,     0,   232,   233,     0,     0,     0,   688,
     235,   236,   237,   689,     0,   238,   239,     0,     0,   240,
       0,   241,     0,     0,   690,   242,   243,   691,     0,     0,
     244,     0,     0,   245,   246,     0,     0,     0,   247,     0,
       0,   248,   249,     0,     0,   250,     0,   692,   251,   252,
       0,     0,     0,     0,     0,   693,   254,     0,   255,     0,
     256,     0,   257,   258,     0,     0,   694,     0,     0,     0,
       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,     0,   272,   273,   695,   274,   275,
     276,   277,   696,   278,   279,   280,     0,     0,     0,   281,
     282,   283,   697,   285,     0,     0,   698,   287,   699,   288,
       0,   289,   700,   701,   702,   703,   704,   294,   295,   296,
     297,     0,   705,   298,   299,     0,     0,   300,   301,   302,
     303,   706,     0,   708,   304,   305,     0,   709,   710,     0,
     306,   307,   711,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,   712,   316,   317,   318,   319,   320,   713,   322,   323,
     324,   714,   715,   327,   716,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   717,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,   718,   719,   351,     0,   352,   353,   354,     0,   355,
     356,     0,     0,   720,   357,   358,   359,   360,   361,   721,
     363,   364,   365,     0,   722,   367,     0,     0,     0,   368,
     369,   370,   371,     0,     0,     0,   372,     0,     0,     0,
     373,   374,   375,   376,     0,   377,   378,   379,   380,     0,
       0,     0,     0,     0,     0,   381,   382,     0,   383,     0,
       0,   384,     0,     0,   385,   386,   387,   723,   724,   388,
     389,     0,   390,   725,   392,   393,   394,   726,   727,   395,
     396,   728,   397,   398,     0,     0,   399,   400,     0,   729,
     401,   402,     0,   730,   731,   732,   733,     0,     0,     0,
       0,     0,   407,   408,   409,     0,   734,   735,   736,   411,
     412,   413,   737,   414,   415,   738,   416,   417,     0,   418,
     419,     0,     0,   420,     0,     0,   421,     0,   422,     0,
     739,   424,     0,     0,   740,   741,   742,   743,   425,     0,
       0,   426,   744,     0,   745,   427,   428,   429,   746,     0,
       0,     0,     0,   431,   432,     0,   433,   434,     0,     0,
     747,     0,     0,     0,   748,   749,     0,     0,     0,     0,
     750,   751,     0,     0,   752,   753,     0,   754,   755,   136,
       0,   653,   138,   139,   140,   141,     0,     0,     0,     0,
       0,   142,     0,     0,   654,     0,   144,   145,   146,   147,
     148,   655,   150,     0,   151,     0,     0,   656,   152,   657,
     658,   659,   153,   660,     0,   154,   155,     0,   156,     0,
     157,   158,     0,     0,   159,   661,   662,   160,     0,   161,
     663,   664,   163,     0,   164,   165,   166,   665,   168,     0,
     666,   170,     0,   171,   172,   173,   174,   175,   176,   177,
       0,   178,   179,     0,   667,     0,   181,   668,   669,     0,
       0,   182,   670,   671,     0,   672,   673,     0,   183,   184,
     185,   674,   675,   676,     0,     0,     0,     0,   677,   188,
     678,     0,     0,   679,   189,     0,   190,     0,     0,     0,
     191,     0,   192,   193,   194,   195,     0,     0,     0,   196,
       0,     0,   197,   198,   199,     0,     0,     0,   200,     0,
     201,   202,     0,   203,   204,   205,     0,     0,   206,     0,
     207,   208,   209,   210,   211,   680,     0,   212,   213,   214,
     681,   682,   215,     0,   216,   217,   218,   683,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     684,   225,   685,   227,     0,   228,     0,   686,     0,   229,
     230,     0,   231,   687,     0,   232,   233,     0,     0,     0,
     688,   235,   236,   237,   689,     0,   238,   239,     0,     0,
     240,     0,   241,     0,     0,   690,   242,   243,  2356,     0,
       0,   244,     0,     0,   245,   246,     0,     0,     0,   247,
       0,     0,   248,   249,     0,     0,   250,     0,   692,   251,
     252,     0,     0,     0,     0,     0,   693,   254,     0,   255,
       0,   256,     0,   257,   258,     0,     0,   694,     0,     0,
       0,     0,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,     0,   272,   273,   695,   274,
     275,   276,   277,   696,   278,   279,   280,     0,     0,     0,
     281,   282,   283,   697,   285,     0,     0,   698,   287,   699,
     288,     0,   289,   700,   701,   702,   703,   704,   294,   295,
     296,   297,     0,   705,   298,   299,     0,     0,   300,   301,
     302,   303,   706,   707,   708,   304,   305,     0,   709,   710,
       0,   306,   307,   711,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,   712,   316,   317,   318,   319,   320,   713,   322,
     323,   324,   714,   715,   327,   716,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   717,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,   718,   719,   351,     0,   352,   353,   354,     0,
     355,   356,     0,     0,   720,   357,   358,   359,   360,   361,
     721,   363,   364,   365,     0,   722,   367,     0,     0,     0,
     368,   369,   370,   371,     0,     0,     0,   372,     0,     0,
       0,   373,   374,   375,   376,     0,   377,   378,   379,   380,
       0,     0,     0,     0,     0,     0,   381,   382,     0,   383,
       0,     0,   384,     0,     0,   385,   386,   387,   723,   724,
     388,   389,     0,   390,   725,   392,   393,   394,   726,   727,
     395,   396,   728,   397,   398,     0,     0,   399,   400,     0,
     729,   401,   402,     0,   730,   731,   732,   733,     0,     0,
       0,     0,     0,   407,   408,   409,     0,   734,   735,   736,
     411,   412,   413,   737,   414,   415,   738,   416,   417,     0,
     418,   419,     0,     0,   420,     0,     0,   421,     0,   422,
       0,   739,   424,     0,     0,   740,   741,   742,   743,   425,
       0,     0,   426,   744,     0,   745,   427,   428,   429,   746,
       0,     0,     0,     0,   431,   432,     0,   433,   434,     0,
       0,   747,     0,     0,     0,   748,   749,     0,     0,     0,
       0,   750,   751,     0,     0,   752,   753,     0,   754,   755,
     136,     0,   653,   138,   139,   140,   141,     0,     0,     0,
       0,     0,   142,     0,     0,   654,     0,   144,   145,   146,
     147,   148,   655,   150,     0,   151,     0,     0,   656,   152,
     657,   658,   659,   153,   660,     0,   154,   155,     0,   156,
       0,   157,   158,     0,     0,   159,   661,   662,   160,     0,
     161,   663,   664,   163,     0,   164,   165,   166,   665,   168,
       0,   666,   170,     0,   171,   172,   173,   174,   175,   176,
     177,     0,   178,   179,     0,   667,     0,   181,   668,   669,
       0,     0,   182,   670,   671,     0,   672,   673,     0,   183,
     184,   185,   674,   675,   676,     0,     0,     0,     0,   677,
     188,   678,     0,     0,   679,   189,     0,   190,     0,     0,
       0,   191,     0,   192,   193,   194,   195,     0,     0,     0,
     196,     0,     0,   197,   198,   199,     0,     0,     0,   200,
       0,   201,   202,     0,   203,   204,   205,     0,     0,   206,
       0,   207,   208,   209,   210,   211,   680,     0,   212,   213,
     214,   681,   682,   215,     0,   216,   217,   218,   683,     0,
     219,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   684,   225,   685,   227,     0,   228,     0,   686,     0,
     229,   230,     0,   231,   687,     0,   232,   233,     0,     0,
       0,   688,   235,   236,   237,   689,     0,   238,   239,     0,
       0,   240,     0,   241,     0,     0,   690,   242,   243,  2402,
       0,     0,   244,     0,     0,   245,   246,     0,     0,     0,
     247,     0,     0,   248,   249,     0,     0,   250,     0,   692,
     251,   252,     0,     0,     0,     0,     0,   693,   254,     0,
     255,     0,   256,     0,   257,   258,     0,     0,   694,     0,
       0,     0,     0,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,     0,   272,   273,   695,
     274,   275,   276,   277,   696,   278,   279,   280,     0,     0,
       0,   281,   282,   283,   697,   285,     0,     0,   698,   287,
     699,   288,     0,   289,   700,   701,   702,   703,   704,   294,
     295,   296,   297,     0,   705,   298,   299,     0,     0,   300,
     301,   302,   303,   706,   707,   708,   304,   305,     0,   709,
     710,     0,   306,   307,   711,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,   712,   316,   317,   318,   319,   320,   713,
     322,   323,   324,   714,   715,   327,   716,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   717,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,   718,   719,   351,     0,   352,   353,   354,
       0,   355,   356,     0,     0,   720,   357,   358,   359,   360,
     361,   721,   363,   364,   365,     0,   722,   367,     0,     0,
       0,   368,   369,   370,   371,     0,     0,     0,   372,     0,
       0,     0,   373,   374,   375,   376,     0,   377,   378,   379,
     380,     0,     0,     0,     0,     0,     0,   381,   382,     0,
     383,     0,     0,   384,     0,     0,   385,   386,   387,   723,
     724,   388,   389,     0,   390,   725,   392,   393,   394,   726,
     727,   395,   396,   728,   397,   398,     0,     0,   399,   400,
       0,   729,   401,   402,     0,   730,   731,   732,   733,     0,
       0,     0,     0,     0,   407,   408,   409,     0,   734,   735,
     736,   411,   412,   413,   737,   414,   415,   738,   416,   417,
       0,   418,   419,     0,     0,   420,     0,     0,   421,     0,
     422,     0,   739,   424,     0,     0,   740,   741,   742,   743,
     425,     0,     0,   426,   744,     0,   745,   427,   428,   429,
     746,     0,     0,     0,     0,   431,   432,     0,   433,   434,
       0,     0,   747,     0,     0,     0,   748,   749,     0,     0,
       0,     0,   750,   751,     0,     0,   752,   753,     0,   754,
     755,   136,     0,   653,   138,   139,   140,   141,     0,     0,
       0,     0,     0,   142,     0,     0,   654,     0,   144,   145,
     146,   147,   148,   655,   150,     0,   151,     0,     0,   656,
     152,   657,   658,   659,   153,   660,     0,   154,   155,     0,
     156,     0,   157,   158,     0,     0,   159,   661,   662,   160,
       0,   161,   663,   664,   163,     0,   164,   165,   166,   665,
     168,     0,   666,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,     0,   667,     0,   181,   668,
     669,     0,     0,   182,   670,   671,     0,   672,   673,     0,
     183,   184,   185,   674,   675,   676,     0,     0,     0,     0,
     677,   188,   678,     0,     0,  3004,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,   196,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,   201,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,   211,   680,     0,   212,
     213,   214,   681,   682,   215,     0,   216,   217,   218,   683,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   684,   225,   685,   227,     0,   228,     0,   686,
       0,   229,   230,     0,   231,   687,     0,   232,   233,     0,
       0,     0,   688,   235,   236,   237,   689,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,   690,   242,   243,
     691,     0,     0,   244,     0,     0,   245,   246,     0,     0,
       0,   247,     0,     0,   248,   249,     0,     0,   250,     0,
     692,   251,   252,     0,     0,     0,     0,     0,   693,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,   694,
       0,     0,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
     695,   274,   275,   276,   277,   696,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   697,   285,     0,     0,   698,
     287,   699,   288,     0,   289,   700,   701,   702,   703,   704,
     294,   295,   296,   297,     0,   705,   298,   299,     0,     0,
     300,   301,   302,   303,   706,   707,   708,   304,   305,     0,
     709,   710,     0,   306,   307,   711,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,   712,   316,   317,   318,   319,   320,
     713,   322,   323,   324,   714,   715,   327,   716,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   717,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,   718,   719,   351,     0,   352,   353,
     354,     0,   355,   356,     0,     0,   720,   357,   358,   359,
     360,   361,   721,   363,   364,   365,     0,   722,   367,     0,
       0,     0,   368,   369,   370,   371,     0,     0,     0,   372,
       0,     0,     0,   373,   374,   375,   376,     0,   377,   378,
     379,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,   386,   387,
     723,   724,   388,   389,     0,   390,   725,   392,   393,   394,
     726,   727,   395,   396,   728,   397,   398,     0,     0,   399,
     400,     0,   729,   401,   402,     0,   730,   731,   732,   733,
       0,     0,     0,     0,     0,   407,   408,   409,     0,   734,
     735,   736,   411,   412,   413,   737,   414,   415,   738,   416,
     417,     0,   418,   419,     0,     0,   420,     0,     0,   421,
       0,   422,     0,   739,   424,     0,     0,   740,   741,   742,
     743,   425,     0,     0,   426,   744,     0,   745,   427,   428,
     429,   746,     0,     0,     0,     0,   431,   432,     0,   433,
     434,     0,     0,   747,     0,     0,     0,   748,   749,     0,
       0,     0,     0,   750,   751,     0,     0,   752,   753,     0,
     754,   755,   136,     0,   653,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,   654,     0,   144,
     145,   146,   147,   148,   655,   150,     0,   151,     0,     0,
     656,   152,   657,   658,   659,   153,   660,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,   661,   662,
     160,     0,   161,   663,   664,   163,     0,   164,   165,   166,
     665,   168,     0,   666,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   667,     0,   181,
     668,   669,     0,     0,   182,   670,   671,     0,   672,   673,
       0,   183,   184,   185,   674,   675,   676,     0,     0,     0,
       0,   677,   188,   678,     0,     0,   679,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,   680,     0,
     212,   213,   214,   681,   682,   215,     0,   216,   217,   218,
     683,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   684,   225,   685,   227,     0,   228,     0,
     686,     0,   229,   230,     0,   231,   687,     0,   232,   233,
       0,     0,     0,   688,   235,   236,   237,   689,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,   690,   242,
     243,   691,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,   692,   251,   252,     0,     0,     0,     0,     0,   693,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
     694,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,   695,   274,   275,   276,   277,   696,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   697,   285,     0,     0,
     698,   287,   699,   288,     0,   289,   700,   701,   702,   703,
     704,   294,   295,   296,   297,     0,   705,   298,   299,     0,
       0,   300,   301,   302,   303,   706,     0,   708,   304,   305,
       0,   709,   710,     0,   306,   307,   711,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,   712,   316,   317,   318,   319,
     320,   713,   322,   323,   324,   714,   715,   327,   716,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   717,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,   718,   719,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,   720,   357,   358,
     359,   360,   361,   721,   363,   364,   365,     0,   722,   367,
       0,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,   723,   724,   388,   389,     0,   390,   725,   392,   393,
     394,   726,   727,   395,   396,   728,   397,   398,     0,     0,
     399,   400,     0,   729,   401,   402,     0,   730,   731,   732,
     733,     0,     0,     0,     0,     0,   407,   408,   409,     0,
     734,   735,   736,   411,   412,   413,   737,   414,   415,   738,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   739,   424,     0,     0,   740,   741,
     742,   743,   425,     0,     0,   426,   744,     0,   745,   427,
     428,   429,   746,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,     0,   747,     0,     0,     0,   748,   749,
       0,     0,     0,     0,   750,   751,     0,     0,   752,   753,
       0,   754,   755,   136,     0,   653,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,     0,     0,   654,     0,
     144,   145,   146,   147,   148,   655,   150,     0,   151,     0,
       0,   656,   152,   657,   658,   659,   153,   660,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,   661,
     662,   160,     0,   161,   663,   664,   163,     0,   164,   165,
     166,   665,   168,     0,   666,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   667,     0,
     181,   668,   669,     0,     0,   182,   670,   671,     0,   672,
     673,     0,   183,   184,   185,   674,   675,   676,     0,     0,
       0,     0,   677,   188,   678,     0,     0,   679,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,   680,
       0,   212,   213,   214,   681,   682,   215,     0,   216,   217,
     218,   683,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   684,   225,   685,   227,     0,   228,
       0,   686,     0,   229,   230,     0,   231,   687,     0,   232,
     233,     0,     0,     0,   688,   235,   236,   237,   689,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,   690,
     242,   243,   691,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,   692,   251,   252,     0,     0,     0,     0,     0,
     693,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,   694,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,   695,   274,   275,   276,   277,   696,   278,   279,
    3902,     0,     0,     0,   281,   282,   283,   697,   285,     0,
       0,   698,   287,   699,   288,     0,   289,   700,   701,   702,
     703,   704,   294,   295,   296,   297,     0,   705,   298,   299,
       0,     0,   300,   301,   302,   303,   706,     0,   708,   304,
     305,     0,   709,   710,     0,   306,   307,   711,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,   712,   316,   317,   318,
     319,   320,   713,   322,   323,   324,   714,   715,   327,   716,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     717,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,   718,   719,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,   720,   357,
     358,   359,   360,   361,   721,   363,   364,   365,     0,   722,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,   723,   724,   388,   389,     0,   390,   725,   392,
     393,   394,   726,   727,   395,   396,   728,   397,   398,     0,
       0,   399,   400,     0,   729,   401,   402,     0,   730,   731,
     732,   733,     0,     0,     0,     0,     0,   407,   408,   409,
       0,   734,   735,   736,   411,   412,   413,   737,   414,   415,
     738,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   739,   424,     0,     0,   740,
     741,   742,   743,   425,     0,     0,   426,   744,     0,   745,
     427,   428,   429,   746,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,     0,   747,     0,     0,     0,   748,
     749,     0,     0,     0,     0,   750,   751,     0,     0,   752,
     753,     0,   754,   755,   136,     0,   137,   138,   139,   140,
     141,     0,     0,     0,     0,     0,   142,     0,     0,   143,
       0,   144,   145,   146,   147,   148,   149,   150,     0,   151,
       0,     0,     0,   152,     0,     0,     0,   153,     0,     0,
     154,   155,     0,   156,     0,   157,   158,     0,     0,   159,
       0,     0,   160,     0,   161,   162,     0,   163,     0,   164,
     165,   166,   167,   168,     0,   169,   170,     0,   171,   172,
     173,   174,   175,   176,   177,     0,   178,   179,  2194,   180,
       0,   181,     0,     0,     0,     0,   182,     0,     0,     0,
       0,     0,     0,   183,   184,   185,     0,     0,   186,     0,
       0,     0,     0,   187,   188,     0,     0,     0,     0,   189,
       0,   190,     0,     0,     0,   191,     0,   192,   193,   194,
     195,     0,     0,     0,   196,     0,     0,   197,   198,   199,
       0,     0,     0,   200,     0,   201,   202,     0,   203,   204,
     205,     0,     0,   206,     0,   207,   208,   209,   210,   211,
       0,     0,   212,   213,   214,     0,     0,   215,     0,   216,
     217,   218,     0,     0,   219,     0,     0,     0,   220,   221,
       0,   222,  2195,   223,     0,   224,   225,   226,   227,     0,
     228,     0,     0,     0,   229,   230,     0,   231,     0,     0,
     232,   233,     0,     0,     0,   234,   235,   236,   237,     0,
       0,   238,   239,  1358,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,     0,     0,   244,     0,     0,   245,
     246,     0,     0,     0,   247,  1359,     0,   248,   249,     0,
       0,   250,     0,     0,   251,   252,     0,  2692,     0,     0,
       0,   253,   254,     0,   255,     0,   256,     0,   257,   258,
       0,     0,     0,     0,     0,     0,     0,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
       0,   272,   273,     0,   274,   275,   276,   277,     0,   278,
     279,   280,     0,     0,     0,   281,   282,   283,   284,   285,
       0,     0,   286,   287,     0,   288,     0,   289,     0,   290,
     291,   292,   293,   294,   295,   296,   297,     0,     0,   298,
     299,     0,     0,   300,   301,   302,   303,     0,     0,     0,
     304,   305,     0,     0,     0,     0,   306,   307,   308,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,     0,   316,   317,
     318,   319,  2693,   321,   322,   323,   324,   325,   326,   327,
       0,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   334,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,     0,     0,   351,
       0,   352,   353,   354,     0,   355,   356,     0,     0,     0,
     357,   358,   359,   360,   361,   362,   363,   364,   365,     0,
     366,   367,  -401,     0,     0,   368,   369,   370,   371,     0,
       0,     0,   372,     0,     0,     0,   373,   374,   375,   376,
       0,   377,   378,   379,   380,  2197,     0,     0,     0,     0,
       0,   381,   382,     0,   383,     0,     0,   384,     0,     0,
     385,   386,   387,     0,     0,   388,   389,     0,   390,   391,
     392,   393,   394,     0,     0,   395,   396,     0,   397,   398,
       0,     0,   399,   400,     0,     0,   401,   402,     0,   403,
     404,   405,   406,     0,     0,     0,     0,     0,   407,   408,
     409,     0,     0,     0,   410,   411,   412,   413,     0,   414,
     415,     0,   416,   417,     0,   418,   419,     0,     0,   420,
       0,     0,   421,     0,   422,     0,   423,   424,     0,     0,
       0,     0,     0,     0,   425,     0,     0,   426,     0,     0,
       0,   427,   428,   429,   430,     0,     0,     0,     0,   431,
     432,     0,   433,   434,     0,     0,   435,     0,   136,     0,
     137,   138,   139,   140,   141,     0,     0,     0,     0,     0,
     142,     0,     0,   143,  2259,   144,   145,   146,   147,   148,
     149,   150,     0,   151,     0,     0,     0,   152,     0,     0,
       0,   153,     0,     0,   154,   155,     0,   156,     0,   157,
     158,     0,     0,   159,     0,     0,   160,     0,   161,   162,
       0,   163,     0,   164,   165,   166,   167,   168,     0,   169,
     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
     178,   179,  2194,   180,     0,   181,     0,     0,     0,     0,
     182,     0,     0,     0,     0,     0,     0,   183,   184,   185,
       0,     0,   186,     0,     0,     0,     0,   187,   188,     0,
       0,     0,     0,   189,     0,   190,     0,     0,     0,   191,
       0,   192,   193,   194,   195,     0,     0,     0,   196,     0,
       0,   197,   198,   199,     0,     0,     0,   200,     0,   201,
     202,     0,   203,   204,   205,     0,     0,   206,     0,   207,
     208,   209,   210,   211,     0,     0,   212,   213,   214,     0,
       0,   215,     0,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,  2195,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,  1358,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,     0,     0,
     244,     0,     0,   245,   246,     0,     0,     0,   247,  1359,
       0,   248,   249,     0,     0,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,   253,   254,     0,   255,     0,
     256,     0,   257,   258,     0,     0,     0,     0,     0,     0,
       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,     0,   272,   273,     0,   274,   275,
     276,   277,     0,   278,   279,   280,     0,     0,     0,   281,
     282,   283,   284,   285,     0,     0,   286,   287,     0,   288,
       0,   289,     0,   290,   291,   292,   293,   294,   295,   296,
     297,     0,     0,   298,   299,     0,     0,   300,   301,   302,
     303,     0,     0,     0,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,     0,     0,   357,   358,   359,   360,   361,   362,
     363,   364,   365,     0,   366,   367,     0,     0,     0,   368,
     369,   370,   371,     0,     0,     0,   372,     0,     0,     0,
     373,   374,   375,   376,     0,   377,   378,   379,   380,  2197,
       0,     0,     0,     0,     0,   381,   382,     0,   383,     0,
       0,   384,     0,     0,   385,   386,   387,     0,     0,   388,
     389,     0,   390,   391,   392,   393,   394,     0,     0,   395,
     396,     0,   397,   398,     0,     0,   399,   400,     0,     0,
     401,   402,     0,   403,   404,   405,   406,     0,     0,     0,
       0,     0,   407,   408,   409,     0,     0,     0,   410,   411,
     412,   413,     0,   414,   415,     0,   416,   417,     0,   418,
     419,     0,     0,   420,     0,     0,   421,     0,   422,     0,
     423,   424,     0,     0,     0,     0,     0,     0,   425,     0,
       0,   426,     0,     0,     0,   427,   428,   429,   430,     0,
       0,     0,     0,   431,   432,     0,   433,   434,     0,     0,
     435,     0,   136,     0,   137,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,   143,  2259,   144,
     145,   146,   147,   148,   149,   150,     0,   151,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,     0,     0,
     160,     0,   161,   162,     0,   163,     0,   164,   165,   166,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   180,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,   188,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,     0,     0,
     212,   213,   214,     0,     0,   215,     0,   216,   217,   218,
       0,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,   229,   230,     0,   231,     0,     0,   232,   233,
       0,     0,     0,   234,   235,   236,   237,     0,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,   304,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,     0,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,     0,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,     0,   357,   358,
     359,   360,   361,   362,   363,   364,   365,     0,   366,   367,
    2077,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,     0,     0,   388,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,     0,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,   410,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,     0,   435,     0,   136,     0,   137,   138,
     139,   140,   141,     0,     0,     0,  2468,     0,   142,     0,
       0,   143,   755,   144,   145,   146,   147,   148,   149,   150,
       0,   151,     0,     0,     0,   152,     0,     0,     0,   153,
       0,     0,   154,   155,     0,   156,     0,   157,   158,     0,
       0,   159,     0,     0,   160,     0,   161,   162,     0,   163,
       0,   164,   165,   166,   167,   168,     0,   169,   170,     0,
     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
       0,   180,     0,   181,     0,     0,     0,     0,   182,     0,
       0,     0,     0,     0,     0,   183,   184,   185,     0,     0,
     186,     0,     0,     0,     0,   187,   188,     0,     0,     0,
       0,   189,     0,   190,     0,     0,     0,   191,     0,   192,
     193,   194,   195,     0,     0,     0,   196,     0,     0,   197,
     198,   199,     0,     0,     0,   200,     0,   201,   202,     0,
     203,   204,   205,     0,     0,   206,     0,   207,   208,   209,
     210,   211,     0,     0,   212,   213,   214,     0,     0,   215,
       0,   216,   217,   218,     0,     0,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   224,   225,   226,
     227,     0,   228,     0,     0,     0,   229,   230,     0,   231,
       0,     0,   232,   233,     0,     0,     0,   234,   235,   236,
     237,     0,     0,   238,   239,     0,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,     0,     0,   244,     0,
       0,   245,   246,     0,     0,     0,   247,     0,     0,   248,
     249,     0,     0,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,   253,   254,     0,   255,     0,   256,     0,
     257,   258,     0,     0,     0,     0,     0,     0,     0,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,     0,   272,   273,     0,   274,   275,   276,   277,
       0,   278,   279,   280,     0,     0,     0,   281,   282,   283,
     284,   285,     0,     0,   286,   287,     0,   288,     0,   289,
       0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
       0,   298,   299,     0,     0,   300,   301,   302,   303,     0,
       0,     0,   304,   305,     0,     0,     0,     0,   306,   307,
     308,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,     0,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,     0,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   334,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,     0,   355,   356,     0,
       0,     0,   357,   358,   359,   360,   361,   362,   363,   364,
     365,     0,   366,   367,     0,     0,     0,   368,   369,   370,
     371,     0,     0,     0,   372,     0,     0,     0,   373,   374,
     375,   376,     0,   377,   378,   379,   380,     0,     0,     0,
       0,     0,     0,   381,   382,     0,   383,     0,     0,   384,
       0,     0,   385,   386,   387,     0,     0,   388,   389,     0,
     390,   391,   392,   393,   394,     0,     0,   395,   396,     0,
     397,   398,     0,     0,   399,   400,     0,     0,   401,   402,
       0,   403,   404,   405,   406,     0,     0,     0,     0,     0,
     407,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,   414,   415,     0,   416,   417,     0,   418,   419,     0,
       0,   420,     0,     0,   421,     0,   422,     0,   423,   424,
       0,     0,     0,     0,     0,     0,   425,     0,     0,   426,
       0,     0,     0,   427,   428,   429,   430,     0,     0,     0,
       0,   431,   432,     0,   433,   434,     0,     0,   435,     0,
       0,     0,   136,     0,   137,   138,   139,   140,   141,     0,
    3985,     0,     0,     0,   142,  3986,   755,   143,     0,   144,
     145,   146,   147,   148,   149,   150,     0,   151,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,     0,     0,
     160,     0,   161,   162,     0,   163,     0,   164,   165,   166,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   180,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,   188,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,     0,     0,
     212,   213,   214,     0,     0,   215,     0,   216,   217,   218,
       0,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,   229,   230,     0,   231,     0,     0,   232,   233,
       0,     0,     0,   234,   235,   236,   237,     0,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,  1229,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,   304,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,     0,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,     0,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,     0,   357,   358,
     359,   360,   361,   362,   363,   364,   365,     0,   366,   367,
       0,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,     0,     0,   388,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,     0,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,   410,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,     0,   435,     0,   136,     0,   137,   138,
     139,   140,   141,     0,     0,     0,     0,     0,   142,     0,
       0,   143,   479,   144,   145,   146,   147,   148,   149,   150,
       0,   151,     0,     0,     0,   152,     0,     0,     0,   153,
       0,     0,   154,   155,     0,   156,     0,   157,   158,     0,
       0,   159,     0,     0,   160,     0,   161,   162,     0,   163,
       0,   164,   165,   166,   167,   168,     0,   169,   170,     0,
     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
       0,   180,     0,   181,     0,     0,     0,     0,   182,     0,
       0,     0,     0,     0,     0,   183,   184,   185,     0,     0,
     186,     0,     0,     0,     0,   187,   188,     0,     0,     0,
       0,   189,     0,   190,     0,     0,     0,   191,     0,   192,
     193,   194,   195,     0,     0,     0,   196,     0,     0,   197,
     198,   199,     0,     0,     0,   200,     0,   201,   202,     0,
     203,   204,   205,     0,     0,   206,     0,   207,   208,   209,
     210,   211,     0,     0,   212,   213,   214,     0,     0,   215,
       0,   216,   217,   218,     0,     0,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   224,   225,   226,
     227,     0,   228,     0,     0,     0,   229,   230,     0,   231,
       0,     0,   232,   233,     0,     0,     0,   234,   235,   236,
     237,     0,     0,   238,   239,     0,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,     0,     0,   244,     0,
       0,   245,   246,     0,     0,     0,   247,     0,     0,   248,
     249,     0,     0,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,   253,   254,     0,   255,     0,   256,     0,
     257,   258,     0,     0,     0,     0,     0,     0,     0,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,     0,   272,   273,     0,   274,   275,   276,   277,
       0,   278,   279,   280,     0,     0,     0,   281,   282,   283,
     284,   285,     0,     0,   286,   287,     0,   288,     0,   289,
       0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
       0,   298,   299,     0,     0,   300,   301,   302,   303,     0,
       0,     0,   304,   305,     0,     0,     0,     0,   306,   307,
     308,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,     0,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,     0,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   334,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,     0,   355,   356,     0,
       0,     0,   357,   358,   359,   360,   361,   362,   363,   364,
     365,     0,   366,   367,     0,     0,     0,   368,   369,   370,
     371,     0,     0,     0,   372,     0,     0,     0,   373,   374,
     375,   376,     0,   377,   378,   379,   380,     0,     0,     0,
       0,     0,     0,   381,   382,     0,   383,     0,     0,   384,
       0,     0,   385,   386,   387,     0,     0,   388,   389,     0,
     390,   391,   392,   393,   394,     0,     0,   395,   396,     0,
     397,   398,     0,     0,   399,   400,     0,     0,   401,   402,
       0,   403,   404,   405,   406,     0,     0,     0,     0,     0,
     407,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,   414,   415,     0,   416,   417,     0,   418,   419,     0,
       0,   420,     0,     0,   421,     0,   422,     0,   423,   424,
       0,     0,     0,     0,     0,     0,   425,     0,     0,   426,
       0,     0,     0,   427,   428,   429,   430,     0,     0,     0,
       0,   431,   432,     0,   433,   434,     0,     0,   435,     0,
       0,     0,     0,   136,  1884,   137,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,   479,     0,   143,     0,
     144,   145,   146,   147,   148,   149,   150,     0,   151,     0,
       0,     0,   152,     0,     0,     0,   153,     0,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,     0,
       0,   160,     0,   161,   162,     0,   163,     0,   164,   165,
     166,   167,   168,     0,   169,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   180,     0,
     181,     0,     0,     0,     0,   182,     0,     0,     0,     0,
       0,     0,   183,   184,   185,     0,     0,   186,     0,     0,
       0,     0,   187,   188,     0,     0,     0,     0,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,     0,
       0,   212,   213,   214,     0,     0,   215,     0,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,     0,
     242,   243,     0,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
     253,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,     0,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,     0,   274,   275,   276,   277,     0,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   284,   285,     0,
       0,   286,   287,     0,   288,     0,   289,     0,   290,   291,
     292,   293,   294,   295,   296,   297,     0,     0,   298,   299,
       0,     0,   300,   301,   302,   303,     0,     0,     0,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,     0,   357,
     358,   359,   360,   361,   362,   363,   364,   365,     0,   366,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,     0,     0,   388,   389,     0,   390,   391,   392,
     393,   394,     0,     0,   395,   396,     0,   397,   398,     0,
       0,   399,   400,     0,     0,   401,   402,     0,   403,   404,
     405,   406,     0,     0,     0,     0,     0,   407,   408,   409,
       0,     0,     0,   410,   411,   412,   413,     0,   414,   415,
       0,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   423,   424,     0,     0,     0,
       0,     0,     0,   425,     0,     0,   426,     0,     0,     0,
     427,   428,   429,   430,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,     0,   435,     0,   136,     0,   137,
     138,   139,   140,   141,     0,     0,  2258,     0,     0,   142,
       0,     0,   143,  2259,   144,   145,   146,   147,   148,   149,
     150,     0,   151,     0,     0,     0,   152,     0,     0,     0,
     153,     0,     0,   154,   155,     0,   156,     0,   157,   158,
       0,     0,   159,     0,     0,   160,     0,   161,   162,     0,
     163,     0,   164,   165,   166,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,     0,   180,     0,   181,     0,     0,     0,     0,   182,
       0,     0,     0,     0,     0,     0,   183,   184,   185,     0,
       0,   186,     0,     0,     0,     0,   187,   188,     0,     0,
       0,     0,   189,     0,   190,     0,     0,     0,   191,     0,
     192,   193,   194,   195,     0,     0,     0,   196,     0,     0,
     197,   198,   199,     0,     0,     0,   200,     0,   201,   202,
       0,   203,   204,   205,     0,     0,   206,     0,   207,   208,
     209,   210,   211,     0,     0,   212,   213,   214,     0,     0,
     215,     0,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,     0,     0,   244,
       0,     0,   245,   246,     0,     0,     0,   247,     0,     0,
     248,   249,     0,     0,   250,     0,     0,   251,   252,     0,
       0,     0,     0,     0,   253,   254,     0,   255,     0,   256,
       0,   257,   258,     0,     0,     0,     0,     0,     0,     0,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,     0,   272,   273,     0,   274,   275,   276,
     277,     0,   278,   279,   280,     0,     0,     0,   281,   282,
     283,   284,   285,     0,     0,   286,   287,     0,   288,     0,
     289,     0,   290,   291,   292,   293,   294,   295,   296,   297,
       0,     0,   298,   299,     0,     0,   300,   301,   302,   303,
       0,     0,     0,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,     0,     0,   357,   358,   359,   360,   361,   362,   363,
     364,   365,     0,   366,   367,     0,     0,     0,   368,   369,
     370,   371,     0,     0,     0,   372,     0,     0,     0,   373,
     374,   375,   376,     0,   377,   378,   379,   380,     0,     0,
       0,     0,     0,     0,   381,   382,     0,   383,     0,     0,
     384,     0,     0,   385,   386,   387,     0,     0,   388,   389,
       0,   390,   391,   392,   393,   394,     0,     0,   395,   396,
       0,   397,   398,     0,     0,   399,   400,     0,     0,   401,
     402,     0,   403,   404,   405,   406,     0,     0,     0,     0,
       0,   407,   408,   409,     0,     0,     0,   410,   411,   412,
     413,     0,   414,   415,     0,   416,   417,     0,   418,   419,
       0,     0,   420,     0,     0,   421,     0,   422,     0,   423,
     424,     0,     0,     0,     0,     0,     0,   425,     0,     0,
     426,     0,     0,     0,   427,   428,   429,   430,     0,     0,
       0,     0,   431,   432,     0,   433,   434,     0,     0,   435,
       0,     0,     0,   136,     0,   137,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,  3986,   755,   143,     0,
     144,   145,   146,   147,   148,   149,   150,     0,   151,     0,
       0,     0,   152,     0,     0,     0,   153,     0,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,     0,
       0,   160,     0,   161,   162,     0,   163,     0,   164,   165,
     166,   167,   168,     0,   169,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   180,     0,
     181,     0,     0,     0,     0,   182,     0,     0,     0,     0,
       0,     0,   183,   184,   185,     0,     0,   186,     0,     0,
       0,     0,   187,   188,     0,     0,     0,     0,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,     0,
       0,   212,   213,   214,     0,     0,   215,     0,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,     0,
     242,   243,     0,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
     253,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,     0,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,     0,   274,   275,   276,   277,     0,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   284,   285,     0,
       0,   286,   287,     0,   288,     0,   289,     0,   290,   291,
     292,   293,   294,   295,   296,   297,     0,     0,   298,   299,
       0,     0,   300,   301,   302,   303,     0,     0,     0,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,     0,   357,
     358,   359,   360,   361,   362,   363,   364,   365,     0,   366,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,     0,     0,   388,   389,     0,   390,   391,   392,
     393,   394,     0,     0,   395,   396,     0,   397,   398,     0,
       0,   399,   400,     0,     0,   401,   402,     0,   403,   404,
     405,   406,     0,     0,     0,     0,     0,   407,   408,   409,
       0,     0,     0,   410,   411,   412,   413,     0,   414,   415,
       0,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   423,   424,     0,     0,     0,
       0,     0,     0,   425,     0,     0,   426,     0,     0,     0,
     427,   428,   429,   430,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,     0,   435,     0,   136,     0,   137,
     138,   139,   140,   141,     0,     0,     0,     0,     0,   142,
       0,     0,   143,   479,   144,   145,   146,   147,   148,   149,
     150,     0,   151,     0,     0,     0,   152,     0,     0,     0,
     153,     0,     0,   154,   155,     0,   156,     0,   157,   158,
       0,     0,   159,     0,     0,   160,     0,   161,   162,     0,
     163,     0,   164,   165,   166,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,     0,   180,     0,   181,     0,     0,     0,     0,   182,
       0,     0,     0,     0,     0,     0,   183,   184,   185,     0,
       0,   186,     0,     0,     0,     0,   187,   188,     0,     0,
       0,     0,   189,     0,   190,     0,     0,     0,   191,     0,
     192,   193,   194,   195,     0,     0,     0,   196,     0,     0,
     197,   198,   199,     0,     0,     0,   200,     0,   201,   202,
       0,   203,   204,   205,     0,     0,   206,     0,   207,   208,
     209,   210,   211,     0,     0,   212,   539,   214,     0,     0,
     215,     0,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,     0,     0,   244,
       0,     0,   245,   246,     0,     0,     0,   247,     0,     0,
     248,   249,     0,     0,   250,     0,     0,   251,   252,     0,
       0,     0,     0,     0,   253,   254,     0,   255,     0,   256,
       0,   257,   258,     0,     0,     0,     0,     0,     0,     0,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,     0,   272,   273,     0,   274,   275,   276,
     277,     0,   278,   279,   280,     0,     0,     0,   281,   282,
     283,   284,   285,     0,     0,   286,   287,     0,   288,     0,
     289,     0,   290,   291,   292,   293,   294,   295,   296,   297,
       0,     0,   298,   299,     0,     0,   300,   301,   302,   303,
       0,     0,     0,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   540,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,     0,     0,   357,   358,   359,   360,   361,   362,   363,
     364,   365,     0,   366,   367,     0,     0,     0,   368,   369,
     370,   371,     0,     0,     0,   372,     0,     0,     0,   373,
     374,   375,   376,     0,   377,   378,   379,   380,     0,     0,
       0,     0,     0,     0,   381,   382,     0,   383,     0,     0,
     384,     0,     0,   385,   386,   387,     0,     0,   388,   389,
       0,   390,   391,   392,   393,   394,     0,     0,   395,   396,
       0,   397,   398,     0,     0,   399,   400,     0,     0,   401,
     402,     0,   403,   404,   405,   406,     0,     0,     0,     0,
       0,   407,   408,   409,     0,     0,     0,   410,   411,   412,
     413,     0,   414,   415,     0,   416,   417,     0,   418,   419,
       0,     0,   420,     0,     0,   421,     0,   422,     0,   423,
     424,     0,     0,     0,     0,     0,     0,   425,     0,     0,
     426,     0,     0,     0,   427,   428,   429,   430,     0,     0,
       0,     0,   431,   432,     0,   433,   434,     0,     0,   435,
       0,   136,     0,   137,   138,   139,   140,   141,     0,     0,
       0,     0,     0,   142,     0,     0,   143,   479,   144,   145,
     146,   147,   148,   149,   150,     0,   151,     0,     0,     0,
     152,     0,     0,     0,   153,     0,     0,   154,   155,     0,
     156,     0,   157,   158,     0,     0,   159,     0,     0,   160,
       0,   161,   162,     0,   163,     0,   164,   165,   166,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,     0,   180,     0,   181,     0,
       0,     0,     0,   182,     0,     0,     0,     0,     0,     0,
     183,   184,   185,     0,     0,   186,     0,     0,     0,     0,
     187,   188,     0,     0,     0,     0,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,   196,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,   201,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,   211,     0,     0,   212,
     213,   214,     0,     0,   215,     0,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,     0,   242,   243,
       0,     0,     0,   244,     0,     0,   245,   246,     0,     0,
       0,   247,     0,     0,   248,   249,     0,     0,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,   253,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,     0,
       0,     0,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
       0,   274,   275,   276,   277,     0,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   284,   285,     0,     0,   286,
     287,     0,   288,     0,   289,     0,   290,   291,   292,   293,
     294,   295,   296,   297,     0,     0,   298,   299,     0,     0,
     300,   301,   302,   303,     0,     0,     0,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,     0,     0,   357,   358,   359,
     360,   361,   362,   363,   364,   365,     0,   366,   367,     0,
       0,     0,   368,   369,   370,   371,     0,     0,     0,   372,
       0,     0,     0,   373,   374,   375,   376,     0,   377,   378,
     379,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,   386,   387,
       0,     0,   388,   389,     0,   390,   391,   392,   393,   394,
       0,     0,   395,   396,     0,   397,   398,     0,     0,   399,
     400,     0,     0,   401,   402,     0,   403,   404,   405,   406,
       0,     0,     0,     0,     0,   407,   408,   409,     0,     0,
       0,   410,   411,   412,   413,     0,   414,   415,     0,   416,
     417,     0,   418,   419,     0,     0,   420,     0,     0,   421,
       0,   422,     0,   423,   424,     0,     0,     0,     0,     0,
       0,   425,     0,     0,   426,     0,     0,     0,   427,   428,
     429,   430,     0,     0,     0,     0,   431,   432,     0,   433,
     434,     0,     0,   435,     0,   136,     0,   137,   138,   139,
     140,   141,     0,     0,     0,     0,     0,   142,     0,     0,
     143,   755,   144,   145,   146,   147,   148,   149,   150,     0,
     151,     0,     0,     0,   152,     0,     0,     0,   153,     0,
       0,   154,   155,     0,   156,     0,   157,   158,     0,     0,
     159,     0,     0,   160,     0,   161,   162,     0,   163,     0,
     164,   165,   166,   167,   168,     0,   169,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,     0,
     180,     0,   181,     0,     0,     0,     0,   182,     0,     0,
       0,     0,     0,     0,   183,   184,   185,     0,     0,   186,
       0,     0,     0,     0,   187,   188,     0,     0,     0,     0,
     189,     0,   190,     0,     0,     0,   191,     0,   192,   193,
     194,   195,     0,     0,     0,   196,     0,     0,   197,   198,
     199,     0,     0,     0,   200,     0,   201,   202,     0,   203,
     204,   205,     0,     0,   206,     0,   207,   208,   209,   210,
     211,     0,     0,   212,   213,   214,     0,     0,   215,     0,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,   241,     0,
       0,     0,   242,   243,     0,     0,     0,   244,     0,     0,
     245,   246,     0,     0,     0,   247,     0,     0,   248,   249,
       0,     0,   250,     0,     0,   251,   252,     0,     0,     0,
       0,     0,   253,   254,     0,   255,     0,   256,     0,   257,
     258,     0,     0,     0,     0,     0,     0,     0,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,     0,   272,   273,     0,   274,   275,   276,   277,     0,
     278,   279,   280,     0,     0,     0,   281,   282,   283,   284,
     285,     0,     0,   286,   287,     0,   288,     0,   289,     0,
     290,   291,   292,   293,   294,   295,   296,   297,     0,     0,
     298,   299,     0,     0,   300,   301,   302,   303,     0,     0,
       0,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,     0,
       0,   357,   358,   359,   360,   361,   362,   363,   364,   365,
       0,   366,   367,     0,     0,     0,   368,   369,   370,   371,
       0,     0,     0,   372,     0,     0,     0,   373,   374,   375,
     376,     0,   377,   378,   379,   380,     0,     0,     0,     0,
       0,     0,   381,   382,     0,   383,     0,     0,   384,     0,
       0,   385,   386,   387,     0,     0,   388,   389,     0,   390,
     391,   392,   393,   394,     0,     0,   395,   396,     0,   397,
     398,     0,     0,   399,   400,     0,     0,   401,   402,     0,
     403,   404,   405,   406,     0,     0,     0,     0,     0,   407,
     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
     414,   415,     0,   416,   417,     0,   418,   419,     0,     0,
     420,     0,     0,   421,     0,   422,     0,   423,   424,     0,
       0,     0,     0,     0,     0,   425,     0,     0,   426,     0,
       0,     0,   427,   428,   429,   430,     0,     0,     0,     0,
     431,   432,     0,   433,   434,     0,     0,   435,     0,   136,
       0,   137,   138,   139,   140,   141,     0,     0,     0,     0,
       0,   142,     0,     0,   143,  2259,   144,   145,   146,   147,
     148,   149,   150,     0,   151,     0,     0,     0,   152,     0,
       0,     0,   153,     0,     0,   154,   155,     0,   156,     0,
     157,   158,     0,     0,   159,     0,     0,   160,     0,   161,
     162,     0,   163,     0,   164,   165,   166,   167,   168,     0,
     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
       0,   178,   179,     0,   180,     0,   181,     0,     0,     0,
       0,   182,     0,     0,     0,     0,     0,     0,   183,   184,
     185,     0,     0,   186,     0,     0,     0,     0,   187,   188,
       0,     0,     0,     0,   189,     0,   190,     0,     0,     0,
     191,     0,   192,   193,   194,   195,     0,     0,     0,   196,
       0,     0,   197,   198,   199,     0,     0,     0,   200,     0,
     201,   202,     0,   203,   204,   205,     0,     0,   206,     0,
     207,   208,   209,   210,   211,     0,     0,   212,   213,   214,
       0,     0,   215,     0,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,   241,     0,     0,     0,   242,   243,     0,     0,
       0,   244,     0,     0,   245,   246,     0,     0,     0,   247,
       0,     0,   248,   249,     0,     0,   250,     0,     0,   251,
     252,   551,     0,     0,     0,     0,   253,   254,     0,   255,
       0,   256,     0,   257,   258,     0,     0,     0,     0,     0,
       0,     0,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,     0,   272,   273,     0,   274,
     275,   276,   277,     0,   278,   279,   280,     0,     0,     0,
     281,   282,   283,   284,   285,     0,     0,   286,   287,     0,
     288,     0,   289,     0,   290,   291,   292,   293,   294,   295,
     296,   297,     0,     0,   298,   299,     0,     0,   300,   301,
     302,   303,     0,     0,     0,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,     0,     0,   357,   358,   359,   360,   361,
     362,   363,   364,   365,     0,   366,   367,     0,     0,     0,
     368,   369,   370,   371,     0,     0,     0,   372,     0,     0,
       0,   373,   374,   375,   376,     0,   377,   378,   379,   380,
       0,     0,     0,     0,     0,     0,   381,   382,     0,   383,
       0,     0,   384,     0,     0,   385,   386,   387,     0,     0,
     388,   389,     0,   390,   391,   392,   393,   394,     0,     0,
     395,   396,     0,   397,   398,     0,     0,   399,   400,     0,
     133,   401,   402,     0,   403,   404,   405,   406,     0,     0,
       0,     0,     0,   407,   408,   409,     0,     0,     0,   410,
     411,   412,   413,     0,   414,   415,     0,   416,   417,     0,
     418,   419,     0,     0,   420,     0,     0,   421,     0,   422,
       0,   423,   424,     0,     0,     0,     0,     0,     0,   425,
       0,     0,   426,     0,     0,     0,   427,   428,   429,   430,
       0,     0,     0,     0,   431,   432,     0,   433,   434,     0,
       0,   435,   136,     0,   137,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,   143,  1562,   144,
     145,   146,   147,   148,   149,   150,     0,   151,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,     0,     0,
     160,     0,   161,   162,     0,   163,     0,   164,   165,   166,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   180,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,   188,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,     0,     0,
     212,   213,   214,     0,     0,   215,     0,   216,   217,   218,
       0,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,   229,   230,     0,   231,     0,     0,   232,   233,
       0,     0,     0,   234,   235,   236,   237,     0,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,     0,   251,   252,   551,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,   304,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,     0,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,     0,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,     0,   357,   358,
     359,   360,   361,   362,   363,   364,   365,     0,   366,   367,
       0,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,     0,     0,   388,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,   133,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,   410,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,     0,   435,   136,     0,   137,   138,   139,
     140,   141,     0,     0,     0,     0,     0,   142,     0,     0,
     143,  2506,   144,   145,   146,   147,   148,   149,   150,     0,
     151,     0,     0,     0,   152,     0,     0,     0,   153,     0,
       0,   154,   155,     0,   156,     0,   157,   158,     0,     0,
     159,     0,     0,   160,     0,   161,   162,     0,   163,     0,
     164,   165,   166,   167,   168,     0,   169,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,     0,
     180,     0,   181,     0,     0,     0,     0,   182,     0,     0,
       0,     0,     0,     0,   183,   184,   185,     0,     0,   186,
       0,     0,     0,     0,   187,   188,     0,     0,     0,     0,
     189,     0,   190,     0,     0,     0,   191,     0,   192,   193,
     194,   195,     0,     0,     0,   196,     0,     0,   197,   198,
     199,     0,     0,     0,   200,     0,   201,   202,     0,   203,
     204,   205,     0,     0,   206,     0,   207,   208,   209,   210,
     211,     0,     0,   212,   213,   214,     0,     0,   215,     0,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,   241,     0,
       0,     0,   242,   243,     0,     0,     0,   244,     0,     0,
     245,   246,     0,     0,     0,   247,     0,     0,   248,   249,
       0,     0,   250,     0,     0,   251,   252,   551,     0,     0,
       0,     0,   253,   254,     0,   255,     0,   256,     0,   257,
     258,     0,     0,     0,     0,     0,     0,     0,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,     0,   272,   273,     0,   274,   275,   276,   277,     0,
     278,   279,   280,     0,     0,     0,   281,   282,   283,   284,
     285,     0,     0,   286,   287,     0,   288,     0,   289,     0,
     290,   291,   292,   293,   294,   295,   296,   297,     0,     0,
     298,   299,     0,     0,   300,   301,   302,   303,     0,     0,
       0,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,     0,
       0,   357,   358,   359,   360,   361,   362,   363,   364,   365,
       0,   366,   367,     0,     0,     0,   368,   369,   370,   371,
       0,     0,     0,   372,     0,     0,     0,   373,   374,   375,
     376,     0,   377,   378,   379,   380,     0,     0,     0,     0,
       0,     0,   381,   382,     0,   383,     0,     0,   384,     0,
       0,   385,   386,   387,     0,     0,   388,   389,     0,   390,
     391,   392,   393,   394,     0,     0,   395,   396,     0,   397,
     398,     0,     0,   399,   400,     0,   133,   401,   402,     0,
     403,   404,   405,   406,     0,     0,     0,     0,     0,   407,
     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
     414,   415,     0,   416,   417,     0,   418,   419,     0,     0,
     420,     0,     0,   421,     0,   422,     0,   423,   424,     0,
       0,     0,     0,     0,     0,   425,     0,     0,   426,     0,
       0,     0,   427,   428,   429,   430,     0,     0,     0,     0,
     431,   432,     0,   433,   434,     0,     0,   435,   136,     0,
     137,   138,   139,   140,   141,     0,     0,     0,     0,     0,
     142,     0,     0,     0,  3071,   144,   145,   146,   147,   148,
     149,     0,     0,  -245,     0,     0,     0,   152,     0,     0,
       0,   153,     0,     0,   154,   155,     0,   156,     0,     0,
       0,     0,     0,   159,  3482,     0,   160,     0,   161,     0,
       0,     0,     0,   164,   165,  3483,   167,   168,     0,   169,
     170,     0,     0,   172,     0,   174,   175,   176,   177,     0,
     178,   179,     0,     0,     0,   181,     0,     0,     0,     0,
     182,     0,     0,     0,     0,     0,     0,   183,   184,   185,
       0,     0,   186,     0,     0,     0,     0,   187,     0,     0,
       0,     0,     0,   189,     0,   190,     0,     0,     0,   191,
       0,   192,   193,   194,   195,     0,     0,     0,     0,     0,
       0,   197,   198,   199,     0,     0,     0,   200,     0,     0,
     202,     0,   203,   204,   205,     0,     0,   206,     0,   207,
     208,   209,   210,     0,     0,     0,   212,   213,   214,     0,
       0,   215,  3484,   216,   217,   218,     0,     0,     0,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,     0,   230,
       0,     0,     0,     0,     0,   233,     0,     0,     0,   234,
     235,   236,   237,  3485,     0,   238,   239,     0,     0,   240,
       0,   241,     0,     0,     0,   242,     0,     0,     0,     0,
     244,     0,     0,   245,   246,  3486,     0,     0,   247,     0,
       0,     0,   249,     0,     0,   250,  3487,     0,   251,   252,
       0,     0,     0,     0,     0,   253,   254,     0,   255,     0,
     256,     0,   257,   258,     0,     0,     0,     0,  -245,     0,
       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,     0,   272,   273,     0,   274,   275,
     276,   277,     0,   278,   279,   280,     0,     0,     0,   281,
     282,   283,   284,   285,     0,     0,   286,   287,     0,   288,
       0,   289,     0,   290,   291,   292,   293,   294,   295,   296,
     297,     0,     0,   298,   299,     0,     0,   300,   301,   302,
     303,     0,     0,     0,     0,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,  3488,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   314,
     315,     0,     0,   317,   318,   319,     0,   321,   322,   323,
     324,   325,   326,     0,     0,     0,     0,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
       0,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,     0,     0,   348,     0,
     350,  -245,     0,   351,     0,     0,   353,     0,     0,   355,
     356,  3489,     0,     0,     0,   358,   359,   360,   361,   362,
     363,     0,   365,     0,   366,     0,     0,     0,     0,   368,
     369,   370,     0,     0,     0,     0,   372,     0,     0,     0,
     373,     0,   375,     0,     0,   377,     0,     0,   380,     0,
       0,     0,     0,     0,     0,   381,   382,     0,   383,     0,
       0,   384,     0,     0,   385,     0,   387,     0,     0,     0,
     389,     0,   390,   391,   392,   393,   394,     0,     0,   395,
     396,     0,   397,   398,     0,     0,   399,   400,     0,     0,
     401,   402,     0,   403,   404,   405,   406,     0,     0,     0,
       0,     0,   407,   408,   409,     0,     0,     0,     0,   411,
     412,   413,     0,   414,   415,     0,   416,   417,     0,     0,
       0,     0,     0,   420,     0,     0,   421,     0,     0,     0,
     423,   424,     0,     0,     0,     0,     0,     0,   425,     0,
       0,   426,     0,     0,     0,   427,   428,   429,   430,     0,
       0,  -245,     0,   431,     0,     0,   433,     0,     0,   136,
     435,   137,   138,   139,   140,   141,     0,     0,     0,     0,
       0,   142,     0,  3995,   143,     0,   144,   145,   146,   147,
     148,   149,   150,     0,   151,     0,     0,     0,   152,     0,
       0,     0,   153,     0,     0,   154,   155,     0,   156,     0,
     157,   158,     0,     0,   159,     0,     0,   160,     0,   161,
     162,     0,   163,     0,   164,   165,   166,   167,   168,     0,
     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
       0,   178,   179,     0,   180,     0,   181,     0,     0,     0,
       0,   182,     0,     0,     0,     0,     0,     0,   183,   184,
     185,     0,     0,   186,     0,     0,     0,     0,   187,   188,
       0,     0,     0,     0,   189,     0,   190,     0,     0,     0,
     191,     0,   192,   193,   194,   195,     0,     0,     0,   196,
       0,     0,   197,   198,   199,     0,     0,     0,   200,     0,
     201,   202,     0,   203,   204,   205,     0,     0,   206,     0,
     207,   208,   209,   210,   211,     0,     0,   212,   213,   214,
       0,     0,   215,     0,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,   241,     0,     0,     0,   242,   243,     0,     0,
       0,   244,     0,     0,   245,   246,     0,     0,     0,   247,
       0,     0,   248,   249,     0,     0,   250,     0,     0,   251,
     252,     0,     0,     0,     0,     0,   253,   254,     0,   255,
       0,   256,     0,   257,   258,     0,     0,     0,     0,     0,
       0,     0,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,     0,   272,   273,     0,   274,
     275,   276,   277,     0,   278,   279,   280,     0,     0,     0,
     281,   282,   283,   284,   285,     0,     0,   286,   287,     0,
     288,     0,   289,     0,   290,   291,   292,   293,   294,   295,
     296,   297,     0,     0,   298,   299,     0,     0,   300,   301,
     302,   303,     0,     0,     0,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,     0,     0,   357,   358,   359,   360,   361,
     362,   363,   364,   365,     0,   366,   367,     0,     0,     0,
     368,   369,   370,   371,     0,     0,     0,   372,     0,     0,
       0,   373,   374,   375,   376,     0,   377,   378,   379,   380,
       0,     0,     0,     0,     0,     0,   381,   382,     0,   383,
       0,     0,   384,     0,     0,   385,   386,   387,     0,     0,
     388,   389,     0,   390,   391,   392,   393,   394,     0,     0,
     395,   396,     0,   397,   398,     0,     0,   399,   400,     0,
       0,   401,   402,     0,   403,   404,   405,   406,     0,     0,
       0,     0,     0,   407,   408,   409,     0,     0,     0,   410,
     411,   412,   413,     0,   414,   415,     0,   416,   417,     0,
     418,   419,     0,     0,   420,     0,     0,   421,     0,   422,
       0,   423,   424,     0,     0,     0,     0,     0,     0,   425,
       0,     0,   426,     0,     0,     0,   427,   428,   429,   430,
       0,     0,     0,     0,   431,   432,     0,   433,   434,     0,
     136,   435,   137,   138,   139,   140,   141,  1863,     0,     0,
       0,     0,   142,     0,     0,   143,     0,   144,   145,   146,
     147,   148,   149,   150,     0,   151,     0,     0,     0,   152,
       0,     0,     0,   153,     0,     0,   154,   155,     0,   156,
       0,   157,   158,     0,     0,   159,     0,     0,   160,     0,
     161,   162,     0,   163,     0,   164,   165,   166,   167,   168,
       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
     177,     0,   178,   179,     0,   180,     0,   181,     0,     0,
       0,     0,   182,     0,     0,     0,     0,     0,     0,   183,
     184,   185,     0,     0,   186,     0,     0,     0,     0,   187,
     188,     0,     0,     0,     0,   189,     0,   190,     0,     0,
       0,   191,     0,   192,   193,   194,   195,     0,     0,     0,
     196,     0,     0,   197,   198,   199,     0,     0,     0,   200,
       0,   201,   202,     0,   203,   204,   205,     0,     0,   206,
       0,   207,   208,   209,   210,   211,     0,     0,   212,   213,
     214,     0,     0,   215,     0,   216,   217,   218,     0,     0,
     219,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   224,   225,   226,   227,     0,   228,     0,     0,     0,
     229,   230,     0,   231,     0,     0,   232,   233,     0,     0,
       0,   234,   235,   236,   237,     0,     0,   238,   239,     0,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
       0,     0,   244,     0,     0,   245,   246,     0,     0,     0,
     247,     0,     0,   248,   249,     0,     0,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,   253,   254,     0,
     255,     0,   256,     0,   257,   258,     0,     0,     0,     0,
       0,     0,     0,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,     0,   272,   273,     0,
     274,   275,   276,   277,     0,   278,   279,   280,     0,     0,
       0,   281,   282,   283,   284,   285,     0,     0,   286,   287,
       0,   288,     0,   289,     0,   290,   291,   292,   293,   294,
     295,   296,   297,     0,     0,   298,   299,     0,     0,   300,
     301,   302,   303,     0,     0,     0,   304,   305,     0,     0,
       0,     0,   306,   307,   308,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,     0,   316,   317,   318,   319,   320,   321,
     322,   323,   324,   325,   326,   327,     0,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   334,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
       0,   355,   356,     0,     0,     0,   357,   358,   359,   360,
     361,   362,   363,   364,   365,     0,   366,   367,     0,     0,
       0,   368,   369,   370,   371,     0,     0,     0,   372,     0,
       0,     0,   373,   374,   375,   376,     0,   377,   378,   379,
     380,     0,     0,     0,     0,     0,     0,   381,   382,     0,
     383,     0,     0,   384,     0,     0,   385,   386,   387,     0,
       0,   388,   389,     0,   390,   391,   392,   393,   394,     0,
       0,   395,   396,     0,   397,   398,     0,     0,   399,   400,
       0,     0,   401,   402,     0,   403,   404,   405,   406,     0,
       0,     0,     0,     0,   407,   408,   409,     0,     0,     0,
     410,   411,   412,   413,     0,   414,   415,     0,   416,   417,
       0,   418,   419,     0,     0,   420,     0,     0,   421,     0,
     422,     0,   423,   424,     0,     0,     0,     0,     0,     0,
     425,     0,     0,   426,     0,     0,     0,   427,   428,   429,
     430,     0,     0,     0,     0,   431,   432,     0,   433,   434,
       0,   136,   435,   137,   138,   139,   140,   141,  2494,     0,
       0,     0,     0,   142,     0,     0,   143,     0,   144,   145,
     146,   147,   148,   149,   150,     0,   151,     0,     0,     0,
     152,     0,     0,     0,   153,     0,     0,   154,   155,     0,
     156,     0,   157,   158,     0,     0,   159,     0,     0,   160,
       0,   161,   162,     0,   163,     0,   164,   165,   166,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,     0,   180,     0,   181,     0,
       0,     0,     0,   182,     0,     0,     0,     0,     0,     0,
     183,   184,   185,     0,     0,   186,     0,     0,     0,     0,
     187,   188,     0,     0,     0,     0,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,   196,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,   201,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,   211,     0,     0,   212,
     213,   214,     0,     0,   215,     0,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,     0,   242,   243,
       0,     0,     0,   244,     0,     0,   245,   246,     0,     0,
       0,   247,     0,     0,   248,   249,     0,     0,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,   253,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,     0,
       0,     0,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
       0,   274,   275,   276,   277,     0,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   284,   285,     0,     0,   286,
     287,     0,   288,     0,   289,     0,   290,   291,   292,   293,
     294,   295,   296,   297,     0,     0,   298,   299,     0,     0,
     300,   301,   302,   303,     0,     0,     0,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,     0,     0,   357,   358,   359,
     360,   361,   362,   363,   364,   365,     0,   366,   367,     0,
       0,     0,   368,   369,   370,   371,     0,     0,     0,   372,
       0,     0,     0,   373,   374,   375,   376,     0,   377,   378,
     379,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,   386,   387,
       0,     0,   388,   389,     0,   390,   391,   392,   393,   394,
       0,     0,   395,   396,     0,   397,   398,     0,     0,   399,
     400,     0,     0,   401,   402,     0,   403,   404,   405,   406,
       0,     0,     0,     0,     0,   407,   408,   409,     0,     0,
       0,   410,   411,   412,   413,     0,   414,   415,     0,   416,
     417,     0,   418,   419,     0,     0,   420,     0,     0,   421,
       0,   422,     0,   423,   424,     0,     0,     0,     0,     0,
       0,   425,     0,     0,   426,     0,     0,     0,   427,   428,
     429,   430,     0,     0,     0,     0,   431,   432,     0,   433,
     434,     0,   136,   435,   137,   138,   139,   140,   141,  2707,
       0,     0,     0,     0,   142,     0,     0,   143,     0,   144,
     145,   146,   147,   148,   149,   150,     0,   151,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,     0,     0,
     160,     0,   161,   162,     0,   163,     0,   164,   165,   166,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   180,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,   188,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,     0,     0,
     212,   213,   214,     0,     0,   215,     0,   216,   217,   218,
       0,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,   229,   230,     0,   231,     0,     0,   232,   233,
       0,     0,     0,   234,   235,   236,   237,     0,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,   304,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,     0,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,     0,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,     0,   357,   358,
     359,   360,   361,   362,   363,   364,   365,     0,   366,   367,
       0,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,     0,     0,   388,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,     0,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,   410,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,   136,   435,   137,   138,   139,   140,   141,
    3076,     0,     0,     0,     0,   142,     0,     0,   143,     0,
     144,   145,   146,   147,   148,   149,   150,     0,   151,     0,
       0,     0,   152,     0,     0,     0,   153,     0,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,     0,
       0,   160,     0,   161,   162,     0,   163,     0,   164,   165,
     166,   167,   168,     0,   169,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   180,     0,
     181,     0,     0,     0,     0,   182,     0,     0,     0,     0,
       0,     0,   183,   184,   185,     0,     0,   186,     0,     0,
       0,     0,   187,   188,  2168,     0,     0,     0,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,     0,
       0,   212,   213,   214,     0,     0,   215,     0,   216,   217,
     218,  2169,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,  2170,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,     0,
     242,   243,     0,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
     253,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,  2171,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,     0,   274,   275,   276,   277,     0,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   284,   285,     0,
       0,   286,   287,     0,   288,     0,   289,     0,   290,   291,
     292,   293,   294,   295,   296,   297,     0,     0,   298,   299,
       0,     0,   300,   301,   302,   303,   946,   947,     0,   304,
     305,     0,     0,  2172,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,     0,   357,
     358,   359,   360,   361,   362,   363,   364,   365,     0,   366,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,  3972,  3956,  3973,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,     0,     0,   388,   389,     0,   390,   391,   392,
     393,   394,     0,     0,   395,   396,     0,   397,   398,     0,
       0,   399,   400,     0,     0,   401,   402,     0,   403,   404,
     405,   406,     0,     0,     0,     0,     0,   407,   408,   409,
       0,     0,     0,   410,   411,   412,   413,  2173,   414,   415,
       0,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   423,   424,     0,     0,     0,
       0,     0,     0,   425,     0,     0,   426,     0,     0,     0,
     427,   428,   429,   430,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,   136,   435,   137,   138,   139,   140,
     141,     0,     0,     0,     0,     0,   142,     0,     0,   143,
       0,   144,   145,   146,   147,   148,   149,   150,     0,   151,
       0,     0,  2374,   152,     0,     0,     0,   153,     0,     0,
     154,   155,     0,   156,     0,   157,   158,     0,     0,   159,
       0,     0,   160,     0,   161,   162,     0,   163,     0,   164,
     165,   166,   167,   168,     0,   169,   170,     0,   171,   172,
     173,   174,   175,   176,   177,     0,   178,   179,     0,   180,
       0,   181,     0,     0,     0,     0,   182,     0,     0,     0,
       0,     0,     0,   183,   184,   185,     0,     0,   186,     0,
       0,     0,     0,   187,   188,     0,     0,     0,  2500,   189,
       0,   190,     0,     0,     0,   191,     0,   192,   193,   194,
     195,     0,     0,     0,   196,     0,     0,   197,   198,   199,
       0,     0,     0,   200,     0,   201,   202,     0,   203,   204,
     205,  1869,     0,   206,     0,   207,   208,   209,   210,   211,
       0,     0,   212,   213,   214,     0,     0,   215,     0,   216,
     217,   218,     0,     0,   219,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   224,   225,   226,   227,     0,
     228,     0,     0,     0,   229,   230,     0,   231,     0,     0,
     232,   233,     0,     0,     0,   234,   235,   236,   237,     0,
       0,   238,   239,     0,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,     0,     0,   244,     0,     0,   245,
     246,     0,     0,     0,   247,     0,     0,   248,   249,     0,
       0,   250,     0,     0,   251,   252,   551,     0,     0,     0,
       0,   253,   254,     0,   255,     0,   256,     0,   257,   258,
       0,     0,     0,     0,     0,     0,     0,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
       0,   272,   273,     0,   274,   275,   276,   277,     0,   278,
     279,   280,     0,     0,     0,   281,   282,   283,   284,   285,
       0,     0,   286,   287,     0,   288,     0,   289,     0,   290,
     291,   292,   293,   294,   295,   296,   297,     0,     0,   298,
     299,     0,     0,   300,   301,   302,   303,     0,     0,     0,
     304,   305,     0,     0,     0,     0,   306,   307,   308,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,     0,   316,   317,
     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
       0,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   334,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,     0,     0,   351,
       0,   352,   353,   354,     0,   355,   356,     0,     0,     0,
     357,   358,   359,   360,   361,   362,   363,   364,   365,     0,
     366,   367,     0,     0,     0,   368,   369,   370,   371,     0,
       0,  1870,   372,     0,     0,     0,   373,   374,   375,   376,
       0,   377,   378,   379,   380,     0,     0,     0,     0,     0,
       0,   381,   382,     0,   383,     0,     0,   384,     0,     0,
     385,   386,   387,     0,     0,   388,   389,     0,   390,   391,
     392,   393,   394,     0,     0,   395,   396,     0,   397,   398,
       0,     0,   399,   400,     0,   133,   401,   402,     0,   403,
     404,   405,   406,     0,     0,     0,     0,     0,   407,   408,
     409,     0,     0,     0,   410,   411,   412,   413,     0,   414,
     415,     0,   416,   417,     0,   418,   419,     0,     0,   420,
       0,     0,   421,     0,   422,     0,   423,   424,     0,     0,
       0,     0,     0,     0,   425,     0,     0,   426,     0,     0,
       0,   427,   428,   429,   430,     0,     0,     0,     0,   431,
     432,     0,   433,   434,     0,   136,   435,   137,   138,   139,
     140,   141,     0,     0,     0,     0,     0,   142,     0,     0,
     143,     0,   144,   145,   146,   147,   148,   149,   150,     0,
     151,     0,     0,  2508,   152,     0,     0,     0,   153,     0,
       0,   154,   155,     0,   156,     0,   157,   158,     0,     0,
     159,     0,     0,   160,     0,   161,   162,     0,   163,     0,
     164,   165,   166,   167,   168,     0,   169,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,     0,
     180,     0,   181,     0,     0,     0,     0,   182,     0,     0,
       0,     0,     0,     0,   183,   184,   185,     0,     0,   186,
       0,     0,     0,     0,   187,   188,     0,     0,     0,  2509,
     189,     0,   190,     0,     0,     0,   191,     0,   192,   193,
     194,   195,     0,     0,     0,   196,     0,     0,   197,   198,
     199,     0,     0,     0,   200,     0,   201,   202,     0,   203,
     204,   205,     0,     0,   206,     0,   207,   208,   209,   210,
     211,     0,     0,   212,   213,   214,     0,     0,   215,     0,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,   241,     0,
       0,     0,   242,   243,     0,     0,     0,   244,     0,     0,
     245,   246,     0,     0,     0,   247,     0,     0,   248,   249,
       0,     0,   250,     0,     0,   251,   252,   551,     0,     0,
       0,     0,   253,   254,     0,   255,     0,   256,     0,   257,
     258,     0,     0,     0,     0,     0,     0,     0,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,     0,   272,   273,     0,   274,   275,   276,   277,     0,
     278,   279,   280,     0,     0,     0,   281,   282,   283,   284,
     285,     0,     0,   286,   287,     0,   288,     0,   289,     0,
     290,   291,   292,   293,   294,   295,   296,   297,     0,     0,
     298,   299,     0,     0,   300,   301,   302,   303,     0,     0,
       0,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,     0,
       0,   357,   358,   359,   360,   361,   362,   363,   364,   365,
       0,   366,   367,     0,     0,     0,   368,   369,   370,   371,
       0,     0,     0,   372,     0,     0,     0,   373,   374,   375,
     376,     0,   377,   378,   379,   380,     0,     0,     0,     0,
       0,     0,   381,   382,     0,   383,     0,     0,   384,     0,
       0,   385,   386,   387,     0,     0,   388,   389,     0,   390,
     391,   392,   393,   394,     0,     0,   395,   396,     0,   397,
     398,     0,     0,   399,   400,     0,   133,   401,   402,     0,
     403,   404,   405,   406,     0,     0,     0,     0,     0,   407,
     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
     414,   415,     0,   416,   417,     0,   418,   419,     0,     0,
     420,     0,     0,   421,     0,   422,     0,   423,   424,     0,
       0,     0,     0,     0,     0,   425,     0,     0,   426,     0,
       0,     0,   427,   428,   429,   430,     0,     0,     0,     0,
     431,   432,     0,   433,   434,     0,   136,   435,   137,   138,
     139,   140,   141,     0,     0,     0,     0,     0,   142,     0,
       0,   143,     0,   144,   145,   146,   147,   148,   149,   150,
       0,   151,     0,     0,  2374,   152,     0,     0,     0,   153,
       0,     0,   154,   155,     0,   156,     0,   157,   158,     0,
       0,   159,     0,     0,   160,     0,   161,   162,     0,   163,
       0,   164,   165,   166,   167,   168,     0,   169,   170,     0,
     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
       0,   180,     0,   181,     0,     0,     0,     0,   182,     0,
       0,     0,     0,     0,     0,   183,   184,   185,     0,     0,
     186,     0,     0,     0,     0,   187,   188,     0,     0,     0,
    2500,   189,     0,   190,     0,     0,     0,   191,     0,   192,
     193,   194,   195,     0,     0,     0,   196,     0,     0,   197,
     198,   199,     0,     0,     0,   200,     0,   201,   202,     0,
     203,   204,   205,     0,     0,   206,     0,   207,   208,   209,
     210,   211,     0,     0,   212,   213,   214,     0,     0,   215,
       0,   216,   217,   218,     0,     0,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   224,   225,   226,
     227,     0,   228,     0,     0,     0,   229,   230,     0,   231,
       0,     0,   232,   233,     0,     0,     0,   234,   235,   236,
     237,     0,     0,   238,   239,     0,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,     0,     0,   244,     0,
       0,   245,   246,     0,     0,     0,   247,     0,     0,   248,
     249,     0,     0,   250,     0,     0,   251,   252,   551,     0,
       0,     0,     0,   253,   254,     0,   255,     0,   256,     0,
     257,   258,     0,     0,     0,     0,     0,     0,     0,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,     0,   272,   273,     0,   274,   275,   276,   277,
       0,   278,   279,   280,     0,     0,     0,   281,   282,   283,
     284,   285,     0,     0,   286,   287,     0,   288,     0,   289,
       0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
       0,   298,   299,     0,     0,   300,   301,   302,   303,     0,
       0,     0,   304,   305,     0,     0,     0,     0,   306,   307,
     308,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,     0,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,     0,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   334,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,     0,   355,   356,     0,
       0,     0,   357,   358,   359,   360,   361,   362,   363,   364,
     365,     0,   366,   367,     0,     0,     0,   368,   369,   370,
     371,     0,     0,     0,   372,     0,     0,     0,   373,   374,
     375,   376,     0,   377,   378,   379,   380,     0,     0,     0,
       0,     0,     0,   381,   382,     0,   383,     0,     0,   384,
       0,     0,   385,   386,   387,     0,     0,   388,   389,     0,
     390,   391,   392,   393,   394,     0,     0,   395,   396,     0,
     397,   398,     0,     0,   399,   400,     0,   133,   401,   402,
       0,   403,   404,   405,   406,     0,     0,     0,     0,     0,
     407,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,   414,   415,     0,   416,   417,     0,   418,   419,     0,
       0,   420,     0,     0,   421,     0,   422,     0,   423,   424,
       0,     0,     0,     0,     0,     0,   425,     0,     0,   426,
       0,     0,     0,   427,   428,   429,   430,     0,     0,     0,
       0,   431,   432,     0,   433,   434,     0,   136,   435,   137,
     138,   139,   140,   141,     0,     0,     0,     0,     0,   142,
       0,     0,   143,     0,   144,   145,   146,   147,   148,   149,
     150,     0,   151,     0,     0,     0,   152,     0,     0,     0,
     153,     0,     0,   154,   155,     0,   156,     0,   157,   158,
       0,     0,   159,     0,     0,   160,     0,   161,   162,     0,
     163,     0,   164,   165,   166,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,     0,   180,     0,   181,     0,     0,     0,     0,   182,
       0,   906,     0,     0,     0,     0,   183,   184,   185,     0,
       0,   186,     0,     0,     0,     0,   187,   188,     0,     0,
       0,     0,   189,     0,   190,     0,     0,     0,   191,     0,
     192,   193,   194,   195,     0,     0,     0,   196,     0,     0,
     197,   198,   199,     0,     0,     0,   200,     0,   201,   202,
       0,   203,   204,   205,     0,     0,   206,     0,   207,   208,
     209,   210,   211,     0,     0,   212,   213,   214,     0,     0,
     215,     0,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,     0,     0,   244,
       0,     0,   245,   246,     0,     0,     0,   247,     0,     0,
     248,   249,     0,     0,   250,     0,     0,   251,   252,   551,
       0,     0,     0,     0,   253,   254,     0,   255,     0,   256,
       0,   257,   258,     0,     0,     0,     0,     0,     0,     0,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,     0,   272,   273,     0,   274,   275,   276,
     277,     0,   278,   279,   280,     0,     0,     0,   281,   282,
     283,   284,   285,     0,     0,   286,   287,     0,   288,     0,
     289,     0,   290,   291,   292,   293,   294,   295,   296,   297,
       0,     0,   298,   299,     0,     0,   300,   301,   302,   303,
       0,     0,     0,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,     0,     0,   357,   358,   359,   360,   361,   362,   363,
     364,   365,     0,   366,   367,     0,     0,     0,   368,   369,
     370,   371,     0,     0,     0,   372,     0,     0,     0,   373,
     374,   375,   376,     0,   377,   378,   379,   380,     0,     0,
       0,     0,     0,     0,   381,   382,     0,   383,     0,     0,
     384,     0,     0,   385,   386,   387,     0,     0,   388,   389,
       0,   390,   391,   392,   393,   394,     0,     0,   395,   396,
       0,   397,   398,     0,     0,   399,   400,     0,   133,   401,
     402,     0,   403,   404,   405,   406,     0,     0,     0,     0,
       0,   407,   408,   409,     0,     0,     0,   410,   411,   412,
     413,     0,   414,   415,     0,   416,   417,     0,   418,   419,
       0,     0,   420,     0,     0,   421,     0,   422,     0,   423,
     424,     0,     0,     0,     0,     0,     0,   425,     0,     0,
     426,     0,     0,     0,   427,   428,   429,   430,     0,     0,
       0,     0,   431,   432,     0,   433,   434,     0,   136,   435,
     137,   138,   139,   140,   141,  1267,     0,     0,     0,     0,
     142,     0,     0,   143,     0,   144,   145,   146,   147,   148,
     149,   150,     0,   151,     0,     0,     0,   152,     0,     0,
       0,   153,     0,     0,   154,   155,     0,   156,     0,   157,
     158,     0,     0,   159,     0,     0,   160,     0,   161,   162,
       0,   163,     0,   164,   165,   166,   167,   168,     0,   169,
     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
     178,   179,     0,   180,     0,   181,     0,     0,     0,     0,
     182,     0,     0,     0,     0,     0,     0,   183,   184,   185,
       0,     0,   186,     0,     0,     0,     0,   187,   188,     0,
       0,     0,     0,   189,     0,   190,     0,     0,     0,   191,
       0,   192,   193,   194,   195,     0,     0,     0,   196,     0,
       0,   197,   198,   199,     0,     0,     0,   200,     0,   201,
     202,     0,   203,   204,   205,     0,     0,   206,     0,   207,
     208,   209,   210,   211,     0,     0,   212,   213,   214,     0,
       0,   215,     0,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,     0,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,     0,     0,
     244,     0,     0,   245,   246,     0,     0,     0,   247,     0,
       0,   248,   249,     0,     0,   250,     0,     0,   251,   252,
     551,     0,     0,     0,     0,   253,   254,     0,   255,     0,
     256,     0,   257,   258,     0,     0,     0,     0,     0,     0,
       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,     0,   272,   273,     0,   274,   275,
     276,   277,     0,   278,   279,   280,     0,     0,     0,   281,
     282,   283,   284,   285,     0,     0,   286,   287,     0,   288,
       0,   289,     0,   290,   291,   292,   293,   294,   295,   296,
     297,     0,     0,   298,   299,     0,     0,   300,   301,   302,
     303,     0,     0,     0,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,     0,     0,   357,   358,   359,   360,   361,   362,
     363,   364,   365,     0,   366,   367,     0,     0,     0,   368,
     369,   370,   371,     0,     0,     0,   372,     0,     0,     0,
     373,   374,   375,   376,     0,   377,   378,   379,   380,     0,
       0,     0,     0,     0,     0,   381,   382,     0,   383,     0,
       0,   384,     0,     0,   385,   386,   387,     0,     0,   388,
     389,     0,   390,   391,   392,   393,   394,     0,     0,   395,
     396,     0,   397,   398,     0,     0,   399,   400,     0,   133,
     401,   402,     0,   403,   404,   405,   406,     0,     0,     0,
       0,     0,   407,   408,   409,     0,     0,     0,   410,   411,
     412,   413,     0,   414,   415,     0,   416,   417,     0,   418,
     419,     0,     0,   420,     0,     0,   421,     0,   422,     0,
     423,   424,     0,     0,     0,     0,     0,     0,   425,     0,
       0,   426,     0,     0,     0,   427,   428,   429,   430,     0,
       0,     0,     0,   431,   432,     0,   433,   434,     0,   136,
     435,   137,   138,   139,   140,   141,     0,     0,     0,     0,
       0,   142,     0,     0,   143,     0,   144,   145,   146,   147,
     148,   149,   150,     0,   151,     0,     0,     0,   152,   886,
       0,     0,   153,     0,     0,   154,   155,     0,   156,     0,
     157,   158,     0,     0,   159,     0,     0,   160,     0,   161,
     162,     0,   163,     0,   164,   165,   166,   167,   168,     0,
     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
       0,   178,   179,     0,   180,     0,   181,     0,     0,     0,
       0,   182,     0,     0,     0,     0,     0,     0,   183,   184,
     185,     0,     0,   186,     0,     0,     0,     0,   187,   188,
       0,     0,     0,     0,   189,     0,   190,     0,     0,     0,
     191,     0,   192,   193,   194,   195,     0,     0,     0,   196,
       0,     0,   197,   198,   199,     0,     0,     0,   200,     0,
     201,   202,     0,   203,   204,   205,     0,     0,   206,     0,
     207,   208,   209,   210,   211,     0,     0,   212,   213,   214,
       0,     0,   215,     0,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,   887,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,   241,     0,     0,     0,   242,   243,     0,     0,
       0,   244,     0,     0,   245,   246,     0,     0,     0,   247,
       0,     0,   248,   249,     0,     0,   250,     0,     0,   251,
     252,     0,     0,     0,     0,     0,   253,   254,     0,   255,
       0,   256,     0,   257,   258,     0,     0,     0,     0,     0,
       0,     0,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,     0,   272,   273,     0,   274,
     275,   276,   277,     0,   278,   279,   280,     0,     0,     0,
     281,   282,   283,   284,   285,     0,     0,   286,   287,     0,
     288,     0,   289,     0,   290,   291,   292,   293,   294,   295,
     296,   297,     0,     0,   298,   299,     0,     0,   300,   301,
     302,   303,     0,     0,     0,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,     0,     0,   357,   358,   359,   360,   361,
     362,   363,   364,   365,     0,   366,   367,     0,     0,     0,
     368,   369,   370,   371,     0,     0,     0,   372,     0,     0,
       0,   373,   374,   375,   376,     0,   377,   378,   379,   380,
       0,     0,     0,     0,     0,     0,   381,   382,     0,   383,
       0,     0,   384,     0,     0,   385,   386,   387,     0,     0,
     388,   389,     0,   390,   391,   392,   393,   394,     0,     0,
     395,   396,     0,   397,   398,     0,     0,   399,   400,     0,
     888,   401,   402,     0,   403,   404,   405,   406,     0,     0,
       0,     0,     0,   407,   408,   409,     0,     0,     0,   410,
     411,   412,   413,     0,   414,   415,     0,   416,   417,     0,
     418,   419,     0,     0,   420,     0,     0,   421,     0,   422,
       0,   423,   424,     0,     0,     0,     0,     0,     0,   425,
       0,     0,   426,     0,     0,     0,   427,   428,   429,   430,
       0,     0,     0,     0,   431,   432,     0,   433,   434,     0,
     136,   435,   137,   138,   139,   140,   141,     0,     0,     0,
       0,     0,   142,     0,     0,   143,     0,   144,   145,   146,
     147,   148,   149,   150,     0,   151,     0,     0,  2374,   152,
       0,     0,     0,   153,     0,     0,   154,   155,     0,   156,
       0,   157,   158,     0,     0,   159,     0,     0,   160,     0,
     161,   162,     0,   163,     0,   164,   165,   166,   167,   168,
       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
     177,     0,   178,   179,     0,   180,     0,   181,     0,     0,
       0,     0,   182,     0,     0,     0,     0,     0,     0,   183,
     184,   185,     0,     0,   186,     0,     0,     0,     0,   187,
     188,     0,     0,     0,     0,   189,     0,   190,     0,     0,
       0,   191,     0,   192,   193,   194,   195,     0,     0,     0,
     196,     0,     0,   197,   198,   199,     0,     0,     0,   200,
       0,   201,   202,     0,   203,   204,   205,     0,     0,   206,
       0,   207,   208,   209,   210,   211,     0,     0,   212,   213,
     214,     0,     0,   215,     0,   216,   217,   218,     0,     0,
     219,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   224,   225,   226,   227,     0,   228,     0,     0,     0,
     229,   230,     0,   231,     0,     0,   232,   233,     0,     0,
       0,   234,   235,   236,   237,     0,     0,   238,   239,     0,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
       0,     0,   244,     0,     0,   245,   246,     0,     0,     0,
     247,     0,     0,   248,   249,     0,     0,   250,     0,     0,
     251,   252,   551,     0,     0,     0,     0,   253,   254,     0,
     255,     0,   256,     0,   257,   258,     0,     0,     0,     0,
       0,     0,     0,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,     0,   272,   273,     0,
     274,   275,   276,   277,     0,   278,   279,   280,     0,     0,
       0,   281,   282,   283,   284,   285,     0,     0,   286,   287,
       0,   288,     0,   289,     0,   290,   291,   292,   293,   294,
     295,   296,   297,     0,     0,   298,   299,     0,     0,   300,
     301,   302,   303,     0,     0,     0,   304,   305,     0,     0,
       0,     0,   306,   307,   308,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,     0,   316,   317,   318,   319,   320,   321,
     322,   323,   324,   325,   326,   327,     0,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   334,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
       0,   355,   356,     0,     0,     0,   357,   358,   359,   360,
     361,   362,   363,   364,   365,     0,   366,   367,     0,     0,
       0,   368,   369,   370,   371,     0,     0,     0,   372,     0,
       0,     0,   373,   374,   375,   376,     0,   377,   378,   379,
     380,     0,     0,     0,     0,     0,     0,   381,   382,     0,
     383,     0,     0,   384,     0,     0,   385,   386,   387,     0,
       0,   388,   389,     0,   390,   391,   392,   393,   394,     0,
       0,   395,   396,     0,   397,   398,     0,     0,   399,   400,
       0,   133,   401,   402,     0,   403,   404,   405,   406,     0,
       0,     0,     0,     0,   407,   408,   409,     0,     0,     0,
     410,   411,   412,   413,     0,   414,   415,     0,   416,   417,
       0,   418,   419,     0,     0,   420,     0,     0,   421,     0,
     422,     0,   423,   424,     0,     0,     0,     0,     0,     0,
     425,     0,     0,   426,     0,     0,     0,   427,   428,   429,
     430,     0,     0,     0,     0,   431,   432,     0,   433,   434,
       0,   136,   435,   137,   138,   139,   140,   141,     0,     0,
       0,     0,     0,   142,     0,     0,   143,     0,   144,   145,
     146,   147,   148,   149,   150,     0,   151,     0,     0,     0,
     152,     0,     0,     0,   153,     0,     0,   154,   155,     0,
     156,     0,   157,   158,     0,     0,   159,     0,     0,   160,
       0,   161,   162,     0,   163,     0,   164,   165,   166,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,     0,   180,     0,   181,     0,
       0,     0,     0,   182,     0,     0,     0,     0,     0,     0,
     183,   184,   185,     0,     0,   186,     0,     0,     0,     0,
     187,   188,     0,     0,     0,  2546,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,   196,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,   201,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,   211,     0,     0,   212,
     213,   214,     0,     0,   215,     0,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,     0,   242,   243,
       0,     0,     0,   244,     0,     0,   245,   246,     0,     0,
       0,   247,     0,     0,   248,   249,     0,     0,   250,     0,
       0,   251,   252,   551,     0,     0,     0,     0,   253,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,     0,
       0,     0,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
       0,   274,   275,   276,   277,     0,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   284,   285,     0,     0,   286,
     287,     0,   288,     0,   289,     0,   290,   291,   292,   293,
     294,   295,   296,   297,     0,     0,   298,   299,     0,     0,
     300,   301,   302,   303,     0,     0,     0,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,     0,     0,   357,   358,   359,
     360,   361,   362,   363,   364,   365,     0,   366,   367,     0,
       0,     0,   368,   369,   370,   371,     0,     0,     0,   372,
       0,     0,     0,   373,   374,   375,   376,     0,   377,   378,
     379,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,   386,   387,
       0,     0,   388,   389,     0,   390,   391,   392,   393,   394,
       0,     0,   395,   396,     0,   397,   398,     0,     0,   399,
     400,     0,   133,   401,   402,     0,   403,   404,   405,   406,
       0,     0,     0,     0,     0,   407,   408,   409,     0,     0,
       0,   410,   411,   412,   413,     0,   414,   415,     0,   416,
     417,     0,   418,   419,     0,     0,   420,     0,     0,   421,
       0,   422,     0,   423,   424,     0,     0,     0,     0,     0,
       0,   425,     0,     0,   426,     0,     0,     0,   427,   428,
     429,   430,     0,     0,     0,     0,   431,   432,     0,   433,
     434,     0,   136,   435,   137,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,   143,     0,   144,
     145,   146,   147,   148,   149,   150,     0,   151,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,     0,     0,
     160,     0,   161,   162,     0,   163,     0,   164,   165,   166,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   180,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,   188,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,     0,     0,
     212,   213,   214,     0,     0,   215,     0,   216,   217,   218,
       0,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,   229,   230,     0,   231,     0,     0,   232,   233,
       0,     0,     0,   234,   235,   236,   237,     0,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,     0,   251,   252,   551,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,   304,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,     0,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,     0,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,     0,   357,   358,
     359,   360,   361,   362,   363,   364,   365,     0,   366,   367,
       0,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,     0,     0,   388,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,   133,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,   410,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,   136,   435,   137,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,  2490,     0,   143,     0,
     144,   145,   146,   147,   148,   149,   150,     0,   151,     0,
       0,     0,   152,     0,     0,     0,   153,     0,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,     0,
       0,   160,     0,   161,   162,     0,   163,     0,   164,   165,
     166,   167,   168,     0,   169,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   180,     0,
     181,     0,     0,     0,     0,   182,     0,     0,     0,     0,
       0,     0,   183,   184,   185,     0,     0,   186,     0,     0,
       0,     0,   187,   188,     0,     0,     0,     0,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,     0,
       0,   212,   213,   214,     0,     0,   215,     0,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,     0,
     242,   243,     0,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
     253,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,     0,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,     0,   274,   275,   276,   277,     0,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   284,   285,     0,
       0,   286,   287,     0,   288,     0,   289,     0,   290,   291,
     292,   293,   294,   295,   296,   297,     0,     0,   298,   299,
       0,     0,   300,   301,   302,   303,     0,     0,     0,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,     0,   357,
     358,   359,   360,   361,   362,   363,   364,   365,     0,   366,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,     0,     0,   388,   389,     0,   390,   391,   392,
     393,   394,     0,     0,   395,   396,     0,   397,   398,     0,
       0,   399,   400,     0,   133,   401,   402,     0,   403,   404,
     405,   406,     0,     0,     0,     0,     0,   407,   408,   409,
       0,     0,     0,   410,   411,   412,   413,     0,   414,   415,
       0,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   423,   424,     0,     0,     0,
       0,     0,     0,   425,     0,     0,   426,     0,     0,     0,
     427,   428,   429,   430,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,   136,   435,   137,   138,   139,   140,
     141,     0,     0,     0,     0,     0,   142,     0,     0,   143,
       0,   144,   145,   146,   147,   148,   149,   150,     0,   151,
       0,     0,     0,   152,     0,     0,     0,   153,     0,     0,
     154,   155,     0,   156,     0,   157,   158,     0,     0,   159,
       0,     0,   160,     0,   161,   162,     0,   163,     0,   164,
     165,   166,   167,   168,     0,   169,   170,     0,   171,   172,
     173,   174,   175,   176,   177,     0,   178,   179,     0,   180,
    3847,   181,     0,     0,     0,     0,   182,     0,     0,     0,
       0,     0,     0,   183,   184,   185,     0,     0,   186,     0,
       0,     0,     0,   187,   188,     0,     0,     0,     0,   189,
       0,   190,     0,     0,     0,   191,     0,   192,   193,   194,
     195,     0,     0,     0,   196,     0,     0,   197,   198,   199,
       0,     0,     0,   200,     0,   201,   202,     0,   203,   204,
     205,     0,     0,   206,     0,   207,   208,   209,   210,   211,
       0,  3848,   212,   213,   214,     0,     0,   215,     0,   216,
     217,   218,     0,     0,   219,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   224,   225,   226,   227,     0,
     228,     0,     0,     0,   229,   230,     0,   231,     0,     0,
     232,   233,     0,     0,     0,   234,   235,   236,   237,     0,
       0,   238,   239,     0,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,     0,     0,   244,     0,     0,   245,
     246,     0,     0,     0,   247,     0,     0,   248,   249,     0,
       0,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,   253,   254,     0,   255,     0,   256,     0,   257,   258,
       0,     0,     0,     0,     0,     0,     0,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
       0,   272,   273,     0,   274,   275,   276,   277,     0,   278,
     279,   280,     0,     0,     0,   281,   282,   283,   284,   285,
       0,     0,   286,   287,     0,   288,     0,   289,     0,   290,
     291,   292,   293,   294,   295,   296,   297,     0,     0,   298,
     299,     0,     0,   300,   301,   302,   303,     0,     0,     0,
     304,   305,     0,     0,     0,     0,   306,   307,   308,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,     0,   316,   317,
     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
       0,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   334,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,     0,     0,   351,
       0,   352,   353,   354,     0,   355,   356,     0,     0,     0,
     357,   358,   359,   360,   361,   362,   363,   364,   365,     0,
     366,   367,     0,     0,     0,   368,   369,   370,   371,     0,
       0,     0,   372,     0,     0,     0,   373,   374,   375,   376,
       0,   377,   378,   379,   380,     0,     0,     0,     0,     0,
       0,   381,   382,     0,   383,     0,     0,   384,     0,     0,
     385,   386,   387,     0,     0,   388,   389,     0,   390,   391,
     392,   393,   394,     0,     0,   395,   396,     0,   397,   398,
       0,     0,   399,   400,     0,     0,   401,   402,     0,   403,
     404,   405,   406,     0,     0,     0,     0,     0,   407,   408,
     409,     0,     0,     0,   410,   411,   412,   413,     0,   414,
     415,     0,   416,   417,     0,   418,   419,     0,     0,   420,
       0,     0,   421,     0,   422,     0,   423,   424,     0,     0,
       0,     0,     0,     0,   425,     0,     0,   426,     0,     0,
       0,   427,   428,   429,   430,     0,     0,     0,     0,   431,
     432,     0,   433,   434,     0,   136,   435,   137,   138,   139,
     140,   141,     0,     0,     0,     0,     0,   142,     0,     0,
     143,     0,   144,   145,   146,   147,   148,   149,   150,     0,
     151,     0,     0,     0,   152,     0,     0,     0,   153,     0,
       0,   154,   155,     0,   156,     0,   157,   158,     0,     0,
     159,     0,     0,   160,     0,   161,   162,     0,   163,     0,
     164,   165,   166,   167,   168,     0,   169,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,     0,
     180,     0,   181,     0,     0,     0,     0,   182,     0,     0,
       0,     0,     0,     0,   183,   184,   185,     0,     0,   186,
       0,     0,     0,     0,   187,   188,     0,     0,     0,     0,
     189,     0,   190,     0,     0,     0,   191,     0,   192,   193,
     194,   195,     0,     0,     0,   196,     0,     0,   197,   198,
     199,     0,     0,     0,   200,     0,   201,   202,     0,   203,
     204,   205,     0,     0,   206,     0,   207,   208,   209,   210,
     211,     0,     0,   212,   213,   214,     0,     0,   215,     0,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,   972,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,   241,     0,
       0,     0,   242,   243,     0,     0,     0,   244,     0,     0,
     245,   246,     0,     0,     0,   247,     0,     0,   248,   249,
       0,     0,   250,     0,     0,   251,   252,     0,     0,     0,
       0,     0,   253,   254,     0,   255,     0,   256,     0,   257,
     258,     0,     0,     0,     0,     0,     0,     0,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,     0,   272,   273,     0,   274,   275,   276,   277,     0,
     278,   279,   280,     0,     0,     0,   281,   282,   283,   284,
     285,     0,     0,   286,   287,     0,   288,     0,   289,     0,
     290,   291,   292,   293,   294,   295,   296,   297,     0,     0,
     298,   299,     0,     0,   300,   301,   302,   303,     0,     0,
       0,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,     0,
       0,   357,   358,   359,   360,   361,   362,   363,   364,   365,
       0,   366,   367,     0,     0,     0,   368,   369,   370,   371,
       0,     0,     0,   372,     0,     0,     0,   373,   374,   375,
     376,     0,   377,   378,   379,   380,     0,     0,     0,     0,
       0,     0,   381,   382,     0,   383,     0,     0,   384,     0,
       0,   385,   386,   387,     0,     0,   388,   389,     0,   390,
     391,   392,   393,   394,     0,     0,   395,   396,     0,   397,
     398,     0,     0,   399,   400,     0,     0,   401,   402,     0,
     403,   404,   405,   406,     0,     0,     0,     0,     0,   407,
     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
     414,   415,     0,   416,   417,     0,   418,   419,     0,     0,
     420,     0,     0,   421,     0,   422,     0,   423,   424,     0,
       0,     0,     0,     0,     0,   425,     0,     0,   426,     0,
       0,     0,   427,   428,   429,   430,     0,     0,     0,     0,
     431,   432,     0,   433,   434,     0,   136,   435,   137,   138,
     139,   140,   141,     0,     0,     0,     0,     0,   142,     0,
       0,   143,     0,   144,   145,   146,   147,   148,   149,   150,
       0,   151,     0,     0,     0,   152,     0,     0,     0,   153,
       0,     0,   154,   155,     0,   156,     0,   157,   158,     0,
       0,   159,     0,     0,   160,     0,   161,   162,     0,   163,
       0,   164,   165,   166,   167,   168,     0,   169,   170,     0,
     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
       0,   180,     0,   181,     0,     0,     0,     0,   182,     0,
       0,     0,     0,     0,     0,   183,   184,   185,     0,     0,
     186,     0,     0,     0,     0,   187,   188,     0,     0,     0,
    1354,   189,     0,   190,     0,     0,     0,   191,     0,   192,
     193,   194,   195,     0,     0,     0,   196,     0,     0,   197,
     198,   199,     0,     0,     0,   200,     0,   201,   202,     0,
     203,   204,   205,     0,     0,   206,     0,   207,   208,   209,
     210,   211,     0,     0,   212,   213,   214,     0,     0,   215,
       0,   216,   217,   218,     0,     0,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   224,   225,   226,
     227,     0,   228,     0,     0,     0,   229,   230,     0,   231,
       0,     0,   232,   233,     0,     0,     0,   234,   235,   236,
     237,     0,     0,   238,   239,     0,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,     0,     0,   244,     0,
       0,   245,   246,     0,     0,     0,   247,     0,     0,   248,
     249,     0,     0,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,   253,   254,     0,   255,     0,   256,     0,
     257,   258,     0,     0,     0,     0,     0,     0,     0,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,     0,   272,   273,     0,   274,   275,   276,   277,
       0,   278,   279,   280,     0,     0,     0,   281,   282,   283,
     284,   285,     0,     0,   286,   287,     0,   288,     0,   289,
       0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
       0,   298,   299,     0,     0,   300,   301,   302,   303,     0,
       0,     0,   304,   305,     0,     0,     0,     0,   306,   307,
     308,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,     0,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,     0,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   334,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,     0,   355,   356,     0,
       0,     0,   357,   358,   359,   360,   361,   362,   363,   364,
     365,     0,   366,   367,     0,     0,     0,   368,   369,   370,
     371,     0,     0,     0,   372,     0,     0,     0,   373,   374,
     375,   376,     0,   377,   378,   379,   380,     0,     0,     0,
       0,     0,     0,   381,   382,     0,   383,     0,     0,   384,
       0,     0,   385,   386,   387,     0,     0,   388,   389,     0,
     390,   391,   392,   393,   394,     0,     0,   395,   396,     0,
     397,   398,     0,     0,   399,   400,     0,     0,   401,   402,
       0,   403,   404,   405,   406,     0,     0,     0,     0,     0,
     407,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,   414,   415,     0,   416,   417,     0,   418,   419,     0,
       0,   420,     0,     0,   421,     0,   422,     0,   423,   424,
       0,     0,     0,     0,     0,     0,   425,     0,     0,   426,
       0,     0,     0,   427,   428,   429,   430,     0,     0,     0,
       0,   431,   432,     0,   433,   434,     0,   136,   435,   137,
     138,   139,   140,   141,     0,     0,     0,     0,     0,   142,
       0,     0,   143,     0,   144,   145,   146,   147,   148,   149,
     150,     0,   151,     0,     0,     0,   152,     0,     0,     0,
     153,     0,     0,   154,   155,     0,   156,     0,   157,   158,
       0,     0,   159,     0,     0,   160,     0,   161,   162,     0,
     163,     0,   164,   165,   166,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,     0,   180,     0,   181,     0,     0,     0,     0,   182,
       0,     0,     0,     0,     0,     0,   183,   184,   185,     0,
       0,   186,     0,     0,     0,     0,   187,   188,     0,     0,
       0,  2102,   189,     0,   190,     0,     0,     0,   191,     0,
     192,   193,   194,   195,     0,     0,     0,   196,     0,     0,
     197,   198,   199,     0,     0,     0,   200,     0,   201,   202,
       0,   203,   204,   205,     0,     0,   206,     0,   207,   208,
     209,   210,   211,     0,     0,   212,   213,   214,     0,     0,
     215,     0,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,     0,     0,   244,
       0,     0,   245,   246,     0,     0,     0,   247,     0,     0,
     248,   249,     0,     0,   250,     0,     0,   251,   252,     0,
       0,     0,     0,     0,   253,   254,     0,   255,     0,   256,
       0,   257,   258,     0,     0,     0,     0,     0,     0,     0,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,     0,   272,   273,     0,   274,   275,   276,
     277,     0,   278,   279,   280,     0,     0,     0,   281,   282,
     283,   284,   285,     0,     0,   286,   287,     0,   288,     0,
     289,     0,   290,   291,   292,   293,   294,   295,   296,   297,
       0,     0,   298,   299,     0,     0,   300,   301,   302,   303,
       0,     0,     0,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,     0,     0,   357,   358,   359,   360,   361,   362,   363,
     364,   365,     0,   366,   367,     0,     0,     0,   368,   369,
     370,   371,     0,     0,     0,   372,     0,     0,     0,   373,
     374,   375,   376,     0,   377,   378,   379,   380,     0,     0,
       0,     0,     0,     0,   381,   382,     0,   383,     0,     0,
     384,     0,     0,   385,   386,   387,     0,     0,   388,   389,
       0,   390,   391,   392,   393,   394,     0,     0,   395,   396,
       0,   397,   398,     0,     0,   399,   400,     0,     0,   401,
     402,     0,   403,   404,   405,   406,     0,     0,     0,     0,
       0,  2103,   408,   409,     0,     0,     0,   410,   411,   412,
     413,     0,   414,   415,     0,   416,   417,     0,   418,   419,
       0,     0,   420,     0,     0,   421,     0,   422,     0,   423,
     424,     0,     0,     0,     0,     0,     0,   425,     0,     0,
     426,     0,     0,     0,   427,   428,   429,   430,     0,     0,
       0,     0,   431,   432,     0,   433,   434,     0,   136,   435,
     137,   138,   139,   140,   141,     0,     0,     0,     0,     0,
     142,     0,     0,   143,     0,   144,   145,   146,   147,   148,
     149,   150,     0,   151,     0,     0,     0,   152,     0,     0,
       0,   153,     0,     0,   154,   155,     0,   156,     0,   157,
     158,     0,     0,   159,     0,     0,   160,     0,   161,   162,
       0,   163,     0,   164,   165,   166,   167,   168,     0,   169,
     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
     178,   179,     0,   180,     0,   181,     0,     0,     0,     0,
     182,     0,     0,     0,     0,     0,     0,   183,   184,   185,
       0,     0,   186,     0,     0,     0,     0,   187,   188,     0,
       0,     0,     0,   189,     0,   190,     0,     0,     0,   191,
       0,   192,   193,   194,   195,     0,     0,     0,   196,     0,
       0,   197,   198,   199,     0,     0,     0,   200,     0,   201,
     202,     0,   203,   204,   205,     0,     0,   206,     0,   207,
     208,   209,   210,   211,     0,     0,   212,   213,   214,     0,
       0,   215,     0,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,     0,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,     0,     0,
     244,     0,     0,   245,   246,     0,     0,     0,   247,     0,
       0,   248,   249,     0,     0,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,   253,   254,     0,   255,     0,
     256,     0,   257,   258,     0,     0,     0,     0,     0,     0,
       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,     0,   272,   273,     0,   274,   275,
     276,   277,     0,   278,   279,   280,     0,     0,     0,   281,
     282,   283,   284,   285,     0,     0,   286,   287,     0,   288,
       0,   289,     0,   290,   291,   292,   293,   294,   295,   296,
     297,     0,     0,   298,   299,     0,     0,   300,   301,   302,
     303,     0,     0,     0,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,  2269,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,     0,     0,   357,   358,   359,   360,   361,   362,
     363,   364,   365,     0,   366,   367,     0,     0,     0,   368,
     369,   370,   371,     0,     0,     0,   372,     0,     0,     0,
     373,   374,   375,   376,     0,   377,   378,   379,   380,     0,
       0,     0,     0,     0,     0,   381,   382,     0,   383,     0,
       0,   384,     0,     0,   385,   386,   387,     0,     0,   388,
     389,     0,   390,   391,   392,   393,   394,     0,     0,   395,
     396,     0,   397,   398,     0,     0,   399,   400,     0,     0,
     401,   402,     0,   403,   404,   405,   406,     0,     0,     0,
       0,     0,   407,   408,   409,     0,     0,     0,   410,   411,
     412,   413,     0,   414,   415,     0,   416,   417,     0,   418,
     419,     0,     0,   420,     0,     0,   421,     0,   422,     0,
     423,   424,     0,     0,     0,     0,     0,     0,   425,     0,
       0,   426,     0,     0,     0,   427,   428,   429,   430,     0,
       0,     0,     0,   431,   432,     0,   433,   434,     0,   136,
     435,   137,   138,   139,   140,   141,  2586,     0,     0,     0,
       0,   142,     0,     0,   143,     0,   144,   145,   146,   147,
     148,   149,   150,     0,   151,     0,     0,     0,   152,     0,
       0,     0,   153,     0,     0,   154,   155,     0,   156,     0,
     157,   158,     0,     0,   159,     0,     0,   160,     0,   161,
     162,     0,   163,     0,   164,   165,   166,   167,   168,     0,
     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
       0,   178,   179,     0,   180,     0,   181,     0,     0,     0,
       0,   182,     0,     0,     0,     0,     0,     0,   183,   184,
     185,     0,     0,   186,     0,     0,     0,     0,   187,   188,
       0,     0,     0,     0,   189,     0,   190,     0,     0,     0,
     191,     0,   192,   193,   194,   195,     0,     0,     0,   196,
       0,     0,   197,   198,   199,     0,     0,     0,   200,     0,
     201,   202,     0,   203,   204,   205,     0,     0,   206,     0,
     207,   208,   209,   210,   211,     0,     0,   212,   213,   214,
       0,     0,   215,     0,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,   241,     0,     0,     0,   242,   243,     0,     0,
       0,   244,     0,     0,   245,   246,     0,     0,     0,   247,
       0,     0,   248,   249,     0,     0,   250,     0,     0,   251,
     252,     0,     0,     0,     0,     0,   253,   254,     0,   255,
       0,   256,     0,   257,   258,     0,     0,     0,     0,     0,
       0,     0,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,     0,   272,   273,     0,   274,
     275,   276,   277,     0,   278,   279,   280,     0,     0,     0,
     281,   282,   283,   284,   285,     0,     0,   286,   287,     0,
     288,     0,   289,     0,   290,   291,   292,   293,   294,   295,
     296,   297,     0,     0,   298,   299,     0,     0,   300,   301,
     302,   303,     0,     0,     0,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,     0,     0,   357,   358,   359,   360,   361,
     362,   363,   364,   365,     0,   366,   367,     0,     0,     0,
     368,   369,   370,   371,     0,     0,     0,   372,     0,     0,
       0,   373,   374,   375,   376,     0,   377,   378,   379,   380,
       0,     0,     0,     0,     0,     0,   381,   382,     0,   383,
       0,     0,   384,     0,     0,   385,   386,   387,     0,     0,
     388,   389,     0,   390,   391,   392,   393,   394,     0,     0,
     395,   396,     0,   397,   398,     0,     0,   399,   400,     0,
       0,   401,   402,     0,   403,   404,   405,   406,     0,     0,
       0,     0,     0,   407,   408,   409,     0,     0,     0,   410,
     411,   412,   413,     0,   414,   415,     0,   416,   417,     0,
     418,   419,     0,     0,   420,     0,     0,   421,     0,   422,
       0,   423,   424,     0,     0,     0,     0,     0,     0,   425,
       0,     0,   426,     0,     0,     0,   427,   428,   429,   430,
       0,     0,     0,     0,   431,   432,     0,   433,   434,     0,
     136,   435,   137,   138,   139,   140,   141,     0,     0,     0,
       0,     0,   142,     0,     0,   143,     0,   144,   145,   146,
     147,   148,   149,   150,     0,   151,     0,     0,     0,   152,
       0,     0,     0,   153,     0,     0,   154,   155,     0,   156,
       0,   157,   158,     0,     0,   159,     0,     0,   160,     0,
     161,   162,     0,   163,     0,   164,   165,   166,   167,   168,
       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
     177,     0,   178,   179,     0,   180,     0,   181,     0,     0,
       0,     0,   182,     0,     0,     0,     0,     0,     0,   183,
     184,   185,     0,     0,   186,     0,     0,     0,     0,   187,
     188,     0,     0,     0,     0,   189,     0,   190,     0,     0,
       0,   191,     0,   192,   193,   194,   195,     0,     0,     0,
     196,     0,     0,   197,   198,   199,     0,     0,     0,   200,
       0,   201,   202,     0,   203,   204,   205,     0,     0,   206,
       0,   207,   208,   209,   210,   211,     0,     0,   212,   213,
     214,     0,     0,   215,     0,   216,   217,   218,     0,     0,
     219,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   224,   225,   226,   227,     0,   228,     0,     0,     0,
     229,   230,     0,   231,     0,     0,   232,   233,     0,     0,
       0,   234,   235,   236,   237,     0,     0,   238,   239,     0,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
       0,     0,   244,     0,     0,   245,   246,     0,     0,     0,
     247,     0,     0,   248,   249,     0,     0,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,   253,   254,     0,
     255,     0,   256,     0,   257,   258,     0,     0,     0,     0,
       0,     0,     0,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,     0,   272,   273,     0,
     274,   275,   276,   277,     0,   278,   279,   280,     0,     0,
       0,   281,   282,   283,   284,   285,     0,     0,   286,   287,
       0,   288,     0,   289,     0,   290,   291,   292,   293,   294,
     295,   296,   297,     0,     0,   298,   299,     0,     0,   300,
     301,   302,   303,     0,     0,     0,   304,   305,     0,     0,
       0,     0,   306,   307,   308,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,     0,   316,   317,   318,   319,   320,   321,
     322,   323,   324,   325,   326,   327,     0,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   334,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
       0,   355,   356,     0,     0,     0,   357,   358,   359,   360,
     361,   362,   363,   364,   365,     0,   366,   367,     0,     0,
       0,   368,   369,   370,   371,     0,     0,     0,   372,     0,
       0,     0,   373,   374,   375,   376,     0,   377,   378,   379,
     380,     0,     0,     0,     0,     0,     0,   381,   382,     0,
     383,     0,     0,   384,     0,     0,   385,   386,   387,     0,
       0,   388,   389,     0,   390,   391,   392,   393,   394,     0,
       0,   395,   396,     0,   397,   398,     0,     0,   399,   400,
       0,   133,   401,   402,     0,   403,   404,   405,   406,     0,
       0,     0,     0,     0,   407,   408,   409,     0,     0,     0,
     410,   411,   412,   413,     0,   414,   415,     0,   416,   417,
       0,   418,   419,     0,     0,   420,     0,     0,   421,     0,
     422,     0,   423,   424,     0,     0,     0,     0,     0,     0,
     425,     0,     0,   426,     0,     0,     0,   427,   428,   429,
     430,     0,     0,     0,     0,   431,   432,     0,   433,   434,
       0,   136,   435,   137,   138,   139,   140,   141,     0,     0,
       0,     0,     0,   142,     0,     0,   143,     0,   144,   145,
     146,   147,   148,   149,   150,     0,   151,     0,     0,     0,
     152,     0,     0,     0,   153,     0,     0,   154,   155,     0,
     156,     0,   157,   158,     0,     0,   159,     0,     0,   160,
       0,   161,   162,     0,   163,     0,   164,   165,   166,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,     0,   180,     0,   181,     0,
       0,     0,     0,   182,     0,     0,     0,     0,     0,     0,
     183,   184,   185,     0,     0,   186,     0,     0,     0,     0,
     187,   188,     0,     0,     0,  2102,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,   196,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,   201,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,   211,     0,     0,   212,
     213,   214,     0,     0,   215,     0,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,     0,   242,   243,
       0,     0,     0,   244,     0,     0,   245,   246,     0,     0,
       0,   247,     0,     0,   248,   249,     0,     0,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,   253,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,     0,
       0,     0,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
       0,   274,   275,   276,   277,     0,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   284,   285,     0,     0,   286,
     287,     0,   288,     0,   289,     0,   290,   291,   292,   293,
     294,   295,   296,   297,     0,     0,   298,   299,     0,     0,
     300,   301,   302,   303,     0,     0,     0,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,     0,     0,   357,   358,   359,
     360,   361,   362,   363,   364,   365,     0,   366,   367,     0,
       0,     0,   368,   369,   370,   371,     0,     0,     0,   372,
       0,     0,     0,   373,   374,   375,   376,     0,   377,   378,
     379,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,   386,   387,
       0,     0,   388,   389,     0,   390,   391,   392,   393,   394,
       0,     0,   395,   396,     0,   397,   398,     0,     0,   399,
     400,     0,     0,   401,   402,     0,   403,   404,   405,   406,
       0,     0,     0,     0,     0,   407,   408,   409,     0,     0,
       0,   410,   411,   412,   413,     0,   414,   415,     0,   416,
     417,     0,   418,   419,     0,     0,   420,     0,     0,   421,
       0,   422,     0,   423,   424,     0,     0,     0,     0,     0,
       0,   425,     0,     0,   426,     0,     0,     0,   427,   428,
     429,   430,     0,     0,     0,     0,   431,   432,     0,   433,
     434,     0,   136,   435,   137,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,   143,     0,   144,
     145,   146,   147,   148,   149,   150,     0,   151,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,   157,   158,     0,     0,   159,     0,     0,
     160,     0,   161,   162,     0,   163,     0,   164,   165,   166,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,     0,   180,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,   188,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,   196,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,   201,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,   211,     0,     0,
     212,   213,   214,     0,     0,   215,     0,   216,   217,   218,
       0,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,   229,   230,     0,   231,     0,     0,   232,   233,
       0,     0,     0,   234,   235,   236,   237,     0,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,     0,     0,   244,     0,     0,   245,   246,     0,
       0,     0,   247,     0,     0,   248,   249,     0,     0,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,     0,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,   304,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,     0,   316,   317,   318,   319,
     320,   321,   322,   323,   324,   325,   326,   327,     0,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,     0,   355,   356,     0,     0,     0,   357,   358,
     359,   360,   361,   362,   363,   364,   365,     0,   366,   367,
       0,     0,     0,   368,   369,   370,   371,     0,     0,     0,
     372,     0,     0,     0,   373,   374,   375,   376,     0,   377,
     378,   379,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,   386,
     387,     0,     0,   388,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,     0,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,   410,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,   418,   419,     0,     0,   420,     0,     0,
     421,     0,   422,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,     0,     0,   431,   432,     0,
     433,   434,     0,   136,   435,   137,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,     0,     0,   143,     0,
     144,   145,   146,   147,   148,   149,   150,     0,   151,     0,
       0,     0,   152,     0,     0,     0,   153,     0,     0,   154,
     155,     0,   156,     0,   157,   158,     0,     0,   159,     0,
       0,   160,     0,   161,   162,     0,   163,     0,   164,   165,
     166,   167,   168,     0,   169,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,     0,   180,     0,
     181,     0,     0,     0,     0,   182,     0,     0,     0,     0,
       0,     0,   183,   184,   185,     0,     0,   186,     0,     0,
       0,     0,   187,   188,     0,     0,     0,     0,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,   196,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,   201,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,   211,     0,
       0,   212,   213,   214,     0,     0,   215,     0,   216,  1452,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,     0,
     242,   243,     0,     0,     0,   244,     0,     0,   245,   246,
       0,     0,     0,   247,     0,     0,   248,   249,     0,     0,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
     253,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,     0,     0,     0,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,     0,   274,   275,   276,   277,     0,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   284,   285,     0,
       0,   286,   287,     0,   288,     0,   289,     0,   290,   291,
     292,   293,   294,   295,   296,   297,     0,     0,   298,   299,
       0,     0,   300,  1453,   302,   303,     0,     0,     0,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,     0,     0,   357,
     358,   359,   360,   361,   362,   363,   364,   365,     0,   366,
     367,     0,     0,     0,   368,   369,   370,   371,     0,     0,
       0,   372,     0,     0,     0,   373,   374,   375,   376,     0,
     377,   378,   379,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
     386,   387,     0,     0,   388,   389,     0,   390,   391,   392,
     393,   394,     0,     0,   395,   396,     0,   397,   398,     0,
       0,   399,   400,     0,     0,   401,   402,     0,   403,   404,
     405,   406,     0,     0,     0,     0,     0,   407,   408,   409,
       0,     0,     0,   410,   411,   412,   413,     0,   414,   415,
       0,   416,   417,     0,   418,   419,     0,     0,   420,     0,
       0,   421,     0,   422,     0,   423,   424,     0,     0,     0,
       0,     0,     0,   425,     0,     0,   426,     0,     0,     0,
     427,   428,   429,   430,     0,     0,     0,     0,   431,   432,
       0,   433,   434,     0,   136,   435,   137,   138,   139,   140,
     141,     0,     0,     0,     0,     0,   142,     0,     0,     0,
       0,   144,   145,   146,   147,   148,   149,     0,     0,  -245,
       0,     0,     0,   152,     0,     0,     0,   153,     0,     0,
     154,   155,     0,   156,     0,     0,     0,     0,     0,   159,
    3482,     0,   160,     0,   161,     0,     0,     0,     0,   164,
     165,  3483,   167,   168,     0,   169,   170,     0,     0,   172,
       0,   174,   175,   176,   177,     0,   178,   179,     0,     0,
       0,   181,     0,     0,     0,     0,   182,     0,     0,     0,
       0,     0,     0,   183,   184,   185,     0,     0,   186,     0,
       0,     0,     0,   187,     0,     0,     0,     0,     0,   189,
       0,   190,     0,     0,     0,   191,     0,   192,   193,   194,
     195,     0,     0,     0,     0,     0,     0,   197,   198,   199,
       0,  -260,  -260,   200,     0,  -260,   202,     0,   203,   204,
     205,     0,     0,   206,     0,   207,   208,   209,   210,     0,
       0,     0,   212,   213,   214,     0,     0,   215,  3484,   216,
     217,   218,     0,     0,     0,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   224,   225,   226,   227,     0,
     228,     0,     0,     0,     0,   230,     0,     0,     0,     0,
       0,   233,     0,     0,     0,   234,   235,   236,   237,  3485,
       0,   238,   239,     0,     0,   240,     0,   241,     0,     0,
       0,   242,     0,     0,     0,     0,   244,     0,     0,   245,
     246,  3486,     0,     0,   247,     0,     0,     0,   249,     0,
       0,   250,  3487,     0,   251,   252,     0,     0,     0,     0,
       0,   253,   254,     0,   255,     0,   256,     0,   257,   258,
       0,     0,     0,     0,  -245,     0,     0,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
       0,   272,   273,     0,   274,   275,   276,   277,     0,   278,
     279,   280,     0,     0,     0,   281,   282,   283,   284,   285,
       0,     0,   286,   287,     0,   288,     0,   289,     0,   290,
     291,   292,   293,   294,   295,   296,   297,     0,     0,   298,
     299,     0,     0,   300,   301,   302,   303,     0,     0,     0,
       0,   305,     0,     0,     0,     0,   306,   307,   308,     0,
     309,   310,  3488,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   314,   315,     0,     0,   317,
     318,   319,     0,   321,   322,   323,   324,   325,   326,     0,
       0,     0,     0,   329,   330,     0,   331,     0,   332,   333,
       0,   334,   335,   336,     0,     0,     0,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,     0,     0,   348,     0,   350,  -245,     0,   351,
       0,     0,   353,     0,     0,   355,   356,  3489,     0,     0,
       0,   358,   359,   360,   361,   362,   363,     0,   365,     0,
     366,     0,     0,     0,     0,   368,   369,   370,     0,     0,
       0,     0,   372,     0,     0,     0,   373,     0,   375,     0,
       0,   377,     0,     0,   380,     0,     0,     0,     0,     0,
       0,   381,   382,     0,   383,     0,     0,   384,     0,     0,
     385,     0,   387,     0,     0,     0,   389,     0,   390,   391,
     392,   393,   394,     0,     0,   395,   396,     0,   397,   398,
       0,     0,   399,   400,     0,     0,   401,   402,     0,   403,
     404,   405,   406,     0,     0,     0,     0,     0,   407,   408,
     409,     0,     0,     0,     0,   411,   412,   413,     0,   414,
     415,     0,   416,   417,     0,     0,     0,     0,     0,   420,
       0,     0,   421,     0,     0,     0,   423,   424,     0,     0,
       0,     0,     0,     0,   425,     0,     0,   426,     0,     0,
       0,   427,   428,   429,   430,     0,     0,  -245,     0,   431,
       0,     0,   433,     0,     0,   136,   435,   137,   138,   139,
     140,   141,     0,     0,     0,     0,     0,   142,     0,     0,
       0,     0,   144,   145,   146,   147,   148,   149,     0,     0,
    -245,     0,     0,     0,   152,     0,     0,     0,   153,     0,
       0,   154,   155,     0,   156,     0,     0,     0,     0,     0,
     159,  3482,     0,   160,     0,   161,     0,     0,     0,     0,
     164,   165,  3483,   167,   168,     0,   169,   170,     0,     0,
     172,     0,   174,   175,   176,   177,     0,   178,   179,     0,
       0,     0,   181,     0,     0,     0,     0,   182,     0,     0,
       0,     0,     0,     0,   183,   184,   185,     0,     0,   186,
       0,     0,     0,     0,   187,     0,     0,     0,     0,     0,
     189,     0,   190,     0,     0,     0,   191,     0,   192,   193,
     194,   195,     0,     0,     0,     0,     0,     0,   197,   198,
     199,     0,  -281,     0,   200,     0,  -281,   202,     0,   203,
     204,   205,     0,     0,   206,     0,   207,   208,   209,   210,
       0,     0,     0,   212,   213,   214,     0,     0,   215,  3484,
     216,   217,   218,     0,     0,     0,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,     0,   230,     0,     0,     0,
       0,     0,   233,     0,     0,     0,   234,   235,   236,   237,
    3485,     0,   238,   239,     0,     0,   240,     0,   241,     0,
       0,     0,   242,     0,     0,     0,     0,   244,     0,     0,
     245,   246,  3486,     0,     0,   247,     0,     0,     0,   249,
       0,     0,   250,  3487,     0,   251,   252,     0,     0,     0,
       0,     0,   253,   254,     0,   255,     0,   256,     0,   257,
     258,     0,     0,     0,     0,  -245,     0,     0,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,     0,   272,   273,     0,   274,   275,   276,   277,     0,
     278,   279,   280,     0,     0,     0,   281,   282,   283,   284,
     285,     0,     0,   286,   287,     0,   288,     0,   289,     0,
     290,   291,   292,   293,   294,   295,   296,   297,     0,     0,
     298,   299,     0,     0,   300,   301,   302,   303,     0,     0,
       0,     0,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,  3488,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   314,   315,     0,     0,
     317,   318,   319,     0,   321,   322,   323,   324,   325,   326,
       0,     0,     0,     0,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,     0,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,     0,     0,   348,     0,   350,  -245,     0,
     351,     0,     0,   353,     0,     0,   355,   356,  3489,     0,
       0,     0,   358,   359,   360,   361,   362,   363,     0,   365,
       0,   366,     0,     0,     0,     0,   368,   369,   370,     0,
       0,     0,     0,   372,     0,     0,     0,   373,     0,   375,
       0,     0,   377,     0,     0,   380,     0,     0,     0,     0,
       0,     0,   381,   382,     0,   383,     0,     0,   384,     0,
       0,   385,     0,   387,     0,     0,     0,   389,     0,   390,
     391,   392,   393,   394,     0,     0,   395,   396,     0,   397,
     398,     0,     0,   399,   400,     0,     0,   401,   402,     0,
     403,   404,   405,   406,     0,     0,     0,     0,     0,   407,
     408,   409,     0,     0,     0,     0,   411,   412,   413,     0,
     414,   415,     0,   416,   417,     0,     0,     0,     0,     0,
     420,     0,     0,   421,     0,     0,     0,   423,   424,     0,
       0,     0,     0,     0,     0,   425,     0,     0,   426,     0,
       0,     0,   427,   428,   429,   430,  -281,     0,  -245,     0,
     431,     0,     0,   433,     0,     0,   136,   435,   137,   138,
     139,   140,   141,     0,     0,     0,     0,     0,   142,     0,
       0,     0,     0,   144,   145,   146,   147,   148,   149,     0,
       0,  -245,     0,     0,     0,   152,     0,     0,     0,   153,
       0,     0,   154,   155,     0,   156,     0,     0,     0,     0,
       0,   159,  3482,     0,   160,     0,   161,     0,     0,     0,
       0,   164,   165,  3483,   167,   168,     0,   169,   170,     0,
       0,   172,     0,   174,   175,   176,   177,     0,   178,   179,
       0,     0,     0,   181,     0,     0,     0,     0,   182,     0,
       0,     0,     0,     0,     0,   183,   184,   185,     0,     0,
     186,     0,     0,     0,     0,   187,     0,     0,     0,     0,
       0,   189,     0,   190,     0,     0,     0,   191,     0,   192,
     193,   194,   195,     0,     0,     0,     0,     0,     0,   197,
     198,   199,     0,  -278,     0,   200,     0,  -278,   202,     0,
     203,   204,   205,     0,     0,   206,     0,   207,   208,   209,
     210,     0,     0,     0,   212,   213,   214,     0,     0,   215,
    3484,   216,   217,   218,     0,     0,     0,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   224,   225,   226,
     227,     0,   228,     0,     0,     0,     0,   230,     0,     0,
       0,     0,     0,   233,     0,     0,     0,   234,   235,   236,
     237,  3485,     0,   238,   239,     0,     0,   240,     0,   241,
       0,     0,     0,   242,     0,     0,     0,     0,   244,     0,
       0,   245,   246,  3486,     0,     0,   247,     0,     0,     0,
     249,     0,     0,   250,  3487,     0,   251,   252,     0,     0,
       0,     0,     0,   253,   254,     0,   255,     0,   256,     0,
     257,   258,     0,     0,     0,     0,  -245,     0,     0,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,     0,   272,   273,     0,   274,   275,   276,   277,
       0,   278,   279,   280,     0,     0,     0,   281,   282,   283,
     284,   285,     0,     0,   286,   287,     0,   288,     0,   289,
       0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
       0,   298,   299,     0,     0,   300,   301,   302,   303,     0,
       0,     0,     0,   305,     0,     0,     0,     0,   306,   307,
     308,     0,   309,   310,  3488,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   314,   315,     0,
       0,   317,   318,   319,     0,   321,   322,   323,   324,   325,
     326,     0,     0,     0,     0,   329,   330,     0,   331,     0,
     332,   333,     0,   334,   335,   336,     0,     0,     0,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,     0,     0,   348,     0,   350,  -245,
       0,   351,     0,     0,   353,     0,     0,   355,   356,  3489,
       0,     0,     0,   358,   359,   360,   361,   362,   363,     0,
     365,     0,   366,     0,     0,     0,     0,   368,   369,   370,
       0,     0,     0,     0,   372,     0,     0,     0,   373,     0,
     375,     0,     0,   377,     0,     0,   380,     0,     0,     0,
       0,     0,     0,   381,   382,     0,   383,     0,     0,   384,
       0,     0,   385,     0,   387,     0,     0,     0,   389,     0,
     390,   391,   392,   393,   394,     0,     0,   395,   396,     0,
     397,   398,     0,     0,   399,   400,     0,     0,   401,   402,
       0,   403,   404,   405,   406,     0,     0,     0,     0,     0,
     407,   408,   409,     0,     0,     0,     0,   411,   412,   413,
       0,   414,   415,     0,   416,   417,     0,     0,     0,     0,
       0,   420,     0,     0,   421,     0,     0,     0,   423,   424,
       0,     0,     0,     0,     0,     0,   425,     0,     0,   426,
       0,     0,     0,   427,   428,   429,   430,  -278,     0,  -245,
       0,   431,     0,     0,   433,     0,     0,   136,   435,   137,
     138,   139,   140,   141,     0,     0,     0,     0,     0,   142,
       0,     0,     0,     0,   144,   145,   146,   147,   148,   149,
       0,     0,  -245,     0,     0,     0,   152,     0,     0,     0,
     153,     0,     0,   154,   155,     0,   156,     0,     0,     0,
       0,     0,   159,  3482,     0,   160,     0,   161,     0,     0,
       0,     0,   164,   165,  3483,   167,   168,     0,   169,   170,
       0,     0,   172,     0,   174,   175,   176,   177,     0,   178,
     179,     0,     0,     0,   181,     0,     0,     0,     0,   182,
       0,     0,     0,     0,     0,     0,   183,   184,   185,     0,
       0,   186,     0,     0,     0,     0,   187,     0,     0,     0,
       0,     0,   189,     0,   190,     0,     0,     0,   191,     0,
     192,   193,   194,   195,     0,     0,     0,     0,     0,     0,
     197,   198,   199,     0,     0,     0,   200,     0,  3764,   202,
       0,   203,   204,   205,     0,     0,   206,     0,   207,   208,
     209,   210,     0,     0,     0,   212,   213,   214,     0,     0,
     215,  3484,   216,   217,   218,     0,     0,     0,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,     0,   230,     0,
       0,     0,     0,     0,   233,     0,     0,     0,   234,   235,
     236,   237,  3485,     0,   238,   239,     0,     0,   240,     0,
     241,     0,     0,     0,   242,     0,     0,     0,     0,   244,
       0,     0,   245,   246,  3486,     0,     0,   247,     0,     0,
       0,   249,     0,     0,   250,  3487,     0,   251,   252,     0,
       0,     0,     0,     0,   253,   254,     0,   255,     0,   256,
       0,   257,   258,     0,     0,     0,     0,  -245,     0,     0,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,     0,   272,   273,     0,   274,   275,   276,
     277,     0,   278,   279,   280,     0,     0,     0,   281,   282,
     283,   284,   285,     0,     0,   286,   287,     0,   288,     0,
     289,     0,   290,   291,   292,   293,   294,   295,   296,   297,
       0,     0,   298,   299,     0,     0,   300,   301,   302,   303,
       0,     0,     0,     0,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,  3488,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   314,   315,
       0,     0,   317,   318,   319,     0,   321,   322,   323,   324,
     325,   326,     0,     0,     0,     0,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,     0,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,     0,     0,   348,     0,   350,
    -245,     0,   351,     0,     0,   353,     0,     0,   355,   356,
    3489,     0,     0,     0,   358,   359,   360,   361,   362,   363,
       0,   365,     0,   366,     0,     0,     0,     0,   368,   369,
     370,     0,     0,     0,     0,   372,     0,     0,     0,   373,
       0,   375,     0,     0,   377,     0,     0,   380,     0,     0,
       0,     0,     0,     0,   381,   382,     0,   383,     0,     0,
     384,     0,     0,   385,     0,   387,     0,     0,     0,   389,
       0,   390,   391,   392,   393,   394,     0,     0,   395,   396,
       0,   397,   398,     0,     0,   399,   400,     0,     0,   401,
     402,     0,   403,   404,   405,   406,     0,     0,     0,     0,
       0,   407,   408,   409,     0,     0,     0,     0,   411,   412,
     413,     0,   414,   415,     0,   416,   417,     0,     0,     0,
       0,     0,   420,     0,     0,   421,     0,     0,     0,   423,
     424,     0,     0,     0,     0,     0,     0,   425,     0,     0,
     426,     0,     0,     0,   427,   428,   429,   430,     0,     0,
    -245,     0,   431,     0,     0,   433,     0,     0,   136,   435,
     137,   138,   139,   140,   141,     0,     0,     0,     0,     0,
     142,     0,     0,     0,     0,   144,   145,   146,   147,   148,
     149,     0,     0,  -245,     0,     0,     0,   152,     0,     0,
       0,   153,     0,     0,   154,   155,     0,   156,     0,     0,
       0,     0,     0,   159,  3482,     0,   160,     0,   161,     0,
       0,     0,     0,   164,   165,  3483,   167,   168,     0,   169,
     170,     0,     0,   172,     0,   174,   175,   176,   177,     0,
     178,   179,     0,     0,     0,   181,     0,     0,     0,     0,
     182,     0,     0,     0,     0,     0,     0,   183,   184,   185,
       0,     0,   186,     0,     0,     0,     0,   187,     0,     0,
       0,     0,     0,   189,     0,   190,     0,     0,     0,   191,
       0,   192,   193,   194,   195,     0,     0,     0,     0,     0,
       0,   197,   198,   199,     0,     0,     0,   200,     0,  -283,
     202,     0,   203,   204,   205,     0,     0,   206,     0,   207,
     208,   209,   210,     0,     0,     0,   212,   213,   214,     0,
       0,   215,  3484,   216,   217,   218,     0,     0,     0,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,     0,   230,
       0,     0,     0,     0,     0,   233,     0,     0,     0,   234,
     235,   236,   237,  3485,     0,   238,   239,     0,     0,   240,
       0,   241,     0,     0,     0,   242,     0,     0,     0,     0,
     244,     0,     0,   245,   246,  3486,     0,     0,   247,     0,
       0,     0,   249,     0,     0,   250,  3487,     0,   251,   252,
       0,     0,     0,     0,     0,   253,   254,     0,   255,     0,
     256,     0,   257,   258,     0,     0,     0,     0,  -245,     0,
       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,     0,   272,   273,     0,   274,   275,
     276,   277,     0,   278,   279,   280,     0,     0,     0,   281,
     282,   283,   284,   285,     0,     0,   286,   287,     0,   288,
       0,   289,     0,   290,   291,   292,   293,   294,   295,   296,
     297,     0,     0,   298,   299,     0,     0,   300,   301,   302,
     303,     0,     0,     0,     0,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,  3488,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   314,
     315,     0,     0,   317,   318,   319,     0,   321,   322,   323,
     324,   325,   326,     0,     0,     0,     0,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
       0,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,     0,     0,   348,     0,
     350,  -245,     0,   351,     0,     0,   353,     0,     0,   355,
     356,  3489,     0,     0,     0,   358,   359,   360,   361,   362,
     363,     0,   365,     0,   366,     0,     0,     0,     0,   368,
     369,   370,     0,     0,     0,     0,   372,     0,     0,     0,
     373,     0,   375,     0,     0,   377,     0,     0,   380,     0,
       0,     0,     0,     0,     0,   381,   382,     0,   383,     0,
       0,   384,     0,     0,   385,     0,   387,     0,     0,     0,
     389,     0,   390,   391,   392,   393,   394,     0,     0,   395,
     396,     0,   397,   398,     0,     0,   399,   400,     0,     0,
     401,   402,     0,   403,   404,   405,   406,     0,     0,     0,
       0,     0,   407,   408,   409,     0,     0,     0,     0,   411,
     412,   413,     0,   414,   415,     0,   416,   417,     0,     0,
       0,     0,     0,   420,     0,     0,   421,     0,     0,     0,
     423,   424,     0,     0,     0,     0,     0,     0,   425,     0,
       0,   426,     0,     0,     0,   427,   428,   429,   430,     0,
       0,  -245,     0,   431,     0,     0,   433,     0,     0,   136,
     435,   137,   138,   139,   140,   141,     0,     0,     0,     0,
       0,   142,     0,     0,     0,     0,   144,   145,   146,   147,
     148,   149,     0,     0,  -245,     0,     0,     0,   152,     0,
       0,     0,   153,     0,     0,   154,   155,     0,   156,     0,
       0,     0,     0,     0,   159,  3482,     0,   160,     0,   161,
       0,     0,     0,     0,   164,   165,  3483,   167,   168,     0,
     169,   170,     0,     0,   172,     0,   174,   175,   176,   177,
       0,   178,   179,     0,     0,     0,   181,     0,     0,     0,
       0,   182,     0,     0,     0,     0,     0,     0,   183,   184,
     185,     0,     0,   186,     0,     0,     0,     0,   187,     0,
       0,     0,     0,     0,   189,     0,   190,     0,     0,     0,
     191,     0,   192,   193,   194,   195,     0,     0,     0,     0,
       0,     0,   197,   198,   199,     0,     0,     0,   200,     0,
    3852,   202,     0,   203,   204,   205,     0,     0,   206,     0,
     207,   208,   209,   210,     0,     0,     0,   212,   213,   214,
       0,     0,   215,  3484,   216,   217,   218,     0,     0,     0,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,     0,
     230,     0,     0,     0,     0,     0,   233,     0,     0,     0,
     234,   235,   236,   237,  3485,     0,   238,   239,     0,     0,
     240,     0,   241,     0,     0,     0,   242,     0,     0,     0,
       0,   244,     0,     0,   245,   246,  3486,     0,     0,   247,
       0,     0,     0,   249,     0,     0,   250,  3487,     0,   251,
     252,     0,     0,     0,     0,     0,   253,   254,     0,   255,
       0,   256,     0,   257,   258,     0,     0,     0,     0,  -245,
       0,     0,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,     0,   272,   273,     0,   274,
     275,   276,   277,     0,   278,   279,   280,     0,     0,     0,
     281,   282,   283,   284,   285,     0,     0,   286,   287,     0,
     288,     0,   289,     0,   290,   291,   292,   293,   294,   295,
     296,   297,     0,     0,   298,   299,     0,     0,   300,   301,
     302,   303,     0,     0,     0,     0,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,  3488,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     314,   315,     0,     0,   317,   318,   319,     0,   321,   322,
     323,   324,   325,   326,     0,     0,     0,     0,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,     0,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,     0,     0,   348,
       0,   350,  -245,     0,   351,     0,     0,   353,     0,     0,
     355,   356,  3489,     0,     0,     0,   358,   359,   360,   361,
     362,   363,     0,   365,     0,   366,     0,     0,     0,     0,
     368,   369,   370,     0,     0,     0,     0,   372,     0,     0,
       0,   373,     0,   375,     0,     0,   377,     0,     0,   380,
       0,     0,     0,     0,     0,     0,   381,   382,     0,   383,
       0,     0,   384,     0,     0,   385,     0,   387,     0,     0,
       0,   389,     0,   390,   391,   392,   393,   394,     0,     0,
     395,   396,     0,   397,   398,     0,     0,   399,   400,     0,
       0,   401,   402,     0,   403,   404,   405,   406,     0,     0,
       0,     0,     0,   407,   408,   409,     0,     0,     0,     0,
     411,   412,   413,     0,   414,   415,     0,   416,   417,     0,
       0,     0,     0,     0,   420,     0,     0,   421,     0,     0,
       0,   423,   424,     0,     0,     0,     0,     0,     0,   425,
       0,     0,   426,     0,     0,     0,   427,   428,   429,   430,
       0,     0,  -245,     0,   431,     0,     0,   433,     0,     0,
     136,   435,   137,   138,   139,   140,   141,     0,     0,     0,
       0,     0,   142,     0,     0,     0,     0,   144,   145,   146,
     147,   148,   149,     0,     0,  -245,     0,     0,     0,   152,
       0,     0,     0,   153,     0,     0,   154,   155,     0,   156,
       0,     0,     0,     0,     0,   159,  3482,     0,   160,     0,
     161,     0,     0,     0,     0,   164,   165,  3483,   167,   168,
       0,   169,   170,     0,     0,   172,     0,   174,   175,   176,
     177,     0,   178,   179,     0,     0,     0,   181,     0,     0,
       0,     0,   182,     0,     0,     0,     0,     0,     0,   183,
     184,   185,     0,     0,   186,     0,     0,     0,     0,   187,
       0,     0,     0,     0,     0,   189,     0,   190,     0,     0,
       0,   191,     0,   192,   193,   194,   195,     0,     0,     0,
       0,     0,     0,   197,   198,   199,     0,     0,     0,   200,
       0,  3933,   202,     0,   203,   204,   205,     0,     0,   206,
       0,   207,   208,   209,   210,     0,     0,     0,   212,   213,
     214,     0,     0,   215,  3484,   216,   217,   218,     0,     0,
       0,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   224,   225,   226,   227,     0,   228,     0,     0,     0,
       0,   230,     0,     0,     0,     0,     0,   233,     0,     0,
       0,   234,   235,   236,   237,  3485,     0,   238,   239,     0,
       0,   240,     0,   241,     0,     0,     0,   242,     0,     0,
       0,     0,   244,     0,     0,   245,   246,  3486,     0,     0,
     247,     0,     0,     0,   249,     0,     0,   250,  3487,     0,
     251,   252,     0,     0,     0,     0,     0,   253,   254,     0,
     255,     0,   256,     0,   257,   258,     0,     0,     0,     0,
    -245,     0,     0,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,     0,   272,   273,     0,
     274,   275,   276,   277,     0,   278,   279,   280,     0,     0,
       0,   281,   282,   283,   284,   285,     0,     0,   286,   287,
       0,   288,     0,   289,     0,   290,   291,   292,   293,   294,
     295,   296,   297,     0,     0,   298,   299,     0,     0,   300,
     301,   302,   303,     0,     0,     0,     0,   305,     0,     0,
       0,     0,   306,   307,   308,     0,   309,   310,  3488,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   314,   315,     0,     0,   317,   318,   319,     0,   321,
     322,   323,   324,   325,   326,     0,     0,     0,     0,   329,
     330,     0,   331,     0,   332,   333,     0,   334,   335,   336,
       0,     0,     0,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,     0,     0,
     348,     0,   350,  -245,     0,   351,     0,     0,   353,     0,
       0,   355,   356,  3489,     0,     0,     0,   358,   359,   360,
     361,   362,   363,     0,   365,     0,   366,     0,     0,     0,
       0,   368,   369,   370,     0,     0,     0,     0,   372,     0,
       0,     0,   373,     0,   375,     0,     0,   377,     0,     0,
     380,     0,     0,     0,     0,     0,     0,   381,   382,     0,
     383,     0,     0,   384,     0,     0,   385,     0,   387,     0,
       0,     0,   389,     0,   390,   391,   392,   393,   394,     0,
       0,   395,   396,     0,   397,   398,     0,     0,   399,   400,
       0,     0,   401,   402,     0,   403,   404,   405,   406,     0,
       0,     0,     0,     0,   407,   408,   409,     0,     0,     0,
       0,   411,   412,   413,     0,   414,   415,     0,   416,   417,
       0,     0,     0,     0,     0,   420,     0,     0,   421,     0,
       0,     0,   423,   424,     0,     0,     0,     0,     0,     0,
     425,     0,     0,   426,     0,     0,     0,   427,   428,   429,
     430,     0,     0,  -245,     0,   431,     0,     0,   433,     0,
       0,   136,   435,   137,   138,   139,   140,   141,     0,     0,
       0,     0,     0,   142,     0,     0,     0,     0,   144,   145,
     146,   147,   148,   149,     0,     0,  -245,     0,     0,     0,
     152,     0,     0,     0,   153,     0,     0,   154,   155,     0,
     156,     0,     0,     0,     0,     0,   159,  3482,     0,   160,
       0,   161,     0,     0,     0,     0,   164,   165,  3483,   167,
     168,     0,   169,   170,     0,     0,   172,     0,   174,   175,
     176,   177,     0,   178,   179,     0,     0,     0,   181,     0,
       0,     0,     0,   182,     0,     0,     0,     0,     0,     0,
     183,   184,   185,     0,     0,   186,     0,     0,     0,     0,
     187,     0,     0,     0,     0,     0,   189,     0,   190,     0,
       0,     0,   191,     0,   192,   193,   194,   195,     0,     0,
       0,     0,     0,     0,   197,   198,   199,     0,     0,     0,
     200,     0,  -264,   202,     0,   203,   204,   205,     0,     0,
     206,     0,   207,   208,   209,   210,     0,     0,     0,   212,
     213,   214,     0,     0,   215,  3484,   216,   217,   218,     0,
       0,     0,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,     0,   230,     0,     0,     0,     0,     0,   233,     0,
       0,     0,   234,   235,   236,   237,  3485,     0,   238,   239,
       0,     0,   240,     0,   241,     0,     0,     0,   242,     0,
       0,     0,     0,   244,     0,     0,   245,   246,  3486,     0,
       0,   247,     0,     0,     0,   249,     0,     0,   250,  3487,
       0,   251,   252,     0,     0,     0,     0,     0,   253,   254,
       0,   255,     0,   256,     0,   257,   258,     0,     0,     0,
       0,  -245,     0,     0,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,     0,   272,   273,
       0,   274,   275,   276,   277,     0,   278,   279,   280,     0,
       0,     0,   281,   282,   283,   284,   285,     0,     0,   286,
     287,     0,   288,     0,   289,     0,   290,   291,   292,   293,
     294,   295,   296,   297,     0,     0,   298,   299,     0,     0,
     300,   301,   302,   303,     0,     0,     0,     0,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,  3488,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   314,   315,     0,     0,   317,   318,   319,     0,
     321,   322,   323,   324,   325,   326,     0,     0,     0,     0,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,     0,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,     0,
       0,   348,     0,   350,  -245,     0,   351,     0,     0,   353,
       0,     0,   355,   356,  3489,     0,     0,     0,   358,   359,
     360,   361,   362,   363,     0,   365,     0,   366,     0,     0,
       0,     0,   368,   369,   370,     0,     0,     0,     0,   372,
       0,     0,     0,   373,     0,   375,     0,     0,   377,     0,
       0,   380,     0,     0,     0,     0,     0,     0,   381,   382,
       0,   383,     0,     0,   384,     0,     0,   385,     0,   387,
       0,     0,     0,   389,     0,   390,   391,   392,   393,   394,
       0,     0,   395,   396,     0,   397,   398,     0,     0,   399,
     400,     0,     0,   401,   402,     0,   403,   404,   405,   406,
       0,     0,     0,     0,     0,   407,   408,   409,     0,     0,
       0,     0,   411,   412,   413,     0,   414,   415,     0,   416,
     417,     0,     0,     0,     0,     0,   420,     0,     0,   421,
       0,     0,     0,   423,   424,     0,     0,     0,     0,     0,
       0,   425,     0,     0,   426,     0,     0,     0,   427,   428,
     429,   430,     0,     0,  -245,     0,   431,     0,     0,   433,
       0,     0,   136,   435,   137,   138,   139,   140,   141,     0,
       0,     0,     0,     0,   142,     0,     0,     0,     0,   144,
     145,   146,   147,   148,   149,     0,     0,  -245,     0,     0,
       0,   152,     0,     0,     0,   153,     0,     0,   154,   155,
       0,   156,     0,     0,     0,     0,     0,   159,  3482,     0,
     160,     0,   161,     0,     0,     0,     0,   164,   165,  3483,
     167,   168,     0,   169,   170,     0,     0,   172,     0,   174,
     175,   176,   177,     0,   178,   179,     0,     0,     0,   181,
       0,     0,     0,     0,   182,     0,     0,     0,     0,     0,
       0,   183,   184,   185,     0,     0,   186,     0,     0,     0,
       0,   187,     0,     0,     0,     0,     0,   189,     0,   190,
       0,     0,     0,   191,     0,   192,   193,   194,   195,     0,
       0,     0,     0,     0,     0,   197,   198,   199,     0,     0,
       0,   200,     0,     0,   202,     0,   203,   204,   205,     0,
       0,   206,     0,   207,   208,   209,   210,     0,     0,     0,
     212,   213,   214,     0,     0,   215,  3484,   216,   217,   218,
       0,     0,     0,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   224,   225,   226,   227,     0,   228,     0,
       0,     0,     0,   230,     0,     0,     0,     0,     0,   233,
       0,     0,     0,   234,   235,   236,   237,  3485,     0,   238,
     239,     0,     0,   240,     0,   241,     0,     0,     0,   242,
       0,     0,     0,     0,   244,     0,     0,   245,   246,  3486,
       0,     0,   247,     0,     0,     0,   249,     0,     0,   250,
    3487,     0,   251,   252,     0,     0,     0,     0,     0,   253,
     254,     0,   255,     0,   256,     0,   257,   258,     0,     0,
       0,     0,  -245,     0,     0,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,     0,   272,
     273,     0,   274,   275,   276,   277,     0,   278,   279,   280,
       0,     0,     0,   281,   282,   283,   284,   285,     0,     0,
     286,   287,     0,   288,     0,   289,     0,   290,   291,   292,
     293,   294,   295,   296,   297,     0,     0,   298,   299,     0,
       0,   300,   301,   302,   303,     0,     0,     0,     0,   305,
       0,     0,     0,     0,   306,   307,   308,     0,   309,   310,
    3488,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   314,   315,     0,     0,   317,   318,   319,
       0,   321,   322,   323,   324,   325,   326,     0,     0,     0,
       0,   329,   330,     0,   331,     0,   332,   333,     0,   334,
     335,   336,     0,     0,     0,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
       0,     0,   348,     0,   350,  -245,     0,   351,     0,     0,
     353,     0,     0,   355,   356,  3489,     0,     0,     0,   358,
     359,   360,   361,   362,   363,     0,   365,     0,   366,     0,
       0,     0,     0,   368,   369,   370,     0,     0,     0,     0,
     372,     0,     0,     0,   373,     0,   375,     0,     0,   377,
       0,     0,   380,     0,     0,     0,     0,     0,     0,   381,
     382,     0,   383,     0,     0,   384,     0,     0,   385,     0,
     387,     0,     0,     0,   389,     0,   390,   391,   392,   393,
     394,     0,     0,   395,   396,     0,   397,   398,     0,     0,
     399,   400,     0,     0,   401,   402,     0,   403,   404,   405,
     406,     0,     0,     0,     0,     0,   407,   408,   409,     0,
       0,     0,     0,   411,   412,   413,     0,   414,   415,     0,
     416,   417,     0,     0,     0,     0,     0,   420,     0,     0,
     421,     0,     0,     0,   423,   424,     0,     0,     0,     0,
       0,     0,   425,     0,     0,   426,     0,     0,     0,   427,
     428,   429,   430,     0,     0,  -245,     0,   431,     0,     0,
     433,     0,     0,   136,   435,   137,   138,   139,   140,   141,
       0,     0,     0,     0,     0,   142,     0,     0,     0,     0,
     144,   145,   146,   147,   148,   149,     0,     0,  -245,     0,
       0,     0,   152,     0,     0,     0,   153,     0,     0,   154,
     155,     0,   156,     0,     0,     0,     0,     0,   159,  3482,
       0,   160,     0,   161,     0,     0,     0,     0,   164,   165,
    3483,   167,   168,     0,   169,   170,     0,     0,   172,     0,
     174,   175,   176,   177,     0,   178,   179,     0,     0,     0,
     181,     0,     0,     0,     0,   182,     0,     0,     0,     0,
       0,     0,   183,   184,   185,     0,     0,   186,     0,     0,
       0,     0,   187,     0,     0,     0,     0,     0,   189,     0,
     190,     0,     0,     0,   191,     0,   192,   193,   194,   195,
       0,     0,     0,     0,     0,     0,   197,   198,   199,     0,
       0,     0,   200,     0,     0,   202,     0,   203,   204,   205,
       0,     0,   206,     0,   207,   208,   209,   210,     0,     0,
       0,   212,   213,   214,     0,     0,   215,  3484,   216,   217,
     218,     0,     0,     0,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,     0,   230,     0,     0,     0,     0,     0,
     233,     0,     0,     0,   234,   235,   236,   237,  3485,     0,
     238,   239,     0,     0,   240,     0,   241,     0,     0,     0,
     242,     0,     0,     0,     0,   244,     0,     0,   245,   246,
    3486,     0,     0,   247,     0,     0,     0,   249,     0,     0,
     250,  3487,     0,   251,   252,     0,     0,     0,     0,     0,
     253,   254,     0,   255,     0,   256,     0,   257,   258,     0,
       0,     0,     0,  -245,     0,     0,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,     0,
     272,   273,     0,   274,   275,   276,   277,     0,   278,   279,
     280,     0,     0,     0,   281,   282,   283,   284,   285,     0,
       0,   286,   287,     0,   288,     0,   289,     0,   290,   291,
     292,   293,   294,   295,   296,   297,     0,     0,   298,   299,
       0,     0,   300,   301,   302,   303,     0,     0,     0,     0,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,  3488,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   314,   315,     0,     0,   317,   318,
     319,     0,   321,   322,   323,   324,   325,   326,     0,     0,
       0,     0,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,     0,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,     0,     0,   348,     0,   350,  -245,     0,   351,     0,
       0,   353,     0,     0,   355,   356,  3489,     0,     0,     0,
     358,   359,   360,   361,   362,   363,     0,   365,     0,   366,
       0,     0,     0,     0,   368,   369,   370,     0,     0,     0,
       0,   372,     0,     0,     0,   373,     0,   375,     0,     0,
     377,     0,     0,   380,     0,     0,     0,     0,     0,     0,
     381,   382,     0,   383,     0,     0,   384,     0,     0,   385,
       0,   387,     0,     0,     0,   389,     0,   390,   391,   392,
     393,   394,     0,     0,   395,   396,     0,   397,   398,     0,
       0,   399,   400,     0,     0,   401,   402,     0,   403,   404,
     405,   406,     0,     0,     0,     0,     0,   407,   408,   409,
       0,     0,     0,     0,   411,   412,   413,     0,   414,   415,
       0,   416,   417,     0,     0,     0,     0,     0,   420,     0,
       0,  3767,     0,     0,     0,   423,   424,     0,     0,     0,
       0,     0,     0,   425,     0,     0,   426,     0,     0,     0,
     427,   428,   429,   430,     0,     0,  -245,     0,   431,     0,
       0,   433,     0,     0,   136,   435,   137,   138,   139,   140,
     141,     0,     0,     0,     0,     0,   142,     0,     0,     0,
       0,   144,   145,   146,   147,   148,   149,     0,     0,     0,
       0,     0,     0,   152,     0,     0,     0,   153,     0,     0,
     154,   155,     0,   156,     0,     0,     0,     0,     0,   159,
       0,     0,   160,     0,   161,     0,     0,     0,     0,   164,
     165,     0,   167,   168,     0,   169,   170,     0,     0,   172,
       0,   174,   175,   176,   177,     0,   178,   179,     0,     0,
       0,   181,     0,     0,     0,     0,   182,     0,     0,     0,
       0,     0,     0,   183,   184,   185,     0,     0,   186,     0,
       0,     0,     0,   187,     0,     0,     0,     0,     0,   189,
       0,   190,     0,     0,     0,   191,     0,   192,   193,   194,
     195,     0,     0,     0,     0,     0,     0,   197,   198,   199,
       0,     0,     0,   200,     0,     0,   202,     0,   203,   204,
     205,     0,     0,   206,     0,   207,   208,   209,   210,     0,
       0,     0,   212,   213,   214,     0,     0,   215,     0,   216,
     217,   218,     0,     0,     0,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   224,   225,   226,   227,     0,
     228,     0,     0,     0,     0,   230,     0,     0,     0,     0,
       0,   233,     0,     0,     0,   234,   235,   236,   237,     0,
       0,   238,   239,     0,     0,   240,     0,   241,     0,     0,
       0,   242,     0,     0,     0,     0,   244,     0,     0,   245,
     246,     0,     0,     0,   247,     0,     0,     0,   249,     0,
       0,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,   253,   254,     0,   255,     0,   256,     0,   257,   258,
       0,     0,     0,     0,     0,     0,     0,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
       0,   272,   273,     0,   274,   275,   276,   277,     0,   278,
     279,   280,     0,     0,     0,   281,   282,   283,   284,   285,
       0,     0,   286,   287,     0,   288,     0,   289,     0,   290,
     291,   292,   293,   294,   295,   296,   297,     0,     0,   298,
     299,     0,     0,   300,   301,   302,   303,     0,     0,     0,
       0,   305,     0,     0,     0,     0,   306,   307,   308,     0,
     309,   310,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   314,   315,     0,     0,   317,
     318,   319,     0,   321,   322,   323,   324,   325,   326,     0,
       0,     0,     0,   329,   330,     0,   331,     0,   332,   333,
       0,   334,   335,   336,     0,     0,     0,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,     0,     0,   348,     0,   350,     0,     0,   351,
       0,     0,   353,     0,     0,   355,   356,     0,     0,     0,
       0,   358,   359,   360,   361,   362,   363,     0,   365,     0,
     366,     0,     0,     0,     0,   368,   369,   370,     0,     0,
       0,     0,   372,     0,     0,     0,   373,     0,   375,     0,
       0,   377,     0,     0,   380,     0,     0,     0,     0,     0,
       0,   381,   382,     0,   383,     0,     0,   384,     0,     0,
     385,     0,   387,     0,     0,     0,   389,     0,   390,   391,
     392,   393,   394,     0,     0,   395,   396,     0,   397,   398,
       0,     0,   399,   400,     0,     0,   401,   402,     0,   403,
     404,   405,   406,     0,     0,     0,     0,     0,   407,   408,
     409,     0,     0,     0,     0,   411,   412,   413,     0,   414,
     415,     0,   416,   417,     0,     0,     0,     0,     0,   420,
       0,     0,   421,     0,     0,     0,   423,   424,     0,     0,
       0,     0,     0,     0,   425,     0,     0,   426,     0,     0,
       0,   427,   428,   429,   430,     0,     0,     0,     0,   431,
       0,     0,   433,     0,     0,     0,   435
};

static const short int yycheck[] =
{
       7,   778,   577,   513,   513,   534,   121,   960,   961,    21,
     963,   608,   901,    20,   818,  1098,    23,  1617,    30,   671,
     672,   676,  1556,   117,    36,    32,   120,  1208,   547,  1127,
     573,   574,  1270,   934,  1127,    42,  1351,   656,  2225,   866,
    2148,  2112,  2081,   988,   707,   844,    53,  1432,  1068,  1902,
    2105,  2106,  2107,  1918,     5,    23,   708,  1751,  1923,  1146,
     842,  1323,  2780,  2523,  2251,  2475,  1153,   866,   611,  2787,
    2893,  1154,  2335,  1751,  1157,   730,   728,  1859,   733,  1753,
    1067,  1346,  2323,   905,  2325,   867,    93,   905,   740,   741,
     742,   610,  2129,  2136,  1754,  1697,  2116,  2117,  1758,  2859,
    2137,  1066,  2139,  1142,  2220,  2313,   520,    16,   115,  1769,
     117,  1164,  1165,   120,   121,   122,  1081,    16,  1284,  1779,
    2865,  1048,  1049,  1289,  1749,    93,  1751,    24,   135,   748,
     749,   750,   590,  1299,  1300,  2206,    18,  2313,  2655,    18,
      33,    16,  1069,  2201,  1329,    16,  1720,  1721,    29,   768,
    1077,  2365,    56,    57,    30,  2369,  1862,  1742,    20,  2230,
    2231,  1088,  1089,  1090,    24,    49,  1864,   135,   127,    18,
    1097,    33,    57,  1711,  3109,  3493,  1644,    60,    20,    18,
     144,   168,  1756,  1757,    46,  1759,   113,   762,  1762,  1763,
      10,  2197,  1766,    24,    56,    57,  3012,  1771,    35,  3015,
     125,  1775,  1776,  1777,  1778,  2926,  2927,   113,  1782,  2930,
    1784,  1616,    60,    20,    56,    57,  1790,    55,  1843,  1793,
    1794,  1795,  3117,    49,  2468,  2673,    33,   868,  2949,   138,
      62,    65,   238,    61,  2955,   171,  1821,   109,  1419,    46,
      93,  1826,    59,  2096,  2327,  2194,   109,  1832,  1833,    56,
      57,  1836,  2201,   109,   906,  2204,   138,    11,    70,  2208,
     142,    33,  2579,   142,     3,    35,   138,  2159,  2188,   812,
       9,    10,   352,  2222,  2223,   138,   106,   123,   407,    59,
     140,   800,   138,  2232,   211,    57,   423,  1064,   354,  3106,
      29,    64,   171,   142,    40,   111,    35,  3057,   651,  1614,
      39,   423,   138,   142,    75,   171,    20,   383,    65,   206,
     168,    22,   146,  2181,   272,  2462,   154,    12,    12,    33,
     158,   423,     8,   486,    96,   138,    41,    99,   148,   239,
     168,   154,    46,   163,   449,   107,  1113,   440,   221,  2121,
    1117,   462,    56,    57,   132,   466,   206,   138,   218,   463,
     167,   132,   189,   132,   507,     8,   110,    64,    31,   189,
     204,  2771,  2301,   530,   321,   235,  2559,  2560,   483,   171,
     197,   171,   199,   221,   190,   206,    29,   530,   486,   255,
    2135,   278,   226,   204,    92,   928,  2092,   167,   985,   128,
     248,   805,  1041,  1042,  1043,  2542,   499,  2348,  2349,  2350,
     171,   305,   569,   239,  1053,   154,    96,   256,   218,    99,
     201,   574,   534,   535,   154,   373,   138,   132,   278,   189,
     486,  3142,  1311,   253,   538,  3241,   239,   122,   122,   339,
    3151,   568,   586,  1082,   391,   572,  1085,   513,   149,   568,
     256,    95,   449,   218,   451,    73,   568,   278,   286,   315,
     354,   994,  2507,   299,    69,  3272,  1105,  1106,   218,   466,
    1109,    67,   322,   470,   423,  2673,   568,   561,    44,   317,
    3215,  3231,   479,  2666,  2667,   161,   483,  1422,   485,  1128,
    1129,   166,   440,  2538,   491,   256,  2594,  2530,   568,    24,
     497,   322,   607,  1275,  2188,   325,  1278,  2673,    24,    59,
    1583,   959,  1585,   126,  1286,  1588,   340,  1329,   602,   603,
    2188,  1329,   606,   520,   521,   609,   201,   239,  2576,  1301,
    1302,   405,   398,   491,  1323,  1691,  2477,  2478,  2479,   378,
     455,   538,   885,  1798,    69,  2983,   374,  1156,   310,  2597,
     547,   547,   549,    69,   142,   218,   378,    77,   368,   366,
     204,   374,  1171,   560,   561,  2337,  2181,  2142,   565,  2803,
    3455,  3306,  2879,  2188,   571,   238,   573,   574,  2574,   282,
    1557,   578,   579,  1593,  1149,  1595,   583,  1399,  1197,   405,
     544,  1399,   569,   340,  2158,   592,   366,   341,   471,   596,
    2128,   206,   560,  1580,   601,   602,   603,   524,   605,   606,
     607,  3061,   609,   610,   611,  2179,  2180,   467,   399,   568,
     186,   459,   440,   572,   140,  2698,   497,   339,   524,  2313,
     155,  1035,  2207,   471,  2209,   374,   497,  2576,  2334,   155,
    2098,  2216,  1559,   569,   374,  2313,   467,   457,  2336,   646,
     549,  2215,  3960,  2563,  2229,   318,   319,  3582,  2597,   486,
    2235,   530,   537,  2227,   516,  1296,  1841,  2062,   497,    92,
     559,  3477,   587,  3479,  2556,  2250,   438,   576,  1211,   140,
     574,   206,   548,   570,   516,   568,  2301,  3194,   540,   509,
     206,  3426,   502,   543,   559,  1228,   570,    12,  2313,   542,
     463,   570,  3515,  2561,   576,    69,  2910,  3520,   510,  2481,
    2482,   316,   519,   552,   576,   553,   568,   322,   454,   516,
     570,   547,   543,   576,   387,   148,   486,   563,   564,   565,
     576,   493,   542,  2297,  2298,  2299,  2300,   473,   843,  2668,
    2944,  2945,   570,    87,   547,   206,   475,  3554,  2952,   519,
     576,   174,  2797,   278,   138,  2959,   753,   570,   755,   559,
     522,   357,   278,   499,   493,  3476,   463,  3478,   546,    11,
    1279,  2800,   501,   576,   370,   546,   140,   546,   570,   384,
     570,   479,   445,   927,   482,  2983,  2531,  2532,   174,   528,
    2835,   316,   789,   522,  2900,   576,  3531,   322,   528,  2982,
     316,   419,   799,   800,   801,   570,   322,   122,   805,   559,
     490,  1259,   516,   493,  1749,   812,  2849,  2983,   431,    30,
    2853,   166,  2849,  1462,   968,  1229,  2853,    49,  2876,   527,
     333,   789,   536,   537,  1333,   547,   386,    53,   482,   135,
     570,    69,   206,   801,   432,   353,   843,    41,  3101,   145,
      92,   417,   793,   373,   529,   239,   201,   106,   192,   272,
      71,   322,   467,   575,   576,   568,  2807,    95,   110,  3625,
    1509,   328,    33,  1946,  1513,   190,    25,   128,  1769,  2563,
    3591,   209,  3593,   479,   142,   393,  1929,  1930,  2116,  2117,
     218,   455,    92,    31,   274,  2563,   559,  1536,   104,  1716,
     322,   256,   308,   225,   901,   501,  1439,   223,  1843,   514,
     168,   288,   140,   550,   163,  1687,    65,  3652,  1690,  1428,
      69,  1693,  1694,   110,   330,   136,   357,  1716,   329,  2701,
    2522,   928,   174,   401,   931,   932,  3644,  2876,   543,   110,
     189,    24,   467,   418,  2021,   368,  2561,    19,  2563,  1353,
     330,   467,   316,   354,   106,   339,   239,   109,   322,   201,
     109,   157,   518,  2992,   170,  3778,  2122,   201,  2811,  2140,
     171,  2635,   482,   970,   932,   972,   204,     6,  1587,  3729,
    3211,   172,   368,  2012,   460,   336,  2636,   984,  2998,  2673,
     196,   191,  1947,  2081,   206,   568,   378,   994,  2081,  2254,
     106,  2591,   575,    35,   253,  2673,   467,   249,  1925,   485,
     250,   163,   970,   569,   972,   397,   344,   218,   543,    59,
     384,  3274,  1939,   378,   588,    54,   984,   543,    68,  1841,
     217,   497,   109,  1841,  1031,  1140,  1033,   189,  1035,    79,
    3085,   337,   114,  2020,   426,    55,   217,  3486,  3487,   277,
    2138,  2028,  1969,  2668,   570,  2138,   339,   163,  2673,   482,
    3093,  3094,   570,   121,   304,   106,   294,    99,   412,  1066,
     223,  3521,   575,   107,   106,  2665,   325,   226,  3891,   502,
     218,   234,   543,   189,  1081,   486,  2858,   293,   316,  3371,
     406,  1196,   343,  2036,   300,  1036,   482,   126,   106,   321,
     238,   253,   570,   467,   570,   321,  2049,   484,  2672,   570,
     322,   272,  1217,   570,   308,  3113,    92,  1626,  1627,   542,
    2037,   543,   163,   206,   530,   157,   368,   167,   324,   463,
    1127,   163,    92,   173,   511,  2387,   451,   452,   453,   454,
     455,   456,  3898,  1140,   154,   345,  2234,   253,   158,    86,
     514,  2234,   363,   468,   354,   163,  1655,   189,   168,   350,
     360,  3016,  1749,   547,   204,   399,   372,   106,  2339,   318,
     319,   382,   148,   325,   432,   324,  1260,  1261,  1262,   543,
    1264,   330,   216,   405,   529,   507,   226,   429,   568,   485,
     174,   575,   576,  1277,   440,   278,    69,   552,   174,  1196,
     411,  1285,    59,  1200,  3486,  3487,   570,    80,   530,   431,
    3918,    68,   253,   173,  1211,   421,   201,   366,   106,   325,
    1217,   253,    79,   463,   163,   309,  2601,   549,   204,   287,
    1335,  1228,  1229,   357,  3634,   518,   179,   171,   480,   467,
     482,   569,  1239,   443,   204,   253,  2181,   324,   439,   387,
    1247,   462,   480,     0,   423,   467,  1843,   410,   138,   111,
     509,  3288,  3712,  1260,  1261,  1262,  1263,  1264,  1265,    76,
     207,   256,   253,   249,   161,   163,   286,   309,   427,  1276,
    1277,   215,  1279,    90,   325,   363,   223,   309,  1285,   249,
     319,    12,   324,   325,   579,    86,  1293,   234,   157,  2983,
     423,   189,   245,  3452,  2195,  1263,  2197,  1265,   504,   197,
     167,  3309,  3310,  1254,   253,  2983,   173,   325,   309,    86,
     605,  1405,  1406,  1407,   520,  3616,   366,   527,  1433,  3779,
    3769,   543,    50,  3615,  3616,  1293,   423,   309,  1335,   545,
     451,    59,   229,   449,   325,    12,   380,   204,   377,    69,
     379,   557,  1349,   182,   423,   228,  1353,   509,  2435,   470,
      80,  3390,  2015,   179,   374,   253,  2301,   348,  2983,   226,
     519,   308,  2382,  2383,   142,  2463,   209,   319,  2313,  2452,
    2463,   142,    12,  3238,   368,   218,   325,   363,   331,   374,
      12,  1349,   368,   330,   223,    86,   245,   117,    68,   568,
    1341,   122,   486,   509,   256,   339,   446,  1404,  1405,  1406,
    1407,  1352,    86,  3115,  3696,  2024,   207,   423,  1447,  1416,
    1449,  1418,   364,   182,   297,    68,   423,  3709,   512,   245,
    3579,  1428,   223,   423,   321,   469,  1433,   325,   186,  3721,
     207,   431,  1439,   234,  1441,   568,   916,   917,   321,  1446,
    1447,   482,  1449,   429,   486,   122,   223,  3159,   490,   318,
     319,   493,   260,   261,   486,   324,  3757,   234,   509,   429,
     390,   148,   504,   410,   323,  3757,   110,   509,   226,   519,
     512,   568,   171,   953,   568,   428,   446,  3769,  1446,  1447,
     512,  1449,   122,   116,  3523,   486,   353,   167,   482,   568,
     122,   509,   240,   376,   480,   243,   413,   483,   228,   366,
     339,   344,   575,  2794,   486,  2432,   207,   308,  3108,  3801,
     480,   512,   482,   483,   167,  3807,   502,   245,   509,   561,
     562,   468,   223,   207,   204,    72,   463,    74,   458,   330,
     512,   308,   119,   234,   534,   535,   568,   530,   186,   223,
     239,   527,   438,   497,   549,  3846,   226,   134,    16,   519,
     234,   204,   568,   330,  3846,  3856,   542,   527,  1565,   192,
     509,   568,   109,   200,  3856,   570,   483,   297,   568,   506,
    2885,  2862,   274,   226,   457,  3428,   182,   570,   226,   446,
     388,   389,   482,   130,  2181,  3886,   568,  3642,   318,   319,
     483,   321,   479,  3664,  3886,   482,  3888,  1636,  1637,  1638,
     204,   568,   428,  1610,  3896,  3897,  1613,   308,   575,   410,
     527,   509,  3570,   182,  3572,   162,  2561,   250,  1625,  1626,
    1627,  1628,  1629,   200,   308,   542,   522,   375,   330,  1636,
    1637,  1638,  3924,   410,  2916,   504,   215,  2919,  2920,   272,
     333,   338,  1610,  3935,   341,  1613,   376,  1654,  3949,  3950,
      45,   520,   519,   180,  2936,   171,  1663,  3949,  3950,  2581,
    1628,  1629,   558,   515,   516,   549,   518,   468,  1636,  1637,
    1638,  2475,  1623,  2574,  3782,  3136,  3137,  3969,  3970,   318,
     319,   537,  3974,  1634,   540,  1692,   366,  2514,  3149,   142,
    2612,   468,   256,  1020,  3155,  2715,  1023,  1704,  2620,  1026,
     353,  2623,   575,  1710,  2301,  2214,  2804,  1658,   161,   410,
     335,  2804,   569,   366,   457,  2514,  2313,  3178,   434,   435,
    3181,   568,   175,  2668,  1692,   167,   410,   457,  2673,  1844,
    3917,   184,     6,  2753,   367,  2636,   399,  3696,    11,  2521,
     373,   151,  1710,    56,    57,   561,   562,   330,   275,   276,
    3709,   530,    65,   280,   281,   569,   570,  1872,  1852,  2857,
    2998,   336,  3721,   467,  2857,   569,   570,   468,   527,   528,
     403,   530,  1723,   532,   569,   570,   229,   230,   367,   142,
     143,  1732,  1733,   413,   468,  1792,   330,  1738,  1739,  1740,
    1741,   555,  1743,  1744,    15,    16,   570,  2895,   479,  1806,
     347,  3116,  2895,  1918,   257,   464,   465,   440,  1923,   468,
     469,  1818,   175,   472,   201,   474,  3401,  3402,  3403,  3404,
     560,   184,   568,  1166,  1167,  1168,  1169,  1170,  2781,   568,
     463,   569,   570,   569,   570,   569,   570,  1844,   385,    56,
      57,   444,  3801,   569,   570,  1852,   479,   568,  3807,   482,
    1857,  2778,   566,  1860,   569,   570,   219,   569,   570,   569,
     570,   568,   315,   569,   570,  1872,   486,   230,    47,   569,
     570,  1822,  1823,   568,  1825,   171,  1827,  1828,  1829,  1830,
    1831,   569,   570,  1834,  1835,   575,   569,   570,   250,  1857,
      25,    26,  2007,   568,   257,   569,   570,   569,   570,   569,
     570,   569,   570,   569,   570,   569,   570,  3088,   569,   570,
     568,  1918,   365,   569,   570,    47,  1923,   569,   570,   569,
     570,    56,    57,    58,   569,   570,   568,  1934,   330,  3888,
      65,   569,   570,   568,    69,   569,   570,  3896,  3897,   568,
    1947,  2460,    77,   570,  2964,   569,   570,   569,   570,   312,
     568,  3525,   568,   612,   569,   570,   569,   570,  3056,   568,
      95,   569,   570,  3056,  2561,  3924,   568,  2771,   132,   133,
     569,   570,   569,   570,   109,  3509,  3935,   112,  1162,  1163,
     568,  1164,  1165,  1114,  1115,  2504,  3872,  3873,  3315,  3316,
     568,  2106,   568,  2108,  2109,   568,  2813,  2814,  2709,  2710,
    2007,  3002,  3003,   568,   418,   140,   568,  3322,   568,   568,
    3969,  3970,   568,   568,   568,  3974,   568,   568,   568,   568,
     568,   518,   568,   568,   147,   568,   568,   568,   568,   568,
     568,  2038,  2147,  2148,  2987,   568,   568,   568,  2983,   568,
     568,   431,   568,   568,   568,  3645,   568,   568,   568,   568,
    3635,   568,   506,   568,   568,   568,  2063,   568,   568,   568,
     568,   568,   568,   568,   568,   568,   568,   568,   568,   204,
     568,  2668,   568,   568,  2081,   568,  2673,   212,   563,   568,
     239,   168,   463,   463,   463,   272,   479,   250,   139,    78,
     225,  2634,  2099,  2100,   570,   332,   569,   109,     6,  2106,
     477,  2108,  2109,   574,   258,   259,   260,   261,   262,   263,
    2225,   265,   266,   267,   268,   269,   270,   271,   568,   273,
      94,     4,   422,   542,    53,   391,   151,    95,   198,   570,
     570,  2138,   575,  3022,   570,   140,  2251,   570,    47,   574,
    2147,  2148,   277,   549,   570,   479,   568,    65,  2099,    12,
     546,   569,   569,   486,     9,   122,   569,   569,   238,   294,
     575,   568,   562,   272,   245,   272,   570,   352,   497,   570,
     497,   570,   497,   570,   218,   563,   570,   168,   570,   523,
     442,   570,   355,   330,  2196,   568,   570,  2194,   142,   142,
     142,   569,   142,  2205,  2201,   142,   142,  2204,   142,  2211,
     142,  2208,   142,  2210,   142,   142,   142,   142,  2827,   142,
     142,   346,   142,  2220,   570,  2222,  2223,   525,  2225,   354,
     551,  2233,   529,    45,   330,  2232,  2238,  2234,   171,   174,
     570,   547,  2244,  2245,   388,   389,  2243,   378,   570,   569,
      18,   569,   432,   569,  2251,   569,   569,   569,   569,   569,
    3824,  2258,  2259,  3827,  3828,  3829,  3830,   563,   570,   569,
     569,  2212,  2213,   180,   575,   570,   570,   569,   569,   171,
     569,   569,   569,   568,  3874,  2243,   570,   569,   568,   570,
     415,   570,   570,   569,   569,   569,  2237,   570,   569,   569,
     569,   573,   570,   569,   569,   559,  3870,  3871,  3883,   569,
       6,   569,   569,   568,  3878,    18,   569,    13,    14,   569,
     568,   570,   569,   569,   569,  2322,  2323,   570,   570,    25,
      26,   570,   570,   569,   569,   205,   570,   569,   569,   171,
     570,   570,   467,   569,   568,   570,   569,   569,  2345,   569,
    2347,  2348,  2349,  2350,   569,   480,   569,   575,    54,   568,
     440,   569,    58,    59,  2322,   431,   570,    63,   570,   168,
      45,   457,   457,    69,   457,   500,   457,   422,   457,    68,
     353,    77,   507,    86,   353,   353,   497,    83,   118,   224,
     480,   224,   480,   518,   118,    45,  2983,   353,   353,    95,
     351,   353,   394,   353,    18,   249,   530,   575,   248,   570,
    3301,  3302,   569,   109,   136,   575,   112,   575,   569,   497,
     489,   497,   497,   119,   120,   214,   569,   569,   569,   171,
     126,   171,   171,   569,   569,   138,   575,   575,   134,   142,
     569,   575,   138,   569,   140,   570,   569,   486,   552,   570,
     245,  2448,  3540,   473,   497,   336,   568,   171,   171,   171,
     215,  3340,   171,  2460,   220,   168,  2463,  3346,    35,   575,
     166,  3544,    86,  3416,   575,   549,   570,   223,   223,   182,
    2477,  2478,  2479,   342,   187,   290,    95,    95,   226,  2594,
    2448,   226,   497,  2490,   335,   568,   182,   486,   353,  2496,
     568,  2498,   569,   575,   207,   570,   202,  2504,   204,   330,
     568,   339,   215,   563,  3013,   563,   212,   568,   489,   330,
     223,   216,   569,   216,   138,   569,   568,   201,   142,   225,
     568,   234,    99,   569,   569,   575,   239,   569,   569,   106,
     569,   569,   575,   570,   570,   248,   569,   569,   569,  2490,
     569,   569,   166,   570,   168,   569,   569,   569,   569,    45,
     570,   570,   569,   569,   171,   569,   569,   575,   182,   569,
     569,   569,  2656,   187,   570,   569,   569,   524,   569,  2576,
     570,   277,   570,   569,  2581,   218,    65,   201,   236,   260,
     157,   223,   223,   207,   330,   570,   163,  2594,   294,   226,
    2597,   215,   298,   226,   570,   308,   364,   570,    69,   223,
     330,   330,    18,   419,   568,  2612,    45,   239,   129,   330,
     234,   325,   189,  2620,   325,   239,  2623,   330,   569,   568,
     232,   569,   425,   549,   248,   240,   339,  2634,   334,   568,
    3728,   423,   182,   339,   142,   569,  2643,   433,   569,  2646,
     346,   569,   569,  2650,  2595,   569,   569,   353,   354,  2656,
     570,   342,  2603,  2660,   568,   368,  2663,  3312,  3313,  3314,
     223,   568,   223,   569,  2671,   570,   109,   568,   109,   568,
     568,   568,   362,   568,  3627,   381,   253,    73,  2646,   568,
     568,   575,   440,   125,   308,  2692,    33,   393,   394,   395,
     396,   569,   549,   569,   569,   569,   569,   410,   570,   296,
    3352,  2816,   228,  3592,   373,   569,   330,   569,   569,   415,
     569,   569,   215,  2664,   353,   339,   569,  2832,   431,   575,
     569,   569,   569,    45,  2692,   187,   570,   296,   378,   570,
     223,   568,   309,   486,   568,   486,   530,   530,   568,  3822,
     325,   325,   568,   320,   368,   540,   325,   324,   325,   540,
     568,   524,   109,   226,   226,   468,   324,   569,   325,   325,
     325,   467,   570,   325,   444,  2772,  3655,  3656,   325,  3658,
      18,   569,   226,   325,   480,   153,   486,   486,   568,   486,
     296,   568,  3865,   568,    67,  2792,   410,   569,   569,    16,
     215,   530,   530,   569,   500,   569,   320,  2804,  2805,   569,
    2807,   507,   535,   570,   461,   518,   569,   431,   569,  2816,
     569,   325,   518,   570,   336,  2822,   524,   530,  3901,   482,
     241,   261,  3474,   168,   568,  2832,   569,   569,   569,   137,
    3634,   546,   569,  2840,   547,   168,   549,   568,   349,   368,
     568,   577,   569,   472,   468,   549,    45,    45,   135,    45,
    2857,   142,  3741,   386,  3743,  3744,   569,   570,     5,   546,
     171,   125,   407,   576,   534,    45,  3964,   569,   569,  2876,
     576,  3964,   570,    45,    45,    45,    45,  2884,   215,  2886,
     568,   136,  3835,   576,    59,   568,   336,   117,  2895,    25,
      26,    59,  3990,  2900,   518,   569,    16,  2904,   573,   546,
     136,  3016,   200,  4001,   108,   529,   530,   489,  4001,   486,
     576,   255,   577,   490,   125,   131,   493,   336,   336,   568,
      56,    57,    58,   547,   488,   549,   264,   504,   568,    65,
      51,   569,   509,    69,   416,   512,   118,   118,   140,   569,
     576,    77,   142,   136,   570,   569,   570,   489,   185,   570,
     136,   576,   576,   569,   568,    51,  3071,   570,   168,    95,
     168,   168,   398,   201,   569,   569,   473,  3920,    25,    26,
     489,   109,   548,   109,   325,   568,   112,   535,   241,   431,
     169,  3510,  1876,  1837,   561,   562,  2980,  2178,  2985,  2996,
    3376,  3512,  3716,  3858,   913,  3386,  3519,  3379,  3995,    56,
      57,    58,  3930,  3371,   140,  3371,  3371,  3371,    65,  3016,
    3371,  3371,    69,  3371,  3371,  3371,  3951,  3371,  2969,  3798,
      77,  3688,  3798,  3371,  3711,  1344,   951,  3522,  1346,  2236,
    2789,  1422,  3648,  3544,  2792,  3733,  3421,  3044,    95,  3901,
    3865,  3992,  3157,  3968,  3832,  1399,   459,  2993,  1798,  3056,
    3625,  3305,   109,  2323,  2904,   112,  2261,  1806,  2199,  2884,
    2927,  3338,  2927,  3121,  3071,  2960,  3166,  3157,   204,  2888,
    2832,  3578,  3589,  3330,  3462,  1411,   212,  3528,  3392,  1855,
    3346,  1805,  2886,   140,  2254,  1699,  1308,  2076,  3126,   225,
    2448,  1628,  1395,  3044,  2042,   533,   932,  3423,   900,  3044,
    2090,  2781,   238,  1159,   830,  1924,  3113,  1643,  1078,  2847,
    3122,    23,  3445,  3304,  1161,    12,    13,  3752,  2663,  3753,
    2029,    33,    34,  3238,  3298,  3873,  2895,  3920,  3277,  2095,
    1229,  1053,  1035,  1903,  2080,  3056,  3087,  2799,  2798,  2857,
    3990,   277,  3728,   523,    56,    57,   597,   204,   972,  1268,
    3157,   513,  2783,  3821,    66,   212,    68,  3563,   294,  3859,
    1234,  1438,  3277,   100,   101,   102,   103,   104,   225,  1416,
      82,    13,    84,    85,  3662,  3182,  3159,  4001,  2804,  1649,
    1247,    93,  3189,  2506,  2840,  1613,  3082,  3285,    85,   505,
     813,  3399,  2345,  1028,  1404,  3405,   506,  1237,    -1,  3040,
      -1,  3208,    -1,    -1,    -1,  3982,   817,  3158,    -1,    -1,
     346,    -1,    -1,    -1,  1135,    -1,   113,    -1,   354,    -1,
     277,  3730,    -1,    -1,    -1,    -1,    -1,   139,   140,   126,
      -1,  3238,   144,   170,    -1,   147,    -1,   294,    -1,    -1,
      -1,    -1,   488,    85,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   148,    -1,   150,    -1,    -1,   193,   194,   195,   196,
     172,    -1,   174,   160,    -1,    -1,    -1,   179,    -1,   181,
    3277,   113,    -1,    -1,    -1,    -1,    -1,    -1,  3788,   415,
      -1,    -1,    -1,   180,   126,    -1,    -1,    -1,    -1,   346,
    3297,   203,   204,    -1,    -1,    -1,   208,   354,    -1,    -1,
      -1,    -1,  3309,  3310,    -1,    -1,   148,   204,   150,    -1,
      -1,    -1,   224,    -1,   211,    -1,    -1,    -1,   160,    -1,
    3327,    -1,  3832,  3898,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   467,    -1,   245,    -1,    -1,    -1,    -1,   180,    -1,
      -1,    -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,    -1,
      -1,   248,   289,   599,   291,   292,   293,    -1,   415,    -1,
     272,    -1,   204,   300,   500,    -1,    -1,    -1,    -1,   211,
      -1,   507,    -1,  3380,  3381,    -1,    -1,    -1,  3953,    -1,
      -1,    -1,   518,    -1,    -1,  3392,    -1,    -1,    -1,    -1,
      -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   314,    -1,    -1,    -1,   248,    -1,    -1,    -1,
     467,  3418,  3419,  3381,    -1,   661,    -1,    -1,   488,    -1,
    3995,   333,    -1,   480,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3382,   568,    -1,    -1,   372,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   500,   356,   691,    -1,    -1,    -1,    -1,
     507,    -1,    -1,    -1,    -1,   367,   368,    -1,    -1,    -1,
      -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   369,    -1,    -1,    -1,  3483,    -1,    -1,    -1,
      -1,  3488,  3992,   420,   421,    -1,    -1,    -1,    -1,   386,
      -1,    -1,    -1,    -1,    -1,   392,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   400,    -1,   751,    -1,    -1,    -1,    -1,
      -1,    -1,  3519,    -1,    -1,    -1,   428,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   423,   369,   440,   599,
      -1,    -1,    -1,  3540,    -1,    -1,  3543,    -1,    -1,   436,
     437,    -1,    -1,    -1,   386,    -1,    -1,    -1,    -1,    -1,
     392,   463,    -1,    -1,    -1,   467,    -1,    -1,   400,    -1,
      -1,    -1,    -1,  3570,    -1,  3572,    -1,  3574,    -1,    -1,
     482,    -1,    -1,    -1,    -1,  3543,    -1,    -1,    -1,   476,
      -1,   423,    -1,  3590,    -1,    -1,   656,    -1,    -1,    -1,
      -1,   661,    -1,    -1,   436,   437,    -1,    -1,    -1,    -1,
    3607,    -1,    -1,    -1,    -1,   502,    -1,    -1,   545,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   556,
     557,   691,    -1,    -1,    -1,    -1,   538,   524,    -1,   526,
      -1,    -1,   544,    -1,   476,    -1,    -1,   707,    -1,    -1,
      -1,  3648,    -1,    -1,    -1,    -1,  3653,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     502,    -1,    -1,    -1,    -1,    -1,    -1,  3782,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   748,   749,
     750,   751,   524,    -1,   526,    -1,    -1,    -1,    -1,   935,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   768,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3728,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3752,  3753,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3875,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3782,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1037,  1038,    -1,    -1,    -1,  3803,    -1,    -1,  3806,
    1046,  1047,  3917,    -1,  1050,  1051,  1052,    -1,    -1,    -1,
      -1,  1057,    -1,    -1,  1060,  1061,    -1,  1063,    -1,  1065,
      -1,    -1,    -1,    -1,    -1,    -1,  1072,  1073,  1074,    -1,
    1076,    -1,    -1,    -1,    -1,    -1,    -1,  1083,  1084,    -1,
    1086,  1087,    -1,    -1,    -1,    -1,  1092,    -1,  1094,  1095,
    1096,  3966,    -1,  1099,  1100,  1101,  1102,  1103,  1104,    -1,
      -1,  1107,  1108,    -1,  1110,   935,  1112,    -1,  3875,    -1,
    1116,  3986,  1118,  1119,    -1,    -1,    -1,    -1,    -1,    -1,
    3887,    -1,    -1,  3890,  1130,  1131,    -1,    -1,    -1,    -1,
    1136,    -1,    -1,  1139,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3917,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3869,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3953,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3905,  3906,    -1,  3964,    -1,  3966,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1037,  1038,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1046,  1047,    -1,  3986,
    1050,  1051,  1052,  3990,    -1,    -1,    -1,  1057,  3995,    -1,
    1060,  1061,    -1,  1063,  4001,  1065,    -1,    -1,    -1,    -1,
      -1,  1247,  1072,  1073,  1074,    -1,  1076,    -1,    -1,  1255,
      -1,    -1,    -1,  1083,  1084,    -1,  1086,  1087,    -1,    -1,
      -1,    -1,  1092,    -1,  1094,  1095,  1096,    -1,  1098,  1099,
    1100,  1101,  1102,  1103,  1104,    -1,    -1,  1107,  1108,    -1,
    1110,    -1,  1112,    -1,    -1,    -1,  1116,    -1,  1118,  1119,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1130,  1131,    -1,    -1,    -1,    -1,  1136,    -1,    -1,  1139,
      -1,    -1,  1142,    -1,    -1,    -1,  1146,    -1,    -1,    -1,
      -1,    -1,    -1,  1153,  1154,    -1,  1156,  1157,    -1,  1159,
      -1,  1161,  1162,  1163,  1164,  1165,  1166,  1167,  1168,  1169,
    1170,  1171,    -1,    -1,    13,    14,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,  1197,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,
      -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    58,
      59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1420,    -1,    85,  1247,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1255,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   125,   126,    -1,    -1,
      -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,   138,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   180,    -1,    -1,    -1,    -1,   185,    -1,    -1,   188,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1543,  1544,  1545,
      -1,    -1,   211,    -1,   213,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    32,    33,    -1,   227,    -1,
      -1,    38,    -1,    40,    41,    42,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1580,   244,    -1,    -1,    -1,   248,
      57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1420,    -1,    -1,    -1,    -1,    -1,  1602,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1622,    -1,    -1,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1468,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   141,   334,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   353,   162,    -1,   164,    -1,    -1,
      -1,    -1,    -1,    -1,   363,    -1,    -1,    -1,    -1,   176,
     177,    -1,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1543,  1544,  1545,    -1,    -1,    -1,    -1,
      -1,    -1,   391,    -1,    -1,   394,    -1,   396,    -1,    -1,
     399,    -1,    -1,   402,    -1,   404,    -1,    -1,    -1,   216,
     409,    -1,   411,    -1,    -1,    -1,    -1,    -1,    -1,   418,
    1580,    -1,    -1,  1583,   423,  1585,    -1,  1587,  1588,    -1,
      -1,    -1,   431,    -1,    -1,   242,    -1,   436,    -1,    -1,
      -1,   440,  1602,    -1,   251,   252,    -1,   254,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1622,   462,    -1,    -1,    -1,   466,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,    -1,
      -1,    -1,    -1,    -1,  1820,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   301,   302,   303,    -1,    -1,    -1,
     307,    -1,    -1,   310,    -1,    -1,   505,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   517,   326,
     327,    -1,   521,    -1,    -1,   524,    -1,    -1,    -1,    -1,
     529,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   358,   359,    -1,    -1,   554,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1904,   568,
      -1,    -1,  1908,   380,    -1,    -1,    -1,  1913,  1914,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1922,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,    13,
    1936,    -1,  1938,    -1,    -1,  1941,  1942,  1943,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1954,    -1,
     427,    -1,    -1,    -1,   431,    -1,  1962,    -1,  1964,    -1,
    1966,  1967,  1968,    -1,   441,    -1,    -1,  1973,  1974,  1975,
      -1,    -1,    -1,    -1,  1980,  1981,  1982,    -1,  1984,    -1,
    1986,    -1,  1988,    -1,  1990,    -1,  1992,    -1,    -1,    -1,
    1820,  1997,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    85,  2008,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     487,    -1,    -1,   490,    -1,    -1,   493,   494,   495,   496,
      -1,    -1,  2028,    -1,    -1,    -1,    -1,    -1,    -1,   113,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   536,
     537,    -1,    -1,    -1,   148,    -1,   150,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1904,    -1,   160,    -1,  1908,    -1,
     557,    -1,    -1,  1913,  1914,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1922,    -1,    -1,    -1,   180,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1936,    -1,  1938,    -1,
      -1,  1941,  1942,  1943,    -1,    -1,  1946,    -1,    -1,    -1,
     204,    -1,    -1,    -1,  1954,    -1,    -1,   211,    -1,    -1,
      -1,    -1,  1962,    -1,  1964,    -1,  1966,  1967,  1968,    -1,
      -1,    -1,    -1,  1973,  1974,  1975,    -1,    -1,    -1,    -1,
    1980,  1981,  1982,    -1,  1984,    -1,  1986,    -1,  1988,    -1,
    1990,    -1,  1992,    -1,   248,    -1,    -1,  1997,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2008,    -1,
      -1,    -1,  2012,    25,    26,  2015,    -1,    -1,    13,    14,
      -1,  2021,    -1,    -1,  2024,    -1,    -1,    -1,  2028,    -1,
      -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,
      -1,    -1,    47,    48,    -1,    -1,    -1,    69,    -1,    54,
      -1,    -1,    -1,    58,    59,    77,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
      85,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
     112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     105,    -1,    -1,    -1,    -1,   369,    -1,    -1,   113,   114,
     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   140,    -1,
     125,   126,   386,    -1,    -1,    -1,    -1,    -1,   392,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   150,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
     165,    -1,    -1,    -1,    -1,    -1,  2352,    -1,    -1,    -1,
    2356,    -1,   436,   437,  2360,   180,    -1,    -1,    -1,    -1,
     185,    -1,   204,   188,    -1,    -1,    -1,    -1,    -1,    -1,
     212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   225,    -1,    -1,   211,    -1,   213,    -1,
      -1,    -1,   476,    -1,    -1,    -1,  2402,     6,    -1,    -1,
      -1,    -1,   227,    -1,    13,  2411,    -1,  2413,    -1,  2415,
      -1,    -1,    -1,    -1,    -1,    -1,    25,    26,   502,   244,
      -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2440,   277,    -1,    -1,    -1,    -1,
     524,    -1,   526,    -1,    -1,    54,    -1,    -1,    -1,    58,
      -1,    -1,   294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,
      -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
      -1,    -1,    -1,  2499,    -1,    -1,    -1,  2503,    -1,    -1,
     109,    -1,    -1,   112,   346,    -1,    -1,    -1,    -1,   334,
     119,    -1,   354,    -1,    -1,    -1,    -1,   126,    -1,    -1,
      -1,    -1,  2352,    -1,    -1,   134,  2356,    -1,   353,    -1,
    2360,   140,    -1,    -1,    -1,    -1,    -1,    -1,   363,  2545,
      -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   166,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2571,   391,    -1,    -1,   394,
      -1,   396,  2402,   415,   399,    -1,    -1,   402,    -1,   404,
      -1,  2411,    -1,  2413,   409,  2415,   411,    -1,    -1,    -1,
      -1,    -1,    -1,   418,    -1,   204,    -1,    -1,   423,    -1,
      -1,    -1,    -1,   212,    -1,  2435,   431,    -1,    -1,    -1,
    2440,   436,    -1,    -1,    -1,   440,   225,    -1,    -1,    -1,
      -1,    -1,  2452,    -1,    -1,   467,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   462,   480,    -1,
      -1,   466,    -1,    -1,    -1,    -1,    -1,  2653,  2654,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   500,    -1,
      -1,    -1,    -1,    -1,    -1,   507,    -1,    -1,   277,  2499,
      -1,    -1,    -1,  2503,    -1,    -1,   518,    -1,    -1,    -1,
     505,    -1,    -1,    -1,    -1,   294,    -1,    -1,    -1,   298,
      -1,    -1,   517,    -1,    -1,    -1,   521,    -1,    -1,   524,
      -1,    -1,    -1,    -1,   529,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2718,    -1,    -1,  2545,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   554,
     339,    -1,    -1,    -1,  2740,  2741,    -1,   346,    -1,    -1,
      -1,  2571,    -1,   568,  2750,   354,    -1,    -1,    -1,  2755,
      -1,    -1,  2758,    -1,  2760,  2761,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   394,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2653,  2654,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2841,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   480,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2711,    -1,    -1,    -1,    -1,    -1,    -1,  2718,    -1,
      -1,   500,    -1,    -1,    -1,    -1,    -1,    -1,   507,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,
    2740,  2741,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2750,    -1,    -1,    -1,    -1,  2755,    -1,    -1,  2758,    -1,
    2760,  2761,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2798,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2827,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2841,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2859,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3097,  3098,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3057,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3272,  3097,  3098,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3106,    -1,    -1,  3285,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3247,    -1,    -1,
      -1,  3427,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3437,    -1,  3439,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3272,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3285,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3480,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3371,    -1,    -1,    -1,    -1,    -1,    -1,  3554,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3600,    -1,  3602,  3427,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3612,  3437,    -1,  3439,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3480,    -1,    -1,    -1,    -1,    -1,  3486,  3487,    -1,  3665,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3693,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3710,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3544,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3554,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3756,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3600,    -1,  3602,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3612,    -1,    -1,  3615,  3616,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3811,  3636,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3839,    -1,  3665,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3693,    -1,    -1,  3696,    -1,    -1,    -1,
      -1,    -1,    -1,  3879,    -1,    -1,    -1,    -1,    -1,  3709,
    3710,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3721,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3729,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3756,  3757,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3769,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3954,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3801,    -1,    -1,    -1,    -1,    -1,  3807,    -1,    -1,
      -1,  3811,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3822,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3839,
      -1,    -1,    -1,    -1,    -1,    -1,  3846,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3856,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3865,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3879,
      -1,    -1,    -1,    -1,    -1,    -1,  3886,    -1,  3888,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3896,  3897,    -1,    -1,
      -1,  3901,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3924,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3935,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3949,
    3950,    -1,    -1,    -1,  3954,    -1,    -1,    -1,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,  3969,
    3970,    -1,    17,    -1,  3974,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    43,    44,
      -1,    46,    47,    -1,    -1,    50,    51,    52,    53,    -1,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    83,    84,
      -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,    94,
      95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,   104,
     105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,   151,    -1,   153,   154,
     155,   156,   157,   158,    -1,   160,   161,   162,   163,    -1,
     165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,
      -1,   176,   177,   178,   179,    -1,   181,    -1,   183,    -1,
     185,   186,    -1,   188,   189,    -1,   191,   192,    -1,    -1,
      -1,   196,   197,   198,   199,   200,    -1,   202,   203,    -1,
      -1,   206,    -1,   208,    -1,    -1,   211,   212,   213,   214,
      -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,
     225,    -1,    -1,   228,   229,    -1,   231,   232,    -1,   234,
     235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,
     245,    -1,   247,    -1,   249,   250,    -1,    -1,   253,    -1,
      -1,    -1,    -1,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,    -1,    -1,
      -1,   286,   287,   288,   289,   290,    -1,    -1,   293,   294,
     295,   296,    -1,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,    -1,   309,   310,   311,    -1,    -1,   314,
     315,   316,   317,   318,   319,   320,   321,   322,    -1,   324,
     325,    -1,   327,   328,   329,    -1,   331,   332,   333,    -1,
     335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,    -1,   363,   364,
     365,    -1,   367,    -1,   369,   370,    -1,   372,   373,   374,
      -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,
     385,    -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,
     395,   396,   397,   398,   399,   400,    -1,   402,   403,   404,
      -1,   406,   407,    -1,    -1,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,    -1,   421,   422,    -1,    -1,
      -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,
      -1,    -1,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,
     455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,   464,
     465,   466,   467,    -1,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,   484,
      -1,   486,   487,   488,    -1,   490,   491,   492,   493,    -1,
      -1,    -1,    -1,   498,   499,   500,   501,    -1,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
      -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,
     525,    -1,   527,   528,    -1,    -1,   531,   532,   533,   534,
     535,    -1,    -1,   538,   539,    -1,   541,   542,   543,   544,
     545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,
      -1,    -1,   557,    -1,    -1,    -1,   561,   562,    -1,    -1,
      -1,    -1,   567,   568,    -1,    -1,   571,   572,    -1,   574,
     575,     5,    -1,     7,     8,     9,    10,    11,    12,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    35,    36,    37,    38,    39,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    51,    52,    53,
      -1,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    83,
      84,    -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,
      94,    95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,
     104,   105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,   153,
     154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
      -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,   183,
      -1,   185,   186,    -1,   188,   189,    -1,   191,   192,    -1,
      -1,    -1,   196,   197,   198,   199,   200,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,   211,   212,   213,
     214,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,
      -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,
     234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,   253,
      -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,   295,   296,    -1,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,   309,   310,   311,    -1,    -1,
     314,   315,   316,   317,   318,   319,   320,   321,   322,    -1,
     324,   325,    -1,   327,   328,   329,   330,   331,   332,   333,
      -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   345,   346,   347,   348,   349,   350,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,    -1,   363,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,   393,
      -1,   395,   396,   397,   398,   399,   400,    -1,   402,   403,
     404,    -1,   406,   407,    -1,    -1,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,    -1,
      -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,
     464,   465,   466,   467,    -1,   469,   470,   471,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
     484,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,   503,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,
      -1,   525,    -1,   527,   528,    -1,    -1,   531,   532,   533,
     534,   535,    -1,    -1,   538,   539,    -1,   541,   542,   543,
     544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,
     554,    -1,    -1,   557,    -1,    -1,    -1,   561,   562,    -1,
      -1,    -1,    -1,   567,   568,    -1,    -1,   571,   572,    -1,
     574,   575,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,    52,
      53,    -1,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      83,    84,    -1,    -1,    87,    88,    89,    -1,    91,    92,
      -1,    94,    95,    96,    97,    98,    99,    -1,    -1,    -1,
      -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,   151,    -1,
     153,   154,   155,   156,   157,   158,    -1,   160,   161,   162,
     163,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
     183,    -1,   185,   186,    -1,   188,   189,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,   200,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,   211,   212,
     213,   214,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,   295,   296,    -1,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,   309,   310,   311,    -1,
      -1,   314,   315,   316,   317,   318,   319,   320,   321,   322,
      -1,   324,   325,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,   398,   399,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
     423,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,   464,   465,   466,   467,    -1,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,   484,    -1,   486,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,   531,   532,
     533,   534,   535,    -1,    -1,   538,   539,    -1,   541,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,    -1,   557,    -1,    -1,    -1,   561,   562,
      -1,    -1,    -1,    -1,   567,   568,    -1,    -1,   571,   572,
      -1,   574,   575,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    35,    36,    37,    38,    39,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,
      52,    53,    -1,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    83,    84,    -1,    -1,    87,    88,    89,    -1,    91,
      92,    -1,    94,    95,    96,    97,    98,    99,    -1,    -1,
      -1,    -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,   153,   154,   155,   156,   157,   158,    -1,   160,   161,
     162,   163,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,   183,    -1,   185,   186,    -1,   188,   189,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,   200,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,   211,
     212,   213,   214,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,   253,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,   295,   296,    -1,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,   309,   310,   311,
      -1,    -1,   314,   315,   316,   317,   318,   319,   320,   321,
     322,    -1,   324,   325,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,   348,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,   398,   399,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,   464,   465,   466,   467,    -1,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,   484,    -1,   486,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,   503,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,   531,
     532,   533,   534,   535,    -1,    -1,   538,   539,    -1,   541,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,    -1,   557,    -1,    -1,    -1,   561,
     562,    -1,    -1,    -1,    -1,   567,   568,   569,    -1,   571,
     572,    -1,   574,   575,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      51,    52,    53,    -1,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      -1,    82,    83,    84,    -1,    -1,    87,    88,    89,    -1,
      91,    92,    -1,    94,    95,    96,    97,    98,    99,    -1,
      -1,    -1,    -1,   104,   105,   106,    -1,    -1,   109,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
     151,    -1,   153,   154,   155,   156,   157,   158,    -1,   160,
     161,   162,   163,    -1,   165,    -1,    -1,    -1,   169,   170,
     171,   172,    -1,   174,    -1,   176,   177,   178,   179,    -1,
     181,    -1,   183,    -1,   185,   186,    -1,   188,   189,    -1,
     191,   192,    -1,    -1,    -1,   196,   197,   198,   199,   200,
      -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,
     211,   212,   213,   214,    -1,    -1,   217,    -1,    -1,   220,
     221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,
      -1,   232,    -1,   234,   235,   236,    -1,    -1,    -1,    -1,
      -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,   250,
      -1,    -1,   253,    -1,    -1,    -1,    -1,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,    -1,    -1,    -1,   286,   287,   288,   289,   290,
      -1,    -1,   293,   294,   295,   296,    -1,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,    -1,   309,   310,
     311,    -1,    -1,   314,   315,   316,   317,   318,   319,   320,
     321,   322,    -1,   324,   325,    -1,   327,   328,   329,    -1,
     331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   345,   346,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,    -1,   363,   364,   365,    -1,   367,    -1,   369,   370,
      -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,
     381,   382,   383,   384,   385,    -1,    -1,   388,   389,   390,
      -1,   392,   393,    -1,   395,   396,   397,   398,   399,   400,
      -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,    -1,
     421,   422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,
      -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,
      -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,
     461,   462,   463,   464,   465,   466,   467,    -1,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
      -1,    -1,   483,   484,    -1,   486,   487,   488,    -1,   490,
     491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,
     501,    -1,   503,   504,   505,   506,   507,   508,   509,   510,
     511,   512,   513,   514,    -1,   516,   517,    -1,    -1,   520,
      -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,
     531,   532,   533,   534,   535,    -1,    -1,   538,   539,    -1,
     541,   542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,
     551,    -1,   553,   554,    -1,    -1,   557,    -1,    -1,    -1,
     561,   562,    -1,    -1,    -1,    -1,   567,   568,    -1,    -1,
     571,   572,    -1,   574,   575,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    51,    52,    53,    -1,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    83,    84,    -1,    -1,    87,    88,    89,
      -1,    91,    92,    -1,    94,    95,    96,    97,    98,    99,
      -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,   109,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,   153,   154,   155,   156,   157,   158,    -1,
     160,   161,   162,   163,    -1,   165,    -1,    -1,    -1,   169,
     170,   171,   172,    -1,   174,    -1,   176,   177,   178,   179,
      -1,   181,    -1,   183,    -1,   185,   186,    -1,   188,   189,
      -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,   199,
     200,    -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,
      -1,   211,   212,   213,   214,    -1,    -1,   217,    -1,    -1,
     220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,
      -1,    -1,   232,    -1,   234,   235,   236,    -1,    -1,    -1,
      -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,
     250,    -1,    -1,   253,    -1,    -1,    -1,    -1,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,    -1,    -1,    -1,   286,   287,   288,   289,
     290,    -1,    -1,   293,   294,   295,   296,    -1,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,    -1,   309,
     310,   311,    -1,    -1,   314,   315,   316,   317,   318,   319,
     320,   321,   322,    -1,   324,   325,    -1,   327,   328,   329,
      -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   345,   346,   347,   348,   349,
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,    -1,   363,   364,   365,    -1,   367,    -1,   369,
     370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,
      -1,   381,   382,   383,   384,   385,    -1,    -1,   388,   389,
     390,    -1,   392,   393,    -1,   395,   396,   397,   398,   399,
     400,    -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
      -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,   429,
      -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,
      -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,
      -1,   461,   462,   463,   464,   465,   466,   467,    -1,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,    -1,    -1,   483,   484,    -1,   486,   487,   488,    -1,
     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,
     500,   501,    -1,   503,   504,   505,   506,   507,   508,   509,
     510,   511,   512,   513,   514,    -1,   516,   517,    -1,    -1,
     520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,
      -1,   531,   532,   533,   534,   535,    -1,    -1,   538,   539,
      -1,   541,   542,   543,   544,   545,    -1,    -1,    -1,    -1,
     550,   551,    -1,   553,   554,    -1,    -1,   557,    -1,    -1,
      -1,   561,   562,    -1,    -1,    -1,    -1,   567,   568,    -1,
      -1,   571,   572,    -1,   574,   575,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    83,    84,    -1,    -1,    87,    88,
      89,    -1,    91,    92,    -1,    94,    95,    96,    97,    98,
      99,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,
     109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
      -1,   160,   161,   162,   163,    -1,   165,    -1,    -1,    -1,
     169,   170,   171,   172,    -1,   174,    -1,   176,   177,   178,
     179,    -1,   181,    -1,   183,    -1,   185,   186,    -1,   188,
     189,    -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,
     199,   200,    -1,   202,   203,    -1,    -1,   206,    -1,   208,
      -1,    -1,   211,   212,   213,   214,    -1,    -1,   217,    -1,
      -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,
     229,    -1,    -1,   232,    -1,   234,   235,   236,    -1,    -1,
      -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,
     249,   250,    -1,    -1,   253,    -1,    -1,    -1,    -1,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,    -1,    -1,    -1,   286,   287,   288,
     289,   290,    -1,    -1,   293,   294,   295,   296,    -1,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,    -1,
     309,   310,   311,    -1,    -1,   314,   315,   316,   317,   318,
     319,   320,   321,   322,    -1,   324,   325,    -1,   327,   328,
     329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,    -1,   363,   364,   365,    -1,   367,    -1,
     369,   370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,
      -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,   388,
     389,   390,    -1,   392,   393,    -1,   395,   396,   397,   398,
     399,   400,    -1,   402,   403,   404,    -1,   406,   407,    -1,
      -1,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,
     429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,
     439,   440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,
      -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,
      -1,    -1,   461,   462,   463,   464,   465,   466,   467,    -1,
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
     479,   480,    -1,    -1,   483,   484,    -1,   486,   487,   488,
      -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
     499,   500,   501,    -1,   503,   504,   505,   506,   507,   508,
     509,   510,   511,   512,   513,   514,    -1,   516,   517,    -1,
      -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,
      -1,    -1,   531,   532,   533,   534,   535,    -1,    -1,   538,
     539,    -1,   541,   542,   543,   544,   545,    -1,    -1,    -1,
      -1,   550,   551,    -1,   553,   554,    -1,    -1,   557,    -1,
      -1,    -1,   561,   562,    -1,    -1,    -1,    -1,   567,   568,
      -1,    -1,   571,   572,    -1,   574,   575,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    33,    34,    35,    36,    37,
      38,    39,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    51,    52,    53,    -1,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    83,    84,    -1,    -1,    87,
      88,    89,    -1,    91,    92,    -1,    94,    95,    96,    97,
      98,    99,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,
      -1,   109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
     158,    -1,   160,   161,   162,   163,    -1,   165,    -1,    -1,
      -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,   177,
     178,   179,    -1,   181,    -1,   183,    -1,   185,   186,    -1,
     188,   189,    -1,   191,   192,    -1,    -1,    -1,   196,   197,
     198,   199,   200,    -1,   202,   203,    -1,    -1,   206,    -1,
     208,    -1,    -1,   211,   212,   213,   214,    -1,    -1,   217,
      -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,
     228,   229,    -1,    -1,   232,    -1,   234,   235,   236,    -1,
      -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,
      -1,   249,   250,    -1,    -1,   253,    -1,    -1,    -1,    -1,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,    -1,    -1,    -1,   286,   287,
     288,   289,   290,    -1,    -1,   293,   294,   295,   296,    -1,
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
      -1,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
     318,   319,   320,   321,   322,    -1,   324,   325,    -1,   327,
     328,   329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,
     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,    -1,   363,   364,   365,    -1,   367,
      -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,   377,
      -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,
     388,   389,   390,    -1,   392,   393,    -1,   395,   396,   397,
     398,   399,   400,    -1,   402,   403,   404,    -1,   406,   407,
      -1,    -1,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,
     428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,
     438,   439,   440,    -1,   442,   443,   444,   445,    -1,    -1,
      -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,
     458,    -1,    -1,   461,   462,   463,   464,   465,   466,   467,
      -1,   469,   470,   471,   472,   473,   474,   475,   476,   477,
     478,   479,   480,    -1,    -1,   483,   484,    -1,   486,   487,
     488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
      -1,   499,   500,   501,    -1,   503,   504,   505,   506,   507,
     508,   509,   510,   511,   512,   513,   514,    -1,   516,   517,
      -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,
     528,    -1,    -1,   531,   532,   533,   534,   535,    -1,    -1,
     538,   539,    -1,   541,   542,   543,   544,   545,    -1,    -1,
      -1,    -1,   550,   551,    -1,   553,   554,    -1,    -1,   557,
      -1,    -1,    -1,   561,   562,    -1,    -1,    -1,    -1,   567,
     568,    -1,    -1,   571,   572,    -1,   574,   575,     5,    -1,
       7,     8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    33,    34,    35,    36,
      37,    38,    39,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    51,    52,    53,    -1,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    -1,    80,    -1,    82,    83,    84,    -1,    -1,
      87,    88,    89,    -1,    91,    92,    -1,    94,    95,    96,
      97,    98,    99,    -1,    -1,    -1,    -1,   104,   105,   106,
      -1,    -1,   109,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
     157,   158,    -1,   160,   161,   162,   163,    -1,   165,    -1,
      -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,
     177,   178,   179,    -1,   181,    -1,   183,    -1,   185,   186,
      -1,   188,   189,    -1,   191,   192,    -1,    -1,    -1,   196,
     197,   198,   199,   200,    -1,   202,   203,    -1,    -1,   206,
      -1,   208,    -1,    -1,   211,   212,   213,   214,    -1,    -1,
     217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,
      -1,   228,   229,    -1,    -1,   232,    -1,   234,   235,   236,
      -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,
     247,    -1,   249,   250,    -1,    -1,   253,    -1,    -1,    -1,
      -1,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,    -1,    -1,    -1,   286,
     287,   288,   289,   290,    -1,    -1,   293,   294,   295,   296,
      -1,   298,   299,   300,   301,   302,   303,   304,   305,   306,
     307,    -1,   309,   310,   311,    -1,    -1,   314,   315,   316,
     317,   318,    -1,   320,   321,   322,    -1,   324,   325,    -1,
     327,   328,   329,    -1,   331,   332,   333,    -1,   335,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,    -1,   363,   364,   365,    -1,
     367,    -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,
     377,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
      -1,   388,   389,   390,    -1,   392,   393,    -1,   395,   396,
     397,   398,   399,   400,    -1,   402,   403,   404,    -1,   406,
     407,    -1,    -1,   410,   411,   412,   413,   414,   415,   416,
     417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,
     427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     437,   438,   439,   440,    -1,   442,   443,   444,   445,    -1,
      -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,
      -1,   458,    -1,    -1,   461,   462,   463,   464,   465,   466,
     467,    -1,   469,   470,   471,   472,   473,   474,   475,   476,
     477,   478,   479,   480,    -1,    -1,   483,   484,    -1,   486,
     487,   488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,   501,    -1,   503,   504,   505,   506,
     507,   508,   509,   510,   511,   512,   513,   514,    -1,   516,
     517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,
     527,   528,    -1,    -1,   531,   532,   533,   534,   535,    -1,
      -1,   538,   539,    -1,   541,   542,   543,   544,   545,    -1,
      -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,    -1,
     557,    -1,    -1,    -1,   561,   562,    -1,    -1,    -1,    -1,
     567,   568,    -1,    -1,   571,   572,    -1,   574,   575,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    33,    34,    35,
      36,    37,    38,    39,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    51,    52,    53,    -1,    55,
      56,    57,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    83,    84,    -1,
      -1,    87,    88,    89,    -1,    91,    92,    -1,    94,    95,
      96,    97,    98,    99,    -1,    -1,    -1,    -1,   104,   105,
     106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
     156,   157,   158,    -1,   160,   161,   162,   163,    -1,   165,
      -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,
     176,   177,   178,   179,    -1,   181,    -1,   183,    -1,   185,
     186,    -1,   188,   189,    -1,   191,   192,    -1,    -1,    -1,
     196,   197,   198,   199,   200,    -1,   202,   203,    -1,    -1,
     206,    -1,   208,    -1,    -1,   211,   212,   213,   214,    -1,
      -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,
      -1,    -1,   228,   229,    -1,    -1,   232,    -1,   234,   235,
     236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,
      -1,   247,    -1,   249,   250,    -1,    -1,   253,    -1,    -1,
      -1,    -1,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,    -1,    -1,    -1,
     286,   287,   288,   289,   290,    -1,    -1,   293,   294,   295,
     296,    -1,   298,   299,   300,   301,   302,   303,   304,   305,
     306,   307,    -1,   309,   310,   311,    -1,    -1,   314,   315,
     316,   317,   318,   319,   320,   321,   322,    -1,   324,   325,
      -1,   327,   328,   329,    -1,   331,   332,   333,    -1,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,    -1,   363,   364,   365,
      -1,   367,    -1,   369,   370,    -1,   372,   373,   374,    -1,
      -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,   385,
      -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,   395,
     396,   397,   398,   399,   400,    -1,   402,   403,   404,    -1,
     406,   407,    -1,    -1,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,
     426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,
      -1,   437,   438,   439,   440,    -1,   442,   443,   444,   445,
      -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,
      -1,    -1,   458,    -1,    -1,   461,   462,   463,   464,   465,
     466,   467,    -1,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,    -1,    -1,   483,   484,    -1,
     486,   487,   488,    -1,   490,   491,   492,   493,    -1,    -1,
      -1,    -1,    -1,   499,   500,   501,    -1,   503,   504,   505,
     506,   507,   508,   509,   510,   511,   512,   513,   514,    -1,
     516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,
      -1,   527,   528,    -1,    -1,   531,   532,   533,   534,   535,
      -1,    -1,   538,   539,    -1,   541,   542,   543,   544,   545,
      -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,
      -1,   557,    -1,    -1,    -1,   561,   562,    -1,    -1,    -1,
      -1,   567,   568,    -1,    -1,   571,   572,    -1,   574,   575,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    51,    52,    53,    -1,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    83,    84,
      -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,    94,
      95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,   104,
     105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,   151,    -1,   153,   154,
     155,   156,   157,   158,    -1,   160,   161,   162,   163,    -1,
     165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,
      -1,   176,   177,   178,   179,    -1,   181,    -1,   183,    -1,
     185,   186,    -1,   188,   189,    -1,   191,   192,    -1,    -1,
      -1,   196,   197,   198,   199,   200,    -1,   202,   203,    -1,
      -1,   206,    -1,   208,    -1,    -1,   211,   212,   213,   214,
      -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,
     225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,   234,
     235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,
     245,    -1,   247,    -1,   249,   250,    -1,    -1,   253,    -1,
      -1,    -1,    -1,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,    -1,    -1,
      -1,   286,   287,   288,   289,   290,    -1,    -1,   293,   294,
     295,   296,    -1,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,    -1,   309,   310,   311,    -1,    -1,   314,
     315,   316,   317,   318,   319,   320,   321,   322,    -1,   324,
     325,    -1,   327,   328,   329,    -1,   331,   332,   333,    -1,
     335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,    -1,   363,   364,
     365,    -1,   367,    -1,   369,   370,    -1,   372,   373,   374,
      -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,
     385,    -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,
     395,   396,   397,   398,   399,   400,    -1,   402,   403,   404,
      -1,   406,   407,    -1,    -1,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,    -1,   421,   422,    -1,    -1,
      -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,
      -1,    -1,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,
     455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,   464,
     465,   466,   467,    -1,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,    -1,    -1,   483,   484,
      -1,   486,   487,   488,    -1,   490,   491,   492,   493,    -1,
      -1,    -1,    -1,    -1,   499,   500,   501,    -1,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
      -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,
     525,    -1,   527,   528,    -1,    -1,   531,   532,   533,   534,
     535,    -1,    -1,   538,   539,    -1,   541,   542,   543,   544,
     545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,
      -1,    -1,   557,    -1,    -1,    -1,   561,   562,    -1,    -1,
      -1,    -1,   567,   568,    -1,    -1,   571,   572,    -1,   574,
     575,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    35,    36,    37,    38,    39,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    51,    52,    53,
      -1,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    83,
      84,    -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,
      94,    95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,
     104,   105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,   153,
     154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
      -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,   183,
      -1,   185,   186,    -1,   188,   189,    -1,   191,   192,    -1,
      -1,    -1,   196,   197,   198,   199,   200,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,   211,   212,   213,
     214,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,
      -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,
     234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,   253,
      -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,   295,   296,    -1,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,   309,   310,   311,    -1,    -1,
     314,   315,   316,   317,   318,   319,   320,   321,   322,    -1,
     324,   325,    -1,   327,   328,   329,    -1,   331,   332,   333,
      -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   345,   346,   347,   348,   349,   350,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,    -1,   363,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,   393,
      -1,   395,   396,   397,   398,   399,   400,    -1,   402,   403,
     404,    -1,   406,   407,    -1,    -1,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,    -1,
      -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,
     464,   465,   466,   467,    -1,   469,   470,   471,   472,   473,
     474,   475,   476,   477,   478,   479,   480,    -1,    -1,   483,
     484,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,   503,
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
     514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,
      -1,   525,    -1,   527,   528,    -1,    -1,   531,   532,   533,
     534,   535,    -1,    -1,   538,   539,    -1,   541,   542,   543,
     544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,
     554,    -1,    -1,   557,    -1,    -1,    -1,   561,   562,    -1,
      -1,    -1,    -1,   567,   568,    -1,    -1,   571,   572,    -1,
     574,   575,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,    52,
      53,    -1,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      83,    84,    -1,    -1,    87,    88,    89,    -1,    91,    92,
      -1,    94,    95,    96,    97,    98,    99,    -1,    -1,    -1,
      -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,   151,    -1,
     153,   154,   155,   156,   157,   158,    -1,   160,   161,   162,
     163,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
     183,    -1,   185,   186,    -1,   188,   189,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,   200,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,   211,   212,
     213,   214,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,   295,   296,    -1,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,   309,   310,   311,    -1,
      -1,   314,   315,   316,   317,   318,    -1,   320,   321,   322,
      -1,   324,   325,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,   398,   399,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
      -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,   464,   465,   466,   467,    -1,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,    -1,    -1,
     483,   484,    -1,   486,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,   531,   532,
     533,   534,   535,    -1,    -1,   538,   539,    -1,   541,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,    -1,   557,    -1,    -1,    -1,   561,   562,
      -1,    -1,    -1,    -1,   567,   568,    -1,    -1,   571,   572,
      -1,   574,   575,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    33,    34,    35,    36,    37,    38,    39,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,
      52,    53,    -1,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    83,    84,    -1,    -1,    87,    88,    89,    -1,    91,
      92,    -1,    94,    95,    96,    97,    98,    99,    -1,    -1,
      -1,    -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,   153,   154,   155,   156,   157,   158,    -1,   160,   161,
     162,   163,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,   183,    -1,   185,   186,    -1,   188,   189,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,   200,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,   211,
     212,   213,   214,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,   253,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,   295,   296,    -1,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,   309,   310,   311,
      -1,    -1,   314,   315,   316,   317,   318,    -1,   320,   321,
     322,    -1,   324,   325,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,   348,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,   398,   399,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,   464,   465,   466,   467,    -1,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,    -1,
      -1,   483,   484,    -1,   486,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,   503,   504,   505,   506,   507,   508,   509,   510,   511,
     512,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,   531,
     532,   533,   534,   535,    -1,    -1,   538,   539,    -1,   541,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,    -1,   557,    -1,    -1,    -1,   561,
     562,    -1,    -1,    -1,    -1,   567,   568,    -1,    -1,   571,
     572,    -1,   574,   575,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    79,    80,
      -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,
      -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
      -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,
     161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,
      -1,   172,   173,   174,    -1,   176,   177,   178,   179,    -1,
     181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,
     191,   192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,
      -1,   202,   203,   204,    -1,   206,    -1,   208,    -1,    -1,
      -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,
     221,    -1,    -1,    -1,   225,   226,    -1,   228,   229,    -1,
      -1,   232,    -1,    -1,   235,   236,    -1,   238,    -1,    -1,
      -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,   250,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,    -1,   275,   276,   277,   278,    -1,   280,
     281,   282,    -1,    -1,    -1,   286,   287,   288,   289,   290,
      -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,    -1,    -1,   310,
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,
     321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,
     331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
      -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,   370,
      -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,
     381,   382,   383,   384,   385,    -1,    -1,   388,   389,   390,
      -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,   400,
      -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,
     411,   412,   413,   414,   415,   416,   417,   418,   419,    -1,
     421,   422,   423,    -1,    -1,   426,   427,   428,   429,    -1,
      -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,   446,    -1,    -1,    -1,    -1,
      -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,
     461,   462,   463,    -1,    -1,   466,   467,    -1,   469,   470,
     471,   472,   473,    -1,    -1,   476,   477,    -1,   479,   480,
      -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,
     491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,
     501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,
     511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,
      -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,
      -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,
      -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,
     551,    -1,   553,   554,    -1,    -1,   557,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,   575,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,
      -1,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,
      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,
      -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,    -1,    -1,   153,   154,   155,    -1,
      -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,
      -1,    -1,   169,   170,    -1,   172,   173,   174,    -1,   176,
     177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,
      -1,   188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,
     197,   198,   199,    -1,    -1,   202,   203,   204,    -1,   206,
      -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,
     217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,   226,
      -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,
      -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,
     247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,    -1,   275,   276,
     277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,
     287,   288,   289,   290,    -1,    -1,   293,   294,    -1,   296,
      -1,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,
     317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,
     327,   328,   329,    -1,   331,   332,   333,    -1,   335,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,
     347,    -1,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,    -1,    -1,   363,   364,   365,    -1,
     367,    -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,
     377,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
      -1,   388,   389,   390,    -1,   392,   393,    -1,   395,   396,
     397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,
     407,    -1,    -1,    -1,   411,   412,   413,   414,   415,   416,
     417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,
     427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     437,   438,   439,   440,    -1,   442,   443,   444,   445,   446,
      -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,
      -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,
     467,    -1,   469,   470,   471,   472,   473,    -1,    -1,   476,
     477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,
     487,   488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,
     507,   508,    -1,   510,   511,    -1,   513,   514,    -1,   516,
     517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,
     527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,
      -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,
      -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,    -1,
     557,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,   575,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,
      53,    -1,    55,    56,    -1,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,    -1,   160,   161,   162,
      -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
     213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,    -1,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,    -1,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
     423,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,    -1,    -1,   466,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,    -1,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,   505,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,    -1,   557,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,   569,    -1,    17,    -1,
      -1,    20,   575,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,
      -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,
     169,   170,    -1,   172,    -1,   174,    -1,   176,   177,   178,
     179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,
      -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,
     199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,
      -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,
      -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,
     229,    -1,    -1,   232,    -1,    -1,   235,   236,    -1,    -1,
      -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,
     249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,    -1,   275,   276,   277,   278,
      -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,   288,
     289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,    -1,
      -1,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
      -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,
     329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,
     369,   370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,
      -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,   388,
     389,   390,    -1,   392,   393,    -1,   395,   396,   397,    -1,
      -1,   400,    -1,   402,   403,   404,    -1,   406,   407,    -1,
      -1,    -1,   411,   412,   413,   414,   415,   416,   417,   418,
     419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,
     429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,
     439,   440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,
      -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,
      -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,
     469,   470,   471,   472,   473,    -1,    -1,   476,   477,    -1,
     479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,
      -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
     499,   500,   501,    -1,    -1,    -1,   505,   506,   507,   508,
      -1,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
      -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,
      -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,
      -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,
      -1,   550,   551,    -1,   553,   554,    -1,    -1,   557,    -1,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
     569,    -1,    -1,    -1,    17,   574,   575,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,
      53,    -1,    55,    56,    -1,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,    -1,   160,   161,   162,
      -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
     213,    -1,   215,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,    -1,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,    -1,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
      -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,    -1,    -1,   466,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,    -1,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,   505,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,    -1,   557,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   575,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,
      -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,
     169,   170,    -1,   172,    -1,   174,    -1,   176,   177,   178,
     179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,
      -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,
     199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,
      -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,
      -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,
     229,    -1,    -1,   232,    -1,    -1,   235,   236,    -1,    -1,
      -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,
     249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,    -1,   275,   276,   277,   278,
      -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,   288,
     289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,    -1,
      -1,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
      -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,
     329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,
     369,   370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,
      -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,   388,
     389,   390,    -1,   392,   393,    -1,   395,   396,   397,    -1,
      -1,   400,    -1,   402,   403,   404,    -1,   406,   407,    -1,
      -1,    -1,   411,   412,   413,   414,   415,   416,   417,   418,
     419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,
     429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,
     439,   440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,
      -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,
      -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,
     469,   470,   471,   472,   473,    -1,    -1,   476,   477,    -1,
     479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,
      -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
     499,   500,   501,    -1,    -1,    -1,   505,   506,   507,   508,
      -1,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
      -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,
      -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,
      -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,
      -1,   550,   551,    -1,   553,   554,    -1,    -1,   557,    -1,
      -1,    -1,    -1,     5,   563,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,   575,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,   161,
     162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,
     212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,    -1,   275,   276,   277,   278,    -1,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,    -1,   310,   311,
      -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,
     322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,    -1,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,    -1,    -1,   466,   467,    -1,   469,   470,   471,
     472,   473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,
      -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,
      -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,    -1,   557,    -1,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,   568,    -1,    -1,    17,
      -1,    -1,    20,   575,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,
     158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,
      -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,   177,
     178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,
     188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,
     198,   199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,
     208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,
      -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,
     228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,    -1,
      -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,
      -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,    -1,   275,   276,   277,
     278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,
     288,   289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,
     298,    -1,   300,   301,   302,   303,   304,   305,   306,   307,
      -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,   317,
      -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,
     328,   329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,
      -1,   349,   350,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,    -1,    -1,   363,   364,   365,    -1,   367,
      -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,   377,
      -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,
     388,   389,   390,    -1,   392,   393,    -1,   395,   396,   397,
      -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,   407,
      -1,    -1,    -1,   411,   412,   413,   414,   415,   416,   417,
     418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,
     428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,
     438,   439,   440,    -1,   442,   443,   444,   445,    -1,    -1,
      -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,
     458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,
      -1,   469,   470,   471,   472,   473,    -1,    -1,   476,   477,
      -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,
     488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
      -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,   507,
     508,    -1,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,
     528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,
     538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,
      -1,    -1,   550,   551,    -1,   553,   554,    -1,    -1,   557,
      -1,    -1,    -1,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,   574,   575,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,   161,
     162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,
     212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,    -1,   275,   276,   277,   278,    -1,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,    -1,   310,   311,
      -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,
     322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,    -1,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,    -1,    -1,   466,   467,    -1,   469,   470,   471,
     472,   473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,
      -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,
      -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,    -1,   557,    -1,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,   575,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,
     158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,
      -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,   177,
     178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,
     188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,
     198,   199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,
     208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,
      -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,
     228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,    -1,
      -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,
      -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,    -1,   275,   276,   277,
     278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,
     288,   289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,
     298,    -1,   300,   301,   302,   303,   304,   305,   306,   307,
      -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,   317,
      -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,
     328,   329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,
      -1,   349,   350,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,    -1,    -1,   363,   364,   365,    -1,   367,
      -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,   377,
      -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,
     388,   389,   390,    -1,   392,   393,    -1,   395,   396,   397,
      -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,   407,
      -1,    -1,    -1,   411,   412,   413,   414,   415,   416,   417,
     418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,
     428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,
     438,   439,   440,    -1,   442,   443,   444,   445,    -1,    -1,
      -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,
     458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,
      -1,   469,   470,   471,   472,   473,    -1,    -1,   476,   477,
      -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,
     488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
      -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,   507,
     508,    -1,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,
     528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,
     538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,
      -1,    -1,   550,   551,    -1,   553,   554,    -1,    -1,   557,
      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,   575,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,    -1,    -1,   153,
     154,   155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,
      -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,
      -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,
      -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,
      -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,
      -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,
      -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
      -1,   275,   276,   277,   278,    -1,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,    -1,   296,    -1,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,
     314,   315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,
      -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,   333,
      -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   345,   346,   347,    -1,   349,   350,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,    -1,    -1,   363,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,   393,
      -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,   403,
     404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,    -1,
      -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,
      -1,    -1,   466,   467,    -1,   469,   470,   471,   472,   473,
      -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,
     484,    -1,    -1,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,
      -1,   505,   506,   507,   508,    -1,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,
      -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,
      -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,
     544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,
     554,    -1,    -1,   557,    -1,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,   575,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,
     160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,
     170,    -1,   172,    -1,   174,    -1,   176,   177,   178,   179,
      -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,
      -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,   199,
      -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,
      -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,
     220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,
      -1,    -1,   232,    -1,    -1,   235,   236,    -1,    -1,    -1,
      -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,
     250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,    -1,   275,   276,   277,   278,    -1,
     280,   281,   282,    -1,    -1,    -1,   286,   287,   288,   289,
     290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,    -1,    -1,
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
      -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,
      -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,
     370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,
      -1,   381,   382,   383,   384,   385,    -1,    -1,   388,   389,
     390,    -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,
     400,    -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,
      -1,   411,   412,   413,   414,   415,   416,   417,   418,   419,
      -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,   429,
      -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,
      -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,
      -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,   469,
     470,   471,   472,   473,    -1,    -1,   476,   477,    -1,   479,
     480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,
     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,
     500,   501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,
     520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,
      -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,
      -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,
     550,   551,    -1,   553,   554,    -1,    -1,   557,    -1,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,   575,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,   153,   154,   155,
      -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,
      -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,
     176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,
     186,    -1,   188,    -1,    -1,   191,   192,    -1,    -1,    -1,
     196,   197,   198,   199,    -1,    -1,   202,   203,    -1,    -1,
     206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,
      -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,
      -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,
     236,   237,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,
      -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,    -1,   275,
     276,   277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,
     286,   287,   288,   289,   290,    -1,    -1,   293,   294,    -1,
     296,    -1,   298,    -1,   300,   301,   302,   303,   304,   305,
     306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,
     316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,
      -1,   327,   328,   329,    -1,   331,   332,   333,    -1,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     346,   347,    -1,   349,   350,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,    -1,    -1,   363,   364,   365,
      -1,   367,    -1,   369,   370,    -1,   372,   373,   374,    -1,
      -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,   385,
      -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,   395,
     396,   397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,
     406,   407,    -1,    -1,    -1,   411,   412,   413,   414,   415,
     416,   417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,
     426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,
      -1,   437,   438,   439,   440,    -1,   442,   443,   444,   445,
      -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,
      -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,
     466,   467,    -1,   469,   470,   471,   472,   473,    -1,    -1,
     476,   477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,
     486,   487,   488,    -1,   490,   491,   492,   493,    -1,    -1,
      -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,
     506,   507,   508,    -1,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,
      -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,
      -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,
      -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,
      -1,   557,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,   574,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,
      53,    -1,    55,    56,    -1,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,    -1,   160,   161,   162,
      -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
     213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,    -1,   235,   236,   237,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,    -1,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,    -1,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
      -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,    -1,    -1,   466,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,   486,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,   505,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,    -1,   557,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,   574,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,
     160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,
     170,    -1,   172,    -1,   174,    -1,   176,   177,   178,   179,
      -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,
      -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,   199,
      -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,
      -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,
     220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,
      -1,    -1,   232,    -1,    -1,   235,   236,   237,    -1,    -1,
      -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,
     250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,    -1,   275,   276,   277,   278,    -1,
     280,   281,   282,    -1,    -1,    -1,   286,   287,   288,   289,
     290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,    -1,    -1,
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
      -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,
      -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,
     370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,
      -1,   381,   382,   383,   384,   385,    -1,    -1,   388,   389,
     390,    -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,
     400,    -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,
      -1,   411,   412,   413,   414,   415,   416,   417,   418,   419,
      -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,   429,
      -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,
      -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,
      -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,   469,
     470,   471,   472,   473,    -1,    -1,   476,   477,    -1,   479,
     480,    -1,    -1,   483,   484,    -1,   486,   487,   488,    -1,
     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,
     500,   501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,
     520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,
      -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,
      -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,
     550,   551,    -1,   553,   554,    -1,    -1,   557,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    -1,   574,    22,    23,    24,    25,    26,
      27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,    -1,
      -1,    -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,
      -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    -1,    70,    -1,    72,    73,    74,    75,    -1,
      77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,
      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,   104,    -1,    -1,
      -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,    -1,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,    -1,    -1,    -1,   153,   154,   155,    -1,
      -1,   158,   159,   160,   161,   162,    -1,    -1,    -1,    -1,
      -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,
     177,   178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,
      -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,   196,
     197,   198,   199,   200,    -1,   202,   203,    -1,    -1,   206,
      -1,   208,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,
     217,    -1,    -1,   220,   221,   222,    -1,    -1,   225,    -1,
      -1,    -1,   229,    -1,    -1,   232,   233,    -1,   235,   236,
      -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,
     247,    -1,   249,   250,    -1,    -1,    -1,    -1,   255,    -1,
      -1,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,    -1,   275,   276,
     277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,
     287,   288,   289,   290,    -1,    -1,   293,   294,    -1,   296,
      -1,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,
     327,   328,   329,    -1,   331,   332,   333,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,
     347,    -1,    -1,   350,   351,   352,    -1,   354,   355,   356,
     357,   358,   359,    -1,    -1,    -1,    -1,   364,   365,    -1,
     367,    -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,
      -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
      -1,   388,   389,   390,    -1,   392,    -1,    -1,   395,    -1,
     397,   398,    -1,   400,    -1,    -1,   403,    -1,    -1,   406,
     407,   408,    -1,    -1,    -1,   412,   413,   414,   415,   416,
     417,    -1,   419,    -1,   421,    -1,    -1,    -1,    -1,   426,
     427,   428,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     437,    -1,   439,    -1,    -1,   442,    -1,    -1,   445,    -1,
      -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,
      -1,   458,    -1,    -1,   461,    -1,   463,    -1,    -1,    -1,
     467,    -1,   469,   470,   471,   472,   473,    -1,    -1,   476,
     477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,
     487,   488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,   501,    -1,    -1,    -1,    -1,   506,
     507,   508,    -1,   510,   511,    -1,   513,   514,    -1,    -1,
      -1,    -1,    -1,   520,    -1,    -1,   523,    -1,    -1,    -1,
     527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,
      -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,
      -1,   548,    -1,   550,    -1,    -1,   553,    -1,    -1,     5,
     557,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,   570,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,   153,   154,   155,
      -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,
      -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,
     176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,
     186,    -1,   188,    -1,    -1,   191,   192,    -1,    -1,    -1,
     196,   197,   198,   199,    -1,    -1,   202,   203,    -1,    -1,
     206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,
      -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,
      -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,
     236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,
      -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,    -1,   275,
     276,   277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,
     286,   287,   288,   289,   290,    -1,    -1,   293,   294,    -1,
     296,    -1,   298,    -1,   300,   301,   302,   303,   304,   305,
     306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,
     316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,
      -1,   327,   328,   329,    -1,   331,   332,   333,    -1,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     346,   347,    -1,   349,   350,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,    -1,    -1,   363,   364,   365,
      -1,   367,    -1,   369,   370,    -1,   372,   373,   374,    -1,
      -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,   385,
      -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,   395,
     396,   397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,
     406,   407,    -1,    -1,    -1,   411,   412,   413,   414,   415,
     416,   417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,
     426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,
      -1,   437,   438,   439,   440,    -1,   442,   443,   444,   445,
      -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,
      -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,
     466,   467,    -1,   469,   470,   471,   472,   473,    -1,    -1,
     476,   477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,
      -1,   487,   488,    -1,   490,   491,   492,   493,    -1,    -1,
      -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,
     506,   507,   508,    -1,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,
      -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,
      -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,
      -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,
       5,   557,     7,     8,     9,    10,    11,   563,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,
      55,    56,    -1,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,
      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,
     105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,    -1,    -1,   153,   154,
     155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,
     165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,
      -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,
     185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,    -1,
      -1,   196,   197,   198,   199,    -1,    -1,   202,   203,    -1,
      -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,
      -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,
     225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,
     235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,
     245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,    -1,
     275,   276,   277,   278,    -1,   280,   281,   282,    -1,    -1,
      -1,   286,   287,   288,   289,   290,    -1,    -1,   293,   294,
      -1,   296,    -1,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,
     315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,
      -1,    -1,   327,   328,   329,    -1,   331,   332,   333,    -1,
     335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     345,   346,   347,    -1,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,    -1,    -1,   363,   364,
     365,    -1,   367,    -1,   369,   370,    -1,   372,   373,   374,
      -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,
     385,    -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,
     395,   396,   397,    -1,    -1,   400,    -1,   402,   403,   404,
      -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,   414,
     415,   416,   417,   418,   419,    -1,   421,   422,    -1,    -1,
      -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,
      -1,    -1,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,
     455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,
      -1,   466,   467,    -1,   469,   470,   471,   472,   473,    -1,
      -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,   484,
      -1,    -1,   487,   488,    -1,   490,   491,   492,   493,    -1,
      -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,
     505,   506,   507,   508,    -1,   510,   511,    -1,   513,   514,
      -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,
     525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,
     535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,
     545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,
      -1,     5,   557,     7,     8,     9,    10,    11,   563,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,    -1,    -1,   153,
     154,   155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,
      -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,
      -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,
      -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,
      -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,
      -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,
      -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
      -1,   275,   276,   277,   278,    -1,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,    -1,   296,    -1,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,
     314,   315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,
      -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,   333,
      -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   345,   346,   347,    -1,   349,   350,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,    -1,    -1,   363,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,   393,
      -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,   403,
     404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,    -1,
      -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,
      -1,    -1,   466,   467,    -1,   469,   470,   471,   472,   473,
      -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,
     484,    -1,    -1,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,
      -1,   505,   506,   507,   508,    -1,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,
      -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,
      -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,
     544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,
     554,    -1,     5,   557,     7,     8,     9,    10,    11,   563,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,
      53,    -1,    55,    56,    -1,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,    -1,   160,   161,   162,
      -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
     213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,    -1,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,    -1,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
      -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,    -1,    -1,   466,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,    -1,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,   505,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,     5,   557,     7,     8,     9,    10,    11,
     563,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,   106,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,   161,
     162,   163,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,    -1,    -1,   185,   186,    -1,   188,   189,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,
     212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,   253,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,    -1,   275,   276,   277,   278,    -1,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,    -1,   310,   311,
      -1,    -1,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,    -1,    -1,   325,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,    -1,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,   448,   449,   450,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,    -1,    -1,   466,   467,    -1,   469,   470,   471,
     472,   473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,
      -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,    -1,    -1,   505,   506,   507,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,
      -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,     5,   557,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,
      -1,    -1,    -1,   104,   105,    -1,    -1,    -1,   109,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,   142,    -1,   144,    -1,   146,   147,   148,   149,   150,
      -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,
     161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,
      -1,   172,    -1,   174,    -1,   176,   177,   178,   179,    -1,
     181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,
     191,   192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,
      -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,
      -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,
     221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,
      -1,   232,    -1,    -1,   235,   236,   237,    -1,    -1,    -1,
      -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,   250,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,    -1,   275,   276,   277,   278,    -1,   280,
     281,   282,    -1,    -1,    -1,   286,   287,   288,   289,   290,
      -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,    -1,    -1,   310,
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,
     321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,
     331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
      -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,   370,
      -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,
     381,   382,   383,   384,   385,    -1,    -1,   388,   389,   390,
      -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,   400,
      -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,
     411,   412,   413,   414,   415,   416,   417,   418,   419,    -1,
     421,   422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,
      -1,   432,   433,    -1,    -1,    -1,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,
      -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,
     461,   462,   463,    -1,    -1,   466,   467,    -1,   469,   470,
     471,   472,   473,    -1,    -1,   476,   477,    -1,   479,   480,
      -1,    -1,   483,   484,    -1,   486,   487,   488,    -1,   490,
     491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,
     501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,
     511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,
      -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,
      -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,
      -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,
     551,    -1,   553,   554,    -1,     5,   557,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,   109,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,
     160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,
     170,    -1,   172,    -1,   174,    -1,   176,   177,   178,   179,
      -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,
      -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,   199,
      -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,
      -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,
     220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,
      -1,    -1,   232,    -1,    -1,   235,   236,   237,    -1,    -1,
      -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,
     250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,    -1,   275,   276,   277,   278,    -1,
     280,   281,   282,    -1,    -1,    -1,   286,   287,   288,   289,
     290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,    -1,    -1,
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
      -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,
      -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,
     370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,
      -1,   381,   382,   383,   384,   385,    -1,    -1,   388,   389,
     390,    -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,
     400,    -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,
      -1,   411,   412,   413,   414,   415,   416,   417,   418,   419,
      -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,   429,
      -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,
      -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,
      -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,   469,
     470,   471,   472,   473,    -1,    -1,   476,   477,    -1,   479,
     480,    -1,    -1,   483,   484,    -1,   486,   487,   488,    -1,
     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,
     500,   501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,
     520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,
      -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,
      -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,
     550,   551,    -1,   553,   554,    -1,     5,   557,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
     109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,
      -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,
     169,   170,    -1,   172,    -1,   174,    -1,   176,   177,   178,
     179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,
      -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,
     199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,
      -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,
      -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,
     229,    -1,    -1,   232,    -1,    -1,   235,   236,   237,    -1,
      -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,
     249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,    -1,   275,   276,   277,   278,
      -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,   288,
     289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,    -1,
      -1,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
      -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,
     329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,
     369,   370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,
      -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,   388,
     389,   390,    -1,   392,   393,    -1,   395,   396,   397,    -1,
      -1,   400,    -1,   402,   403,   404,    -1,   406,   407,    -1,
      -1,    -1,   411,   412,   413,   414,   415,   416,   417,   418,
     419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,
     429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,
     439,   440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,
      -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,
      -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,
     469,   470,   471,   472,   473,    -1,    -1,   476,   477,    -1,
     479,   480,    -1,    -1,   483,   484,    -1,   486,   487,   488,
      -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
     499,   500,   501,    -1,    -1,    -1,   505,   506,   507,   508,
      -1,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
      -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,
      -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,
      -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,
      -1,   550,   551,    -1,   553,   554,    -1,     5,   557,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    89,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,
     158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,
      -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,   177,
     178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,
     188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,
     198,   199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,
     208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,
      -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,
     228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,   237,
      -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,
      -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,    -1,   275,   276,   277,
     278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,
     288,   289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,
     298,    -1,   300,   301,   302,   303,   304,   305,   306,   307,
      -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,   317,
      -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,
     328,   329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,
      -1,   349,   350,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,    -1,    -1,   363,   364,   365,    -1,   367,
      -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,   377,
      -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,
     388,   389,   390,    -1,   392,   393,    -1,   395,   396,   397,
      -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,   407,
      -1,    -1,    -1,   411,   412,   413,   414,   415,   416,   417,
     418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,
     428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,
     438,   439,   440,    -1,   442,   443,   444,   445,    -1,    -1,
      -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,
     458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,
      -1,   469,   470,   471,   472,   473,    -1,    -1,   476,   477,
      -1,   479,   480,    -1,    -1,   483,   484,    -1,   486,   487,
     488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
      -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,   507,
     508,    -1,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,
     528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,
     538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,
      -1,    -1,   550,   551,    -1,   553,   554,    -1,     5,   557,
       7,     8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,
      -1,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,
      -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,    -1,    -1,   153,   154,   155,    -1,
      -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,
      -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,
     177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,
      -1,   188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,
     197,   198,   199,    -1,    -1,   202,   203,    -1,    -1,   206,
      -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,
     217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,
      -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,
     237,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,
     247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,    -1,   275,   276,
     277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,
     287,   288,   289,   290,    -1,    -1,   293,   294,    -1,   296,
      -1,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,
     317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,
     327,   328,   329,    -1,   331,   332,   333,    -1,   335,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,
     347,    -1,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,    -1,    -1,   363,   364,   365,    -1,
     367,    -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,
     377,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
      -1,   388,   389,   390,    -1,   392,   393,    -1,   395,   396,
     397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,
     407,    -1,    -1,    -1,   411,   412,   413,   414,   415,   416,
     417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,
     427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     437,   438,   439,   440,    -1,   442,   443,   444,   445,    -1,
      -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,
      -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,
     467,    -1,   469,   470,   471,   472,   473,    -1,    -1,   476,
     477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,   486,
     487,   488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,
     507,   508,    -1,   510,   511,    -1,   513,   514,    -1,   516,
     517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,
     527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,
      -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,
      -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,     5,
     557,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    35,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,   153,   154,   155,
      -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,
      -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,
     176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,
     186,    -1,   188,   189,    -1,   191,   192,    -1,    -1,    -1,
     196,   197,   198,   199,    -1,    -1,   202,   203,    -1,    -1,
     206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,
      -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,
      -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,
     236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,
      -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,    -1,   275,
     276,   277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,
     286,   287,   288,   289,   290,    -1,    -1,   293,   294,    -1,
     296,    -1,   298,    -1,   300,   301,   302,   303,   304,   305,
     306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,
     316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,
      -1,   327,   328,   329,    -1,   331,   332,   333,    -1,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     346,   347,    -1,   349,   350,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,    -1,    -1,   363,   364,   365,
      -1,   367,    -1,   369,   370,    -1,   372,   373,   374,    -1,
      -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,   385,
      -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,   395,
     396,   397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,
     406,   407,    -1,    -1,    -1,   411,   412,   413,   414,   415,
     416,   417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,
     426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,
      -1,   437,   438,   439,   440,    -1,   442,   443,   444,   445,
      -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,
      -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,
     466,   467,    -1,   469,   470,   471,   472,   473,    -1,    -1,
     476,   477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,
     486,   487,   488,    -1,   490,   491,   492,   493,    -1,    -1,
      -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,
     506,   507,   508,    -1,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,
      -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,
      -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,
      -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,
       5,   557,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,
      55,    56,    -1,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,
      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,
     105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,    -1,    -1,   153,   154,
     155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,
     165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,
      -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,
     185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,    -1,
      -1,   196,   197,   198,   199,    -1,    -1,   202,   203,    -1,
      -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,
      -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,
     225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,
     235,   236,   237,    -1,    -1,    -1,    -1,   242,   243,    -1,
     245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,    -1,
     275,   276,   277,   278,    -1,   280,   281,   282,    -1,    -1,
      -1,   286,   287,   288,   289,   290,    -1,    -1,   293,   294,
      -1,   296,    -1,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,
     315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,
      -1,    -1,   327,   328,   329,    -1,   331,   332,   333,    -1,
     335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     345,   346,   347,    -1,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,    -1,    -1,   363,   364,
     365,    -1,   367,    -1,   369,   370,    -1,   372,   373,   374,
      -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,
     385,    -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,
     395,   396,   397,    -1,    -1,   400,    -1,   402,   403,   404,
      -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,   414,
     415,   416,   417,   418,   419,    -1,   421,   422,    -1,    -1,
      -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,
      -1,    -1,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,
     455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,
      -1,   466,   467,    -1,   469,   470,   471,   472,   473,    -1,
      -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,   484,
      -1,   486,   487,   488,    -1,   490,   491,   492,   493,    -1,
      -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,
     505,   506,   507,   508,    -1,   510,   511,    -1,   513,   514,
      -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,
     525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,
     535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,
     545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,
      -1,     5,   557,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,    -1,    -1,   153,
     154,   155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,
      -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,
      -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,
      -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,
      -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,
      -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,
      -1,   235,   236,   237,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
      -1,   275,   276,   277,   278,    -1,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,    -1,   296,    -1,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,
     314,   315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,
      -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,   333,
      -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   345,   346,   347,    -1,   349,   350,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,    -1,    -1,   363,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,   393,
      -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,   403,
     404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,    -1,
      -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,
      -1,    -1,   466,   467,    -1,   469,   470,   471,   472,   473,
      -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,
     484,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,
      -1,   505,   506,   507,   508,    -1,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,
      -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,
      -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,
     544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,
     554,    -1,     5,   557,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,
      53,    -1,    55,    56,    -1,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,    -1,   160,   161,   162,
      -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
     213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,    -1,   235,   236,   237,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,    -1,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,    -1,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
      -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,    -1,    -1,   466,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,   486,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,   505,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,     5,   557,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    18,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,   161,
     162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,
     212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,    -1,   275,   276,   277,   278,    -1,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,    -1,   310,   311,
      -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,
     322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,    -1,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,    -1,    -1,   466,   467,    -1,   469,   470,   471,
     472,   473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,
      -1,   483,   484,    -1,   486,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,
      -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,     5,   557,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      81,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,
      -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
      -1,   152,   153,   154,   155,    -1,    -1,   158,    -1,   160,
     161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,
      -1,   172,    -1,   174,    -1,   176,   177,   178,   179,    -1,
     181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,
     191,   192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,
      -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,
      -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,
     221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,
      -1,   232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,
      -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,   250,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,    -1,   275,   276,   277,   278,    -1,   280,
     281,   282,    -1,    -1,    -1,   286,   287,   288,   289,   290,
      -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,    -1,    -1,   310,
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,
     321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,
     331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
      -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,   370,
      -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,
     381,   382,   383,   384,   385,    -1,    -1,   388,   389,   390,
      -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,   400,
      -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,
     411,   412,   413,   414,   415,   416,   417,   418,   419,    -1,
     421,   422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,
      -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,
      -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,
     461,   462,   463,    -1,    -1,   466,   467,    -1,   469,   470,
     471,   472,   473,    -1,    -1,   476,   477,    -1,   479,   480,
      -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,
     491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,
     501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,
     511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,
      -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,
      -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,
      -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,
     551,    -1,   553,   554,    -1,     5,   557,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,
     160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,   169,
     170,   171,   172,    -1,   174,    -1,   176,   177,   178,   179,
      -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,
      -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,   199,
      -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,
      -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,    -1,
     220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,   229,
      -1,    -1,   232,    -1,    -1,   235,   236,    -1,    -1,    -1,
      -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,
     250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,    -1,   275,   276,   277,   278,    -1,
     280,   281,   282,    -1,    -1,    -1,   286,   287,   288,   289,
     290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,    -1,    -1,
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
      -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,   329,
      -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,   349,
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,   369,
     370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,    -1,
      -1,   381,   382,   383,   384,   385,    -1,    -1,   388,   389,
     390,    -1,   392,   393,    -1,   395,   396,   397,    -1,    -1,
     400,    -1,   402,   403,   404,    -1,   406,   407,    -1,    -1,
      -1,   411,   412,   413,   414,   415,   416,   417,   418,   419,
      -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,   429,
      -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,    -1,
      -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,
      -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,   469,
     470,   471,   472,   473,    -1,    -1,   476,   477,    -1,   479,
     480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,
     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,
     500,   501,    -1,    -1,    -1,   505,   506,   507,   508,    -1,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,
     520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,    -1,
      -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,
      -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,
     550,   551,    -1,   553,   554,    -1,     5,   557,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
     109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,   158,
      -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,    -1,
     169,   170,    -1,   172,    -1,   174,    -1,   176,   177,   178,
     179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,   188,
      -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,   198,
     199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,   208,
      -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,    -1,
      -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,   228,
     229,    -1,    -1,   232,    -1,    -1,   235,   236,    -1,    -1,
      -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,
     249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,    -1,   275,   276,   277,   278,
      -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,   288,
     289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,    -1,
      -1,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
      -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,   328,
     329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,    -1,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,    -1,    -1,   363,   364,   365,    -1,   367,    -1,
     369,   370,    -1,   372,   373,   374,    -1,    -1,   377,    -1,
      -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,   388,
     389,   390,    -1,   392,   393,    -1,   395,   396,   397,    -1,
      -1,   400,    -1,   402,   403,   404,    -1,   406,   407,    -1,
      -1,    -1,   411,   412,   413,   414,   415,   416,   417,   418,
     419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,   428,
     429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,   438,
     439,   440,    -1,   442,   443,   444,   445,    -1,    -1,    -1,
      -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,
      -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,    -1,
     469,   470,   471,   472,   473,    -1,    -1,   476,   477,    -1,
     479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,
      -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
     499,   500,   501,    -1,    -1,    -1,   505,   506,   507,   508,
      -1,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
      -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,   528,
      -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,
      -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,    -1,
      -1,   550,   551,    -1,   553,   554,    -1,     5,   557,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,   109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,   153,   154,   155,    -1,    -1,
     158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,    -1,
      -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,   177,
     178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,    -1,
     188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,   197,
     198,   199,    -1,    -1,   202,   203,    -1,    -1,   206,    -1,
     208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,   217,
      -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,    -1,
     228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,    -1,
      -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,
      -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,    -1,   275,   276,   277,
     278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,
     288,   289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,
     298,    -1,   300,   301,   302,   303,   304,   305,   306,   307,
      -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,   317,
      -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,   327,
     328,   329,    -1,   331,   332,   333,    -1,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,
      -1,   349,   350,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,    -1,    -1,   363,   364,   365,    -1,   367,
      -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,   377,
      -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,
     388,   389,   390,    -1,   392,   393,    -1,   395,   396,   397,
      -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,   407,
      -1,    -1,    -1,   411,   412,   413,   414,   415,   416,   417,
     418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,   427,
     428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,
     438,   439,   440,    -1,   442,   443,   444,   445,    -1,    -1,
      -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,
     458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,   467,
      -1,   469,   470,   471,   472,   473,    -1,    -1,   476,   477,
      -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,
     488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
      -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,   507,
     508,    -1,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,   527,
     528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,
     538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,
      -1,    -1,   550,   551,    -1,   553,   554,    -1,     5,   557,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,
      -1,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,
      -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,    -1,    -1,   153,   154,   155,    -1,
      -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,    -1,
      -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,
     177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,   186,
      -1,   188,    -1,    -1,   191,   192,    -1,    -1,    -1,   196,
     197,   198,   199,    -1,    -1,   202,   203,    -1,    -1,   206,
      -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,
     217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,    -1,
      -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,   236,
      -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,
     247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,    -1,   275,   276,
     277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,
     287,   288,   289,   290,    -1,    -1,   293,   294,    -1,   296,
      -1,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,
     317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,    -1,
     327,   328,   329,    -1,   331,   332,   333,    -1,   335,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,
     347,    -1,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,    -1,    -1,   363,   364,   365,   366,
     367,    -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,
     377,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
      -1,   388,   389,   390,    -1,   392,   393,    -1,   395,   396,
     397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,   406,
     407,    -1,    -1,    -1,   411,   412,   413,   414,   415,   416,
     417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,   426,
     427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     437,   438,   439,   440,    -1,   442,   443,   444,   445,    -1,
      -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,
      -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,   466,
     467,    -1,   469,   470,   471,   472,   473,    -1,    -1,   476,
     477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,
     487,   488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,   506,
     507,   508,    -1,   510,   511,    -1,   513,   514,    -1,   516,
     517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,    -1,
     527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,
      -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,
      -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,     5,
     557,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,   153,   154,   155,
      -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,   165,
      -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,
     176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,   185,
     186,    -1,   188,    -1,    -1,   191,   192,    -1,    -1,    -1,
     196,   197,   198,   199,    -1,    -1,   202,   203,    -1,    -1,
     206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,    -1,
      -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,   225,
      -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,   235,
     236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,
      -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,    -1,   275,
     276,   277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,
     286,   287,   288,   289,   290,    -1,    -1,   293,   294,    -1,
     296,    -1,   298,    -1,   300,   301,   302,   303,   304,   305,
     306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,
     316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,    -1,
      -1,   327,   328,   329,    -1,   331,   332,   333,    -1,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     346,   347,    -1,   349,   350,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,    -1,    -1,   363,   364,   365,
      -1,   367,    -1,   369,   370,    -1,   372,   373,   374,    -1,
      -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,   385,
      -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,   395,
     396,   397,    -1,    -1,   400,    -1,   402,   403,   404,    -1,
     406,   407,    -1,    -1,    -1,   411,   412,   413,   414,   415,
     416,   417,   418,   419,    -1,   421,   422,    -1,    -1,    -1,
     426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,    -1,
      -1,   437,   438,   439,   440,    -1,   442,   443,   444,   445,
      -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,
      -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,    -1,
     466,   467,    -1,   469,   470,   471,   472,   473,    -1,    -1,
     476,   477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,
      -1,   487,   488,    -1,   490,   491,   492,   493,    -1,    -1,
      -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,   505,
     506,   507,   508,    -1,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,   525,
      -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,
      -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,
      -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,    -1,
       5,   557,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,
      55,    56,    -1,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,
      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,
     105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,    -1,    -1,   153,   154,
     155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,    -1,
     165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,
      -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,
     185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,    -1,
      -1,   196,   197,   198,   199,    -1,    -1,   202,   203,    -1,
      -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,    -1,
      -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,    -1,
     225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,    -1,
     235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,
     245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,    -1,
     275,   276,   277,   278,    -1,   280,   281,   282,    -1,    -1,
      -1,   286,   287,   288,   289,   290,    -1,    -1,   293,   294,
      -1,   296,    -1,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,
     315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,    -1,
      -1,    -1,   327,   328,   329,    -1,   331,   332,   333,    -1,
     335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     345,   346,   347,    -1,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,    -1,    -1,   363,   364,
     365,    -1,   367,    -1,   369,   370,    -1,   372,   373,   374,
      -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,   384,
     385,    -1,    -1,   388,   389,   390,    -1,   392,   393,    -1,
     395,   396,   397,    -1,    -1,   400,    -1,   402,   403,   404,
      -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,   414,
     415,   416,   417,   418,   419,    -1,   421,   422,    -1,    -1,
      -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,    -1,
      -1,    -1,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,
     455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,    -1,
      -1,   466,   467,    -1,   469,   470,   471,   472,   473,    -1,
      -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,   484,
      -1,   486,   487,   488,    -1,   490,   491,   492,   493,    -1,
      -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,
     505,   506,   507,   508,    -1,   510,   511,    -1,   513,   514,
      -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,    -1,
     525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,
     535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,
     545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,   554,
      -1,     5,   557,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,    -1,    -1,   153,
     154,   155,    -1,    -1,   158,    -1,   160,   161,   162,    -1,
      -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,
      -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,    -1,
      -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,   213,
      -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,    -1,
      -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,    -1,
      -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
      -1,   275,   276,   277,   278,    -1,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,    -1,   296,    -1,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,
     314,   315,   316,   317,    -1,    -1,    -1,   321,   322,    -1,
      -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,   333,
      -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   345,   346,   347,    -1,   349,   350,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,    -1,    -1,   363,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,   393,
      -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,   403,
     404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,   413,
     414,   415,   416,   417,   418,   419,    -1,   421,   422,    -1,
      -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,   463,
      -1,    -1,   466,   467,    -1,   469,   470,   471,   472,   473,
      -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,
     484,    -1,    -1,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,
      -1,   505,   506,   507,   508,    -1,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,   523,
      -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,
      -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,
     544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,   553,
     554,    -1,     5,   557,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,
      53,    -1,    55,    56,    -1,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,    -1,   160,   161,   162,
      -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,   192,
      -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
     213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,    -1,
      -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,   232,
      -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   345,   346,   347,    -1,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,    -1,    -1,
     363,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
     393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,   402,
     403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    -1,   421,   422,
      -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,   442,
     443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,   462,
     463,    -1,    -1,   466,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,    -1,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,   505,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,    -1,
     523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,    -1,
     553,   554,    -1,     5,   557,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,   161,
     162,    -1,    -1,   165,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,   191,
     192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,
     212,   213,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,
      -1,    -1,    -1,   225,    -1,    -1,   228,   229,    -1,    -1,
     232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,    -1,   275,   276,   277,   278,    -1,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,    -1,   310,   311,
      -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,   321,
     322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   345,   346,   347,    -1,   349,   350,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,    -1,
      -1,   363,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,   377,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,   393,    -1,   395,   396,   397,    -1,    -1,   400,    -1,
     402,   403,   404,    -1,   406,   407,    -1,    -1,    -1,   411,
     412,   413,   414,   415,   416,   417,   418,   419,    -1,   421,
     422,    -1,    -1,    -1,   426,   427,   428,   429,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
     462,   463,    -1,    -1,   466,   467,    -1,   469,   470,   471,
     472,   473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,
      -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,    -1,    -1,   505,   506,   507,   508,    -1,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,   520,    -1,
      -1,   523,    -1,   525,    -1,   527,   528,    -1,    -1,    -1,
      -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,
     542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,   551,
      -1,   553,   554,    -1,     5,   557,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,
      -1,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    50,
      51,    -1,    53,    -1,    55,    -1,    -1,    -1,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    -1,    70,
      -1,    72,    73,    74,    75,    -1,    77,    78,    -1,    -1,
      -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,
      -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,
      -1,   132,   133,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,    -1,
      -1,    -1,   153,   154,   155,    -1,    -1,   158,   159,   160,
     161,   162,    -1,    -1,    -1,    -1,    -1,    -1,   169,   170,
      -1,   172,    -1,   174,    -1,   176,   177,   178,   179,    -1,
     181,    -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,    -1,
      -1,   192,    -1,    -1,    -1,   196,   197,   198,   199,   200,
      -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,
      -1,   212,    -1,    -1,    -1,    -1,   217,    -1,    -1,   220,
     221,   222,    -1,    -1,   225,    -1,    -1,    -1,   229,    -1,
      -1,   232,   233,    -1,   235,   236,    -1,    -1,    -1,    -1,
      -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,   250,
      -1,    -1,    -1,    -1,   255,    -1,    -1,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,    -1,   275,   276,   277,   278,    -1,   280,
     281,   282,    -1,    -1,    -1,   286,   287,   288,   289,   290,
      -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,    -1,    -1,   310,
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,
     331,   332,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   346,   347,    -1,    -1,   350,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,    -1,
      -1,    -1,    -1,   364,   365,    -1,   367,    -1,   369,   370,
      -1,   372,   373,   374,    -1,    -1,    -1,    -1,    -1,    -1,
     381,   382,   383,   384,   385,    -1,    -1,   388,   389,   390,
      -1,   392,    -1,    -1,   395,    -1,   397,   398,    -1,   400,
      -1,    -1,   403,    -1,    -1,   406,   407,   408,    -1,    -1,
      -1,   412,   413,   414,   415,   416,   417,    -1,   419,    -1,
     421,    -1,    -1,    -1,    -1,   426,   427,   428,    -1,    -1,
      -1,    -1,   433,    -1,    -1,    -1,   437,    -1,   439,    -1,
      -1,   442,    -1,    -1,   445,    -1,    -1,    -1,    -1,    -1,
      -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,
     461,    -1,   463,    -1,    -1,    -1,   467,    -1,   469,   470,
     471,   472,   473,    -1,    -1,   476,   477,    -1,   479,   480,
      -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,
     491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,
     501,    -1,    -1,    -1,    -1,   506,   507,   508,    -1,   510,
     511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,   520,
      -1,    -1,   523,    -1,    -1,    -1,   527,   528,    -1,    -1,
      -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,
      -1,   542,   543,   544,   545,    -1,    -1,   548,    -1,   550,
      -1,    -1,   553,    -1,    -1,     5,   557,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,
      50,    51,    -1,    53,    -1,    55,    -1,    -1,    -1,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    -1,
      70,    -1,    72,    73,    74,    75,    -1,    77,    78,    -1,
      -1,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,
     130,    -1,   132,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
      -1,    -1,    -1,   153,   154,   155,    -1,    -1,   158,   159,
     160,   161,   162,    -1,    -1,    -1,    -1,    -1,    -1,   169,
     170,    -1,   172,    -1,   174,    -1,   176,   177,   178,   179,
      -1,   181,    -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,
      -1,    -1,   192,    -1,    -1,    -1,   196,   197,   198,   199,
     200,    -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,
      -1,    -1,   212,    -1,    -1,    -1,    -1,   217,    -1,    -1,
     220,   221,   222,    -1,    -1,   225,    -1,    -1,    -1,   229,
      -1,    -1,   232,   233,    -1,   235,   236,    -1,    -1,    -1,
      -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,
     250,    -1,    -1,    -1,    -1,   255,    -1,    -1,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,    -1,   272,   273,    -1,   275,   276,   277,   278,    -1,
     280,   281,   282,    -1,    -1,    -1,   286,   287,   288,   289,
     290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,    -1,    -1,
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
      -1,    -1,   322,    -1,    -1,    -1,    -1,   327,   328,   329,
      -1,   331,   332,   333,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   346,   347,    -1,    -1,
     350,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
      -1,    -1,    -1,    -1,   364,   365,    -1,   367,    -1,   369,
     370,    -1,   372,   373,   374,    -1,    -1,    -1,    -1,    -1,
      -1,   381,   382,   383,   384,   385,    -1,    -1,   388,   389,
     390,    -1,   392,    -1,    -1,   395,    -1,   397,   398,    -1,
     400,    -1,    -1,   403,    -1,    -1,   406,   407,   408,    -1,
      -1,    -1,   412,   413,   414,   415,   416,   417,    -1,   419,
      -1,   421,    -1,    -1,    -1,    -1,   426,   427,   428,    -1,
      -1,    -1,    -1,   433,    -1,    -1,    -1,   437,    -1,   439,
      -1,    -1,   442,    -1,    -1,   445,    -1,    -1,    -1,    -1,
      -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,
      -1,   461,    -1,   463,    -1,    -1,    -1,   467,    -1,   469,
     470,   471,   472,   473,    -1,    -1,   476,   477,    -1,   479,
     480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,
     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,
     500,   501,    -1,    -1,    -1,    -1,   506,   507,   508,    -1,
     510,   511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,
     520,    -1,    -1,   523,    -1,    -1,    -1,   527,   528,    -1,
      -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,
      -1,    -1,   542,   543,   544,   545,   546,    -1,   548,    -1,
     550,    -1,    -1,   553,    -1,    -1,     5,   557,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    -1,    -1,    22,    23,    24,    25,    26,    27,    -1,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    -1,    -1,    -1,
      -1,    50,    51,    -1,    53,    -1,    55,    -1,    -1,    -1,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      -1,    70,    -1,    72,    73,    74,    75,    -1,    77,    78,
      -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,   128,
     129,   130,    -1,   132,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,    -1,    -1,    -1,   153,   154,   155,    -1,    -1,   158,
     159,   160,   161,   162,    -1,    -1,    -1,    -1,    -1,    -1,
     169,   170,    -1,   172,    -1,   174,    -1,   176,   177,   178,
     179,    -1,   181,    -1,    -1,    -1,    -1,   186,    -1,    -1,
      -1,    -1,    -1,   192,    -1,    -1,    -1,   196,   197,   198,
     199,   200,    -1,   202,   203,    -1,    -1,   206,    -1,   208,
      -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,   217,    -1,
      -1,   220,   221,   222,    -1,    -1,   225,    -1,    -1,    -1,
     229,    -1,    -1,   232,   233,    -1,   235,   236,    -1,    -1,
      -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,    -1,
     249,   250,    -1,    -1,    -1,    -1,   255,    -1,    -1,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,    -1,   272,   273,    -1,   275,   276,   277,   278,
      -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,   288,
     289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,    -1,
      -1,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
      -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,   327,   328,
     329,    -1,   331,   332,   333,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,   347,    -1,
      -1,   350,   351,   352,    -1,   354,   355,   356,   357,   358,
     359,    -1,    -1,    -1,    -1,   364,   365,    -1,   367,    -1,
     369,   370,    -1,   372,   373,   374,    -1,    -1,    -1,    -1,
      -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,   388,
     389,   390,    -1,   392,    -1,    -1,   395,    -1,   397,   398,
      -1,   400,    -1,    -1,   403,    -1,    -1,   406,   407,   408,
      -1,    -1,    -1,   412,   413,   414,   415,   416,   417,    -1,
     419,    -1,   421,    -1,    -1,    -1,    -1,   426,   427,   428,
      -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,    -1,
     439,    -1,    -1,   442,    -1,    -1,   445,    -1,    -1,    -1,
      -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,   458,
      -1,    -1,   461,    -1,   463,    -1,    -1,    -1,   467,    -1,
     469,   470,   471,   472,   473,    -1,    -1,   476,   477,    -1,
     479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,   488,
      -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
     499,   500,   501,    -1,    -1,    -1,    -1,   506,   507,   508,
      -1,   510,   511,    -1,   513,   514,    -1,    -1,    -1,    -1,
      -1,   520,    -1,    -1,   523,    -1,    -1,    -1,   527,   528,
      -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,   538,
      -1,    -1,    -1,   542,   543,   544,   545,   546,    -1,   548,
      -1,   550,    -1,    -1,   553,    -1,    -1,     5,   557,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    -1,    -1,
      -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,    -1,
      -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    -1,    70,    -1,    72,    73,    74,    75,    -1,    77,
      78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,    -1,    -1,    -1,   153,   154,   155,    -1,    -1,
     158,   159,   160,   161,   162,    -1,    -1,    -1,    -1,    -1,
      -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,   177,
     178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,    -1,
      -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,   196,   197,
     198,   199,   200,    -1,   202,   203,    -1,    -1,   206,    -1,
     208,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,   217,
      -1,    -1,   220,   221,   222,    -1,    -1,   225,    -1,    -1,
      -1,   229,    -1,    -1,   232,   233,    -1,   235,   236,    -1,
      -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,   247,
      -1,   249,   250,    -1,    -1,    -1,    -1,   255,    -1,    -1,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,    -1,   272,   273,    -1,   275,   276,   277,
     278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,   287,
     288,   289,   290,    -1,    -1,   293,   294,    -1,   296,    -1,
     298,    -1,   300,   301,   302,   303,   304,   305,   306,   307,
      -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,   317,
      -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,   327,
     328,   329,    -1,   331,   332,   333,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,   347,
      -1,    -1,   350,   351,   352,    -1,   354,   355,   356,   357,
     358,   359,    -1,    -1,    -1,    -1,   364,   365,    -1,   367,
      -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,    -1,
      -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,
     388,   389,   390,    -1,   392,    -1,    -1,   395,    -1,   397,
     398,    -1,   400,    -1,    -1,   403,    -1,    -1,   406,   407,
     408,    -1,    -1,    -1,   412,   413,   414,   415,   416,   417,
      -1,   419,    -1,   421,    -1,    -1,    -1,    -1,   426,   427,
     428,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,   437,
      -1,   439,    -1,    -1,   442,    -1,    -1,   445,    -1,    -1,
      -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,    -1,
     458,    -1,    -1,   461,    -1,   463,    -1,    -1,    -1,   467,
      -1,   469,   470,   471,   472,   473,    -1,    -1,   476,   477,
      -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,   487,
     488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
      -1,   499,   500,   501,    -1,    -1,    -1,    -1,   506,   507,
     508,    -1,   510,   511,    -1,   513,   514,    -1,    -1,    -1,
      -1,    -1,   520,    -1,    -1,   523,    -1,    -1,    -1,   527,
     528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,
     538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,    -1,
     548,    -1,   550,    -1,    -1,   553,    -1,    -1,     5,   557,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,
      27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,    -1,
      -1,    -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,
      -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    -1,    70,    -1,    72,    73,    74,    75,    -1,
      77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,
      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,   104,    -1,    -1,
      -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,    -1,    -1,    -1,   153,   154,   155,    -1,
      -1,   158,   159,   160,   161,   162,    -1,    -1,    -1,    -1,
      -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,   176,
     177,   178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,
      -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,   196,
     197,   198,   199,   200,    -1,   202,   203,    -1,    -1,   206,
      -1,   208,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,
     217,    -1,    -1,   220,   221,   222,    -1,    -1,   225,    -1,
      -1,    -1,   229,    -1,    -1,   232,   233,    -1,   235,   236,
      -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,    -1,
     247,    -1,   249,   250,    -1,    -1,    -1,    -1,   255,    -1,
      -1,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,    -1,   272,   273,    -1,   275,   276,
     277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,   286,
     287,   288,   289,   290,    -1,    -1,   293,   294,    -1,   296,
      -1,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,   316,
     317,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,
     327,   328,   329,    -1,   331,   332,   333,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,
     347,    -1,    -1,   350,   351,   352,    -1,   354,   355,   356,
     357,   358,   359,    -1,    -1,    -1,    -1,   364,   365,    -1,
     367,    -1,   369,   370,    -1,   372,   373,   374,    -1,    -1,
      -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
      -1,   388,   389,   390,    -1,   392,    -1,    -1,   395,    -1,
     397,   398,    -1,   400,    -1,    -1,   403,    -1,    -1,   406,
     407,   408,    -1,    -1,    -1,   412,   413,   414,   415,   416,
     417,    -1,   419,    -1,   421,    -1,    -1,    -1,    -1,   426,
     427,   428,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     437,    -1,   439,    -1,    -1,   442,    -1,    -1,   445,    -1,
      -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,    -1,
      -1,   458,    -1,    -1,   461,    -1,   463,    -1,    -1,    -1,
     467,    -1,   469,   470,   471,   472,   473,    -1,    -1,   476,
     477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,    -1,
     487,   488,    -1,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,   501,    -1,    -1,    -1,    -1,   506,
     507,   508,    -1,   510,   511,    -1,   513,   514,    -1,    -1,
      -1,    -1,    -1,   520,    -1,    -1,   523,    -1,    -1,    -1,
     527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,
      -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,    -1,
      -1,   548,    -1,   550,    -1,    -1,   553,    -1,    -1,     5,
     557,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      -1,    -1,    -1,    -1,    50,    51,    -1,    53,    -1,    55,
      -1,    -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    -1,    70,    -1,    72,    73,    74,    75,
      -1,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,    -1,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,    -1,    -1,    -1,   153,   154,   155,
      -1,    -1,   158,   159,   160,   161,   162,    -1,    -1,    -1,
      -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,    -1,
     176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,    -1,
     186,    -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,
     196,   197,   198,   199,   200,    -1,   202,   203,    -1,    -1,
     206,    -1,   208,    -1,    -1,    -1,   212,    -1,    -1,    -1,
      -1,   217,    -1,    -1,   220,   221,   222,    -1,    -1,   225,
      -1,    -1,    -1,   229,    -1,    -1,   232,   233,    -1,   235,
     236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,   245,
      -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,   255,
      -1,    -1,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,    -1,   272,   273,    -1,   275,
     276,   277,   278,    -1,   280,   281,   282,    -1,    -1,    -1,
     286,   287,   288,   289,   290,    -1,    -1,   293,   294,    -1,
     296,    -1,   298,    -1,   300,   301,   302,   303,   304,   305,
     306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,   315,
     316,   317,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,
      -1,   327,   328,   329,    -1,   331,   332,   333,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     346,   347,    -1,    -1,   350,   351,   352,    -1,   354,   355,
     356,   357,   358,   359,    -1,    -1,    -1,    -1,   364,   365,
      -1,   367,    -1,   369,   370,    -1,   372,   373,   374,    -1,
      -1,    -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,
      -1,    -1,   388,   389,   390,    -1,   392,    -1,    -1,   395,
      -1,   397,   398,    -1,   400,    -1,    -1,   403,    -1,    -1,
     406,   407,   408,    -1,    -1,    -1,   412,   413,   414,   415,
     416,   417,    -1,   419,    -1,   421,    -1,    -1,    -1,    -1,
     426,   427,   428,    -1,    -1,    -1,    -1,   433,    -1,    -1,
      -1,   437,    -1,   439,    -1,    -1,   442,    -1,    -1,   445,
      -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,   455,
      -1,    -1,   458,    -1,    -1,   461,    -1,   463,    -1,    -1,
      -1,   467,    -1,   469,   470,   471,   472,   473,    -1,    -1,
     476,   477,    -1,   479,   480,    -1,    -1,   483,   484,    -1,
      -1,   487,   488,    -1,   490,   491,   492,   493,    -1,    -1,
      -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,    -1,
     506,   507,   508,    -1,   510,   511,    -1,   513,   514,    -1,
      -1,    -1,    -1,    -1,   520,    -1,    -1,   523,    -1,    -1,
      -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,   535,
      -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,   545,
      -1,    -1,   548,    -1,   550,    -1,    -1,   553,    -1,    -1,
       5,   557,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,
      25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,
      -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,
      -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    53,    -1,
      55,    -1,    -1,    -1,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    -1,    70,    -1,    72,    73,    74,
      75,    -1,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,
      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,
      -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
      -1,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,    -1,    -1,    -1,   153,   154,
     155,    -1,    -1,   158,   159,   160,   161,   162,    -1,    -1,
      -1,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,   174,
      -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,    -1,
      -1,   186,    -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,
      -1,   196,   197,   198,   199,   200,    -1,   202,   203,    -1,
      -1,   206,    -1,   208,    -1,    -1,    -1,   212,    -1,    -1,
      -1,    -1,   217,    -1,    -1,   220,   221,   222,    -1,    -1,
     225,    -1,    -1,    -1,   229,    -1,    -1,   232,   233,    -1,
     235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,    -1,
     245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,    -1,
     255,    -1,    -1,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,   272,   273,    -1,
     275,   276,   277,   278,    -1,   280,   281,   282,    -1,    -1,
      -1,   286,   287,   288,   289,   290,    -1,    -1,   293,   294,
      -1,   296,    -1,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,   314,
     315,   316,   317,    -1,    -1,    -1,    -1,   322,    -1,    -1,
      -1,    -1,   327,   328,   329,    -1,   331,   332,   333,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   346,   347,    -1,    -1,   350,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,    -1,    -1,    -1,    -1,   364,
     365,    -1,   367,    -1,   369,   370,    -1,   372,   373,   374,
      -1,    -1,    -1,    -1,    -1,    -1,   381,   382,   383,   384,
     385,    -1,    -1,   388,   389,   390,    -1,   392,    -1,    -1,
     395,    -1,   397,   398,    -1,   400,    -1,    -1,   403,    -1,
      -1,   406,   407,   408,    -1,    -1,    -1,   412,   413,   414,
     415,   416,   417,    -1,   419,    -1,   421,    -1,    -1,    -1,
      -1,   426,   427,   428,    -1,    -1,    -1,    -1,   433,    -1,
      -1,    -1,   437,    -1,   439,    -1,    -1,   442,    -1,    -1,
     445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,    -1,
     455,    -1,    -1,   458,    -1,    -1,   461,    -1,   463,    -1,
      -1,    -1,   467,    -1,   469,   470,   471,   472,   473,    -1,
      -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,   484,
      -1,    -1,   487,   488,    -1,   490,   491,   492,   493,    -1,
      -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,    -1,
      -1,   506,   507,   508,    -1,   510,   511,    -1,   513,   514,
      -1,    -1,    -1,    -1,    -1,   520,    -1,    -1,   523,    -1,
      -1,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,    -1,
     535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,   544,
     545,    -1,    -1,   548,    -1,   550,    -1,    -1,   553,    -1,
      -1,     5,   557,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    53,
      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    -1,    70,    -1,    72,    73,
      74,    75,    -1,    77,    78,    -1,    -1,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,    -1,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,    -1,    -1,    -1,   153,
     154,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
      -1,    -1,    -1,    -1,    -1,   169,   170,    -1,   172,    -1,
     174,    -1,   176,   177,   178,   179,    -1,   181,    -1,    -1,
      -1,    -1,   186,    -1,    -1,    -1,    -1,    -1,   192,    -1,
      -1,    -1,   196,   197,   198,   199,   200,    -1,   202,   203,
      -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,    -1,
      -1,    -1,    -1,   217,    -1,    -1,   220,   221,   222,    -1,
      -1,   225,    -1,    -1,    -1,   229,    -1,    -1,   232,   233,
      -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,   243,
      -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,    -1,
      -1,   255,    -1,    -1,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
      -1,   275,   276,   277,   278,    -1,   280,   281,   282,    -1,
      -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,   293,
     294,    -1,   296,    -1,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,    -1,    -1,   310,   311,    -1,    -1,
     314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,    -1,
      -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,   333,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   346,   347,    -1,    -1,   350,   351,   352,    -1,
     354,   355,   356,   357,   358,   359,    -1,    -1,    -1,    -1,
     364,   365,    -1,   367,    -1,   369,   370,    -1,   372,   373,
     374,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,   383,
     384,   385,    -1,    -1,   388,   389,   390,    -1,   392,    -1,
      -1,   395,    -1,   397,   398,    -1,   400,    -1,    -1,   403,
      -1,    -1,   406,   407,   408,    -1,    -1,    -1,   412,   413,
     414,   415,   416,   417,    -1,   419,    -1,   421,    -1,    -1,
      -1,    -1,   426,   427,   428,    -1,    -1,    -1,    -1,   433,
      -1,    -1,    -1,   437,    -1,   439,    -1,    -1,   442,    -1,
      -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,   453,
      -1,   455,    -1,    -1,   458,    -1,    -1,   461,    -1,   463,
      -1,    -1,    -1,   467,    -1,   469,   470,   471,   472,   473,
      -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,   483,
     484,    -1,    -1,   487,   488,    -1,   490,   491,   492,   493,
      -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,    -1,
      -1,    -1,   506,   507,   508,    -1,   510,   511,    -1,   513,
     514,    -1,    -1,    -1,    -1,    -1,   520,    -1,    -1,   523,
      -1,    -1,    -1,   527,   528,    -1,    -1,    -1,    -1,    -1,
      -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,   543,
     544,   545,    -1,    -1,   548,    -1,   550,    -1,    -1,   553,
      -1,    -1,     5,   557,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,
      23,    24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,
      -1,    44,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,
      53,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    -1,    70,    -1,    72,
      73,    74,    75,    -1,    77,    78,    -1,    -1,    -1,    82,
      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,
      -1,   104,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,    -1,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,    -1,    -1,    -1,
     153,   154,   155,    -1,    -1,   158,   159,   160,   161,   162,
      -1,    -1,    -1,    -1,    -1,    -1,   169,   170,    -1,   172,
      -1,   174,    -1,   176,   177,   178,   179,    -1,   181,    -1,
      -1,    -1,    -1,   186,    -1,    -1,    -1,    -1,    -1,   192,
      -1,    -1,    -1,   196,   197,   198,   199,   200,    -1,   202,
     203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,   212,
      -1,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,   222,
      -1,    -1,   225,    -1,    -1,    -1,   229,    -1,    -1,   232,
     233,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
     243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,    -1,
      -1,    -1,   255,    -1,    -1,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
     273,    -1,   275,   276,   277,   278,    -1,   280,   281,   282,
      -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,    -1,
     293,   294,    -1,   296,    -1,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,    -1,    -1,   310,   311,    -1,
      -1,   314,   315,   316,   317,    -1,    -1,    -1,    -1,   322,
      -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,   332,
     333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   346,   347,    -1,    -1,   350,   351,   352,
      -1,   354,   355,   356,   357,   358,   359,    -1,    -1,    -1,
      -1,   364,   365,    -1,   367,    -1,   369,   370,    -1,   372,
     373,   374,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,
     383,   384,   385,    -1,    -1,   388,   389,   390,    -1,   392,
      -1,    -1,   395,    -1,   397,   398,    -1,   400,    -1,    -1,
     403,    -1,    -1,   406,   407,   408,    -1,    -1,    -1,   412,
     413,   414,   415,   416,   417,    -1,   419,    -1,   421,    -1,
      -1,    -1,    -1,   426,   427,   428,    -1,    -1,    -1,    -1,
     433,    -1,    -1,    -1,   437,    -1,   439,    -1,    -1,   442,
      -1,    -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
     453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,    -1,
     463,    -1,    -1,    -1,   467,    -1,   469,   470,   471,   472,
     473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,    -1,
     483,   484,    -1,    -1,   487,   488,    -1,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,    -1,
      -1,    -1,    -1,   506,   507,   508,    -1,   510,   511,    -1,
     513,   514,    -1,    -1,    -1,    -1,    -1,   520,    -1,    -1,
     523,    -1,    -1,    -1,   527,   528,    -1,    -1,    -1,    -1,
      -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,   542,
     543,   544,   545,    -1,    -1,   548,    -1,   550,    -1,    -1,
     553,    -1,    -1,     5,   557,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    50,    51,
      -1,    53,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    -1,    70,    -1,
      72,    73,    74,    75,    -1,    77,    78,    -1,    -1,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,    -1,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,    -1,    -1,
      -1,   153,   154,   155,    -1,    -1,   158,   159,   160,   161,
     162,    -1,    -1,    -1,    -1,    -1,    -1,   169,   170,    -1,
     172,    -1,   174,    -1,   176,   177,   178,   179,    -1,   181,
      -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,    -1,    -1,
     192,    -1,    -1,    -1,   196,   197,   198,   199,   200,    -1,
     202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,
     212,    -1,    -1,    -1,    -1,   217,    -1,    -1,   220,   221,
     222,    -1,    -1,   225,    -1,    -1,    -1,   229,    -1,    -1,
     232,   233,    -1,   235,   236,    -1,    -1,    -1,    -1,    -1,
     242,   243,    -1,   245,    -1,   247,    -1,   249,   250,    -1,
      -1,    -1,    -1,   255,    -1,    -1,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,    -1,
     272,   273,    -1,   275,   276,   277,   278,    -1,   280,   281,
     282,    -1,    -1,    -1,   286,   287,   288,   289,   290,    -1,
      -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,    -1,    -1,   310,   311,
      -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,    -1,
     322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,   331,
     332,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   346,   347,    -1,    -1,   350,   351,
     352,    -1,   354,   355,   356,   357,   358,   359,    -1,    -1,
      -1,    -1,   364,   365,    -1,   367,    -1,   369,   370,    -1,
     372,   373,   374,    -1,    -1,    -1,    -1,    -1,    -1,   381,
     382,   383,   384,   385,    -1,    -1,   388,   389,   390,    -1,
     392,    -1,    -1,   395,    -1,   397,   398,    -1,   400,    -1,
      -1,   403,    -1,    -1,   406,   407,   408,    -1,    -1,    -1,
     412,   413,   414,   415,   416,   417,    -1,   419,    -1,   421,
      -1,    -1,    -1,    -1,   426,   427,   428,    -1,    -1,    -1,
      -1,   433,    -1,    -1,    -1,   437,    -1,   439,    -1,    -1,
     442,    -1,    -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,   461,
      -1,   463,    -1,    -1,    -1,   467,    -1,   469,   470,   471,
     472,   473,    -1,    -1,   476,   477,    -1,   479,   480,    -1,
      -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,   491,
     492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,   501,
      -1,    -1,    -1,    -1,   506,   507,   508,    -1,   510,   511,
      -1,   513,   514,    -1,    -1,    -1,    -1,    -1,   520,    -1,
      -1,   523,    -1,    -1,    -1,   527,   528,    -1,    -1,    -1,
      -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,    -1,
     542,   543,   544,   545,    -1,    -1,   548,    -1,   550,    -1,
      -1,   553,    -1,    -1,     5,   557,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,
      -1,    22,    23,    24,    25,    26,    27,    -1,    -1,    -1,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    50,
      -1,    -1,    53,    -1,    55,    -1,    -1,    -1,    -1,    60,
      61,    -1,    63,    64,    -1,    66,    67,    -1,    -1,    70,
      -1,    72,    73,    74,    75,    -1,    77,    78,    -1,    -1,
      -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,
      -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,    -1,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,    -1,
      -1,    -1,   153,   154,   155,    -1,    -1,   158,    -1,   160,
     161,   162,    -1,    -1,    -1,    -1,    -1,    -1,   169,   170,
      -1,   172,    -1,   174,    -1,   176,   177,   178,   179,    -1,
     181,    -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,    -1,
      -1,   192,    -1,    -1,    -1,   196,   197,   198,   199,    -1,
      -1,   202,   203,    -1,    -1,   206,    -1,   208,    -1,    -1,
      -1,   212,    -1,    -1,    -1,    -1,   217,    -1,    -1,   220,
     221,    -1,    -1,    -1,   225,    -1,    -1,    -1,   229,    -1,
      -1,   232,    -1,    -1,   235,   236,    -1,    -1,    -1,    -1,
      -1,   242,   243,    -1,   245,    -1,   247,    -1,   249,   250,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
      -1,   272,   273,    -1,   275,   276,   277,   278,    -1,   280,
     281,   282,    -1,    -1,    -1,   286,   287,   288,   289,   290,
      -1,    -1,   293,   294,    -1,   296,    -1,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,    -1,    -1,   310,
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,    -1,
      -1,   322,    -1,    -1,    -1,    -1,   327,   328,   329,    -1,
     331,   332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   346,   347,    -1,    -1,   350,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,    -1,
      -1,    -1,    -1,   364,   365,    -1,   367,    -1,   369,   370,
      -1,   372,   373,   374,    -1,    -1,    -1,    -1,    -1,    -1,
     381,   382,   383,   384,   385,    -1,    -1,   388,   389,   390,
      -1,   392,    -1,    -1,   395,    -1,   397,    -1,    -1,   400,
      -1,    -1,   403,    -1,    -1,   406,   407,    -1,    -1,    -1,
      -1,   412,   413,   414,   415,   416,   417,    -1,   419,    -1,
     421,    -1,    -1,    -1,    -1,   426,   427,   428,    -1,    -1,
      -1,    -1,   433,    -1,    -1,    -1,   437,    -1,   439,    -1,
      -1,   442,    -1,    -1,   445,    -1,    -1,    -1,    -1,    -1,
      -1,   452,   453,    -1,   455,    -1,    -1,   458,    -1,    -1,
     461,    -1,   463,    -1,    -1,    -1,   467,    -1,   469,   470,
     471,   472,   473,    -1,    -1,   476,   477,    -1,   479,   480,
      -1,    -1,   483,   484,    -1,    -1,   487,   488,    -1,   490,
     491,   492,   493,    -1,    -1,    -1,    -1,    -1,   499,   500,
     501,    -1,    -1,    -1,    -1,   506,   507,   508,    -1,   510,
     511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,   520,
      -1,    -1,   523,    -1,    -1,    -1,   527,   528,    -1,    -1,
      -1,    -1,    -1,    -1,   535,    -1,    -1,   538,    -1,    -1,
      -1,   542,   543,   544,   545,    -1,    -1,    -1,    -1,   550,
      -1,    -1,   553,    -1,    -1,    -1,   557
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const unsigned short int yystos[] =
{
       0,    13,    14,    28,    30,    34,    47,    48,    54,    58,
      59,    71,    85,   105,   113,   114,   115,   125,   126,   138,
     150,   165,   180,   185,   188,   211,   213,   227,   244,   248,
     334,   353,   363,   371,   391,   394,   396,   399,   402,   404,
     409,   411,   418,   423,   431,   436,   440,   462,   466,   505,
     517,   521,   524,   529,   554,   568,   579,   580,   581,   582,
     583,   584,   586,   591,   593,   598,   632,   766,   907,   946,
     949,   957,   959,   961,   964,   969,   971,   972,   977,   980,
     987,   991,   999,  1000,  1166,  1168,  1174,  1177,  1202,  1210,
    1221,  1223,  1236,  1239,  1242,  1248,  1252,  1256,  1258,  1259,
    1305,  1322,  1328,  1330,  1337,  1339,  1364,  1370,  1371,  1372,
    1373,  1413,  1421,  1422,    11,    92,   110,   174,   201,   249,
     368,   429,   480,   942,  1389,  1392,   245,   323,   979,   479,
     482,  1324,  1365,   486,  1296,   204,     5,     7,     8,     9,
      10,    11,    17,    20,    22,    23,    24,    25,    26,    27,
      28,    30,    34,    38,    41,    42,    44,    46,    47,    50,
      53,    55,    56,    58,    60,    61,    62,    63,    64,    66,
      67,    69,    70,    71,    72,    73,    74,    75,    77,    78,
      80,    82,    87,    94,    95,    96,    99,   104,   105,   110,
     112,   116,   118,   119,   120,   121,   125,   128,   129,   130,
     134,   136,   137,   139,   140,   141,   144,   146,   147,   148,
     149,   150,   153,   154,   155,   158,   160,   161,   162,   165,
     169,   170,   172,   174,   176,   177,   178,   179,   181,   185,
     186,   188,   191,   192,   196,   197,   198,   199,   202,   203,
     206,   208,   212,   213,   217,   220,   221,   225,   228,   229,
     232,   235,   236,   242,   243,   245,   247,   249,   250,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   272,   273,   275,   276,   277,   278,   280,   281,
     282,   286,   287,   288,   289,   290,   293,   294,   296,   298,
     300,   301,   302,   303,   304,   305,   306,   307,   310,   311,
     314,   315,   316,   317,   321,   322,   327,   328,   329,   331,
     332,   333,   335,   345,   346,   347,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   363,   364,
     365,   367,   369,   370,   372,   373,   374,   377,   381,   382,
     383,   384,   385,   388,   389,   390,   392,   393,   395,   396,
     397,   400,   402,   403,   404,   406,   407,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   421,   422,   426,   427,
     428,   429,   433,   437,   438,   439,   440,   442,   443,   444,
     445,   452,   453,   455,   458,   461,   462,   463,   466,   467,
     469,   470,   471,   472,   473,   476,   477,   479,   480,   483,
     484,   487,   488,   490,   491,   492,   493,   499,   500,   501,
     505,   506,   507,   508,   510,   511,   513,   514,   516,   517,
     520,   523,   525,   527,   528,   535,   538,   542,   543,   544,
     545,   550,   551,   553,   554,   557,   620,  1295,  1299,  1303,
    1304,   272,  1324,  1324,   550,  1366,    92,   173,   249,   429,
     446,   480,   483,   519,   527,   602,   603,   819,   820,   821,
     894,  1211,  1167,    92,   148,   174,   204,   249,   368,   429,
     480,   483,   502,   527,   542,  1173,  1299,   979,   619,   575,
    1293,  1294,  1299,   592,  1175,   357,    77,   373,  1257,    95,
     204,   482,  1324,   979,   767,  1299,  1253,   418,    92,   527,
    1324,   979,  1178,  1249,  1324,   619,  1366,  1299,  1002,  1004,
    1005,   336,  1307,  1224,   462,   466,   440,   499,   440,   482,
    1222,   357,  1329,  1203,  1299,    30,    71,   136,   363,   382,
     411,   462,  1415,   423,   568,  1001,     0,   138,   363,   154,
     352,  1240,  1293,  1299,   142,   918,  1299,   142,   620,   182,
     620,   237,  1296,  1299,  1301,   708,   709,   712,   739,  1299,
     482,   148,   913,  1389,  1324,   960,  1366,   988,   989,  1293,
     633,   575,   497,   962,   973,    16,  1367,   200,   822,   182,
    1301,   710,   739,   619,   341,  1387,  1389,  1390,  1391,  1392,
     482,   820,   204,   201,   256,   374,  1219,  1220,  1072,  1073,
     200,  1172,  1172,  1172,  1299,   182,  1172,  1172,   739,  1172,
     619,  1172,  1324,   587,  1243,    12,    13,    85,   113,   126,
     148,   150,   160,   180,   204,   211,   248,   369,   386,   392,
     400,   423,   436,   437,   476,   502,   524,   526,  1340,  1342,
    1344,  1345,  1299,   333,    62,   378,   575,  1301,   111,   190,
     256,  1180,  1299,     7,    20,    27,    33,    35,    36,    37,
      39,    51,    52,    56,    57,    63,    66,    80,    83,    84,
      88,    89,    91,    92,    97,    98,    99,   104,   106,   109,
     151,   156,   157,   163,   176,   178,   183,   189,   196,   200,
     211,   214,   234,   242,   253,   274,   279,   289,   293,   295,
     299,   300,   301,   302,   303,   309,   318,   319,   320,   324,
     325,   329,   348,   354,   358,   359,   361,   372,   398,   399,
     410,   416,   421,   464,   465,   470,   474,   475,   478,   486,
     490,   491,   492,   493,   503,   504,   505,   509,   512,   527,
     531,   532,   533,   534,   539,   541,   545,   557,   561,   562,
     567,   568,   571,   572,   574,   575,  1020,  1023,  1026,  1027,
    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1039,  1042,
    1043,  1044,  1045,  1046,  1047,  1048,  1058,  1062,  1280,  1282,
    1284,  1285,  1289,  1291,  1295,  1299,  1260,   215,  1293,  1323,
    1324,    45,   768,   171,    33,   272,  1228,  1254,  1299,   982,
     619,   981,  1324,   111,   256,  1181,  1209,   272,   373,   440,
    1250,  1251,   958,    12,  1338,  1342,   497,  1367,  1003,    12,
     122,   190,   451,   452,   453,   454,   455,   456,   468,  1009,
    1010,  1011,  1306,    23,    34,    56,    57,    66,    68,    82,
      84,    85,    93,   140,   144,   147,   172,   174,   179,   181,
     203,   204,   208,   224,   245,   272,   304,   314,   333,   356,
     367,   368,   428,   440,   467,   482,   544,   867,   893,  1225,
    1228,  1229,  1231,  1313,   951,   952,   951,   951,   549,   950,
     951,  1171,  1293,  1299,  1324,  1209,    35,   189,   486,  1281,
    1297,  1414,  1414,  1414,  1414,  1414,  1004,  1001,   569,  1299,
    1238,  1237,   288,   484,   511,   909,    89,  1301,  1302,   911,
     714,   740,  1299,   910,   335,     6,    54,   126,   319,   377,
     379,   741,  1293,   620,   457,  1393,  1394,   912,   970,  1170,
    1171,   218,   570,   995,   996,   568,   634,  1299,   594,  1170,
    1170,    53,   321,   321,   391,  1368,   318,   319,  1038,  1299,
     713,   740,   167,     6,  1302,  1355,  1356,   399,    10,   148,
     368,   502,   606,   834,  1388,  1394,  1403,  1407,  1389,  1392,
     822,  1299,   171,  1212,  1216,  1217,  1299,  1219,  1020,  1074,
     151,  1299,   620,   620,   330,   740,   620,  1301,   750,  1229,
     620,  1302,  1354,  1170,  1172,   530,   588,   116,   192,   250,
     272,   367,   373,   403,   440,   463,   479,  1244,  1245,  1324,
     367,  1343,   413,   413,   483,   527,   542,   336,  1347,   479,
    1349,    61,   440,  1346,    93,   542,  1348,   330,   570,    18,
     142,  1122,  1123,  1331,  1299,   942,   444,   568,   568,   568,
    1043,   568,   568,   568,  1020,  1079,   568,   568,   568,   568,
     568,   568,   568,   568,   568,  1019,  1019,   568,  1019,   568,
     568,   568,   512,   568,  1280,   568,   568,   568,   568,   568,
     568,   568,   568,   568,   568,  1020,   568,   568,   568,  1075,
    1076,  1077,   568,   568,   568,   568,   568,   568,   568,   568,
     568,  1026,   568,  1019,   568,   568,   568,   568,   568,   568,
     568,   568,   568,   568,   568,   568,   568,   568,   568,   568,
     568,  1019,   568,  1280,   568,   568,   568,  1280,   568,   568,
      35,   189,   486,   568,  1019,  1019,  1019,   568,   568,   568,
     568,   568,  1043,  1043,  1043,   423,   568,  1020,  1382,  1299,
    1063,  1299,   555,  1021,  1024,   142,   143,   175,   184,   219,
     230,   257,   312,  1040,    31,   218,   238,   387,   445,   559,
    1038,   560,   434,   435,   561,   562,   123,   299,   563,   564,
     565,   566,  1043,   100,   101,   102,   103,   104,   170,   193,
     194,   195,   196,   289,   291,   292,   293,   300,   372,   420,
     421,   545,   556,   557,  1119,  1120,    65,   340,  1297,   568,
     575,    75,   171,   256,  1261,  1267,    47,   171,  1293,  1325,
    1326,   978,   240,   243,   375,   771,   775,   574,   585,  1296,
     250,   986,  1299,   983,  1302,   984,   985,  1293,   965,   215,
    1171,  1182,  1183,    47,   570,  1170,  1343,   330,   418,  1369,
    1368,   518,  1374,  1375,   563,  1013,  1014,  1015,  1011,  1308,
    1309,  1310,   147,   431,   238,   547,  1235,   506,   568,    92,
     148,   174,   368,   482,   502,   542,  1235,    12,   830,  1301,
     239,  1141,  1143,   171,   218,  1230,  1232,    64,   463,   168,
     463,   463,   463,   272,   479,    64,   463,   192,   463,   463,
     506,  1141,  1235,  1232,   250,   139,    67,   357,   370,   479,
     501,   463,   538,   948,   390,   458,   953,   954,   947,    78,
     942,   570,   332,  1417,   477,  1418,   223,   406,  1416,   569,
    1375,  1377,  1378,  1379,   999,  1241,  1281,  1299,   109,   817,
     818,   827,   828,   876,  1019,   574,   627,     6,   715,   627,
     568,    94,   736,   736,   736,     4,   908,   914,   422,   542,
    1394,  1170,   497,   570,   109,   990,  1299,   989,   204,   226,
     891,   997,   635,   636,  1020,   258,   259,   260,   261,   262,
     263,   265,   266,   267,   268,   269,   270,   271,   273,   388,
     389,   595,   596,   597,   154,   374,   963,    55,   154,   158,
     168,   286,   374,   974,   975,   976,    53,   391,   151,   601,
     715,    95,   736,   198,   570,   822,  1015,  1015,  1015,  1394,
    1293,   895,   896,  1216,  1293,  1299,   570,  1214,   575,  1218,
     570,  1293,   750,   322,   543,   751,   752,   140,   570,    49,
     405,   943,  1170,   574,   589,   590,    47,   549,   570,  1246,
     479,   568,  1357,  1357,  1357,  1357,   174,   368,   482,  1341,
    1345,  1299,   161,   315,  1299,  1332,  1333,  1182,  1296,  1020,
    1020,    12,   122,  1068,  1124,  1068,  1068,  1068,   546,  1081,
    1020,  1020,  1072,  1072,  1020,  1020,  1020,   122,  1068,  1124,
     569,  1020,   569,  1020,  1020,  1020,  1020,  1289,  1299,   568,
    1382,  1119,  1072,    96,    99,   490,   493,  1121,   122,  1065,
    1020,  1020,  1020,  1020,  1072,  1076,     9,  1078,  1289,   122,
    1068,  1020,  1020,   122,  1068,  1020,  1020,  1072,  1072,  1072,
    1020,  1020,  1020,  1020,  1072,  1030,  1020,  1020,  1020,  1020,
    1020,  1020,  1068,  1068,  1020,  1020,   122,  1068,  1020,  1020,
    1120,  1120,  1020,    43,   231,   498,  1020,  1020,   569,  1290,
    1291,  1299,  1068,  1068,  1020,  1020,  1385,  1385,   569,   570,
     569,  1020,   574,  1064,  1301,   575,  1023,  1022,  1025,  1029,
     157,   324,   504,   520,  1038,    12,    17,  1029,  1041,  1030,
     568,  1043,  1030,   238,  1031,    31,   218,   238,   387,  1032,
    1033,  1033,  1034,  1042,  1034,  1042,  1035,  1035,  1035,  1035,
    1035,  1043,   562,  1301,  1043,  1049,  1299,   272,   245,  1266,
     992,   272,  1123,   570,  1170,   774,   773,   352,   781,   186,
     226,  1301,    29,   497,  1255,   497,   570,   497,   570,   497,
    1170,  1183,  1179,  1251,   171,   570,   174,   368,  1341,  1299,
      12,   122,  1381,   570,  1006,  1017,  1020,  1287,  1299,   570,
     179,   245,   331,   428,  1311,  1312,  1315,  1316,   218,  1233,
    1296,  1020,   563,   822,   620,   620,   620,  1293,   620,  1293,
     250,   304,   463,  1227,  1227,   253,   325,   509,  1144,  1145,
    1282,  1235,  1299,   620,  1235,  1302,   168,  1230,   620,  1235,
    1230,  1293,  1232,  1230,  1230,  1235,  1235,   523,   955,   570,
     955,   442,   423,   568,   572,  1082,  1083,  1084,  1085,  1094,
    1095,  1103,  1281,   355,  1419,   339,  1137,  1143,  1380,   818,
      65,   867,  1301,    69,    80,   228,   297,   321,   376,   457,
     629,   631,   383,   513,   737,   738,   732,   733,    92,   191,
     345,   354,   360,   443,   527,   604,   605,  1296,   724,   725,
     716,   717,   724,     6,    13,    14,    25,    26,    54,    58,
      59,    63,    69,    77,    83,    95,   112,   119,   120,   126,
     134,   140,   166,   202,   204,   212,   225,   277,   294,   298,
     334,   339,   346,   353,   354,   381,   393,   394,   395,   396,
     415,   467,   480,   500,   507,   518,   764,   824,   826,   827,
     828,   919,   924,   926,   929,   935,   936,   937,  1133,   330,
     614,   915,   110,   217,  1293,   974,  1296,  1171,   568,   569,
     570,   142,   142,   142,   142,   142,   142,   142,   142,   142,
     142,   142,   142,   142,   142,   142,   142,   570,   525,   975,
     816,   817,   728,   729,   551,   529,   711,    45,  1356,   620,
     620,   620,   174,   599,   507,   530,   899,   330,  1215,  1213,
     575,  1217,   171,   563,  1299,  1123,  1020,  1169,   751,   142,
     432,  1193,  1194,  1302,   943,  1301,   570,   378,  1245,  1170,
    1247,  1299,  1358,  1359,   563,  1293,  1299,  1353,  1353,  1353,
     142,   161,   175,   184,   229,   230,   257,   315,   365,  1334,
    1336,   547,  1125,  1176,   570,   569,  1068,   569,  1069,   569,
     569,   569,  1020,   132,   546,  1080,    18,   569,   530,   569,
     569,   569,   570,   530,   570,  1059,   569,   563,   569,   570,
     570,   569,   569,   569,   575,   569,   171,   569,   570,  1061,
     569,   570,   570,   570,   569,   569,   568,   570,  1068,   569,
     569,   569,  1068,   569,   570,   569,   569,   569,   569,   569,
     569,   569,   570,   569,   218,   569,   570,   570,   570,   570,
     569,   569,   569,   570,   171,   570,  1068,   569,   569,   569,
     570,   570,   570,   569,   171,  1020,   171,  1020,   171,  1020,
     171,   569,   570,   569,   569,   569,   569,   570,   569,  1002,
    1384,  1382,  1072,   573,   179,   245,   428,  1314,   432,  1299,
     338,   341,  1036,    15,    16,  1037,   157,   324,   504,   520,
     568,    16,  1020,  1382,   146,  1129,  1030,  1030,   568,  1043,
    1030,  1119,  1119,  1020,  1053,  1054,  1055,   568,   575,   205,
     993,   994,  1293,   256,   378,   552,  1327,  1326,   974,   568,
     779,   779,   106,   163,   189,   253,   325,   509,  1148,  1151,
    1152,   769,   772,   568,  1020,  1296,  1299,  1302,  1302,   985,
    1293,   154,   374,   528,   966,   967,   968,   423,   431,   534,
     535,   568,   812,  1184,  1187,  1296,   180,  1353,  1353,  1353,
    1376,  1014,   171,   215,  1007,  1008,  1136,  1137,  1162,  1016,
     575,  1309,   109,   499,  1299,  1318,   305,   354,   574,   867,
    1317,  1296,   171,  1234,   569,  1299,   328,   570,   440,  1235,
    1235,  1230,  1293,  1235,  1235,   597,   956,   954,  1102,  1299,
      86,   207,   223,   234,   308,   410,   468,  1093,   431,   570,
    1293,  1102,   570,   168,  1420,    45,  1141,  1194,  1194,  1296,
     457,   457,   457,   457,   457,   422,  1296,  1296,   206,   734,
     735,   742,   750,   752,  1296,  1296,  1296,  1296,   106,   163,
     189,   253,   325,   509,  1147,  1296,  1296,   569,   570,    24,
     278,   726,   727,   742,   743,   744,   750,   752,   718,   719,
     742,   743,   744,    68,    79,   173,   353,   446,   839,   842,
     843,   889,   891,   941,   941,   353,  1194,  1194,   941,  1194,
     353,   353,  1194,  1194,   497,   118,  1194,   224,   480,   167,
     353,   366,   891,   941,   224,  1194,   480,   118,  1194,  1194,
    1194,  1194,   941,   353,    45,  1194,   765,  1194,   353,   351,
      18,   142,   497,   945,   353,   353,  1194,   121,   287,  1299,
    1194,  1194,  1194,   824,   570,   763,   764,   924,   568,   575,
     838,   844,  1292,  1299,    73,   419,   394,   916,  1395,   366,
    1115,  1116,  1117,  1299,  1020,  1147,  1296,  1296,   106,   163,
     253,   325,   509,  1149,  1296,  1147,  1296,  1296,  1296,  1296,
    1296,  1147,  1147,  1296,  1296,  1147,   596,    69,   316,   384,
     514,   730,   731,   742,   746,   747,   748,   749,   750,   752,
    1301,   249,   720,   721,   354,   486,   607,  1409,     8,    29,
     706,   620,   238,   568,   754,   823,   825,   826,    44,   186,
     417,   901,   901,  1293,   530,  1125,  1299,  1083,   575,  1218,
     829,  1301,   590,   248,   569,   570,   575,   575,   497,   497,
     497,  1335,  1126,  1142,  1143,  1184,   214,  1020,   569,  1020,
     489,  1020,  1020,   136,    33,    57,    96,    99,   107,   310,
     438,   493,   522,  1070,    33,   868,  1301,  1020,   868,  1070,
    1072,   569,  1042,  1042,  1299,  1020,  1020,  1072,  1020,  1020,
    1020,  1030,  1289,   569,   569,  1020,  1020,  1020,  1020,  1020,
    1020,  1072,   214,  1020,  1020,  1020,   569,  1020,  1020,  1020,
    1020,   171,  1020,   171,  1020,   171,  1020,  1020,  1020,  1386,
     569,   569,   575,   575,   575,  1301,  1020,  1023,  1026,  1382,
    1029,   569,   570,   569,  1043,    16,  1020,  1382,  1129,   569,
    1015,  1056,  1057,  1071,  1072,  1299,   486,  1298,   570,   995,
     552,   245,  1015,   473,   782,   779,   776,   777,   778,  1299,
     497,   967,   813,  1185,   568,  1190,  1195,  1190,   569,   812,
    1186,  1286,  1287,  1290,  1299,  1188,   336,   171,   171,   171,
    1000,   127,  1083,  1163,   168,   248,  1012,  1162,  1142,  1008,
      18,  1018,  1296,  1299,   563,  1299,   575,   220,   575,  1193,
     109,   868,   869,  1193,   168,  1193,   574,  1301,    33,   109,
     871,   872,  1301,  1149,  1226,   144,   544,  1145,  1145,   549,
    1125,  1230,   570,  1097,  1102,  1082,   223,   223,   342,  1104,
     223,   234,   410,  1104,  1094,  1082,  1205,  1206,  1290,  1082,
    1123,  1099,  1100,  1147,   290,  1138,   109,   873,   875,  1301,
     869,    95,    95,   110,   217,  1194,   570,   735,   605,  1194,
    1194,   570,   727,   570,   719,   904,  1292,   891,   892,   979,
     892,    59,   167,   366,   519,   841,   890,   840,   841,   904,
    1292,   979,  1149,  1147,  1292,  1147,    12,   925,   933,   934,
    1299,   979,  1296,  1296,   867,  1194,  1147,   226,   933,   226,
    1292,  1292,   829,  1194,   161,   229,   321,   832,  1147,  1149,
    1149,  1292,   979,  1134,  1135,  1290,   109,  1147,   768,  1296,
     979,  1293,   979,   979,    72,    74,   109,   130,   162,   347,
     385,   831,  1147,   829,   568,     6,   126,   937,   836,   837,
     838,   839,  1299,     8,   161,   944,   386,   840,   881,   845,
     575,   319,   364,    22,   149,   608,   497,   119,   134,   610,
     568,  1397,   569,   570,  1194,  1194,  1194,  1194,   570,   731,
     335,   182,   155,   722,   723,   742,   743,   744,   745,   748,
     749,   750,   752,   486,   330,   568,   113,   211,   524,   707,
    1408,  1293,   238,   353,   756,   763,   836,   763,   570,   825,
     600,  1083,  1136,  1125,  1123,  1359,   563,   563,  1355,  1355,
    1355,   568,  1020,   330,  1200,  1020,   569,  1020,   489,   568,
     861,   861,   568,   856,   857,   861,   216,   216,   569,   569,
     569,   569,   569,  1060,  1119,  1119,   569,   569,  1067,  1137,
     570,   570,   569,   218,  1050,  1051,   569,   569,   569,   569,
     570,   569,   569,  1020,   569,   168,   569,   569,   570,   569,
     570,   570,   569,  1020,   569,  1020,   569,  1020,   569,   569,
     569,  1383,   575,   905,   569,  1072,  1029,   569,   570,   569,
    1020,   570,   569,  1262,   994,   201,   998,   787,  1030,    45,
     770,   569,   570,  1302,  1009,  1191,  1192,  1290,  1196,   570,
     568,  1187,   569,   569,   570,   575,  1374,   171,  1355,  1355,
    1355,  1125,  1125,   128,   343,  1158,  1159,  1164,   524,   218,
    1296,  1299,   575,  1299,   236,  1299,    12,    33,   109,   330,
    1020,  1321,    65,   874,  1020,  1302,   329,   354,   486,  1320,
    1314,  1193,  1141,   260,  1235,   597,  1377,  1098,   234,   223,
    1094,  1104,  1104,   223,   330,   330,   530,   570,  1204,  1193,
    1113,  1114,  1009,  1020,  1139,  1288,   197,   753,  1148,   735,
     753,   753,   727,   719,   927,  1020,   226,   226,   892,   904,
     896,   126,   431,   925,   938,   922,   570,  1148,   869,  1296,
     904,   943,  1296,   939,   925,   570,    19,   114,  1140,   925,
     930,   925,  1170,   569,   570,  1299,  1293,    32,    33,    38,
      40,    41,    42,    57,    96,    99,   107,   124,   141,   162,
     164,   176,   177,   216,   242,   251,   252,   254,   283,   284,
     285,   301,   302,   303,   307,   310,   326,   327,   358,   359,
     380,   427,   431,   441,   487,   490,   493,   494,   495,   496,
     536,   537,   557,   846,   849,   850,   851,   852,   853,   854,
     855,  1299,   364,  1020,  1020,   330,   614,   620,   330,    69,
     615,  1299,  1398,    18,  1116,  1296,  1148,   753,   753,   731,
     568,  1299,  1194,   570,   723,   419,  1410,   330,   407,   568,
     621,  1293,   758,   569,   755,   825,   568,  1125,   239,  1146,
     401,  1360,  1360,  1360,   109,  1020,  1198,  1199,   129,  1119,
    1020,   325,    20,    33,    46,   516,   867,   877,   325,   569,
     569,   569,   425,  1066,  1020,  1020,    41,   308,   569,   549,
    1052,  1020,  1119,  1020,  1020,  1020,  1020,   569,   569,   569,
    1374,  1299,   569,  1072,  1016,  1057,   201,   399,  1268,   232,
    1016,   775,   568,   789,   778,  1013,   570,  1193,  1197,  1198,
    1195,  1189,  1187,  1286,  1299,  1355,  1142,   182,  1130,  1298,
    1298,   574,  1160,  1161,  1301,   433,   563,   378,   397,   426,
    1319,   875,  1193,   568,   568,  1318,  1020,   142,   569,  1084,
     342,  1082,  1094,   223,   223,  1082,  1094,  1087,  1086,  1088,
    1206,  1125,  1199,  1111,  1112,  1013,   570,  1140,   352,   568,
     928,   904,   896,   568,   109,   109,   921,   844,   974,   934,
     874,   846,   920,  1135,   931,   933,   923,   569,   837,   882,
     568,   568,   861,   856,   362,   847,   856,   856,   877,    57,
     536,   850,   852,   877,   877,    57,   537,   537,   540,   856,
     848,   861,   861,   877,   568,   861,    25,    65,    69,   109,
     324,   330,   366,   427,   519,   863,   864,   865,   880,  1038,
     540,   568,   877,    33,   568,   878,   568,   568,   861,   568,
     857,   862,   575,  1119,   440,  1296,   125,   917,   569,   570,
    1396,   604,   753,   723,   608,   209,   218,   344,   641,   642,
     643,   644,  1015,   107,   216,   380,   469,   835,   622,   569,
     812,   823,   760,  1268,   902,   903,  1299,  1145,    60,   221,
     317,   459,   471,   553,  1351,  1352,   549,  1361,  1361,  1361,
     569,   570,  1201,   569,   569,   878,    20,   516,   867,   879,
     878,   868,   569,   570,  1281,   569,   569,   570,   296,   228,
     373,   569,   569,   569,   569,   569,   569,  1386,   569,  1018,
     215,   569,   186,   226,   353,   790,   791,   814,  1192,  1199,
     569,  1377,    45,   187,  1127,  1165,  1301,   570,   296,    70,
     510,   378,  1320,   486,   486,  1193,  1296,  1123,   223,   330,
    1090,  1094,  1094,   330,  1092,  1020,  1020,   568,  1136,   166,
     201,   529,  1106,  1107,  1110,  1101,  1288,  1148,   790,   568,
     568,   902,    99,   490,   493,   561,   562,  1283,  1284,   974,
     944,   863,   979,   932,   966,   274,   330,   568,   883,   885,
     886,   887,   325,   325,   438,   522,   558,   858,   859,   860,
     568,   858,   858,   877,   540,   858,   568,   877,   325,   858,
     873,  1296,   320,   866,  1283,   524,   109,   226,   865,   226,
     324,   325,   325,   325,   325,   858,   325,   858,  1299,   609,
     616,   617,  1299,  1399,  1400,   569,   613,   614,   569,   570,
     639,  1404,   444,   637,   638,   640,  1299,   569,   763,    18,
     815,   569,   570,  1140,   568,   486,   486,   486,    16,  1350,
     180,   275,   276,   280,   281,  1362,  1363,  1199,   226,   868,
     878,   325,  1020,   296,   153,  1263,   568,   780,   568,   792,
     569,   570,   833,  1008,  1142,  1131,  1288,  1128,  1136,    67,
    1269,  1161,   569,   569,  1321,    16,  1082,  1089,   530,  1091,
     530,  1118,  1299,  1146,   891,   891,  1107,   833,  1140,   569,
     902,   902,   569,  1285,  1285,   940,   974,   215,   172,   350,
     439,   113,   524,   884,  1299,   887,   569,   569,   860,   906,
    1281,   906,   569,  1019,   320,   535,   569,   569,   569,   569,
     461,   611,    51,    62,   159,   200,   222,   233,   333,   408,
     618,   662,   664,   665,   666,   668,   669,   670,   671,   672,
     673,   675,   683,   684,   687,   698,  1295,  1300,  1304,   423,
     568,  1401,   610,  1411,   643,  1299,  1293,  1296,   569,   570,
     639,   759,   757,   568,   812,   225,   549,   897,   898,   899,
     900,   903,   325,  1351,   336,  1147,  1147,  1147,  1147,  1363,
     524,   569,   569,   482,  1015,   783,   785,   786,  1299,   796,
    1299,   791,  1012,   549,   570,  1132,  1140,  1020,  1142,   135,
     145,   337,   485,  1270,  1271,   241,  1272,   261,   330,  1020,
     568,  1020,   568,   569,   570,   168,  1105,  1105,   569,   569,
     897,   944,   568,    49,   321,   405,   431,   888,   888,   569,
     570,   569,   570,   569,  1019,   877,   878,   877,   878,  1020,
     137,   612,   685,   688,  1299,   171,   315,   676,   663,  1300,
    1300,  1299,   667,   581,    30,   255,   398,   548,   701,   577,
    1002,  1001,   549,  1402,   615,   628,   846,   168,   623,   640,
     846,  1377,   760,   812,   761,  1194,   349,   900,  1140,   569,
    1207,  1208,  1290,  1293,   787,   472,   788,   569,   570,   793,
      87,   412,  1288,   368,  1153,    45,    45,   135,    45,  1271,
     460,   485,  1273,  1274,   142,  1096,  1118,  1118,  1299,   182,
     223,   339,  1109,  1108,   881,   897,   790,     5,   109,   324,
     885,  1299,   877,  1281,   877,  1020,  1020,   546,   690,   694,
     171,  1299,   678,   679,  1020,   702,   646,   661,   662,   664,
     666,   668,   670,   671,   672,   673,   675,   683,   698,   646,
     703,   699,   569,    50,    59,   245,   125,   117,   629,   630,
    1038,  1412,  1015,   407,   569,  1374,  1147,  1295,   570,  1193,
    1264,  1016,  1148,   784,   786,   534,   797,  1140,  1299,  1281,
    1281,    45,  1281,    45,    45,  1274,  1149,  1020,   569,   569,
      45,    45,   568,   568,   569,   686,   695,   132,   694,   697,
     215,   136,  1020,   647,   136,   661,   576,   523,  1020,   701,
    1377,    59,   336,    59,   616,   117,   661,  1405,   624,   762,
    1208,  1199,   867,   870,   569,   788,   218,   235,   794,  1154,
    1281,  1281,  1281,    16,   573,  1115,  1117,   546,   689,   691,
    1020,   646,   136,   674,   200,   489,   108,   645,   648,   255,
     576,   705,   125,   700,  1300,   336,   336,   131,   846,  1377,
     869,  1265,   568,   488,    69,    95,   204,   277,   294,   316,
     480,   809,   810,   811,  1229,   568,   264,   569,   569,   692,
     691,   697,   696,    51,   677,  1299,   680,    81,   152,   653,
     659,  1299,   136,   661,   576,  1020,   704,   416,   625,  1269,
     801,   802,   803,  1030,   282,   568,   798,   799,   800,  1194,
     118,   118,  1194,  1194,  1194,  1194,   795,   811,   140,  1015,
    1155,  1156,  1157,   142,  1020,   136,   489,   570,   646,   185,
     570,   649,    76,    90,   576,   136,   646,  1406,   628,  1272,
     569,   570,   282,   803,  1296,  1194,  1194,   253,   325,   509,
    1150,  1151,  1150,  1148,  1301,   568,   804,  1194,  1020,   569,
     570,  1147,   693,    51,   646,  1299,   681,   168,  1299,   846,
     168,   168,   398,   136,   661,   626,   201,  1275,   802,   569,
     569,  1296,  1296,   473,   805,   806,   829,  1016,  1157,   489,
     132,   133,   682,   650,   109,   660,   449,   656,  1147,   651,
     652,   548,   661,   325,   568,  1276,   807,   569,   570,   646,
     646,   678,   448,   450,   654,   655,   656,   658,  1038,  1299,
    1020,   535,   657,   581,   241,   569,   574,  1277,  1278,  1290,
     431,  1279,   808,  1301,   806,   570,   661,   169,  1297,  1301,
     569,   570,  1207,   809,   655,  1278
};

#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 <stddef.h> /* 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 -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

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


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

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


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

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

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

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

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

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
do {								\
  if (yydebug)							\
    {								\
      YYFPRINTF (stderr, "%s ", Title);				\
      yysymprint (stderr, 					\
                  Type, 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 int *bottom, short int *top)
#else
static void
yy_stack_print (bottom, top)
    short int *bottom;
    short int *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 YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


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

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

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

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined (__GLIBC__) && defined (_STRING_H)
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
static YYSIZE_T
#   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]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);


# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
  switch (yytype)
    {
      default:
        break;
    }
  YYFPRINTF (yyoutput, ")");
}

#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

#if defined (__STDC__) || defined (__cplusplus)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
#endif
{
  /* Pacify ``unused variable'' warnings.  */
  (void) yyvaluep;

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

  switch (yytype)
    {

      default:
        break;
    }
}


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

#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
int yyparse (void *YYPARSE_PARAM);
# else
int yyparse ();
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int yyparse (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 look-ahead symbol.  */
int yychar;

/* The semantic value of the look-ahead 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;
  /* Look-ahead 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 int yyssa[YYINITDEPTH];
  short int *yyss = yyssa;
  register short int *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;


  yyvsp[0] = yylval;

  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 int *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 int *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 look-ahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to look-ahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

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

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

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

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

  if (yyn == YYFINAL)
    YYACCEPT;

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

  /* 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 1290 "sql_yacc.yy"
    {
	   THD *thd= YYTHD;
	   if (!thd->bootstrap &&
	      (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
	   {
	     my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
	     MYSQL_YYABORT;
	   }
	   else
	   {
	     thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
	   }
	}
    break;

  case 3:
#line 1303 "sql_yacc.yy"
    {}
    break;

  case 57:
#line 1367 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
          lex->prepared_stmt_name= (yyvsp[0].lex_str);
        }
    break;

  case 60:
#line 1382 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          lex->sql_command= SQLCOM_PREPARE;
          lex->prepared_stmt_name= (yyvsp[-2].lex_str);
        }
    break;

  case 61:
#line 1391 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          lex->prepared_stmt_code= (yyvsp[0].lex_str);
          lex->prepared_stmt_code_is_varref= FALSE;
        }
    break;

  case 62:
#line 1398 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          lex->prepared_stmt_code= (yyvsp[0].lex_str);
          lex->prepared_stmt_code_is_varref= TRUE;
        }
    break;

  case 63:
#line 1407 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          lex->sql_command= SQLCOM_EXECUTE;
          lex->prepared_stmt_name= (yyvsp[0].lex_str);
        }
    break;

  case 64:
#line 1414 "sql_yacc.yy"
    {}
    break;

  case 69:
#line 1428 "sql_yacc.yy"
    {
          LEX *lex=Lex;
          LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING));
          if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
              MYSQL_YYABORT;
        }
    break;

  case 70:
#line 1440 "sql_yacc.yy"
    {
         if (Lex->sphead)
         {
           my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
           MYSQL_YYABORT;
         }
       }
    break;

  case 71:
#line 1448 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  lex->sql_command= SQLCOM_HELP;
	  lex->help_arg= (yyvsp[0].lex_str).str;
       }
    break;

  case 72:
#line 1458 "sql_yacc.yy"
    {
	  LEX *lex = Lex;
	  lex->sql_command = SQLCOM_CHANGE_MASTER;
	  bzero((char*) &lex->mi, sizeof(lex->mi));
        }
    break;

  case 73:
#line 1464 "sql_yacc.yy"
    {}
    break;

  case 76:
#line 1473 "sql_yacc.yy"
    {
	 Lex->mi.host = (yyvsp[0].lex_str).str;
       }
    break;

  case 77:
#line 1478 "sql_yacc.yy"
    {
	 Lex->mi.user = (yyvsp[0].lex_str).str;
       }
    break;

  case 78:
#line 1483 "sql_yacc.yy"
    {
	 Lex->mi.password = (yyvsp[0].lex_str).str;
       }
    break;

  case 79:
#line 1488 "sql_yacc.yy"
    {
	 Lex->mi.port = (yyvsp[0].ulong_num);
       }
    break;

  case 80:
#line 1493 "sql_yacc.yy"
    {
	 Lex->mi.connect_retry = (yyvsp[0].ulong_num);
       }
    break;

  case 81:
#line 1497 "sql_yacc.yy"
    {
           Lex->mi.ssl= (yyvsp[0].ulong_num) ? 
               LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
         }
    break;

  case 82:
#line 1502 "sql_yacc.yy"
    {
           Lex->mi.ssl_ca= (yyvsp[0].lex_str).str;
         }
    break;

  case 83:
#line 1506 "sql_yacc.yy"
    {
           Lex->mi.ssl_capath= (yyvsp[0].lex_str).str;
         }
    break;

  case 84:
#line 1510 "sql_yacc.yy"
    {
           Lex->mi.ssl_cert= (yyvsp[0].lex_str).str;
         }
    break;

  case 85:
#line 1514 "sql_yacc.yy"
    {
           Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str;
         }
    break;

  case 86:
#line 1518 "sql_yacc.yy"
    {
           Lex->mi.ssl_key= (yyvsp[0].lex_str).str;
	 }
    break;

  case 87:
#line 1522 "sql_yacc.yy"
    {
           Lex->mi.ssl_verify_server_cert= (yyvsp[0].ulong_num) ?
               LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
         }
    break;

  case 89:
#line 1532 "sql_yacc.yy"
    {
	 Lex->mi.log_file_name = (yyvsp[0].lex_str).str;
       }
    break;

  case 90:
#line 1536 "sql_yacc.yy"
    {
           Lex->mi.pos = (yyvsp[0].ulonglong_number);
           /* 
              If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
              instead of causing subsequent errors. 
              We need to do it in this file, because only there we know that 
              MASTER_LOG_POS has been explicitely specified. On the contrary
              in change_master() (sql_repl.cc) we cannot distinguish between 0
              (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
              whereas we want to distinguish (specified 0 means "read the binlog
              from 0" (4 in fact), unspecified means "don't change the position
              (keep the preceding value)").
           */
           Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
         }
    break;

  case 91:
#line 1552 "sql_yacc.yy"
    {
           Lex->mi.relay_log_name = (yyvsp[0].lex_str).str;
         }
    break;

  case 92:
#line 1556 "sql_yacc.yy"
    {
           Lex->mi.relay_log_pos = (yyvsp[0].ulong_num);
           /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
           Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
         }
    break;

  case 93:
#line 1567 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;
	  lex->sql_command= SQLCOM_CREATE_TABLE;
	  if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL,
						 TL_OPTION_UPDATING,
						 TL_WRITE))
	    MYSQL_YYABORT;
          lex->alter_info.reset();
	  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= ha_default_handlerton(thd);
	  lex->create_info.default_table_charset= NULL;
	  lex->name.str= 0;
          lex->name.length= 0;
	}
    break;

  case 94:
#line 1586 "sql_yacc.yy"
    {
	  LEX *lex= YYTHD->lex;
          lex->current_select= &lex->select_lex; 
          if (!lex->create_info.db_type)
          {
            lex->create_info.db_type= ha_default_handlerton(YYTHD);
            push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                ER_WARN_USING_OTHER_HANDLER,
                                ER(ER_WARN_USING_OTHER_HANDLER),
                                ha_resolve_storage_engine_name(lex->create_info.db_type),
                                (yyvsp[-2].table)->table.str);
          }
        }
    break;

  case 95:
#line 1601 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_CREATE_INDEX;
	    if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[0].table),
							NULL,
							TL_OPTION_UPDATING))
	      MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->alter_info.flags= ALTER_ADD_INDEX;
	    lex->col_list.empty();
	    lex->change=NullS;
	  }
    break;

  case 96:
#line 1614 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
            Key *key;
	    if ((yyvsp[-10].key_type) != Key::FULLTEXT && lex->key_create_info.parser_name.str)
	    {
	      my_parse_error(ER(ER_SYNTAX_ERROR));
	      MYSQL_YYABORT;
	    }
            key= new Key((yyvsp[-10].key_type), (yyvsp[-8].lex_str).str, &lex->key_create_info, 0,
                         lex->col_list);
            lex->alter_info.key_list.push_back(key);
	    lex->col_list.empty();
	  }
    break;

  case 97:
#line 1628 "sql_yacc.yy"
    {
             Lex->create_info.default_table_charset= NULL;
             Lex->create_info.used_fields= 0;
          }
    break;

  case 98:
#line 1633 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command=SQLCOM_CREATE_DB;
	    lex->name= (yyvsp[-2].lex_str);
            lex->create_info.options=(yyvsp[-3].num);
	  }
    break;

  case 99:
#line 1640 "sql_yacc.yy"
    {
            Lex->create_view_mode= VIEW_CREATE_NEW;
            Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            Lex->create_view_suid= TRUE;
	  }
    break;

  case 100:
#line 1646 "sql_yacc.yy"
    {}
    break;

  case 101:
#line 1648 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_CREATE_USER;
          }
    break;

  case 102:
#line 1652 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
          }
    break;

  case 103:
#line 1656 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
          }
    break;

  case 104:
#line 1660 "sql_yacc.yy"
    {
	    Lex->sql_command= SQLCOM_CREATE_SERVER;
          }
    break;

  case 105:
#line 1666 "sql_yacc.yy"
    {
          Lex->server_options.server_name= (yyvsp[-8].lex_str).str;
          Lex->server_options.server_name_length= (yyvsp[-8].lex_str).length;
          Lex->server_options.scheme= (yyvsp[-4].lex_str).str;
        }
    break;

  case 108:
#line 1680 "sql_yacc.yy"
    {
          Lex->server_options.username= (yyvsp[0].lex_str).str;
        }
    break;

  case 109:
#line 1685 "sql_yacc.yy"
    {
          Lex->server_options.host= (yyvsp[0].lex_str).str;
        }
    break;

  case 110:
#line 1690 "sql_yacc.yy"
    {
          Lex->server_options.db= (yyvsp[0].lex_str).str;
        }
    break;

  case 111:
#line 1695 "sql_yacc.yy"
    {
          Lex->server_options.owner= (yyvsp[0].lex_str).str;
        }
    break;

  case 112:
#line 1700 "sql_yacc.yy"
    {
          Lex->server_options.password= (yyvsp[0].lex_str).str;
        }
    break;

  case 113:
#line 1705 "sql_yacc.yy"
    {
          Lex->server_options.socket= (yyvsp[0].lex_str).str;
        }
    break;

  case 114:
#line 1710 "sql_yacc.yy"
    {
          Lex->server_options.port= (yyvsp[0].ulong_num);
        }
    break;

  case 115:
#line 1721 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex=Lex;

            lex->create_info.options= (yyvsp[-1].num);

            if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
              MYSQL_YYABORT;
            lex->event_parse_data->identifier= (yyvsp[0].spname);

            /*
              We have to turn of CLIENT_MULTI_QUERIES while parsing a
              stored procedure, otherwise yylex will chop it into pieces
              at each ';'.
            */
            (yyval.ulong_num)= thd->client_capabilities & CLIENT_MULTI_QUERIES;
            thd->client_capabilities &= (~CLIENT_MULTI_QUERIES);

            lex->sql_command= SQLCOM_CREATE_EVENT;
            /* We need that for disallowing subqueries */
          }
    break;

  case 116:
#line 1747 "sql_yacc.yy"
    {
            /*
              Restore flag if it was cleared above
              $1 - EVENT_SYM
              $2 - opt_if_not_exists
              $3 - sp_name
              $4 - the block above
            */
            YYTHD->client_capabilities |= (yyvsp[-8].ulong_num);

            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_CREATE_EVENT;
          }
    break;

  case 117:
#line 1766 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_expression= (yyvsp[-1].item);
            Lex->event_parse_data->interval= (yyvsp[0].interval);
          }
    break;

  case 119:
#line 1773 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_execute_at= (yyvsp[0].item);
          }
    break;

  case 120:
#line 1778 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 121:
#line 1780 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_basic::ENABLED;
            (yyval.num)= 1;
          }
    break;

  case 122:
#line 1785 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_basic::SLAVESIDE_DISABLED;
            (yyval.num)= 1;
          }
    break;

  case 123:
#line 1790 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_basic::DISABLED;
            (yyval.num)= 1;
          }
    break;

  case 124:
#line 1797 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= new Item_func_now_local();
          }
    break;

  case 125:
#line 1801 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= (yyvsp[0].item);
          }
    break;

  case 127:
#line 1808 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_ends= (yyvsp[0].item);
          }
    break;

  case 128:
#line 1813 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 130:
#line 1819 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_basic::ON_COMPLETION_PRESERVE;
            (yyval.num)= 1;
          }
    break;

  case 131:
#line 1825 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_basic::ON_COMPLETION_DROP;
            (yyval.num)= 1;
          }
    break;

  case 132:
#line 1832 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 133:
#line 1834 "sql_yacc.yy"
    {
            Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str);
            (yyval.num)= 1;
          }
    break;

  case 134:
#line 1841 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            /*
              This stops the following :
              - CREATE EVENT ... DO CREATE EVENT ...;
              - ALTER  EVENT ... DO CREATE EVENT ...;
              - CREATE EVENT ... DO ALTER EVENT DO ....;
              - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
              This allows:
              - CREATE EVENT ... DO DROP EVENT yyy;
              - CREATE EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO DROP EVENT yyy;
              - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
                (the nested ALTER EVENT can have anything but DO clause)
              - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
            */
            if (lex->sphead)
            {
              my_error(ER_EVENT_RECURSION_FORBIDDEN, MYF(0));
              MYSQL_YYABORT;
            }
              
            if (!(lex->sphead= new sp_head()))
              MYSQL_YYABORT;

            lex->sphead->reset_thd_mem_root(thd);
            lex->sphead->init(lex);
	    lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);

            lex->sphead->m_type= TYPE_ENUM_PROCEDURE;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;

            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 135:
#line 1884 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /* return back to the original memory root ASAP */
            lex->sphead->set_stmt_end(thd);
            lex->sphead->restore_thd_mem_root(thd);

            lex->sp_chistics.suid= SP_IS_SUID;  //always the definer!

            lex->event_parse_data->body_changed= TRUE;
          }
    break;

  case 147:
#line 1915 "sql_yacc.yy"
    {
          LEX *lex=Lex;
          lex->users_list.empty();
          lex->columns.empty();
          lex->grant= lex->grant_tot_col= 0;
	  lex->all_privileges= 0;
          lex->select_lex.db= 0;
          lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
          lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
          bzero((char *)&(lex->mqh),sizeof(lex->mqh));
        }
    break;

  case 148:
#line 1930 "sql_yacc.yy"
    {
            if (!(yyvsp[-2].lex_str).str || check_db_name(&(yyvsp[-2].lex_str)))
            {
	      my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-2].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    if (check_routine_name(&(yyvsp[0].lex_str)))
            {
	      MYSQL_YYABORT;
	    }
	    (yyval.spname)= new sp_name((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true);
	    (yyval.spname)->init_qname(YYTHD);
	  }
    break;

  case 149:
#line 1944 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_STRING db;
	    if (check_routine_name(&(yyvsp[0].lex_str)))
            {
	      MYSQL_YYABORT;
	    }
            if (lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
	    (yyval.spname)= new sp_name(db, (yyvsp[0].lex_str), false);
            if ((yyval.spname))
	      (yyval.spname)->init_qname(thd);
	  }
    break;

  case 150:
#line 1962 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
	    LEX *lex= thd->lex;
            if (lex->definer != NULL)
            {
              /*
                DEFINER is a concept meaningful when interpreting SQL code.
                UDF functions are compiled.
                Using DEFINER with UDF has therefore no semantic,
                and is considered a parsing error.
              */
	      my_error(ER_WRONG_USAGE, MYF(0), "SONAME", "DEFINER");
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & lex->spname->m_name))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       lex->spname->m_name.str);
              MYSQL_YYABORT;
            }
	    lex->sql_command = SQLCOM_CREATE_FUNCTION;
	    lex->udf.name = lex->spname->m_name;
	    lex->udf.returns=(Item_result) (yyvsp[-2].num);
	    lex->udf.dl=(yyvsp[0].lex_str).str;
	  }
    break;

  case 151:
#line 1988 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
	    sp_head *sp;
            const char* tmp_param_begin;

            /* 
              First check if AGGREGATE was used, in that case it's a
              syntax error.
            */
            if (lex->udf.type == UDFTYPE_AGGREGATE)
            {
              my_error(ER_SP_NO_AGGREGATE, MYF(0));
              MYSQL_YYABORT;
            }

	    if (lex->sphead)
	    {
	      my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
	      MYSQL_YYABORT;
	    }
	    /* Order is important here: new - reset - init */
	    sp= new sp_head();
	    sp->reset_thd_mem_root(thd);
	    sp->init(lex);
            sp->init_sp_name(thd, lex->spname);

	    sp->m_type= TYPE_ENUM_FUNCTION;
	    lex->sphead= sp;
	    /*
	      We have to turn off CLIENT_MULTI_QUERIES while parsing a
	      stored procedure, otherwise yylex will chop it into pieces
	      at each ';'.
	    */
            (yyval.ulong_num)= thd->client_capabilities & CLIENT_MULTI_QUERIES;
	    thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;

            tmp_param_begin= lip->get_cpp_tok_start();
            tmp_param_begin++;
            lex->sphead->m_param_begin= tmp_param_begin;
	  }
    break;

  case 152:
#line 2031 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lex->sphead->m_param_end= lip->get_cpp_tok_start();
	  }
    break;

  case 153:
#line 2039 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->charset= NULL;
	    lex->length= lex->dec= NULL;
	    lex->interval_list.empty();
	    lex->type= 0;
	  }
    break;

  case 154:
#line 2047 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
            /*
              This was disabled in 5.1.12. See bug #20701
              When collation support in SP is implemented, then this test
              should be removed.
            */
            if (((yyvsp[0].num) == MYSQL_TYPE_STRING || (yyvsp[0].num) == MYSQL_TYPE_VARCHAR)
                && (lex->type & BINCMP_FLAG))
            {
              my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation");
              MYSQL_YYABORT;
            }

            if (sp->fill_field_definition(YYTHD, lex,
                                          (enum enum_field_types) (yyvsp[0].num),
                                          &sp->m_return_field_def))
              MYSQL_YYABORT;

	    bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
	  }
    break;

  case 155:
#line 2070 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

	    lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
	  }
    break;

  case 156:
#line 2079 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
	    LEX *lex= thd->lex;
	    sp_head *sp= lex->sphead;

            if (sp->is_not_allowed_in_function("function"))
              MYSQL_YYABORT;

	    lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
	    sp->set_stmt_end(thd);
            if (!(sp->m_flags & sp_head::HAS_RETURN))
            {
              my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str);
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & sp->m_name))
            {
              /*
                This warning will be printed when
                [1] A client query is parsed,
                [2] A stored function is loaded by db_load_routine.
                Printing the warning for [2] is intentional, to cover the
                following scenario:
                - A user define a SF 'foo' using MySQL 5.N
                - An application uses select foo(), and works.
                - MySQL 5.{N+1} defines a new native function 'foo', as
                part of a new feature.
                - MySQL 5.{N+1} documentation is updated, and should mention
                that there is a potential incompatible change in case of
                existing stored function named 'foo'.
                - The user deploys 5.{N+1}. At this point, 'select foo()'
                means something different, and the user code is most likely
                broken (it's only safe if the code is 'select db.foo()').
                With a warning printed when the SF is loaded (which has to occur
                before the call), the warning will provide a hint explaining
                the root cause of a later failure of 'select foo()'.
                With no warning printed, the user code will fail with no
                apparent reason.
                Printing a warning each time db_load_routine is executed for
                an ambiguous function is annoying, since that can happen a lot,
                but in practice should not happen unless there *are* name
                collisions.
                If a collision exists, it should not be silenced but fixed.
              */
              push_warning_printf(thd,
                                  MYSQL_ERROR::WARN_LEVEL_NOTE,
                                  ER_NATIVE_FCT_NAME_COLLISION,
                                  ER(ER_NATIVE_FCT_NAME_COLLISION),
                                  sp->m_name.str);
            }
	    /* Restore flag if it was cleared above */
	    thd->client_capabilities |= (yyvsp[-10].ulong_num);
	    sp->restore_thd_mem_root(thd);
	  }
    break;

  case 157:
#line 2136 "sql_yacc.yy"
    {}
    break;

  case 158:
#line 2137 "sql_yacc.yy"
    {}
    break;

  case 159:
#line 2141 "sql_yacc.yy"
    {}
    break;

  case 160:
#line 2142 "sql_yacc.yy"
    {}
    break;

  case 161:
#line 2148 "sql_yacc.yy"
    { Lex->sp_chistics.comment= (yyvsp[0].lex_str); }
    break;

  case 162:
#line 2150 "sql_yacc.yy"
    { /* Just parse it, we only have one language for now. */ }
    break;

  case 163:
#line 2152 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_NO_SQL; }
    break;

  case 164:
#line 2154 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
    break;

  case 165:
#line 2156 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
    break;

  case 166:
#line 2158 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
    break;

  case 167:
#line 2160 "sql_yacc.yy"
    { }
    break;

  case 168:
#line 2165 "sql_yacc.yy"
    { }
    break;

  case 169:
#line 2166 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= TRUE; }
    break;

  case 170:
#line 2167 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= FALSE; }
    break;

  case 171:
#line 2172 "sql_yacc.yy"
    {
	    Lex->sp_chistics.suid= SP_IS_SUID;
	  }
    break;

  case 172:
#line 2176 "sql_yacc.yy"
    {
	    Lex->sp_chistics.suid= SP_IS_NOT_SUID;
	  }
    break;

  case 173:
#line 2183 "sql_yacc.yy"
    {
	    LEX *lex = Lex;

	    lex->sql_command= SQLCOM_CALL;
	    lex->spname= (yyvsp[0].spname);
	    lex->value_list.empty();
	    sp_add_used_routine(lex, YYTHD, (yyvsp[0].spname), TYPE_ENUM_PROCEDURE);
	  }
    break;

  case 174:
#line 2191 "sql_yacc.yy"
    {}
    break;

  case 179:
#line 2207 "sql_yacc.yy"
    {
	    Lex->value_list.push_back((yyvsp[0].item));
	  }
    break;

  case 180:
#line 2211 "sql_yacc.yy"
    {
	    Lex->value_list.push_back((yyvsp[0].item));
	  }
    break;

  case 185:
#line 2229 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    lex->length= 0;
	    lex->dec= 0;
	    lex->type= 0;
	  
	    lex->default_value= 0;
	    lex->on_update_value= 0;
	  
	    lex->comment= null_lex_str;
	    lex->charset= NULL;
	  
	    lex->interval_list.empty();
	    lex->uint_geom_type= 0;
	  }
    break;

  case 186:
#line 2249 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_pcontext *spc= lex->spcont;

	    if (spc->find_variable(&(yyvsp[-2].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[-2].lex_str).str);
	      MYSQL_YYABORT;
	    }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[-2].lex_str),
                                                     (enum enum_field_types)(yyvsp[0].num),
                                                     sp_param_in);

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[0].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
	  }
    break;

  case 191:
#line 2286 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_pcontext *spc= lex->spcont;

	    if (spc->find_variable(&(yyvsp[-1].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[-1].lex_str).str);
	      MYSQL_YYABORT;
	    }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[-1].lex_str),
                                                     (enum enum_field_types)(yyvsp[0].num),
                                                     (sp_param_mode_t)(yyvsp[-3].num));

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[0].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
	  }
    break;

  case 192:
#line 2311 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 193:
#line 2312 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 194:
#line 2313 "sql_yacc.yy"
    { (yyval.num)= sp_param_out; }
    break;

  case 195:
#line 2314 "sql_yacc.yy"
    { (yyval.num)= sp_param_inout; }
    break;

  case 196:
#line 2318 "sql_yacc.yy"
    {}
    break;

  case 198:
#line 2323 "sql_yacc.yy"
    {}
    break;

  case 200:
#line 2329 "sql_yacc.yy"
    {
	    (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
	  }
    break;

  case 201:
#line 2333 "sql_yacc.yy"
    {
	    /* We check for declarations out of (standard) order this way
	       because letting the grammar rules reflect it caused tricky
	       shift/reduce conflicts with the wrong result. (And we get
	       better error handling this way.) */
	    if (((yyvsp[-1].spblock).vars || (yyvsp[-1].spblock).conds) && ((yyvsp[-2].spblock).curs || (yyvsp[-2].spblock).hndlrs))
	    { /* Variable or condition following cursor or handler */
	      my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
                         ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0));
	      MYSQL_YYABORT;
	    }
	    if ((yyvsp[-1].spblock).curs && (yyvsp[-2].spblock).hndlrs)
	    { /* Cursor following handler */
	      my_message(ER_SP_CURSOR_AFTER_HANDLER,
                         ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0));
	      MYSQL_YYABORT;
	    }
	    (yyval.spblock).vars= (yyvsp[-2].spblock).vars + (yyvsp[-1].spblock).vars;
	    (yyval.spblock).conds= (yyvsp[-2].spblock).conds + (yyvsp[-1].spblock).conds;
	    (yyval.spblock).hndlrs= (yyvsp[-2].spblock).hndlrs + (yyvsp[-1].spblock).hndlrs;
	    (yyval.spblock).curs= (yyvsp[-2].spblock).curs + (yyvsp[-1].spblock).curs;
	  }
    break;

  case 202:
#line 2359 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->reset_lex(YYTHD);
            lex->spcont->declare_var_boundary((yyvsp[0].num));
          }
    break;

  case 203:
#line 2367 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *pctx= lex->spcont;
            uint num_vars= pctx->context_var_count();
            enum enum_field_types var_type= (enum enum_field_types) (yyvsp[-1].num);
            Item *dflt_value_item= (yyvsp[0].item);
            
            if (!dflt_value_item)
            {
              dflt_value_item= new Item_null();
              /* QQ Set to the var_type with null_value? */
            }
            
            for (uint i = num_vars-(yyvsp[-3].num) ; i < num_vars ; i++)
            {
              uint var_idx= pctx->var_context2runtime(i);
              sp_variable_t *spvar= pctx->find_variable(var_idx);
            
              if (!spvar)
                MYSQL_YYABORT;
            
              spvar->type= var_type;
              spvar->dflt= dflt_value_item;
            
              if (lex->sphead->fill_field_definition(YYTHD, lex, var_type,
                                                     &spvar->field_def))
              {
                MYSQL_YYABORT;
              }
            
              spvar->field_def.field_name= spvar->name.str;
              spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
            
              /* The last instruction is responsible for freeing LEX. */

              lex->sphead->add_instr(
                new sp_instr_set(lex->sphead->instructions(), pctx, var_idx,
                                 dflt_value_item, var_type, lex,
                                 (i == num_vars - 1)));
            }

            pctx->declare_var_boundary(0);
            lex->sphead->restore_lex(YYTHD);

            (yyval.spblock).vars= (yyvsp[-3].num);
            (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 204:
#line 2415 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_pcontext *spc= lex->spcont;

	    if (spc->find_cond(&(yyvsp[-3].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[-3].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    YYTHD->lex->spcont->push_cond(&(yyvsp[-3].lex_str), (yyvsp[0].spcondtype));
	    (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
	    (yyval.spblock).conds= 1;
	  }
    break;

  case 205:
#line 2429 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;

            lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE);

	    sp_pcontext *ctx= lex->spcont;
	    sp_instr_hpush_jump *i=
              new sp_instr_hpush_jump(sp->instructions(), ctx, (yyvsp[-2].num),
	                              ctx->current_var_count());

	    sp->add_instr(i);
	    sp->push_backpatch(i, ctx->push_label((char *)"", 0));
	  }
    break;

  case 206:
#line 2444 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *ctx= lex->spcont;
	    sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
	    sp_instr_hreturn *i;

	    if ((yyvsp[-5].num) == SP_HANDLER_CONTINUE)
	    {
	      i= new sp_instr_hreturn(sp->instructions(), ctx,
	                              ctx->current_var_count());
	      sp->add_instr(i);
	    }
	    else
	    {  /* EXIT or UNDO handler, just jump to the end of the block */
	      i= new sp_instr_hreturn(sp->instructions(), ctx, 0);

	      sp->add_instr(i);
	      sp->push_backpatch(i, lex->spcont->last_label()); /* Block end */
	    }
	    lex->sphead->backpatch(hlab);

            lex->spcont= ctx->pop_context();

	    (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0;
	    (yyval.spblock).hndlrs= (yyvsp[-1].num);
	    lex->spcont->add_handlers((yyvsp[-1].num));
	  }
    break;

  case 207:
#line 2473 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *ctx= lex->spcont;
	    uint offp;
	    sp_instr_cpush *i;

	    if (ctx->find_cursor(&(yyvsp[-3].lex_str), &offp, TRUE))
	    {
	      my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[-3].lex_str).str);
	      delete (yyvsp[0].lex);
	      MYSQL_YYABORT;
	    }
            i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[0].lex),
                                  ctx->current_cursor_count());
	    sp->add_instr(i);
	    ctx->push_cursor(&(yyvsp[-3].lex_str));
	    (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0;
	    (yyval.spblock).curs= 1;
	  }
    break;

  case 208:
#line 2496 "sql_yacc.yy"
    {
	    Lex->sphead->reset_lex(YYTHD);

	    /*
	      We use statement here just be able to get a better
	      error message. Using 'select' works too, but will then
	      result in a generic "syntax error" if a non-select
	      statement is given.
	    */
	  }
    break;

  case 209:
#line 2507 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    if (lex->sql_command != SQLCOM_SELECT &&
	       !(sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND))
	    {
	      my_message(ER_SP_BAD_CURSOR_QUERY, ER(ER_SP_BAD_CURSOR_QUERY),
                         MYF(0));
	      MYSQL_YYABORT;
	    }
	    if (lex->result)
	    {
	      my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
                         MYF(0));
	      MYSQL_YYABORT;
	    }
	    lex->sp_lex_in_use= TRUE;
	    (yyval.lex)= lex;
	    lex->sphead->restore_lex(YYTHD);
	  }
    break;

  case 210:
#line 2530 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_EXIT; }
    break;

  case 211:
#line 2531 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_CONTINUE; }
    break;

  case 212:
#line 2537 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 213:
#line 2539 "sql_yacc.yy"
    { (yyval.num)+= 1; }
    break;

  case 214:
#line 2544 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *ctx= lex->spcont->parent_context();

	    if (ctx->find_handler((yyvsp[0].spcondtype)))
	    {
	      my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      sp_instr_hpush_jump *i=
                (sp_instr_hpush_jump *)sp->last_instruction();

	      i->add_condition((yyvsp[0].spcondtype));
	      ctx->push_handler((yyvsp[0].spcondtype));
	    }
	  }
    break;

  case 215:
#line 2567 "sql_yacc.yy"
    {			/* mysql errno */
	    (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
	    (yyval.spcondtype)->type= sp_cond_type_t::number;
	    (yyval.spcondtype)->mysqlerr= (yyvsp[0].ulong_num);
	  }
    break;

  case 216:
#line 2573 "sql_yacc.yy"
    {		/* SQLSTATE */
	    if (!sp_cond_check(&(yyvsp[0].lex_str)))
	    {
	      my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
	    (yyval.spcondtype)->type= sp_cond_type_t::state;
	    memcpy((yyval.spcondtype)->sqlstate, (yyvsp[0].lex_str).str, 5);
	    (yyval.spcondtype)->sqlstate[5]= '\0';
	  }
    break;

  case 217:
#line 2587 "sql_yacc.yy"
    {}
    break;

  case 218:
#line 2588 "sql_yacc.yy"
    {}
    break;

  case 219:
#line 2593 "sql_yacc.yy"
    {
	    (yyval.spcondtype)= (yyvsp[0].spcondtype);
	  }
    break;

  case 220:
#line 2597 "sql_yacc.yy"
    {
	    (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[0].lex_str));
	    if ((yyval.spcondtype) == NULL)
	    {
	      my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	  }
    break;

  case 221:
#line 2606 "sql_yacc.yy"
    {
	    (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
	    (yyval.spcondtype)->type= sp_cond_type_t::warning;
	  }
    break;

  case 222:
#line 2611 "sql_yacc.yy"
    {
	    (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
	    (yyval.spcondtype)->type= sp_cond_type_t::notfound;
	  }
    break;

  case 223:
#line 2616 "sql_yacc.yy"
    {
	    (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
	    (yyval.spcondtype)->type= sp_cond_type_t::exception;
	  }
    break;

  case 224:
#line 2624 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

	    LEX *lex= Lex;
	    sp_pcontext *spc= lex->spcont;

	    if (spc->find_variable(&(yyvsp[0].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    spc->push_variable(&(yyvsp[0].lex_str), (enum_field_types)0, sp_param_in);
	    (yyval.num)= 1;
	  }
    break;

  case 225:
#line 2639 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

	    LEX *lex= Lex;
	    sp_pcontext *spc= lex->spcont;

	    if (spc->find_variable(&(yyvsp[0].lex_str), TRUE))
	    {
	      my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    spc->push_variable(&(yyvsp[0].lex_str), (enum_field_types)0, sp_param_in);
	    (yyval.num)= (yyvsp[-2].num) + 1;
	  }
    break;

  case 226:
#line 2656 "sql_yacc.yy"
    { (yyval.item) = NULL; }
    break;

  case 227:
#line 2657 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item); }
    break;

  case 239:
#line 2675 "sql_yacc.yy"
    { Lex->sphead->new_cont_backpatch(NULL); }
    break;

  case 240:
#line 2677 "sql_yacc.yy"
    { Lex->sphead->do_cont_backpatch(); }
    break;

  case 241:
#line 2681 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

	    lex->sphead->reset_lex(thd);
            lex->sphead->m_tmp_query= lip->get_tok_start();
	  }
    break;

  case 242:
#line 2690 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
	    sp_head *sp= lex->sphead;

            sp->m_flags|= sp_get_flags_for_command(lex);
	    if (lex->sql_command == SQLCOM_CHANGE_DB)
	    { /* "USE db" doesn't work in a procedure */
	      my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
	      MYSQL_YYABORT;
	    }
	    /*
              Don't add an instruction for SET statements, since all
              instructions for them were already added during processing
              of "set" rule.
	    */
            DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION ||
                        lex->var_list.is_empty());
            if (lex->sql_command != SQLCOM_SET_OPTION)
	    {
              sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(),
                                                 lex->spcont, lex);

              /*
                Extract the query statement from the tokenizer.  The
                end is either lex->ptr, if there was no lookahead,
                lex->tok_end otherwise.
              */
              if (yychar == YYEMPTY)
                i->m_query.length= lip->get_ptr() - sp->m_tmp_query;
              else
                i->m_query.length= lip->get_tok_end() - sp->m_tmp_query;
              i->m_query.str= strmake_root(thd->mem_root,
                                           sp->m_tmp_query,
                                           i->m_query.length);
              sp->add_instr(i);
            }
	    sp->restore_lex(thd);
          }
    break;

  case 243:
#line 2734 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 244:
#line 2736 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;

	    if (sp->m_type != TYPE_ENUM_FUNCTION)
	    {
	      my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      sp_instr_freturn *i;

	      i= new sp_instr_freturn(sp->instructions(), lex->spcont, (yyvsp[0].item),
                                      sp->m_return_field_def.sql_type, lex);
	      sp->add_instr(i);
	      sp->m_flags|= sp_head::HAS_RETURN;
	    }
	    sp->restore_lex(YYTHD);
	  }
    break;

  case 245:
#line 2759 "sql_yacc.yy"
    { /* Unlabeled controls get a secret label. */
	    LEX *lex= Lex;

	    lex->spcont->push_label((char *)"", lex->sphead->instructions());
	  }
    break;

  case 246:
#line 2765 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    lex->sphead->backpatch(lex->spcont->pop_label());
	  }
    break;

  case 247:
#line 2774 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp = lex->sphead;
	    sp_pcontext *ctx= lex->spcont;
	    sp_label_t *lab= ctx->find_label((yyvsp[0].lex_str).str);

	    if (! lab)
	    {
	      my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      sp_instr_jump *i;
	      uint ip= sp->instructions();
	      uint n;

	      n= ctx->diff_handlers(lab->ctx, TRUE);  /* Exclusive the dest. */
	      if (n)
	        sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
	      n= ctx->diff_cursors(lab->ctx, TRUE);  /* Exclusive the dest. */
	      if (n)
	        sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
	      i= new sp_instr_jump(ip, ctx);
	      sp->push_backpatch(i, lab);  /* Jumping forward */
              sp->add_instr(i);
	    }
	  }
    break;

  case 248:
#line 2806 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *ctx= lex->spcont;
	    sp_label_t *lab= ctx->find_label((yyvsp[0].lex_str).str);

	    if (! lab || lab->type != SP_LAB_ITER)
	    {
	      my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      sp_instr_jump *i;
	      uint ip= sp->instructions();
	      uint n;

	      n= ctx->diff_handlers(lab->ctx, FALSE);  /* Inclusive the dest. */
	      if (n)
	        sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
	      n= ctx->diff_cursors(lab->ctx, FALSE);  /* Inclusive the dest. */
	      if (n)
	        sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
	      i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
              sp->add_instr(i);
	    }
	  }
    break;

  case 249:
#line 2837 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    uint offset;
	    sp_instr_copen *i;

	    if (! lex->spcont->find_cursor(&(yyvsp[0].lex_str), &offset))
	    {
	      my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
	    sp->add_instr(i);
	  }
    break;

  case 250:
#line 2855 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    uint offset;
	    sp_instr_cfetch *i;

	    if (! lex->spcont->find_cursor(&(yyvsp[-1].lex_str), &offset))
	    {
	      my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[-1].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
	    sp->add_instr(i);
	  }
    break;

  case 251:
#line 2870 "sql_yacc.yy"
    { }
    break;

  case 252:
#line 2875 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    uint offset;
	    sp_instr_cclose *i;

	    if (! lex->spcont->find_cursor(&(yyvsp[0].lex_str), &offset))
	    {
	      my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    i= new sp_instr_cclose(sp->instructions(), lex->spcont,  offset);
	    sp->add_instr(i);
	  }
    break;

  case 256:
#line 2899 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *spc= lex->spcont;
	    sp_variable_t *spv;

	    if (!spc || !(spv = spc->find_variable(&(yyvsp[0].lex_str))))
	    {
	      my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      /* An SP local variable */
	      sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

	      i->add_to_varlist(spv);
	    }
	  }
    break;

  case 257:
#line 2920 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *spc= lex->spcont;
	    sp_variable_t *spv;

	    if (!spc || !(spv = spc->find_variable(&(yyvsp[0].lex_str))))
	    {
	      my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      /* An SP local variable */
	      sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

	      i->add_to_varlist(spv);
	    }
	  }
    break;

  case 258:
#line 2942 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 259:
#line 2944 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *ctx= lex->spcont;
	    uint ip= sp->instructions();
	    sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
                                                               (yyvsp[-1].item), lex);

	    sp->push_backpatch(i, ctx->push_label((char *)"", 0));
            sp->add_cont_backpatch(i);
            sp->add_instr(i);
            sp->restore_lex(YYTHD);
	  }
    break;

  case 260:
#line 2958 "sql_yacc.yy"
    {
	    sp_head *sp= Lex->sphead;
	    sp_pcontext *ctx= Lex->spcont;
	    uint ip= sp->instructions();
	    sp_instr_jump *i = new sp_instr_jump(ip, ctx);

	    sp->add_instr(i);
	    sp->backpatch(ctx->pop_label());
	    sp->push_backpatch(i, ctx->push_label((char *)"", 0));
	  }
    break;

  case 261:
#line 2969 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    lex->sphead->backpatch(lex->spcont->pop_label());
	  }
    break;

  case 267:
#line 2989 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
            lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 268:
#line 2995 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_expr(lex, (yyvsp[0].item)))
              MYSQL_YYABORT;

            lex->sphead->restore_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 269:
#line 3006 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, true);
          }
    break;

  case 270:
#line 3014 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
          }
    break;

  case 271:
#line 3022 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, false);
          }
    break;

  case 276:
#line 3040 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 277:
#line 3044 "sql_yacc.yy"
    {
            /* Simple case: <caseval> = <whenval> */

            LEX *lex= Lex;
            case_stmt_action_when(lex, (yyvsp[0].item), true);
            lex->sphead->restore_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 278:
#line 3053 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_then(lex);
          }
    break;

  case 279:
#line 3061 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 280:
#line 3065 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_when(lex, (yyvsp[0].item), false);
            lex->sphead->restore_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 281:
#line 3072 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_then(lex);
          }
    break;

  case 282:
#line 3080 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_error *i= new sp_instr_error(ip, lex->spcont,
                                                  ER_SP_CASE_NOT_FOUND);
            sp->add_instr(i);
          }
    break;

  case 284:
#line 3093 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_pcontext *ctx= lex->spcont;
	    sp_label_t *lab= ctx->find_label((yyvsp[-1].lex_str).str);

	    if (lab)
	    {
	      my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[-1].lex_str).str);
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      lab= lex->spcont->push_label((yyvsp[-1].lex_str).str,
	                                   lex->sphead->instructions());
	      lab->type= SP_LAB_ITER;
	    }
	  }
    break;

  case 285:
#line 3111 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    if ((yyvsp[0].lex_str).str)
	    {
	      sp_label_t *lab= lex->spcont->find_label((yyvsp[0].lex_str).str);

	      if (!lab ||
	          my_strcasecmp(system_charset_info, (yyvsp[0].lex_str).str, lab->name) != 0)
	      {
	        my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[0].lex_str).str);
	        MYSQL_YYABORT;
	      }
	    }
	    lex->sphead->backpatch(lex->spcont->pop_label());
	  }
    break;

  case 286:
#line 3130 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 287:
#line 3131 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[0].lex_str); }
    break;

  case 288:
#line 3136 "sql_yacc.yy"
    { /* QQ This is just a dummy for grouping declarations and statements
	       together. No [[NOT] ATOMIC] yet, and we need to figure out how
	       make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
	    LEX *lex= Lex;
	    sp_label_t *lab= lex->spcont->last_label();

	    lab->type= SP_LAB_BEGIN;
	    lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
	  }
    break;

  case 289:
#line 3148 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    sp_pcontext *ctx= lex->spcont;

  	    sp->backpatch(ctx->last_label());	/* We always have a label */
	    if ((yyvsp[-2].spblock).hndlrs)
	      sp->add_instr(new sp_instr_hpop(sp->instructions(), ctx,
					      (yyvsp[-2].spblock).hndlrs));
	    if ((yyvsp[-2].spblock).curs)
	      sp->add_instr(new sp_instr_cpop(sp->instructions(), ctx,
					      (yyvsp[-2].spblock).curs));
	    lex->spcont= ctx->pop_context();
	  }
    break;

  case 290:
#line 3164 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    uint ip= lex->sphead->instructions();
	    sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
	    sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);

	    lex->sphead->add_instr(i);
	  }
    break;

  case 291:
#line 3173 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 292:
#line 3175 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    sp_head *sp= lex->sphead;
	    uint ip= sp->instructions();
	    sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
							       (yyvsp[-1].item), lex);

	    /* Jumping forward */
	    sp->push_backpatch(i, lex->spcont->last_label());
            sp->new_cont_backpatch(i);
            sp->add_instr(i);
            sp->restore_lex(YYTHD);
	  }
    break;

  case 293:
#line 3189 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    uint ip= lex->sphead->instructions();
	    sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
	    sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);

	    lex->sphead->add_instr(i);
            lex->sphead->do_cont_backpatch();
	  }
    break;

  case 294:
#line 3199 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 295:
#line 3201 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    uint ip= lex->sphead->instructions();
	    sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
	    sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[-2].item), lab->ip,
                                                               lex);
            lex->sphead->add_instr(i);
            lex->sphead->restore_lex(YYTHD);
            /* We can shortcut the cont_backpatch here */
            i->m_cont_dest= ip+1;
	  }
    break;

  case 296:
#line 3217 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
    break;

  case 297:
#line 3219 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
    break;

  case 298:
#line 3224 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_INSERT; }
    break;

  case 299:
#line 3226 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
    break;

  case 300:
#line 3228 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_DELETE; }
    break;

  case 304:
#line 3262 "sql_yacc.yy"
    {}
    break;

  case 305:
#line 3264 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].lex_str).str;
          }
    break;

  case 306:
#line 3273 "sql_yacc.yy"
    { 
	    Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; 
          }
    break;

  case 307:
#line 3280 "sql_yacc.yy"
    { 
	    Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; 
          }
    break;

  case 312:
#line 3302 "sql_yacc.yy"
    {}
    break;

  case 320:
#line 3319 "sql_yacc.yy"
    {}
    break;

  case 333:
#line 3341 "sql_yacc.yy"
    {}
    break;

  case 343:
#line 3360 "sql_yacc.yy"
    {}
    break;

  case 355:
#line 3381 "sql_yacc.yy"
    {}
    break;

  case 363:
#line 3400 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->data_file_name= (yyvsp[0].lex_str).str;
          }
    break;

  case 364:
#line 3407 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_file_name= (yyvsp[0].lex_str).str;
          }
    break;

  case 365:
#line 3414 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_file_name= (yyvsp[0].lex_str).str;
          }
    break;

  case 366:
#line 3421 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            lex->alter_tablespace_info->tablespace_name= (yyvsp[0].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 367:
#line 3430 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 368:
#line 3439 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
          }
    break;

  case 369:
#line 3444 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
          }
    break;

  case 370:
#line 3449 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
          }
    break;

  case 371:
#line 3456 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->initial_size= (yyvsp[0].ulonglong_number);
          }
    break;

  case 372:
#line 3463 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->autoextend_size= (yyvsp[0].ulonglong_number);
          }
    break;

  case 373:
#line 3470 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->max_size= (yyvsp[0].ulonglong_number);
          }
    break;

  case 374:
#line 3477 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->extent_size= (yyvsp[0].ulonglong_number);
          }
    break;

  case 375:
#line 3484 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_buffer_size= (yyvsp[0].ulonglong_number);
          }
    break;

  case 376:
#line 3491 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_buffer_size= (yyvsp[0].ulonglong_number);
          }
    break;

  case 377:
#line 3498 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->nodegroup_id= (yyvsp[0].ulong_num);
          }
    break;

  case 378:
#line 3510 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->ts_comment != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->ts_comment= (yyvsp[0].lex_str).str;
          }
    break;

  case 379:
#line 3522 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->storage_engine != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),
                       "STORAGE ENGINE");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->storage_engine= (yyvsp[0].db_type);
          }
    break;

  case 382:
#line 3540 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->wait_until_completed= TRUE;
          }
    break;

  case 383:
#line 3545 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!(lex->alter_tablespace_info->wait_until_completed))
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->wait_until_completed= FALSE;
          }
    break;

  case 384:
#line 3556 "sql_yacc.yy"
    { (yyval.ulonglong_number)= (yyvsp[0].ulong_num);}
    break;

  case 385:
#line 3558 "sql_yacc.yy"
    {
            ulonglong number;
            uint text_shift_number= 0;
            longlong prefix_number;
            char *start_ptr= (yyvsp[0].lex_str).str;
            uint str_len= (yyvsp[0].lex_str).length;
            char *end_ptr= start_ptr + str_len;
            int error;
            prefix_number= my_strtoll10(start_ptr, &end_ptr, &error);
            if ((start_ptr + str_len - 1) == end_ptr)
            {
              switch (end_ptr[0])
              {
                case 'g':
                case 'G':
                  text_shift_number+=10;
                case 'm':
                case 'M':
                  text_shift_number+=10;
                case 'k':
                case 'K':
                  text_shift_number+=10;
                  break;
                default:
                {
                  my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
                  MYSQL_YYABORT;
                }
              }
              if (prefix_number >> 31)
              {
                my_error(ER_SIZE_OVERFLOW_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              number= prefix_number << text_shift_number;
            }
            else
            {
              my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.ulonglong_number)= number;
          }
    break;

  case 386:
#line 3608 "sql_yacc.yy"
    {}
    break;

  case 387:
#line 3610 "sql_yacc.yy"
    {}
    break;

  case 388:
#line 3611 "sql_yacc.yy"
    {}
    break;

  case 389:
#line 3613 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, 0, TL_READ))
              MYSQL_YYABORT;
          }
    break;

  case 390:
#line 3622 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[-1].table), NULL, 0, TL_READ))
              MYSQL_YYABORT;
          }
    break;

  case 391:
#line 3634 "sql_yacc.yy"
    {}
    break;

  case 392:
#line 3635 "sql_yacc.yy"
    {}
    break;

  case 393:
#line 3636 "sql_yacc.yy"
    {}
    break;

  case 394:
#line 3638 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 395:
#line 3638 "sql_yacc.yy"
    {}
    break;

  case 396:
#line 3642 "sql_yacc.yy"
    {}
    break;

  case 397:
#line 3644 "sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 398:
#line 3644 "sql_yacc.yy"
    {}
    break;

  case 399:
#line 3646 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 400:
#line 3646 "sql_yacc.yy"
    {}
    break;

  case 401:
#line 3674 "sql_yacc.yy"
    {}
    break;

  case 403:
#line 3680 "sql_yacc.yy"
    {
#ifdef WITH_PARTITION_STORAGE_ENGINE
          LEX *lex= Lex;
          LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
          if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
          {
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     "partitioning", "--with-partition");
            MYSQL_YYABORT;
          }
          lex->part_info= new partition_info();
          if (!lex->part_info)
          {
            mem_alloc_error(sizeof(partition_info));
            MYSQL_YYABORT;
          }
          if (lex->sql_command == SQLCOM_ALTER_TABLE)
          {
            lex->alter_info.flags|= ALTER_PARTITION;
          }
#else
          my_error(ER_FEATURE_DISABLED, MYF(0),
       	           "partitioning", "--with-partition");
          MYSQL_YYABORT;
#endif

        }
    break;

  case 405:
#line 3712 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (!lex->part_info)
          {
            my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
            MYSQL_YYABORT;
          }
          /*
            We enter here when opening the frm file to translate
            partition info string into part_info data structure.
          */
        }
    break;

  case 406:
#line 3724 "sql_yacc.yy"
    {}
    break;

  case 407:
#line 3728 "sql_yacc.yy"
    {}
    break;

  case 408:
#line 3728 "sql_yacc.yy"
    {}
    break;

  case 410:
#line 3733 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info->list_of_part_fields= TRUE;
          lex->part_info->part_type= HASH_PARTITION;
        }
    break;

  case 411:
#line 3739 "sql_yacc.yy"
    { Lex->part_info->part_type= HASH_PARTITION; }
    break;

  case 412:
#line 3740 "sql_yacc.yy"
    {}
    break;

  case 413:
#line 3742 "sql_yacc.yy"
    { Lex->part_info->part_type= RANGE_PARTITION; }
    break;

  case 414:
#line 3743 "sql_yacc.yy"
    {}
    break;

  case 415:
#line 3745 "sql_yacc.yy"
    { Lex->part_info->part_type= LIST_PARTITION; }
    break;

  case 416:
#line 3746 "sql_yacc.yy"
    {}
    break;

  case 417:
#line 3750 "sql_yacc.yy"
    {}
    break;

  case 418:
#line 3752 "sql_yacc.yy"
    { Lex->part_info->linear_hash_ind= TRUE;}
    break;

  case 419:
#line 3756 "sql_yacc.yy"
    {}
    break;

  case 420:
#line 3757 "sql_yacc.yy"
    {}
    break;

  case 421:
#line 3761 "sql_yacc.yy"
    {}
    break;

  case 422:
#line 3762 "sql_yacc.yy"
    {}
    break;

  case 423:
#line 3767 "sql_yacc.yy"
    {
          if (Lex->part_info->part_field_list.push_back((yyvsp[0].lex_str).str))
          {
            mem_alloc_error(1);
            MYSQL_YYABORT;
          }
        }
    break;

  case 424:
#line 3778 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          uint expr_len= (uint)((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)) - 1;
          lex->part_info->list_of_part_fields= FALSE;
          lex->part_info->part_expr= (yyvsp[-2].item);
          lex->part_info->part_func_string= (char* ) sql_memdup((yyvsp[-3].simple_string)+1, expr_len);
          lex->part_info->part_func_len= expr_len;
        }
    break;

  case 425:
#line 3790 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          uint expr_len= (uint)((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)) - 1;
          lex->part_info->list_of_subpart_fields= FALSE;
          lex->part_info->subpart_expr= (yyvsp[-2].item);
          lex->part_info->subpart_func_string= (char* ) sql_memdup((yyvsp[-3].simple_string)+1, expr_len);        
          lex->part_info->subpart_func_len= expr_len;
        }
    break;

  case 426:
#line 3802 "sql_yacc.yy"
    {}
    break;

  case 427:
#line 3804 "sql_yacc.yy"
    { 
          uint no_parts= (yyvsp[0].ulong_num);
          LEX *lex= Lex;
          if (no_parts == 0)
          {
            my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
            MYSQL_YYABORT;
          }

          lex->part_info->no_parts= no_parts;
          lex->part_info->use_default_no_partitions= FALSE;
        }
    break;

  case 428:
#line 3819 "sql_yacc.yy"
    {}
    break;

  case 429:
#line 3821 "sql_yacc.yy"
    { Lex->part_info->subpart_type= HASH_PARTITION; }
    break;

  case 430:
#line 3822 "sql_yacc.yy"
    {}
    break;

  case 431:
#line 3825 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info->subpart_type= HASH_PARTITION;
          lex->part_info->list_of_subpart_fields= TRUE;
        }
    break;

  case 432:
#line 3830 "sql_yacc.yy"
    {}
    break;

  case 433:
#line 3834 "sql_yacc.yy"
    {}
    break;

  case 434:
#line 3835 "sql_yacc.yy"
    {}
    break;

  case 435:
#line 3840 "sql_yacc.yy"
    {
          if (Lex->part_info->subpart_field_list.push_back((yyvsp[0].lex_str).str))
          {
            mem_alloc_error(1);
            MYSQL_YYABORT;
          }
        }
    break;

  case 436:
#line 3851 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          bool not_corr_func;
          not_corr_func= !lex->safe_to_cache_query;
          lex->safe_to_cache_query= 1;
          if (not_corr_func)
          {
            my_parse_error(ER(ER_CONST_EXPR_IN_PARTITION_FUNC_ERROR));
            MYSQL_YYABORT;
          }
          (yyval.item)=(yyvsp[0].item);
        }
    break;

  case 437:
#line 3866 "sql_yacc.yy"
    {}
    break;

  case 438:
#line 3868 "sql_yacc.yy"
    {
          uint no_parts= (yyvsp[0].ulong_num);
          LEX *lex= Lex;
          if (no_parts == 0)
          {
            my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
            MYSQL_YYABORT;
          }
          lex->part_info->no_subparts= no_parts;
          lex->part_info->use_default_no_subpartitions= FALSE;
        }
    break;

  case 439:
#line 3883 "sql_yacc.yy"
    {}
    break;

  case 440:
#line 3885 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          partition_info *part_info= lex->part_info;
          uint count_curr_parts= part_info->partitions.elements;
          if (part_info->no_parts != 0)
          {
            if (part_info->no_parts !=
                count_curr_parts)
            {
              my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
              MYSQL_YYABORT;
            }
          }
          else if (count_curr_parts > 0)
          {
            part_info->no_parts= count_curr_parts;
          }
          part_info->count_curr_subparts= 0;
        }
    break;

  case 441:
#line 3907 "sql_yacc.yy"
    {}
    break;

  case 442:
#line 3908 "sql_yacc.yy"
    {}
    break;

  case 443:
#line 3913 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          partition_info *part_info= lex->part_info;
          partition_element *p_elem= new partition_element();

          if (!p_elem || part_info->partitions.push_back(p_elem))
          {
            mem_alloc_error(sizeof(partition_element));
            MYSQL_YYABORT;
          }
          p_elem->part_state= PART_NORMAL;
          part_info->curr_part_elem= p_elem;
          part_info->current_partition= p_elem;
          part_info->use_default_partitions= FALSE;
          part_info->use_default_no_partitions= FALSE;
        }
    break;

  case 444:
#line 3929 "sql_yacc.yy"
    {}
    break;

  case 445:
#line 3930 "sql_yacc.yy"
    {}
    break;

  case 446:
#line 3931 "sql_yacc.yy"
    {}
    break;

  case 447:
#line 3932 "sql_yacc.yy"
    {}
    break;

  case 448:
#line 3937 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          partition_info *part_info= lex->part_info;
          partition_element *p_elem= part_info->curr_part_elem;
          p_elem->partition_name= (yyvsp[0].lex_str).str;
        }
    break;

  case 449:
#line 3947 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (! lex->is_partition_management())
          {
            if (lex->part_info->part_type == RANGE_PARTITION)
            {
              my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
              "RANGE", "LESS THAN");
              MYSQL_YYABORT;
            }
            if (lex->part_info->part_type == LIST_PARTITION)
            {
              my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
              "LIST", "IN");
              MYSQL_YYABORT;
            }
          }
          else
            lex->part_info->part_type= HASH_PARTITION;
        }
    break;

  case 450:
#line 3968 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (! lex->is_partition_management())
          {
            if (Lex->part_info->part_type != RANGE_PARTITION)
            {
              my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
              "RANGE", "LESS THAN");
              MYSQL_YYABORT;
            }
          }
          else
            lex->part_info->part_type= RANGE_PARTITION;
        }
    break;

  case 451:
#line 3983 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (! lex->is_partition_management())
          {
            if (Lex->part_info->part_type != LIST_PARTITION)
            {
              my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
              "LIST", "IN");
              MYSQL_YYABORT;
            }
          }
          else
            lex->part_info->part_type= LIST_PARTITION;
        }
    break;

  case 452:
#line 4001 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->part_info->defined_max_value)
          {
            my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
            MYSQL_YYABORT;
          }
          lex->part_info->defined_max_value= TRUE;
          lex->part_info->curr_part_elem->max_value= TRUE;
          lex->part_info->curr_part_elem->range_value= LONGLONG_MAX;
        }
    break;

  case 453:
#line 4013 "sql_yacc.yy"
    {
          if (Lex->part_info->defined_max_value)
          {
            my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
            MYSQL_YYABORT;
          }
          if (Lex->part_info->curr_part_elem->has_null_value)
          {
            my_parse_error(ER(ER_NULL_IN_VALUES_LESS_THAN));
            MYSQL_YYABORT;
          }
        }
    break;

  case 456:
#line 4034 "sql_yacc.yy"
    {
          partition_info *part_info= Lex->part_info;
          if (!((yyvsp[-1].p_elem_value)->unsigned_flag))
            part_info->curr_part_elem->signed_flag= TRUE;
          part_info->curr_part_elem->range_value= (yyvsp[-1].p_elem_value)->value;
        }
    break;

  case 457:
#line 4043 "sql_yacc.yy"
    {}
    break;

  case 458:
#line 4044 "sql_yacc.yy"
    {}
    break;

  case 459:
#line 4049 "sql_yacc.yy"
    {
          part_elem_value *value_ptr= (yyvsp[0].p_elem_value);
          partition_info *part_info= Lex->part_info;
          if (!value_ptr->unsigned_flag)
            part_info->curr_part_elem->signed_flag= TRUE;
          if (!value_ptr->null_value &&
             part_info->curr_part_elem->
              list_val_list.push_back(value_ptr))
          {
            mem_alloc_error(sizeof(part_elem_value));
            MYSQL_YYABORT;
          }
        }
    break;

  case 460:
#line 4066 "sql_yacc.yy"
    {
          Item *part_expr= (yyvsp[0].item);
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Name_resolution_context *context= &lex->current_select->context;
          TABLE_LIST *save_list= context->table_list;
          const char *save_where= thd->where;

          context->table_list= 0;
          thd->where= "partition function";

          part_elem_value *value_ptr= 
            (part_elem_value*)sql_alloc(sizeof(part_elem_value));
          if (!value_ptr)
          {
            mem_alloc_error(sizeof(part_elem_value));
            MYSQL_YYABORT;
          }
          if (part_expr->walk(&Item::check_partition_func_processor, 0,
                              NULL))
          {
            my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0));
            MYSQL_YYABORT;
          }
          if (part_expr->fix_fields(YYTHD, (Item**)0) ||
              ((context->table_list= save_list), FALSE) ||
              (!part_expr->const_item()) ||
              (!lex->safe_to_cache_query))
          {
            my_error(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR, MYF(0));
            MYSQL_YYABORT;
          }
          thd->where= save_where;
          value_ptr->value= part_expr->val_int();
          value_ptr->unsigned_flag= TRUE;
          if (!part_expr->unsigned_flag &&
              value_ptr->value < 0)
            value_ptr->unsigned_flag= FALSE;
          if ((value_ptr->null_value= part_expr->null_value))
          {
            if (Lex->part_info->curr_part_elem->has_null_value)
            {
              my_error(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR, MYF(0));
              MYSQL_YYABORT;
            }
            Lex->part_info->curr_part_elem->has_null_value= TRUE;
          }
          else if (part_expr->result_type() != INT_RESULT)
          {
            my_parse_error(ER(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR));
            MYSQL_YYABORT;
          }
          (yyval.p_elem_value)= value_ptr; 
        }
    break;

  case 461:
#line 4124 "sql_yacc.yy"
    {
          if (Lex->part_info->no_subparts != 0 &&
              !Lex->part_info->use_default_subpartitions)
          {
            my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
            MYSQL_YYABORT;
          }
        }
    break;

  case 462:
#line 4133 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          partition_info *part_info= lex->part_info;
          if (part_info->no_subparts != 0)
          {
            if (part_info->no_subparts !=
                part_info->count_curr_subparts)
            {
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
          }
          else if (part_info->count_curr_subparts > 0)
          {
            if (part_info->partitions.elements > 1)
            {
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
            part_info->no_subparts= part_info->count_curr_subparts;
          }
          part_info->count_curr_subparts= 0;
        }
    break;

  case 463:
#line 4159 "sql_yacc.yy"
    {}
    break;

  case 464:
#line 4160 "sql_yacc.yy"
    {}
    break;

  case 465:
#line 4165 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          partition_info *part_info= lex->part_info;
          partition_element *curr_part= part_info->current_partition;
          partition_element *sub_p_elem= new partition_element(curr_part);
          if (!sub_p_elem ||
           curr_part->subpartitions.push_back(sub_p_elem))
          {
            mem_alloc_error(sizeof(partition_element));
            MYSQL_YYABORT;
          }
          part_info->curr_part_elem= sub_p_elem;
          part_info->use_default_subpartitions= FALSE;
          part_info->use_default_no_subpartitions= FALSE;
          part_info->count_curr_subparts++;
        }
    break;

  case 466:
#line 4181 "sql_yacc.yy"
    {}
    break;

  case 467:
#line 4186 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->partition_name= (yyvsp[0].lex_str).str; }
    break;

  case 468:
#line 4190 "sql_yacc.yy"
    {}
    break;

  case 469:
#line 4191 "sql_yacc.yy"
    {}
    break;

  case 470:
#line 4195 "sql_yacc.yy"
    {}
    break;

  case 471:
#line 4196 "sql_yacc.yy"
    {}
    break;

  case 472:
#line 4201 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[0].lex_str).str; }
    break;

  case 473:
#line 4203 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info->curr_part_elem->engine_type= (yyvsp[0].db_type);
          lex->part_info->default_engine_type= (yyvsp[0].db_type);
        }
    break;

  case 474:
#line 4209 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); }
    break;

  case 475:
#line 4211 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[0].ulonglong_number); }
    break;

  case 476:
#line 4213 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[0].ulonglong_number); }
    break;

  case 477:
#line 4215 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[0].lex_str).str; }
    break;

  case 478:
#line 4217 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[0].lex_str).str; }
    break;

  case 479:
#line 4219 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; }
    break;

  case 480:
#line 4228 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->lock_option= using_update_log ? TL_READ_NO_INSERT : TL_READ;
	    if (lex->sql_command == SQLCOM_INSERT)
	      lex->sql_command= SQLCOM_INSERT_SELECT;
	    else if (lex->sql_command == SQLCOM_REPLACE)
	      lex->sql_command= SQLCOM_REPLACE_SELECT;
	    /*
              The following work only with the local list, the global list
              is created correctly in this case
	    */
	    lex->current_select->table_list.save_and_clear(&lex->save_list);
	    mysql_init_select(lex);
	    lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 481:
#line 4244 "sql_yacc.yy"
    {
	    Select->parsing_place= NO_MATTER;
	  }
    break;

  case 482:
#line 4248 "sql_yacc.yy"
    {
	    /*
              The following work only with the local list, the global list
              is created correctly in this case
	    */
	    Lex->current_select->table_list.push_front(&Lex->save_list);
	  }
    break;

  case 483:
#line 4258 "sql_yacc.yy"
    {}
    break;

  case 484:
#line 4259 "sql_yacc.yy"
    {}
    break;

  case 485:
#line 4262 "sql_yacc.yy"
    {}
    break;

  case 486:
#line 4263 "sql_yacc.yy"
    {}
    break;

  case 487:
#line 4266 "sql_yacc.yy"
    {}
    break;

  case 488:
#line 4267 "sql_yacc.yy"
    {}
    break;

  case 489:
#line 4270 "sql_yacc.yy"
    {}
    break;

  case 490:
#line 4271 "sql_yacc.yy"
    {}
    break;

  case 491:
#line 4274 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 492:
#line 4275 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[0].num);}
    break;

  case 493:
#line 4278 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[0].num); }
    break;

  case 494:
#line 4279 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); }
    break;

  case 495:
#line 4282 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; }
    break;

  case 496:
#line 4285 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 497:
#line 4286 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; }
    break;

  case 505:
#line 4302 "sql_yacc.yy"
    { Lex->create_info.db_type= (yyvsp[0].db_type); Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; }
    break;

  case 506:
#line 4304 "sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[0].db_type);
            WARN_DEPRECATED(yythd, "5.2", "TYPE=storage_engine",
                            "'ENGINE=storage_engine'");
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 507:
#line 4310 "sql_yacc.yy"
    { Lex->create_info.max_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;}
    break;

  case 508:
#line 4311 "sql_yacc.yy"
    { Lex->create_info.min_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;}
    break;

  case 509:
#line 4312 "sql_yacc.yy"
    { Lex->create_info.avg_row_length=(yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;}
    break;

  case 510:
#line 4313 "sql_yacc.yy"
    { Lex->create_info.password=(yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD; }
    break;

  case 511:
#line 4314 "sql_yacc.yy"
    { Lex->create_info.comment=(yyvsp[0].lex_str); Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; }
    break;

  case 512:
#line 4315 "sql_yacc.yy"
    { Lex->create_info.auto_increment_value=(yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;}
    break;

  case 513:
#line 4317 "sql_yacc.yy"
    {
            switch((yyvsp[0].ulong_num)) {
            case 0:
                Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS;
                break;
            case 1:
                Lex->create_info.table_options|= HA_OPTION_PACK_KEYS;
                break;
            default:
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
            }
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 514:
#line 4332 "sql_yacc.yy"
    {
            Lex->create_info.table_options&=
              ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 515:
#line 4337 "sql_yacc.yy"
    { Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; }
    break;

  case 516:
#line 4338 "sql_yacc.yy"
    { Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;  Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE; }
    break;

  case 517:
#line 4339 "sql_yacc.yy"
    { Lex->create_info.row_type= (yyvsp[0].row_type);  Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT; }
    break;

  case 518:
#line 4341 "sql_yacc.yy"
    {
	    /* Move the union list to the merge_list */
	    LEX *lex=Lex;
	    TABLE_LIST *table_list= lex->select_lex.get_table_list();
	    lex->create_info.merge_list= lex->select_lex.table_list;
	    lex->create_info.merge_list.elements--;
	    lex->create_info.merge_list.first=
	      (uchar*) (table_list->next_local);
	    lex->select_lex.table_list.elements=1;
	    lex->select_lex.table_list.next=
	      (uchar**) &(table_list->next_local);
	    table_list->next_local= 0;
	    lex->create_info.used_fields|= HA_CREATE_USED_UNION;
	  }
    break;

  case 521:
#line 4357 "sql_yacc.yy"
    { Lex->create_info.merge_insert_method= (yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;}
    break;

  case 522:
#line 4358 "sql_yacc.yy"
    { Lex->create_info.data_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; }
    break;

  case 523:
#line 4359 "sql_yacc.yy"
    { Lex->create_info.index_file_name= (yyvsp[0].lex_str).str;  Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; }
    break;

  case 524:
#line 4360 "sql_yacc.yy"
    {Lex->create_info.tablespace= (yyvsp[0].lex_str).str;}
    break;

  case 525:
#line 4361 "sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_DISK;}
    break;

  case 526:
#line 4362 "sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_MEMORY;}
    break;

  case 527:
#line 4363 "sql_yacc.yy"
    { Lex->create_info.connect_string.str= (yyvsp[0].lex_str).str; Lex->create_info.connect_string.length= (yyvsp[0].lex_str).length;  Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; }
    break;

  case 528:
#line 4365 "sql_yacc.yy"
    {
	    Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
	    Lex->create_info.key_block_size= (yyvsp[0].ulong_num);
	  }
    break;

  case 529:
#line 4370 "sql_yacc.yy"
    {
	    Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL;
            Lex->create_info.transactional= ((yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES :
        				     HA_CHOICE_NO);
          }
    break;

  case 530:
#line 4379 "sql_yacc.yy"
    {
          HA_CREATE_INFO *cinfo= &Lex->create_info;
          if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
               cinfo->default_table_charset && (yyvsp[0].charset) &&
               !my_charset_same(cinfo->default_table_charset,(yyvsp[0].charset)))
          {
            my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
                     "CHARACTER SET ", cinfo->default_table_charset->csname,
                     "CHARACTER SET ", (yyvsp[0].charset)->csname);
            MYSQL_YYABORT;
          }
	  Lex->create_info.default_table_charset= (yyvsp[0].charset);
          Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
        }
    break;

  case 531:
#line 4396 "sql_yacc.yy"
    {
          HA_CREATE_INFO *cinfo= &Lex->create_info;
          if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
               cinfo->default_table_charset && (yyvsp[0].charset) &&
               !my_charset_same(cinfo->default_table_charset,(yyvsp[0].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[0].charset)->name, cinfo->default_table_charset->csname);
              MYSQL_YYABORT;
            }
            Lex->create_info.default_table_charset= (yyvsp[0].charset);
            Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
        }
    break;

  case 532:
#line 4412 "sql_yacc.yy"
    {
          plugin_ref plugin= ha_resolve_by_name(YYTHD, &(yyvsp[0].lex_str));

          if (plugin)
            (yyval.db_type)= plugin_data(plugin, handlerton*);
          else
          {
            if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.db_type)= 0;
            push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                ER_UNKNOWN_STORAGE_ENGINE,
                                ER(ER_UNKNOWN_STORAGE_ENGINE),
                                (yyvsp[0].lex_str).str);
          }
	}
    break;

  case 533:
#line 4435 "sql_yacc.yy"
    {
          plugin_ref plugin;
          if ((plugin= ha_resolve_by_name(YYTHD, &(yyvsp[0].lex_str))))
            (yyval.db_type)= plugin_data(plugin, handlerton*);
          else
	  {
	    my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str);
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 534:
#line 4448 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DEFAULT; }
    break;

  case 535:
#line 4449 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_FIXED; }
    break;

  case 536:
#line 4450 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DYNAMIC; }
    break;

  case 537:
#line 4451 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPRESSED; }
    break;

  case 538:
#line 4452 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_REDUNDANT; }
    break;

  case 539:
#line 4453 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPACT; }
    break;

  case 540:
#line 4454 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_PAGE; }
    break;

  case 541:
#line 4457 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_DISABLED; }
    break;

  case 542:
#line 4458 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; }
    break;

  case 543:
#line 4459 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; }
    break;

  case 544:
#line 4462 "sql_yacc.yy"
    {}
    break;

  case 546:
#line 4466 "sql_yacc.yy"
    { (yyval.udf_type) = UDFTYPE_FUNCTION; }
    break;

  case 547:
#line 4467 "sql_yacc.yy"
    { (yyval.udf_type) = UDFTYPE_AGGREGATE; }
    break;

  case 548:
#line 4470 "sql_yacc.yy"
    {(yyval.num) = (int) STRING_RESULT; }
    break;

  case 549:
#line 4471 "sql_yacc.yy"
    {(yyval.num) = (int) REAL_RESULT; }
    break;

  case 550:
#line 4472 "sql_yacc.yy"
    {(yyval.num) = (int) DECIMAL_RESULT; }
    break;

  case 551:
#line 4473 "sql_yacc.yy"
    {(yyval.num) = (int) INT_RESULT; }
    break;

  case 557:
#line 4488 "sql_yacc.yy"
    {
	    Lex->col_list.empty();		/* Alloced by sql_alloc */
	  }
    break;

  case 558:
#line 4495 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    if ((yyvsp[-6].key_type) != Key::FULLTEXT && lex->key_create_info.parser_name.str)
	    {
	      my_parse_error(ER(ER_SYNTAX_ERROR));
	      MYSQL_YYABORT;
	    }
            Key *key= new Key((yyvsp[-6].key_type), (yyvsp[-5].simple_string), &lex->key_create_info, 0,
                              lex->col_list);
	    lex->alter_info.key_list.push_back(key);
	    lex->col_list.empty();		/* Alloced by sql_alloc */
	  }
    break;

  case 559:
#line 4509 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    const char *key_name= (yyvsp[-5].simple_string) ? (yyvsp[-5].simple_string) : (yyvsp[-7].simple_string);
            Key *key= new Key((yyvsp[-6].key_type), key_name, &lex->key_create_info, 0,
                              lex->col_list);
	    lex->alter_info.key_list.push_back(key);
	    lex->col_list.empty();		/* Alloced by sql_alloc */
	  }
    break;

  case 560:
#line 4518 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
            const char *key_name= (yyvsp[-4].simple_string) ? (yyvsp[-4].simple_string) : (yyvsp[-7].simple_string);
            Key *key= new Foreign_key(key_name, lex->col_list,
                                      (yyvsp[0].table),
                                      lex->ref_list,
                                      lex->fk_delete_opt,
                                      lex->fk_update_opt,
                                      lex->fk_match_option);
            lex->alter_info.key_list.push_back(key);
            key= new Key(Key::MULTIPLE, key_name,
                         &default_key_create_info, 1,
                         lex->col_list);
            lex->alter_info.key_list.push_back(key);
	    lex->col_list.empty();		/* Alloced by sql_alloc */
            /* Only used for ALTER TABLE. Ignored otherwise. */
            lex->alter_info.flags|= ALTER_FOREIGN_KEY;
	  }
    break;

  case 561:
#line 4537 "sql_yacc.yy"
    {
	    Lex->col_list.empty();		/* Alloced by sql_alloc */
	  }
    break;

  case 562:
#line 4541 "sql_yacc.yy"
    {
	    Lex->col_list.empty();		/* Alloced by sql_alloc */
	  }
    break;

  case 566:
#line 4556 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; }
    break;

  case 567:
#line 4557 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[0].simple_string); }
    break;

  case 568:
#line 4561 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[0].simple_string); }
    break;

  case 569:
#line 4566 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
	   lex->length=lex->dec=0; lex->type=0;
	   lex->default_value= lex->on_update_value= 0;
           lex->comment=null_lex_str;
	   lex->charset=NULL;
	 }
    break;

  case 570:
#line 4574 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (add_field_to_list(lex->thd, &(yyvsp[-3].lex_str), (enum enum_field_types) (yyvsp[-1].num),
				lex->length,lex->dec,lex->type,
				lex->default_value, lex->on_update_value, 
                                &lex->comment,
				lex->change,&lex->interval_list,lex->charset,
				lex->uint_geom_type))
	    MYSQL_YYABORT;
	}
    break;

  case 571:
#line 4586 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[-2].num); }
    break;

  case 572:
#line 4587 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[-2].num); }
    break;

  case 573:
#line 4588 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_FLOAT; }
    break;

  case 574:
#line 4589 "sql_yacc.yy"
    { Lex->length= (char*) "1";
					  (yyval.num)=MYSQL_TYPE_BIT; }
    break;

  case 575:
#line 4591 "sql_yacc.yy"
    { Lex->length= (yyvsp[-1].lex_str).str;
					  (yyval.num)=MYSQL_TYPE_BIT; }
    break;

  case 576:
#line 4593 "sql_yacc.yy"
    { Lex->length=(char*) "1";
					  (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 577:
#line 4595 "sql_yacc.yy"
    { Lex->length=(char*) "1";
					  (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 578:
#line 4597 "sql_yacc.yy"
    { Lex->length=(yyvsp[-2].lex_str).str;
					  (yyval.num)=MYSQL_TYPE_STRING; }
    break;

  case 579:
#line 4599 "sql_yacc.yy"
    { Lex->length=(char*) "1";
					  (yyval.num)=MYSQL_TYPE_STRING; }
    break;

  case 580:
#line 4601 "sql_yacc.yy"
    { Lex->length=(yyvsp[-2].lex_str).str;
					  (yyval.num)=MYSQL_TYPE_STRING;
					  Lex->charset=national_charset_info; }
    break;

  case 581:
#line 4604 "sql_yacc.yy"
    { Lex->length=(char*) "1";
					  (yyval.num)=MYSQL_TYPE_STRING;
					  Lex->charset=national_charset_info; }
    break;

  case 582:
#line 4607 "sql_yacc.yy"
    { Lex->length=(yyvsp[-1].lex_str).str;
					  Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_STRING; }
    break;

  case 583:
#line 4610 "sql_yacc.yy"
    { Lex->length= (char*) "1";
					  Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_STRING; }
    break;

  case 584:
#line 4613 "sql_yacc.yy"
    { Lex->length=(yyvsp[-2].lex_str).str;
					  (yyval.num)= MYSQL_TYPE_VARCHAR; }
    break;

  case 585:
#line 4615 "sql_yacc.yy"
    { Lex->length=(yyvsp[-2].lex_str).str;
					  (yyval.num)= MYSQL_TYPE_VARCHAR;
					  Lex->charset=national_charset_info; }
    break;

  case 586:
#line 4618 "sql_yacc.yy"
    { Lex->length=(yyvsp[-1].lex_str).str;
					  Lex->charset=&my_charset_bin;
					  (yyval.num)= MYSQL_TYPE_VARCHAR; }
    break;

  case 587:
#line 4621 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_YEAR; }
    break;

  case 588:
#line 4622 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATE; }
    break;

  case 589:
#line 4623 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TIME; }
    break;

  case 590:
#line 4625 "sql_yacc.yy"
    {
	    if (YYTHD->variables.sql_mode & MODE_MAXDB)
	      (yyval.num)=MYSQL_TYPE_DATETIME;
	    else
            {
              /* 
                Unlike other types TIMESTAMP fields are NOT NULL by default.
              */
              Lex->type|= NOT_NULL_FLAG;
	      (yyval.num)=MYSQL_TYPE_TIMESTAMP;
            }
	   }
    break;

  case 591:
#line 4637 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATETIME; }
    break;

  case 592:
#line 4638 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
    break;

  case 593:
#line 4640 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_BLOB; }
    break;

  case 594:
#line 4643 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            Lex->charset=&my_charset_bin;
            Lex->uint_geom_type= (uint)(yyvsp[0].num);
            (yyval.num)=MYSQL_TYPE_GEOMETRY;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 595:
#line 4654 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 596:
#line 4656 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
    break;

  case 597:
#line 4658 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin;
					  (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 598:
#line 4660 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 599:
#line 4661 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
    break;

  case 600:
#line 4662 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_BLOB; }
    break;

  case 601:
#line 4663 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 602:
#line 4664 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
    break;

  case 603:
#line 4666 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 604:
#line 4668 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 605:
#line 4670 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 606:
#line 4671 "sql_yacc.yy"
    {Lex->interval_list.empty();}
    break;

  case 607:
#line 4672 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_ENUM; }
    break;

  case 608:
#line 4673 "sql_yacc.yy"
    { Lex->interval_list.empty();}
    break;

  case 609:
#line 4674 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SET; }
    break;

  case 610:
#line 4675 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 611:
#line 4677 "sql_yacc.yy"
    {
	    (yyval.num)=MYSQL_TYPE_LONGLONG;
	    Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
		         UNIQUE_FLAG);
	  }
    break;

  case 612:
#line 4685 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRY; }
    break;

  case 613:
#line 4686 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; }
    break;

  case 614:
#line 4687 "sql_yacc.yy"
    { Lex->length= (char*)"21";
                                (yyval.num)= Field::GEOM_POINT;
                              }
    break;

  case 615:
#line 4690 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOINT; }
    break;

  case 616:
#line 4691 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_LINESTRING; }
    break;

  case 617:
#line 4692 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTILINESTRING; }
    break;

  case 618:
#line 4693 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_POLYGON; }
    break;

  case 619:
#line 4694 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOLYGON; }
    break;

  case 620:
#line 4698 "sql_yacc.yy"
    {}
    break;

  case 621:
#line 4702 "sql_yacc.yy"
    {}
    break;

  case 622:
#line 4703 "sql_yacc.yy"
    {}
    break;

  case 623:
#line 4707 "sql_yacc.yy"
    {}
    break;

  case 624:
#line 4708 "sql_yacc.yy"
    {}
    break;

  case 625:
#line 4712 "sql_yacc.yy"
    {}
    break;

  case 626:
#line 4713 "sql_yacc.yy"
    {}
    break;

  case 627:
#line 4714 "sql_yacc.yy"
    {}
    break;

  case 628:
#line 4715 "sql_yacc.yy"
    {}
    break;

  case 629:
#line 4716 "sql_yacc.yy"
    {}
    break;

  case 630:
#line 4720 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG; }
    break;

  case 631:
#line 4721 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 632:
#line 4722 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SHORT; }
    break;

  case 633:
#line 4723 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_INT24; }
    break;

  case 634:
#line 4724 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONGLONG; }
    break;

  case 635:
#line 4727 "sql_yacc.yy"
    { (yyval.num)= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ?
			      MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE; }
    break;

  case 636:
#line 4729 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 637:
#line 4730 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 638:
#line 4734 "sql_yacc.yy"
    { Lex->dec=Lex->length= (char*)0; }
    break;

  case 639:
#line 4735 "sql_yacc.yy"
    { Lex->length=(yyvsp[-1].lex_str).str; Lex->dec= (char*)0; }
    break;

  case 640:
#line 4736 "sql_yacc.yy"
    {}
    break;

  case 641:
#line 4740 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->length=(yyvsp[-3].lex_str).str; lex->dec=(yyvsp[-1].lex_str).str;
	}
    break;

  case 642:
#line 4746 "sql_yacc.yy"
    {}
    break;

  case 643:
#line 4747 "sql_yacc.yy"
    {}
    break;

  case 644:
#line 4750 "sql_yacc.yy"
    {}
    break;

  case 645:
#line 4751 "sql_yacc.yy"
    {}
    break;

  case 646:
#line 4754 "sql_yacc.yy"
    {}
    break;

  case 647:
#line 4755 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG;}
    break;

  case 648:
#line 4756 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
    break;

  case 649:
#line 4759 "sql_yacc.yy"
    { Lex->length=(char*) 0; }
    break;

  case 650:
#line 4760 "sql_yacc.yy"
    { Lex->length= (yyvsp[-1].lex_str).str; }
    break;

  case 651:
#line 4763 "sql_yacc.yy"
    {}
    break;

  case 652:
#line 4764 "sql_yacc.yy"
    {}
    break;

  case 653:
#line 4767 "sql_yacc.yy"
    {}
    break;

  case 654:
#line 4768 "sql_yacc.yy"
    {}
    break;

  case 655:
#line 4771 "sql_yacc.yy"
    {}
    break;

  case 657:
#line 4775 "sql_yacc.yy"
    { Lex->type&= ~ NOT_NULL_FLAG; }
    break;

  case 658:
#line 4776 "sql_yacc.yy"
    { Lex->type|= NOT_NULL_FLAG; }
    break;

  case 659:
#line 4777 "sql_yacc.yy"
    { Lex->default_value=(yyvsp[0].item); }
    break;

  case 660:
#line 4779 "sql_yacc.yy"
    { Lex->on_update_value= new Item_func_now_local(); }
    break;

  case 661:
#line 4780 "sql_yacc.yy"
    { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
    break;

  case 662:
#line 4782 "sql_yacc.yy"
    { 
	    LEX *lex=Lex;
	    lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG; 
	    lex->alter_info.flags|= ALTER_ADD_INDEX; 
	  }
    break;

  case 663:
#line 4788 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG; 
	    lex->alter_info.flags|= ALTER_ADD_INDEX; 
	  }
    break;

  case 664:
#line 4794 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->type|= UNIQUE_FLAG; 
	    lex->alter_info.flags|= ALTER_ADD_INDEX; 
	  }
    break;

  case 665:
#line 4800 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->type|= UNIQUE_KEY_FLAG; 
	    lex->alter_info.flags|= ALTER_ADD_INDEX; 
	  }
    break;

  case 666:
#line 4805 "sql_yacc.yy"
    { Lex->comment= (yyvsp[0].lex_str); }
    break;

  case 667:
#line 4807 "sql_yacc.yy"
    {
	    if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[0].charset)))
	    {
	      my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[0].charset)->name,Lex->charset->csname);
	      MYSQL_YYABORT;
	    }
	    else
	    {
	      Lex->charset=(yyvsp[0].charset);
	    }
	  }
    break;

  case 668:
#line 4822 "sql_yacc.yy"
    { (yyval.item)= new Item_func_now_local(); }
    break;

  case 669:
#line 4823 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 670:
#line 4827 "sql_yacc.yy"
    {}
    break;

  case 671:
#line 4828 "sql_yacc.yy"
    {}
    break;

  case 672:
#line 4833 "sql_yacc.yy"
    {
	  if (!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0))))
	  {
	    my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str);
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 673:
#line 4840 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 674:
#line 4844 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[0].charset);   }
    break;

  case 675:
#line 4845 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 676:
#line 4848 "sql_yacc.yy"
    { (yyval.charset)= NULL; }
    break;

  case 677:
#line 4849 "sql_yacc.yy"
    { (yyval.charset)= (yyvsp[0].charset); }
    break;

  case 678:
#line 4854 "sql_yacc.yy"
    {
	  if (!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0))) &&
	      !((yyval.charset)=get_old_charset_by_name((yyvsp[0].lex_str).str)))
	  {
	    my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str);
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 679:
#line 4862 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 680:
#line 4866 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[0].charset);   }
    break;

  case 681:
#line 4867 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 682:
#line 4871 "sql_yacc.yy"
    {
	  if (!((yyval.charset)=get_charset_by_name((yyvsp[0].lex_str).str,MYF(0))))
	  {
	    my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[0].lex_str).str);
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 683:
#line 4880 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 684:
#line 4881 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[0].charset); }
    break;

  case 685:
#line 4885 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[0].charset);   }
    break;

  case 686:
#line 4886 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 687:
#line 4889 "sql_yacc.yy"
    {}
    break;

  case 688:
#line 4890 "sql_yacc.yy"
    {}
    break;

  case 689:
#line 4893 "sql_yacc.yy"
    { Lex->charset=NULL; }
    break;

  case 690:
#line 4894 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 691:
#line 4895 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin; }
    break;

  case 692:
#line 4897 "sql_yacc.yy"
    {
	  if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                   MY_CS_PRIMARY,MYF(0))))
	  {
	    my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 693:
#line 4905 "sql_yacc.yy"
    { Lex->charset=(yyvsp[-1].charset); }
    break;

  case 694:
#line 4906 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 695:
#line 4909 "sql_yacc.yy"
    { }
    break;

  case 696:
#line 4910 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 697:
#line 4913 "sql_yacc.yy"
    { Lex->charset= NULL; }
    break;

  case 698:
#line 4914 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 699:
#line 4916 "sql_yacc.yy"
    {
	  if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                   MY_CS_PRIMARY,MYF(0))))
	  {
	    my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 700:
#line 4924 "sql_yacc.yy"
    { Lex->charset=(yyvsp[0].charset); }
    break;

  case 703:
#line 4933 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->fk_delete_opt= lex->fk_update_opt= lex->fk_match_option= 0;
	  lex->ref_list.empty();
	}
    break;

  case 704:
#line 4939 "sql_yacc.yy"
    {
	  (yyval.table)=(yyvsp[-2].table);
	}
    break;

  case 705:
#line 4944 "sql_yacc.yy"
    {}
    break;

  case 706:
#line 4945 "sql_yacc.yy"
    {}
    break;

  case 707:
#line 4948 "sql_yacc.yy"
    { Lex->ref_list.push_back(new Key_part_spec((yyvsp[0].lex_str).str)); }
    break;

  case 708:
#line 4949 "sql_yacc.yy"
    { Lex->ref_list.push_back(new Key_part_spec((yyvsp[0].lex_str).str)); }
    break;

  case 709:
#line 4953 "sql_yacc.yy"
    {}
    break;

  case 710:
#line 4954 "sql_yacc.yy"
    {}
    break;

  case 711:
#line 4957 "sql_yacc.yy"
    {}
    break;

  case 712:
#line 4958 "sql_yacc.yy"
    {}
    break;

  case 713:
#line 4961 "sql_yacc.yy"
    { Lex->fk_delete_opt= (yyvsp[0].num); }
    break;

  case 714:
#line 4962 "sql_yacc.yy"
    { Lex->fk_update_opt= (yyvsp[0].num); }
    break;

  case 715:
#line 4963 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
    break;

  case 716:
#line 4964 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
    break;

  case 717:
#line 4965 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
    break;

  case 718:
#line 4968 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_RESTRICT; }
    break;

  case 719:
#line 4969 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_CASCADE; }
    break;

  case 720:
#line 4970 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_SET_NULL; }
    break;

  case 721:
#line 4971 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_NO_ACTION; }
    break;

  case 722:
#line 4972 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_DEFAULT;  }
    break;

  case 723:
#line 4975 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 724:
#line 4976 "sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT; }
    break;

  case 725:
#line 4978 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
	    (yyval.key_type)= Key::SPATIAL;
#else
	    my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
	    MYSQL_YYABORT;
#endif
	  }
    break;

  case 726:
#line 4989 "sql_yacc.yy"
    { (yyval.key_type)= Key::PRIMARY; }
    break;

  case 727:
#line 4990 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 728:
#line 4993 "sql_yacc.yy"
    {}
    break;

  case 729:
#line 4994 "sql_yacc.yy"
    {}
    break;

  case 730:
#line 4997 "sql_yacc.yy"
    {}
    break;

  case 732:
#line 5002 "sql_yacc.yy"
    {}
    break;

  case 733:
#line 5003 "sql_yacc.yy"
    {}
    break;

  case 734:
#line 5004 "sql_yacc.yy"
    {}
    break;

  case 735:
#line 5007 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 736:
#line 5008 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 737:
#line 5009 "sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT;}
    break;

  case 738:
#line 5011 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
	    (yyval.key_type)= Key::SPATIAL;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
	    MYSQL_YYABORT;
#endif
	  }
    break;

  case 739:
#line 5023 "sql_yacc.yy"
    {
	  Lex->key_create_info= default_key_create_info;
	}
    break;

  case 742:
#line 5040 "sql_yacc.yy"
    {}
    break;

  case 746:
#line 5050 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[0].key_alg); }
    break;

  case 747:
#line 5051 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[0].key_alg); }
    break;

  case 749:
#line 5057 "sql_yacc.yy"
    { Lex->key_create_info.block_size= (yyvsp[0].ulong_num); }
    break;

  case 750:
#line 5059 "sql_yacc.yy"
    {
            if (plugin_is_ready(&(yyvsp[0].lex_str), MYSQL_FTPARSER_PLUGIN))
              Lex->key_create_info.parser_name= (yyvsp[0].lex_str);
            else
            {
              my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[0].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 751:
#line 5072 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
    break;

  case 752:
#line 5074 "sql_yacc.yy"
    {
	    (yyval.key_alg)= HA_KEY_ALG_RTREE;
	  }
    break;

  case 753:
#line 5077 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_HASH; }
    break;

  case 754:
#line 5080 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[-1].key_part)); }
    break;

  case 755:
#line 5081 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[-1].key_part)); }
    break;

  case 756:
#line 5084 "sql_yacc.yy"
    { (yyval.key_part)=new Key_part_spec((yyvsp[0].lex_str).str); }
    break;

  case 757:
#line 5086 "sql_yacc.yy"
    {
          int key_part_len= atoi((yyvsp[-1].lex_str).str);
          if (!key_part_len)
          {
            my_error(ER_KEY_PART_0, MYF(0), (yyvsp[-3].lex_str).str);
          }
          (yyval.key_part)=new Key_part_spec((yyvsp[-3].lex_str).str,(uint) key_part_len);
        }
    break;

  case 758:
#line 5096 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; }
    break;

  case 759:
#line 5097 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[0].lex_str).str; }
    break;

  case 760:
#line 5100 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 761:
#line 5101 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[0].lex_str); }
    break;

  case 762:
#line 5104 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[0].string)); }
    break;

  case 763:
#line 5105 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[0].string)); }
    break;

  case 764:
#line 5113 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;
          lex->name.str= 0;
          lex->name.length= 0;
	  lex->sql_command= SQLCOM_ALTER_TABLE;
	  lex->duplicates= DUP_ERROR; 
	  if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL,
						 TL_OPTION_UPDATING))
	    MYSQL_YYABORT;
          lex->alter_info.reset();
	  lex->col_list.empty();
          lex->select_lex.init_order();
	  lex->select_lex.db=
            ((TABLE_LIST*) lex->select_lex.table_list.first)->db;
	  bzero((char*) &lex->create_info,sizeof(lex->create_info));
	  lex->create_info.db_type= 0;
	  lex->create_info.default_table_charset= NULL;
	  lex->create_info.row_type= ROW_TYPE_NOT_USED;
          lex->alter_info.reset();
          lex->no_write_to_binlog= 0;
          lex->create_info.storage_media= HA_SM_DEFAULT;	
	}
    break;

  case 765:
#line 5137 "sql_yacc.yy"
    {}
    break;

  case 766:
#line 5139 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 767:
#line 5144 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command=SQLCOM_ALTER_DB;
	    lex->name= (yyvsp[-2].lex_str);
            if (lex->name.str == NULL &&
                lex->copy_db_to(&lex->name.str, &lex->name.length))
              MYSQL_YYABORT;
	  }
    break;

  case 768:
#line 5153 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    if (lex->sphead)
	    {
	      my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
	      MYSQL_YYABORT;
	    }
	    bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 769:
#line 5164 "sql_yacc.yy"
    {
	    LEX *lex=Lex;

	    lex->sql_command= SQLCOM_ALTER_PROCEDURE;
	    lex->spname= (yyvsp[-2].spname);
	  }
    break;

  case 770:
#line 5171 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    if (lex->sphead)
	    {
	      my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
	      MYSQL_YYABORT;
	    }
	    bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 771:
#line 5182 "sql_yacc.yy"
    {
	    LEX *lex=Lex;

	    lex->sql_command= SQLCOM_ALTER_FUNCTION;
	    lex->spname= (yyvsp[-2].spname);
	  }
    break;

  case 772:
#line 5189 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 773:
#line 5200 "sql_yacc.yy"
    {}
    break;

  case 774:
#line 5207 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
	    lex->create_view_mode= VIEW_ALTER;
	  }
    break;

  case 775:
#line 5219 "sql_yacc.yy"
    {}
    break;

  case 776:
#line 5225 "sql_yacc.yy"
    {
            /* 
              It is safe to use Lex->spname because
              ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO
              is not allowed. Lex->spname is used in the case of RENAME TO
              If it had to be supported spname had to be added to
              Event_parse_data.
            */

            if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD)))
              MYSQL_YYABORT;
            Lex->event_parse_data->identifier= (yyvsp[0].spname);

            /*
              We have to turn off CLIENT_MULTI_QUERIES while parsing a
              stored procedure, otherwise yylex will chop it into pieces
              at each ';'.
            */
            (yyval.ulong_num)= YYTHD->client_capabilities & CLIENT_MULTI_QUERIES;
            YYTHD->client_capabilities &= ~CLIENT_MULTI_QUERIES;

            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 777:
#line 5253 "sql_yacc.yy"
    {
            /*
              $1 - ALTER
              $2 - definer
              $3 - EVENT_SYM
              $4 - sp_name
              $5 - the block above
            */
            YYTHD->client_capabilities |= (yyvsp[-5].ulong_num);

            if (!((yyvsp[-4].num) || (yyvsp[-3].num) || (yyvsp[-2].num) || (yyvsp[-1].num) || (yyvsp[0].num)))
            {
	      my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 778:
#line 5275 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE;
          }
    break;

  case 779:
#line 5280 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP;
          }
    break;

  case 780:
#line 5285 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE;
          }
    break;

  case 781:
#line 5290 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE;
          }
    break;

  case 782:
#line 5295 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_ALTER_SERVER;
            lex->server_options.server_name= (yyvsp[-4].lex_str).str;
            lex->server_options.server_name_length= (yyvsp[-4].lex_str).length;
          }
    break;

  case 783:
#line 5303 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 784:
#line 5304 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 785:
#line 5305 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 786:
#line 5306 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 787:
#line 5309 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 788:
#line 5311 "sql_yacc.yy"
    {
            /*
              Use lex's spname to hold the new name.
              The original name is in the Event_parse_data object
            */
            Lex->spname= (yyvsp[0].spname); 
            (yyval.num)= 1;
          }
    break;

  case 789:
#line 5321 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 790:
#line 5322 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 791:
#line 5326 "sql_yacc.yy"
    { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; }
    break;

  case 792:
#line 5327 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[0].lex_str); }
    break;

  case 794:
#line 5330 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
    break;

  case 795:
#line 5331 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
    break;

  case 801:
#line 5348 "sql_yacc.yy"
    {
	    Lex->alter_info.flags|= ALTER_DROP_PARTITION;
          }
    break;

  case 802:
#line 5353 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[-1].num);
          }
    break;

  case 803:
#line 5360 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->alter_info.flags|= ALTER_OPTIMIZE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[-1].num);
            lex->check_opt.init();
          }
    break;

  case 805:
#line 5369 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->alter_info.flags|= ALTER_ANALYZE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[-1].num);
            lex->check_opt.init();
          }
    break;

  case 807:
#line 5377 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->alter_info.flags|= ALTER_CHECK_PARTITION;
            lex->check_opt.init();
          }
    break;

  case 809:
#line 5385 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->alter_info.flags|= ALTER_REPAIR_PARTITION;
            lex->no_write_to_binlog= (yyvsp[-1].num);
            lex->check_opt.init();
          }
    break;

  case 811:
#line 5393 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[-1].num);
	    lex->alter_info.no_parts= (yyvsp[0].ulong_num);
          }
    break;

  case 813:
#line 5404 "sql_yacc.yy"
    {
          Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
        }
    break;

  case 814:
#line 5411 "sql_yacc.yy"
    {
	  Lex->alter_info.flags|= ALTER_ALL_PARTITION;
        }
    break;

  case 816:
#line 5419 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info= new partition_info();
          if (!lex->part_info)
          {
            mem_alloc_error(sizeof(partition_info));
            MYSQL_YYABORT;
          }
	  lex->alter_info.flags|= ALTER_ADD_PARTITION;
          lex->no_write_to_binlog= (yyvsp[0].num);
        }
    break;

  case 817:
#line 5431 "sql_yacc.yy"
    {}
    break;

  case 819:
#line 5436 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info->no_parts= lex->part_info->partitions.elements;
        }
    break;

  case 820:
#line 5441 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info->no_parts= (yyvsp[0].ulong_num);
        }
    break;

  case 821:
#line 5449 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info= new partition_info();
          if (!lex->part_info)
          {
            mem_alloc_error(sizeof(partition_info));
            MYSQL_YYABORT;
          }
          lex->no_write_to_binlog= (yyvsp[0].num);
        }
    break;

  case 823:
#line 5464 "sql_yacc.yy"
    {
	  Lex->alter_info.flags|= ALTER_TABLE_REORG;
        }
    break;

  case 824:
#line 5469 "sql_yacc.yy"
    {
	  Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
        }
    break;

  case 825:
#line 5473 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->part_info->no_parts= lex->part_info->partitions.elements;
        }
    break;

  case 826:
#line 5480 "sql_yacc.yy"
    {}
    break;

  case 827:
#line 5481 "sql_yacc.yy"
    {}
    break;

  case 828:
#line 5486 "sql_yacc.yy"
    {
          if (Lex->alter_info.partition_names.push_back((yyvsp[0].lex_str).str))
          {
            mem_alloc_error(1);
            MYSQL_YYABORT;
          }
        }
    break;

  case 831:
#line 5506 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->change=0;
	  lex->alter_info.flags|= ALTER_ADD_COLUMN;
	}
    break;

  case 832:
#line 5513 "sql_yacc.yy"
    { }
    break;

  case 833:
#line 5515 "sql_yacc.yy"
    {
	    Lex->alter_info.flags|= ALTER_ADD_INDEX;
	  }
    break;

  case 834:
#line 5519 "sql_yacc.yy"
    {
	    Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
          }
    break;

  case 835:
#line 5523 "sql_yacc.yy"
    {
	     LEX *lex=Lex;
	     lex->change= (yyvsp[0].lex_str).str;
	     lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
	  }
    break;

  case 837:
#line 5530 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0; lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
	    lex->charset= NULL;
	    lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
          }
    break;

  case 838:
#line 5539 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd,&(yyvsp[-3].lex_str),
                                  (enum enum_field_types) (yyvsp[-1].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value,
                                  &lex->comment,
				  (yyvsp[-3].lex_str).str, &lex->interval_list, lex->charset,
				  lex->uint_geom_type))
	       MYSQL_YYABORT;
          }
    break;

  case 840:
#line 5552 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::COLUMN,
                                                               (yyvsp[-1].lex_str).str));
	    lex->alter_info.flags|= ALTER_DROP_COLUMN;
	  }
    break;

  case 841:
#line 5559 "sql_yacc.yy"
    {
	    Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
          }
    break;

  case 842:
#line 5563 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
				               primary_key_name));
	    lex->alter_info.flags|= ALTER_DROP_INDEX;
	  }
    break;

  case 843:
#line 5570 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
					                       (yyvsp[0].lex_str).str));
	    lex->alter_info.flags|= ALTER_DROP_INDEX;
	  }
    break;

  case 844:
#line 5577 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
            lex->alter_info.keys_onoff= DISABLE;
	    lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 845:
#line 5583 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
            lex->alter_info.keys_onoff= ENABLE;
	    lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 846:
#line 5589 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.alter_list.push_back(new Alter_column((yyvsp[-3].lex_str).str,(yyvsp[0].item)));
	    lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
	  }
    break;

  case 847:
#line 5595 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.alter_list.push_back(new Alter_column((yyvsp[-2].lex_str).str,
                                                                  (Item*) 0));
	    lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
	  }
    break;

  case 848:
#line 5602 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    size_t dummy;
	    lex->select_lex.db=(yyvsp[0].table)->db.str;
            if (lex->select_lex.db == NULL &&
                lex->copy_db_to(&lex->select_lex.db, &dummy))
            {
              MYSQL_YYABORT;
            }
            if (check_table_name((yyvsp[0].table)->table.str,(yyvsp[0].table)->table.length) ||
                (yyvsp[0].table)->db.str && check_db_name(&(yyvsp[0].table)->db))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[0].table)->table.str);
              MYSQL_YYABORT;
            }
	    lex->name= (yyvsp[0].table)->table;
	    lex->alter_info.flags|= ALTER_RENAME;
	  }
    break;

  case 849:
#line 5621 "sql_yacc.yy"
    {
	    if (!(yyvsp[-1].charset))
	    {
	      THD *thd= YYTHD;
	      (yyvsp[-1].charset)= thd->variables.collation_database;
	    }
	    (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset) : (yyvsp[-1].charset);
	    if (!my_charset_same((yyvsp[-1].charset),(yyvsp[0].charset)))
	    {
	      my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[0].charset)->name, (yyvsp[-1].charset)->csname);
	      MYSQL_YYABORT;
	    }
	    LEX *lex= Lex;
	    lex->create_info.table_charset=
	      lex->create_info.default_table_charset= (yyvsp[0].charset);
	    lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
					    HA_CREATE_USED_DEFAULT_CHARSET);
	    lex->alter_info.flags|= ALTER_CONVERT;
	  }
    break;

  case 850:
#line 5642 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.flags|= ALTER_OPTIONS;
	  }
    break;

  case 851:
#line 5647 "sql_yacc.yy"
    {
	    Lex->alter_info.flags|= ALTER_FORCE;
	   }
    break;

  case 852:
#line 5651 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->alter_info.flags|= ALTER_ORDER;
	  }
    break;

  case 853:
#line 5657 "sql_yacc.yy"
    {}
    break;

  case 854:
#line 5658 "sql_yacc.yy"
    {}
    break;

  case 855:
#line 5661 "sql_yacc.yy"
    { Lex->ignore= 0;}
    break;

  case 856:
#line 5662 "sql_yacc.yy"
    { Lex->ignore= 1;}
    break;

  case 857:
#line 5666 "sql_yacc.yy"
    { Lex->drop_mode= DROP_DEFAULT; }
    break;

  case 858:
#line 5667 "sql_yacc.yy"
    { Lex->drop_mode= DROP_RESTRICT; }
    break;

  case 859:
#line 5668 "sql_yacc.yy"
    { Lex->drop_mode= DROP_CASCADE; }
    break;

  case 860:
#line 5672 "sql_yacc.yy"
    {}
    break;

  case 861:
#line 5673 "sql_yacc.yy"
    { store_position_for_column((yyvsp[0].lex_str).str); }
    break;

  case 862:
#line 5674 "sql_yacc.yy"
    { store_position_for_column(first_keyword); }
    break;

  case 863:
#line 5677 "sql_yacc.yy"
    {}
    break;

  case 864:
#line 5678 "sql_yacc.yy"
    {}
    break;

  case 865:
#line 5679 "sql_yacc.yy"
    {}
    break;

  case 866:
#line 5680 "sql_yacc.yy"
    {}
    break;

  case 867:
#line 5688 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
	    lex->type = 0;
	    /* We'll use mi structure for UNTIL options */
	    bzero((char*) &lex->mi, sizeof(lex->mi));
            /* If you change this code don't forget to update SLAVE START too */
          }
    break;

  case 868:
#line 5697 "sql_yacc.yy"
    {}
    break;

  case 869:
#line 5699 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
	    lex->type = 0;
            /* If you change this code don't forget to update SLAVE STOP too */
          }
    break;

  case 870:
#line 5706 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
           lex->sql_command = SQLCOM_SLAVE_START;
	   lex->type = 0;
	    /* We'll use mi structure for UNTIL options */
	    bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 871:
#line 5714 "sql_yacc.yy"
    {}
    break;

  case 872:
#line 5716 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
           lex->sql_command = SQLCOM_SLAVE_STOP;
	   lex->type = 0;
         }
    break;

  case 873:
#line 5726 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->sql_command= SQLCOM_BEGIN;
          lex->start_transaction_opt= (yyvsp[0].num);
        }
    break;

  case 874:
#line 5734 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 875:
#line 5736 "sql_yacc.yy"
    {
           (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
        }
    break;

  case 876:
#line 5742 "sql_yacc.yy"
    { Lex->slave_thd_opt= 0; }
    break;

  case 877:
#line 5744 "sql_yacc.yy"
    {}
    break;

  case 880:
#line 5753 "sql_yacc.yy"
    {}
    break;

  case 881:
#line 5754 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_SQL; }
    break;

  case 882:
#line 5755 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_IO; }
    break;

  case 883:
#line 5759 "sql_yacc.yy"
    {}
    break;

  case 884:
#line 5761 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if ((lex->mi.log_file_name || lex->mi.pos) &&
                (lex->mi.relay_log_name || lex->mi.relay_log_pos) ||
                !((lex->mi.log_file_name && lex->mi.pos) ||
                  (lex->mi.relay_log_name && lex->mi.relay_log_pos)))
            {
               my_message(ER_BAD_SLAVE_UNTIL_COND,
                          ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0));
               MYSQL_YYABORT;
            }

          }
    break;

  case 887:
#line 5783 "sql_yacc.yy"
    {
	   Lex->sql_command = SQLCOM_RESTORE_TABLE;
	}
    break;

  case 888:
#line 5787 "sql_yacc.yy"
    {
	  Lex->backup_dir = (yyvsp[0].lex_str).str;
        }
    break;

  case 889:
#line 5793 "sql_yacc.yy"
    {
	   Lex->sql_command = SQLCOM_BACKUP_TABLE;
	}
    break;

  case 890:
#line 5797 "sql_yacc.yy"
    {
	  Lex->backup_dir = (yyvsp[0].lex_str).str;
        }
    break;

  case 891:
#line 5803 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
	   lex->sql_command = SQLCOM_CHECKSUM;
	}
    break;

  case 892:
#line 5808 "sql_yacc.yy"
    {}
    break;

  case 893:
#line 5812 "sql_yacc.yy"
    { Lex->check_opt.flags= 0; }
    break;

  case 894:
#line 5813 "sql_yacc.yy"
    { Lex->check_opt.flags= T_QUICK; }
    break;

  case 895:
#line 5814 "sql_yacc.yy"
    { Lex->check_opt.flags= T_EXTEND; }
    break;

  case 896:
#line 5819 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
	   lex->sql_command = SQLCOM_REPAIR;
           lex->no_write_to_binlog= (yyvsp[-1].num);
	   lex->check_opt.init();
	}
    break;

  case 897:
#line 5826 "sql_yacc.yy"
    {}
    break;

  case 898:
#line 5830 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 899:
#line 5831 "sql_yacc.yy"
    {}
    break;

  case 900:
#line 5834 "sql_yacc.yy"
    {}
    break;

  case 901:
#line 5835 "sql_yacc.yy"
    {}
    break;

  case 902:
#line 5838 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 903:
#line 5839 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 904:
#line 5840 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_USEFRM; }
    break;

  case 905:
#line 5844 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
	   lex->sql_command = SQLCOM_ANALYZE;
           lex->no_write_to_binlog= (yyvsp[-1].num);
	   lex->check_opt.init();
	}
    break;

  case 906:
#line 5851 "sql_yacc.yy"
    {}
    break;

  case 907:
#line 5856 "sql_yacc.yy"
    {
           Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
           Lex->comment= (yyvsp[0].lex_str);
        }
    break;

  case 908:
#line 5864 "sql_yacc.yy"
    {
	  LEX *lex=Lex;

	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
	    MYSQL_YYABORT;
	  }
	  lex->sql_command = SQLCOM_CHECK;
	  lex->check_opt.init();
	}
    break;

  case 909:
#line 5876 "sql_yacc.yy"
    {}
    break;

  case 910:
#line 5880 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 911:
#line 5881 "sql_yacc.yy"
    {}
    break;

  case 912:
#line 5884 "sql_yacc.yy"
    {}
    break;

  case 913:
#line 5885 "sql_yacc.yy"
    {}
    break;

  case 914:
#line 5888 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 915:
#line 5889 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_FAST; }
    break;

  case 916:
#line 5890 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_MEDIUM; }
    break;

  case 917:
#line 5891 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 918:
#line 5892 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
    break;

  case 919:
#line 5893 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
    break;

  case 920:
#line 5897 "sql_yacc.yy"
    {
	   LEX *lex=Lex;
	   lex->sql_command = SQLCOM_OPTIMIZE;
           lex->no_write_to_binlog= (yyvsp[-1].num);
	   lex->check_opt.init();
	}
    break;

  case 921:
#line 5904 "sql_yacc.yy"
    {}
    break;

  case 922:
#line 5908 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 923:
#line 5909 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 924:
#line 5910 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 925:
#line 5915 "sql_yacc.yy"
    {
          Lex->sql_command= SQLCOM_RENAME_TABLE;
	}
    break;

  case 926:
#line 5919 "sql_yacc.yy"
    {}
    break;

  case 927:
#line 5921 "sql_yacc.yy"
    {
            Lex->db_list.empty();
            Lex->sql_command= SQLCOM_RENAME_DB;
          }
    break;

  case 928:
#line 5926 "sql_yacc.yy"
    {}
    break;

  case 929:
#line 5928 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_RENAME_USER;
          }
    break;

  case 930:
#line 5935 "sql_yacc.yy"
    {
          if (Lex->users_list.push_back((yyvsp[-2].lex_user)) || Lex->users_list.push_back((yyvsp[0].lex_user)))
            MYSQL_YYABORT;
        }
    break;

  case 931:
#line 5940 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[-2].lex_user)) || Lex->users_list.push_back((yyvsp[0].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 934:
#line 5952 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  SELECT_LEX *sl= lex->current_select;
	  if (!sl->add_table_to_list(lex->thd, (yyvsp[-2].table),NULL,TL_OPTION_UPDATING,
				     TL_IGNORE) ||
	      !sl->add_table_to_list(lex->thd, (yyvsp[0].table),NULL,TL_OPTION_UPDATING,
				     TL_IGNORE))
	    MYSQL_YYABORT;
	}
    break;

  case 935:
#line 5964 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          if (lex->db_list.push_back((LEX_STRING*)
                                     sql_memdup(&(yyvsp[-2].lex_str), sizeof(LEX_STRING))) ||
              lex->db_list.push_back((LEX_STRING*)
                                     sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))))
              MYSQL_YYABORT;
	}
    break;

  case 936:
#line 5975 "sql_yacc.yy"
    {
          LEX *lex=Lex;
          lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
	  lex->ident= (yyvsp[0].lex_str);
        }
    break;

  case 939:
#line 5988 "sql_yacc.yy"
    {
          if (!Select->add_table_to_list(YYTHD, (yyvsp[-1].table), NULL, 0, TL_READ, 
                                      Select->pop_index_hints()))
            MYSQL_YYABORT;
        }
    break;

  case 940:
#line 5996 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[0].lex_str); }
    break;

  case 941:
#line 5997 "sql_yacc.yy"
    { (yyval.lex_str) = default_key_cache_base; }
    break;

  case 942:
#line 6002 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command=SQLCOM_PRELOAD_KEYS;
	}
    break;

  case 943:
#line 6007 "sql_yacc.yy"
    {}
    break;

  case 946:
#line 6016 "sql_yacc.yy"
    {
	  if (!Select->add_table_to_list(YYTHD, (yyvsp[-2].table), NULL, (yyvsp[0].num), TL_READ,
                                      Select->pop_index_hints()))
            MYSQL_YYABORT;
	}
    break;

  case 947:
#line 6024 "sql_yacc.yy"
    {
          Lex->select_lex.alloc_index_hints(YYTHD);
          Select->set_index_hint_type(INDEX_HINT_USE, 
                                      global_system_variables.old_mode ? 
                                        INDEX_HINT_MASK_JOIN : 
                                        INDEX_HINT_MASK_ALL);
        }
    break;

  case 949:
#line 6035 "sql_yacc.yy"
    { }
    break;

  case 951:
#line 6041 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 952:
#line 6042 "sql_yacc.yy"
    { (yyval.num)= TL_OPTION_IGNORE_LEAVES; }
    break;

  case 953:
#line 6052 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  lex->sql_command= SQLCOM_SELECT;
	}
    break;

  case 956:
#line 6066 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
	    if (sel->set_braces(1))
	    {
              my_parse_error(ER(ER_SYNTAX_ERROR));
	      MYSQL_YYABORT;
	    }
            if (sel->linkage == UNION_TYPE &&
                !sel->master_unit()->first_select()->braces &&
                sel->master_unit()->first_select()->linkage ==
                UNION_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* select in braces, can't contain global parameters */
	    if (sel->master_unit()->fake_select_lex)
              sel->master_unit()->global_parameters=
                 sel->master_unit()->fake_select_lex;
          }
    break;

  case 958:
#line 6091 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
          SELECT_LEX * sel= lex->current_select;
          if (lex->current_select->set_braces(0))
	  {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
	  if (sel->linkage == UNION_TYPE &&
	      sel->master_unit()->first_select()->braces)
	  {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 960:
#line 6110 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  SELECT_LEX *sel= lex->current_select;
	  if (sel->linkage != UNION_TYPE)
	    mysql_init_select(lex);
	  lex->current_select->parsing_place= SELECT_LIST;
	}
    break;

  case 961:
#line 6118 "sql_yacc.yy"
    {
	  Select->parsing_place= NO_MATTER;
	}
    break;

  case 963:
#line 6124 "sql_yacc.yy"
    {}
    break;

  case 968:
#line 6133 "sql_yacc.yy"
    {
            Select->context.table_list=
              Select->context.first_name_resolution_table= 
                (TABLE_LIST *) Select->table_list.first;
          }
    break;

  case 971:
#line 6148 "sql_yacc.yy"
    {
	    if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
	    {
	      my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
              MYSQL_YYABORT;
	    }
          }
    break;

  case 974:
#line 6162 "sql_yacc.yy"
    { Select->options|= SELECT_STRAIGHT_JOIN; }
    break;

  case 975:
#line 6164 "sql_yacc.yy"
    {
	    if (check_simple_select())
	      MYSQL_YYABORT;
	    Lex->lock_option= TL_READ_HIGH_PRIORITY;
	  }
    break;

  case 976:
#line 6169 "sql_yacc.yy"
    { Select->options|= SELECT_DISTINCT; }
    break;

  case 977:
#line 6170 "sql_yacc.yy"
    { Select->options|= SELECT_SMALL_RESULT; }
    break;

  case 978:
#line 6171 "sql_yacc.yy"
    { Select->options|= SELECT_BIG_RESULT; }
    break;

  case 979:
#line 6173 "sql_yacc.yy"
    {
	    if (check_simple_select())
	      MYSQL_YYABORT;
	    Select->options|= OPTION_BUFFER_RESULT;
	  }
    break;

  case 980:
#line 6179 "sql_yacc.yy"
    {
	    if (check_simple_select())
	      MYSQL_YYABORT;
	    Select->options|= OPTION_FOUND_ROWS;
	  }
    break;

  case 981:
#line 6185 "sql_yacc.yy"
    {
            Lex->safe_to_cache_query=0;
	    Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
            Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
          }
    break;

  case 982:
#line 6191 "sql_yacc.yy"
    {
            /*
             Honor this flag only if SQL_NO_CACHE wasn't specified AND
             we are parsing the outermost SELECT in the query.
            */
            if (Lex->select_lex.sql_cache != SELECT_LEX::SQL_NO_CACHE &&
                Lex->current_select == &Lex->select_lex)
            {
              Lex->safe_to_cache_query=1;
	      Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
              Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
            }
	  }
    break;

  case 983:
#line 6204 "sql_yacc.yy"
    { Select->options|= SELECT_ALL; }
    break;

  case 985:
#line 6210 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->current_select->set_lock_for_tables(TL_WRITE);
	    lex->safe_to_cache_query=0;
	  }
    break;

  case 986:
#line 6216 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->current_select->
	      set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
	    lex->safe_to_cache_query=0;
	  }
    break;

  case 989:
#line 6228 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;
	    if (add_item_to_list(thd,
                                 new Item_field(&thd->lex->current_select->
                                                context,
                                                NULL, NULL, "*")))
	      MYSQL_YYABORT;
	    (thd->lex->current_select->with_wild)++;
	  }
    break;

  case 990:
#line 6241 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            DBUG_ASSERT((yyvsp[-3].simple_string) < (yyvsp[-1].simple_string));

	    if (add_item_to_list(thd, (yyvsp[-2].item)))
	      MYSQL_YYABORT;
	    if ((yyvsp[0].lex_str).str)
            {
              (yyvsp[-2].item)->is_autogenerated_name= FALSE;
	      (yyvsp[-2].item)->set_name((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info);
            }
	    else if (!(yyvsp[-2].item)->name)
            {
	      (yyvsp[-2].item)->set_name((yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset());
	    }
	  }
    break;

  case 991:
#line 6260 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          Lex_input_stream *lip= thd->m_lip;
          (yyval.simple_string)= (char*) lip->get_cpp_tok_start();
        }
    break;

  case 992:
#line 6267 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          Lex_input_stream *lip= thd->m_lip;
          (yyval.simple_string)= (char*) lip->get_cpp_tok_end();
        }
    break;

  case 993:
#line 6274 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 994:
#line 6275 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 995:
#line 6278 "sql_yacc.yy"
    { (yyval.lex_str)=null_lex_str;}
    break;

  case 996:
#line 6279 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str); }
    break;

  case 997:
#line 6280 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str); }
    break;

  case 998:
#line 6281 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str); }
    break;

  case 999:
#line 6282 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str); }
    break;

  case 1000:
#line 6286 "sql_yacc.yy"
    {}
    break;

  case 1001:
#line 6287 "sql_yacc.yy"
    {}
    break;

  case 1002:
#line 6291 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1003:
#line 6293 "sql_yacc.yy"
    {
            List<Item> *list= Select->expr_list.pop();
            if (list->elements)
            {
              list->push_front((yyvsp[-2].item));
              (yyval.item)= new Item_cond_or(*list);
              /* optimize construction of logical OR to reduce
                 amount of objects for complex expressions */
            }
            else
              (yyval.item)= (yyvsp[-2].item);
            delete list;
          }
    break;

  case 1005:
#line 6311 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[0].item)); }
    break;

  case 1006:
#line 6315 "sql_yacc.yy"
    { (yyval.item)= new Item_cond_xor((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1007:
#line 6316 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1008:
#line 6318 "sql_yacc.yy"
    {
            List<Item> *list= Select->expr_list.pop();
            if (list->elements)
            {
              list->push_front((yyvsp[-2].item));
              (yyval.item)= new Item_cond_and(*list);
              /* optimize construction of logical AND to reduce
                 amount of objects for complex expressions */
            }
            else
              (yyval.item)= (yyvsp[-2].item);
            delete list;
          }
    break;

  case 1010:
#line 6336 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[0].item)); }
    break;

  case 1011:
#line 6340 "sql_yacc.yy"
    { (yyval.item)= negate_expression(YYTHD, (yyvsp[0].item)); }
    break;

  case 1013:
#line 6345 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_istrue((yyvsp[-2].item)); }
    break;

  case 1014:
#line 6347 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_isnottrue((yyvsp[-3].item)); }
    break;

  case 1015:
#line 6349 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_isfalse((yyvsp[-2].item)); }
    break;

  case 1016:
#line 6351 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_isnotfalse((yyvsp[-3].item)); }
    break;

  case 1017:
#line 6352 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnull((yyvsp[-2].item)); }
    break;

  case 1018:
#line 6353 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnotnull((yyvsp[-3].item)); }
    break;

  case 1020:
#line 6358 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnull((yyvsp[-2].item)); }
    break;

  case 1021:
#line 6359 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnotnull((yyvsp[-3].item)); }
    break;

  case 1022:
#line 6360 "sql_yacc.yy"
    { (yyval.item)= new Item_func_equal((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1023:
#line 6362 "sql_yacc.yy"
    { (yyval.item)= (*(yyvsp[-1].boolfunc2creator))(0)->create((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1024:
#line 6364 "sql_yacc.yy"
    { (yyval.item)= all_any_subquery_creator((yyvsp[-5].item), (yyvsp[-4].boolfunc2creator), (yyvsp[-3].num), (yyvsp[-1].select_lex)); }
    break;

  case 1026:
#line 6369 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_in_subselect((yyvsp[-4].item), (yyvsp[-1].select_lex));
          }
    break;

  case 1027:
#line 6373 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[-5].item), (yyvsp[-1].select_lex));
            (yyval.item)= negate_expression(thd, item);
          }
    break;

  case 1028:
#line 6379 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[-4].item), true, (yyvsp[-1].item));
          }
    break;

  case 1029:
#line 6383 "sql_yacc.yy"
    { 
              (yyvsp[-1].item_list)->push_front((yyvsp[-3].item));
              (yyvsp[-1].item_list)->push_front((yyvsp[-6].item));
            (yyval.item)= new (YYTHD->mem_root) Item_func_in(*(yyvsp[-1].item_list));
          }
    break;

  case 1030:
#line 6389 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[-5].item), false, (yyvsp[-1].item));
          }
    break;

  case 1031:
#line 6393 "sql_yacc.yy"
    {
              (yyvsp[-1].item_list)->push_front((yyvsp[-3].item));
              (yyvsp[-1].item_list)->push_front((yyvsp[-7].item));
            Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*(yyvsp[-1].item_list));
              item->negate();
              (yyval.item)= item;
          }
    break;

  case 1032:
#line 6401 "sql_yacc.yy"
    { (yyval.item)= new Item_func_between((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1033:
#line 6403 "sql_yacc.yy"
    {
      Item_func_between *item= new Item_func_between((yyvsp[-5].item),(yyvsp[-2].item),(yyvsp[0].item));
      item->negate();
      (yyval.item)= item;
    }
    break;

  case 1034:
#line 6409 "sql_yacc.yy"
    { (yyval.item)= new Item_func_eq(new Item_func_soundex((yyvsp[-3].item)),
				 new Item_func_soundex((yyvsp[0].item))); }
    break;

  case 1035:
#line 6412 "sql_yacc.yy"
    { (yyval.item)= new Item_func_like((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].item),Lex->escape_used); }
    break;

  case 1036:
#line 6414 "sql_yacc.yy"
    { (yyval.item)= new Item_func_not(new Item_func_like((yyvsp[-4].item),(yyvsp[-1].item),(yyvsp[0].item), Lex->escape_used)); }
    break;

  case 1037:
#line 6415 "sql_yacc.yy"
    { (yyval.item)= new Item_func_regex((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1038:
#line 6417 "sql_yacc.yy"
    { (yyval.item)= negate_expression(YYTHD, new Item_func_regex((yyvsp[-3].item),(yyvsp[0].item))); }
    break;

  case 1040:
#line 6421 "sql_yacc.yy"
    { (yyval.item)= new Item_func_bit_or((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1042:
#line 6425 "sql_yacc.yy"
    { (yyval.item)= new Item_func_bit_and((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1044:
#line 6430 "sql_yacc.yy"
    { (yyval.item)= new Item_func_shift_left((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1045:
#line 6432 "sql_yacc.yy"
    { (yyval.item)= new Item_func_shift_right((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1047:
#line 6436 "sql_yacc.yy"
    { (yyval.item)= new Item_func_plus((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1048:
#line 6437 "sql_yacc.yy"
    { (yyval.item)= new Item_func_minus((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1049:
#line 6439 "sql_yacc.yy"
    { (yyval.item)= new Item_date_add_interval((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].interval),0); }
    break;

  case 1050:
#line 6441 "sql_yacc.yy"
    { (yyval.item)= new Item_date_add_interval((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].interval),1); }
    break;

  case 1052:
#line 6445 "sql_yacc.yy"
    { (yyval.item)= new Item_func_mul((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1053:
#line 6446 "sql_yacc.yy"
    { (yyval.item)= new Item_func_div((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1054:
#line 6447 "sql_yacc.yy"
    { (yyval.item)= new Item_func_mod((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1055:
#line 6448 "sql_yacc.yy"
    { (yyval.item)= new Item_func_int_div((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1056:
#line 6449 "sql_yacc.yy"
    { (yyval.item)= new Item_func_mod((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1058:
#line 6453 "sql_yacc.yy"
    { (yyval.item)= new Item_func_bit_xor((yyvsp[-2].item),(yyvsp[0].item)); }
    break;

  case 1068:
#line 6461 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_eq_creator; }
    break;

  case 1069:
#line 6462 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ge_creator; }
    break;

  case 1070:
#line 6463 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_gt_creator; }
    break;

  case 1071:
#line 6464 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_le_creator; }
    break;

  case 1072:
#line 6465 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_lt_creator; }
    break;

  case 1073:
#line 6466 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ne_creator; }
    break;

  case 1074:
#line 6469 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1075:
#line 6470 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1076:
#line 6474 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 1082:
#line 6484 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_string((yyvsp[0].lex_str).str,
                                                      (yyvsp[0].lex_str).length,
                                                      thd->charset());
	    (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[-2].item), i1);
	  }
    break;

  case 1087:
#line 6496 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_concat((yyvsp[-2].item), (yyvsp[0].item)); }
    break;

  case 1088:
#line 6497 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[0].item); }
    break;

  case 1089:
#line 6499 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_neg((yyvsp[0].item)); }
    break;

  case 1090:
#line 6501 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_bit_neg((yyvsp[0].item)); }
    break;

  case 1091:
#line 6503 "sql_yacc.yy"
    { (yyval.item)= negate_expression(YYTHD, (yyvsp[0].item)); }
    break;

  case 1092:
#line 6505 "sql_yacc.yy"
    { 
            (yyval.item)= new (YYTHD->mem_root) Item_singlerow_subselect((yyvsp[-1].select_lex)); 
          }
    break;

  case 1093:
#line 6508 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[-1].item); }
    break;

  case 1094:
#line 6510 "sql_yacc.yy"
    {
	    (yyvsp[-1].item_list)->push_front((yyvsp[-3].item));
	    (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[-1].item_list));
	  }
    break;

  case 1095:
#line 6515 "sql_yacc.yy"
    {
	    (yyvsp[-1].item_list)->push_front((yyvsp[-3].item));
	    (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[-1].item_list));
	  }
    break;

  case 1096:
#line 6520 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_exists_subselect((yyvsp[-1].select_lex)); 
          }
    break;

  case 1097:
#line 6523 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[-1].item); }
    break;

  case 1098:
#line 6525 "sql_yacc.yy"
    {
            (yyvsp[-5].item_list)->push_front((yyvsp[-2].item));
            Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*(yyvsp[-5].item_list), (yyvsp[-1].num));
            Select->add_ftfunc_to_list(i1);
            (yyval.item)= i1;
          }
    break;

  case 1099:
#line 6532 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[0].item), ITEM_CAST_CHAR, NULL, NULL,
                                 &my_charset_bin);
	  }
    break;

  case 1100:
#line 6537 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    (yyval.item)= create_func_cast(YYTHD, (yyvsp[-3].item), (yyvsp[-1].cast_type), lex->length, lex->dec,
                                 lex->charset);
            if (!(yyval.item))
              MYSQL_YYABORT;
	  }
    break;

  case 1101:
#line 6545 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_case(* (yyvsp[-2].item_list), (yyvsp[-3].item), (yyvsp[-1].item) ); }
    break;

  case 1102:
#line 6547 "sql_yacc.yy"
    {
	    (yyval.item)= create_func_cast(YYTHD, (yyvsp[-3].item), (yyvsp[-1].cast_type), Lex->length, Lex->dec,
                                 Lex->charset);
            if (!(yyval.item))
              MYSQL_YYABORT;
	  }
    break;

  case 1103:
#line 6554 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_conv_charset((yyvsp[-3].item),(yyvsp[-1].charset)); }
    break;

  case 1104:
#line 6556 "sql_yacc.yy"
    {
	    if ((yyvsp[-1].item)->is_splocal())
	    {
	      Item_splocal *il= static_cast<Item_splocal *>((yyvsp[-1].item));

	      my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
	      MYSQL_YYABORT;
	    }
	    (yyval.item)= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
                                                         (yyvsp[-1].item));
	  }
    break;

  case 1105:
#line 6568 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
                                                        (yyvsp[-1].item)); }
    break;

  case 1106:
#line 6572 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[0].item),(yyvsp[-3].item),(yyvsp[-2].interval),0); }
    break;

  case 1107:
#line 6574 "sql_yacc.yy"
    {
            if ((yyvsp[0].item)->type() != Item::ROW_ITEM)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.item)= new (YYTHD->mem_root) Item_func_interval((Item_row *)(yyvsp[0].item));
          }
    break;

  case 1108:
#line 6592 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[-1].item_list)); }
    break;

  case 1109:
#line 6594 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[-3].item_list), (yyvsp[-1].charset)); }
    break;

  case 1110:
#line 6596 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
            Lex->safe_to_cache_query= 0;
          }
    break;

  case 1111:
#line 6601 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_typecast((yyvsp[-1].item)); }
    break;

  case 1112:
#line 6603 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_dayofmonth((yyvsp[-1].item)); }
    break;

  case 1113:
#line 6605 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_hour((yyvsp[-1].item)); }
    break;

  case 1114:
#line 6607 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_insert((yyvsp[-7].item),(yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1115:
#line 6609 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_left((yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1116:
#line 6611 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_minute((yyvsp[-1].item)); }
    break;

  case 1117:
#line 6613 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_month((yyvsp[-1].item)); }
    break;

  case 1118:
#line 6615 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_right((yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1119:
#line 6617 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_second((yyvsp[-1].item)); }
    break;

  case 1120:
#line 6619 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_time_typecast((yyvsp[-1].item)); }
    break;

  case 1121:
#line 6621 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_datetime_typecast((yyvsp[-1].item)); }
    break;

  case 1122:
#line 6623 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_add_time((yyvsp[-3].item), (yyvsp[-1].item), 1, 0); }
    break;

  case 1123:
#line 6625 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item)); }
    break;

  case 1124:
#line 6627 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[-1].item),(yyvsp[-3].item)); }
    break;

  case 1125:
#line 6629 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[-1].item),(yyvsp[-3].item)); }
    break;

  case 1126:
#line 6631 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item),(yyvsp[-3].item)); }
    break;

  case 1127:
#line 6633 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[-1].item)); }
    break;

  case 1128:
#line 6635 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[-1].item)); }
    break;

  case 1129:
#line 6637 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item)); }
    break;

  case 1130:
#line 6639 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item),(yyvsp[-3].item)); }
    break;

  case 1131:
#line 6641 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_user();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1132:
#line 6646 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_year((yyvsp[-1].item)); }
    break;

  case 1133:
#line 6663 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-3].item), (yyvsp[-1].item),
                                                             INTERVAL_DAY, 0);
          }
    break;

  case 1134:
#line 6668 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); }
    break;

  case 1135:
#line 6670 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1136:
#line 6675 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1137:
#line 6680 "sql_yacc.yy"
    {
	    (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local((yyvsp[-1].item));
	    Lex->safe_to_cache_query=0;
	  }
    break;

  case 1138:
#line 6685 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[-1].interval),0); }
    break;

  case 1139:
#line 6687 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[-1].interval),1); }
    break;

  case 1140:
#line 6689 "sql_yacc.yy"
    { (yyval.item)=new (YYTHD->mem_root) Item_extract( (yyvsp[-3].interval), (yyvsp[-1].item)); }
    break;

  case 1141:
#line 6691 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_get_format((yyvsp[-3].date_time_type), (yyvsp[-1].item)); }
    break;

  case 1142:
#line 6693 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1143:
#line 6698 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[-1].item));
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1144:
#line 6703 "sql_yacc.yy"
    { (yyval.item) = new (YYTHD->mem_root) Item_func_locate((yyvsp[-1].item),(yyvsp[-3].item)); }
    break;

  case 1145:
#line 6705 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-3].item), (yyvsp[-1].item),
                                                             INTERVAL_DAY, 1);
          }
    break;

  case 1146:
#line 6710 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); }
    break;

  case 1147:
#line 6712 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1148:
#line 6714 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1149:
#line 6716 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1150:
#line 6718 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1151:
#line 6720 "sql_yacc.yy"
    {
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local();
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1152:
#line 6728 "sql_yacc.yy"
    {
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local((yyvsp[-1].item));
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[-1].item));
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1153:
#line 6736 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-1].item),(yyvsp[-3].item),(yyvsp[-5].interval_time_st),0); }
    break;

  case 1154:
#line 6738 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_timestamp_diff((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[-5].interval_time_st)); }
    break;

  case 1155:
#line 6740 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_utc();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1156:
#line 6745 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_utc();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1157:
#line 6750 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_utc();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1158:
#line 6763 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_ascii((yyvsp[-1].item)); }
    break;

  case 1159:
#line 6765 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_charset((yyvsp[-1].item)); }
    break;

  case 1160:
#line 6767 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_coalesce(* (yyvsp[-1].item_list)); }
    break;

  case 1161:
#line 6769 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_collation((yyvsp[-1].item)); }
    break;

  case 1162:
#line 6771 "sql_yacc.yy"
    {
	    (yyval.item)= new (YYTHD->mem_root) Item_func_database();
            Lex->safe_to_cache_query=0;
	  }
    break;

  case 1163:
#line 6776 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_if((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1164:
#line 6778 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_microsecond((yyvsp[-1].item)); }
    break;

  case 1165:
#line 6780 "sql_yacc.yy"
    { (yyval.item) = new (YYTHD->mem_root) Item_func_mod( (yyvsp[-3].item), (yyvsp[-1].item)); }
    break;

  case 1166:
#line 6782 "sql_yacc.yy"
    { (yyval.item)=  new (YYTHD->mem_root) Item_func_old_password((yyvsp[-1].item)); }
    break;

  case 1167:
#line 6784 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item* i1;
            if (thd->variables.old_passwords)
              i1= new (thd->mem_root) Item_func_old_password((yyvsp[-1].item));
            else
              i1= new (thd->mem_root) Item_func_password((yyvsp[-1].item));
            (yyval.item)= i1;
	  }
    break;

  case 1168:
#line 6794 "sql_yacc.yy"
    { (yyval.item) = new (YYTHD->mem_root) Item_func_quarter((yyvsp[-1].item)); }
    break;

  case 1169:
#line 6796 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_repeat((yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1170:
#line 6798 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_replace((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1171:
#line 6800 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_round((yyvsp[-3].item),(yyvsp[-1].item),1); }
    break;

  case 1172:
#line 6802 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_int((char*) "0",
                                           thd->variables.default_week_format,
                                                   1);

            (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[-1].item), i1);
          }
    break;

  case 1173:
#line 6811 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_week((yyvsp[-3].item),(yyvsp[-1].item)); }
    break;

  case 1174:
#line 6813 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.item)= (yyvsp[0].item);
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 1175:
#line 6826 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_rel((yyvsp[-3].item), (yyvsp[-1].item),
                                               Item_func::SP_CONTAINS_FUNC));
          }
    break;

  case 1176:
#line 6832 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[-1].item_list),
                           Geometry::wkb_geometrycollection,
                           Geometry::wkb_point));
          }
    break;

  case 1177:
#line 6839 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[-1].item_list),
                           Geometry::wkb_linestring,
                           Geometry::wkb_point));
          }
    break;

  case 1178:
#line 6846 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[-1].item_list),
                           Geometry::wkb_multilinestring,
                           Geometry::wkb_linestring));
          }
    break;

  case 1179:
#line 6853 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[-1].item_list),
                           Geometry::wkb_multipoint,
                           Geometry::wkb_point));
          }
    break;

  case 1180:
#line 6860 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[-1].item_list),
                           Geometry::wkb_multipolygon,
                           Geometry::wkb_polygon));
          }
    break;

  case 1181:
#line 6867 "sql_yacc.yy"
    { (yyval.item)= GEOM_NEW(YYTHD, Item_func_point((yyvsp[-3].item),(yyvsp[-1].item))); }
    break;

  case 1182:
#line 6869 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[-1].item_list),
	                   Geometry::wkb_polygon,
                           Geometry::wkb_linestring));
          }
    break;

  case 1183:
#line 6888 "sql_yacc.yy"
    {
#ifdef HAVE_DLOPEN
          udf_func *udf= 0;
          LEX *lex= Lex;
          if (using_udf_functions &&
              (udf= find_udf((yyvsp[-1].lex_str).str, (yyvsp[-1].lex_str).length)) &&
              udf->type == UDFTYPE_AGGREGATE)
          {
            if (lex->current_select->inc_in_sum_expr())
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
          /* Temporary placing the result of find_udf in $3 */
          (yyval.udf)= udf;
#endif
        }
    break;

  case 1184:
#line 6907 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          Create_func *builder;
          Item *item= NULL;

          /*
            Implementation note:
            names are resolved with the following order:
            - MySQL native functions,
            - User Defined Functions,
            - Stored Functions (assuming the current <use> database)

            This will be revised with WL#2128 (SQL PATH)
          */
          builder= find_native_function_builder(thd, (yyvsp[-4].lex_str));
          if (builder)
          {
            item= builder->create(thd, (yyvsp[-4].lex_str), (yyvsp[-1].item_list));
          }
          else
          {
#ifdef HAVE_DLOPEN
            /* Retrieving the result of find_udf */
            udf_func *udf= (yyvsp[-2].udf);

            if (udf)
            {
              if (udf->type == UDFTYPE_AGGREGATE)
              {
                Select->in_sum_expr--;
              }

              item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[-1].item_list));
            }
            else
#endif
            {
              builder= find_qualified_function_builder(thd);
              DBUG_ASSERT(builder);
              item= builder->create(thd, (yyvsp[-4].lex_str), (yyvsp[-1].item_list));
            }
          }

          if (! ((yyval.item)= item))
          {
            MYSQL_YYABORT;
          }
        }
    break;

  case 1185:
#line 6956 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          Create_qfunc *builder;
          Item *item= NULL;

          /*
            The following in practice calls:
            <code>Create_sp_func::create()</code>
            and builds a stored function.

            However, it's important to maintain the interface between the
            parser and the implementation in item_create.cc clean,
            since this will change with WL#2128 (SQL PATH):
            - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
            function version(),
            - MySQL.version() is the SQL 2003 syntax for the native function
            version() (a vendor can specify any schema).
          */

          builder= find_qualified_function_builder(thd);
          DBUG_ASSERT(builder);
          item= builder->create(thd, (yyvsp[-5].lex_str), (yyvsp[-3].lex_str), true, (yyvsp[-1].item_list));

          if (! ((yyval.item)= item))
          {
            MYSQL_YYABORT;
          }
	}
    break;

  case 1186:
#line 6988 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); }
    break;

  case 1187:
#line 6990 "sql_yacc.yy"
    { (yyval.num)= FT_BOOL; }
    break;

  case 1188:
#line 6994 "sql_yacc.yy"
    { (yyval.num)= FT_NL;  }
    break;

  case 1189:
#line 6995 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1190:
#line 6999 "sql_yacc.yy"
    { (yyval.num)= 0;         }
    break;

  case 1191:
#line 7000 "sql_yacc.yy"
    { (yyval.num)= FT_EXPAND; }
    break;

  case 1192:
#line 7004 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1193:
#line 7005 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[0].item_list);}
    break;

  case 1194:
#line 7009 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1195:
#line 7011 "sql_yacc.yy"
    { (yyval.item_list)= Select->expr_list.pop(); }
    break;

  case 1196:
#line 7016 "sql_yacc.yy"
    {
	    Select->expr_list.head()->push_back((yyvsp[0].item));
	  }
    break;

  case 1197:
#line 7020 "sql_yacc.yy"
    {
	    Select->expr_list.head()->push_back((yyvsp[0].item));
	  }
    break;

  case 1198:
#line 7027 "sql_yacc.yy"
    {
          /*
           Use Item::name as a storage for the attribute value of user
           defined function argument. It is safe to use Item::name
           because the syntax will not allow having an explicit name here.
           See WL#1017 re. udf attributes.
          */
	  if ((yyvsp[0].lex_str).str)
          {
            (yyvsp[-2].item)->is_autogenerated_name= FALSE;
	    (yyvsp[-2].item)->set_name((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info);
          }
	  else
	    (yyvsp[-2].item)->set_name((yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), YYTHD->charset());
	  (yyval.item)= (yyvsp[-2].item);
	}
    break;

  case 1199:
#line 7047 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_avg((yyvsp[-1].item)); }
    break;

  case 1200:
#line 7049 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_avg_distinct((yyvsp[-1].item)); }
    break;

  case 1201:
#line 7051 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_and((yyvsp[-1].item)); }
    break;

  case 1202:
#line 7053 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_or((yyvsp[-1].item)); }
    break;

  case 1203:
#line 7055 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_xor((yyvsp[-1].item)); }
    break;

  case 1204:
#line 7057 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_count(new Item_int((int32) 0L,1)); }
    break;

  case 1205:
#line 7059 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_count((yyvsp[-1].item)); }
    break;

  case 1206:
#line 7061 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1207:
#line 7063 "sql_yacc.yy"
    { Select->in_sum_expr--; }
    break;

  case 1208:
#line 7065 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[-2].item_list)); }
    break;

  case 1209:
#line 7067 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_min((yyvsp[-1].item)); }
    break;

  case 1210:
#line 7074 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_min((yyvsp[-1].item)); }
    break;

  case 1211:
#line 7076 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_max((yyvsp[-1].item)); }
    break;

  case 1212:
#line 7078 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_max((yyvsp[-1].item)); }
    break;

  case 1213:
#line 7080 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_std((yyvsp[-1].item), 0); }
    break;

  case 1214:
#line 7082 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_variance((yyvsp[-1].item), 0); }
    break;

  case 1215:
#line 7084 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_std((yyvsp[-1].item), 1); }
    break;

  case 1216:
#line 7086 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_variance((yyvsp[-1].item), 1); }
    break;

  case 1217:
#line 7088 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_sum((yyvsp[-1].item)); }
    break;

  case 1218:
#line 7090 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_sum_distinct((yyvsp[-1].item)); }
    break;

  case 1219:
#line 7092 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1220:
#line 7096 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
	    sel->in_sum_expr--;
	    (yyval.item)=new Item_func_group_concat(Lex->current_context(), (yyvsp[-5].num), (yyvsp[-3].item_list),
                                          sel->gorder_list, (yyvsp[-1].string));
	    (yyvsp[-3].item_list)->empty();
	  }
    break;

  case 1221:
#line 7106 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1222:
#line 7114 "sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[0].item);
          }
    break;

  case 1223:
#line 7121 "sql_yacc.yy"
    {
            (yyval.item)= new Item_func_set_user_var((yyvsp[-2].lex_str), (yyvsp[0].item));
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1224:
#line 7127 "sql_yacc.yy"
    {
            (yyval.item)= new Item_func_get_user_var((yyvsp[0].lex_str));
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1225:
#line 7133 "sql_yacc.yy"
    {
            if ((yyvsp[-1].lex_str).str && (yyvsp[0].lex_str).str && check_reserved_words(&(yyvsp[-1].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (!((yyval.item)= get_system_var(YYTHD, (yyvsp[-2].var_type), (yyvsp[-1].lex_str), (yyvsp[0].lex_str))))
              MYSQL_YYABORT;
          }
    break;

  case 1226:
#line 7145 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1227:
#line 7146 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1228:
#line 7150 "sql_yacc.yy"
    {
        (yyval.string)= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
      }
    break;

  case 1229:
#line 7153 "sql_yacc.yy"
    { (yyval.string) = (yyvsp[0].string); }
    break;

  case 1230:
#line 7158 "sql_yacc.yy"
    {
            Select->gorder_list = NULL;
	  }
    break;

  case 1231:
#line 7162 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->gorder_list=
	      (SQL_LIST*) sql_memdup((char*) &select->order_list,
				     sizeof(st_sql_list));
	    select->order_list.empty();
	  }
    break;

  case 1232:
#line 7173 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  if (lex->current_select->inc_in_sum_expr())
	  {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
	}
    break;

  case 1233:
#line 7182 "sql_yacc.yy"
    {
	  Select->in_sum_expr--;
	  (yyval.item)= (yyvsp[0].item);
	}
    break;

  case 1234:
#line 7188 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
    break;

  case 1235:
#line 7189 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; }
    break;

  case 1236:
#line 7190 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
    break;

  case 1237:
#line 7191 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1238:
#line 7192 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1239:
#line 7193 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1240:
#line 7194 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1241:
#line 7195 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1242:
#line 7196 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1243:
#line 7197 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1244:
#line 7198 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
    break;

  case 1245:
#line 7202 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1246:
#line 7203 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[0].item_list);}
    break;

  case 1247:
#line 7207 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1248:
#line 7209 "sql_yacc.yy"
    { (yyval.item_list)= Select->expr_list.pop(); }
    break;

  case 1249:
#line 7212 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[0].item)); }
    break;

  case 1250:
#line 7213 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[0].item)); }
    break;

  case 1251:
#line 7216 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[0].item_list); }
    break;

  case 1252:
#line 7217 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[-1].item_list); }
    break;

  case 1253:
#line 7220 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1254:
#line 7222 "sql_yacc.yy"
    { (yyval.item_list)= Select->expr_list.pop(); }
    break;

  case 1255:
#line 7225 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[0].item)); }
    break;

  case 1256:
#line 7226 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[0].item)); }
    break;

  case 1257:
#line 7229 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1258:
#line 7230 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[0].item); }
    break;

  case 1259:
#line 7233 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1260:
#line 7234 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[0].item); }
    break;

  case 1261:
#line 7238 "sql_yacc.yy"
    {
            (yyval.item_list)= new List<Item>;
            (yyval.item_list)->push_back((yyvsp[-2].item));
            (yyval.item_list)->push_back((yyvsp[0].item));
          }
    break;

  case 1262:
#line 7244 "sql_yacc.yy"
    {
            (yyvsp[-4].item_list)->push_back((yyvsp[-2].item));
            (yyvsp[-4].item_list)->push_back((yyvsp[0].item));
            (yyval.item_list)= (yyvsp[-4].item_list);
          }
    break;

  case 1263:
#line 7253 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[0].table_list); }
    break;

  case 1264:
#line 7255 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
              MYSQL_YYABORT;
          }
    break;

  case 1265:
#line 7263 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); }
    break;

  case 1266:
#line 7268 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[0].table_list); }
    break;

  case 1267:
#line 7270 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list)));
          }
    break;

  case 1268:
#line 7290 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); }
    break;

  case 1269:
#line 7292 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); (yyvsp[0].table_list)->straight=1; }
    break;

  case 1270:
#line 7295 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[-3].table_list), (yyvsp[-1].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1271:
#line 7303 "sql_yacc.yy"
    {
            add_join_on((yyvsp[-3].table_list),(yyvsp[0].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1272:
#line 7310 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[-3].table_list), (yyvsp[-1].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1273:
#line 7318 "sql_yacc.yy"
    {
            (yyvsp[-3].table_list)->straight=1;
            add_join_on((yyvsp[-3].table_list),(yyvsp[0].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1274:
#line 7326 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list));
	  }
    break;

  case 1275:
#line 7330 "sql_yacc.yy"
    { add_join_natural((yyvsp[-7].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyval.table_list)=(yyvsp[-5].table_list); }
    break;

  case 1276:
#line 7332 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && ((yyval.table_list)=(yyvsp[0].table_list)));
            add_join_natural((yyvsp[-3].table_list),(yyvsp[0].table_list),NULL,Select);
          }
    break;

  case 1277:
#line 7340 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[-5].table_list), (yyvsp[-1].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1278:
#line 7348 "sql_yacc.yy"
    {
            add_join_on((yyvsp[-3].table_list),(yyvsp[0].item));
            Lex->pop_context();
            (yyvsp[-3].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[-3].table_list);
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1279:
#line 7356 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list));
	  }
    break;

  case 1280:
#line 7360 "sql_yacc.yy"
    { 
            add_join_natural((yyvsp[-9].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); 
            (yyvsp[-5].table_list)->outer_join|=JOIN_TYPE_LEFT; 
            (yyval.table_list)=(yyvsp[-5].table_list); 
          }
    break;

  case 1281:
#line 7366 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list));
 	    add_join_natural((yyvsp[-5].table_list),(yyvsp[0].table_list),NULL,Select);
	    (yyvsp[0].table_list)->outer_join|=JOIN_TYPE_LEFT;
	    (yyval.table_list)=(yyvsp[0].table_list);
	  }
    break;

  case 1282:
#line 7376 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[-5].table_list), (yyvsp[-1].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1283:
#line 7384 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_on((yyval.table_list), (yyvsp[0].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1284:
#line 7393 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list));
	  }
    break;

  case 1285:
#line 7397 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_natural((yyval.table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select);
          }
    break;

  case 1286:
#line 7404 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list));
	    add_join_natural((yyvsp[0].table_list),(yyvsp[-5].table_list),NULL,Select);
	    LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
	  }
    break;

  case 1287:
#line 7413 "sql_yacc.yy"
    {}
    break;

  case 1288:
#line 7414 "sql_yacc.yy"
    {}
    break;

  case 1289:
#line 7415 "sql_yacc.yy"
    {}
    break;

  case 1290:
#line 7420 "sql_yacc.yy"
    {
	  SELECT_LEX *sel= Select;
	  sel->table_join_options= 0;
	}
    break;

  case 1291:
#line 7425 "sql_yacc.yy"
    {
	  if (!((yyval.table_list)= Select->add_table_to_list(YYTHD, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr),
					   Select->get_table_join_options(),
					   Lex->lock_option,
					   Select->pop_index_hints())))
	    MYSQL_YYABORT;
          Select->add_joined_table((yyval.table_list));
	}
    break;

  case 1292:
#line 7435 "sql_yacc.yy"
    {
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[-5].table_list), (yyvsp[-1].table_list)))
              MYSQL_YYABORT;

          }
    break;

  case 1293:
#line 7442 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            MYSQL_YYABORT_UNLESS((yyvsp[-8].table_list) && (yyvsp[-4].table_list));
            add_join_on((yyvsp[-4].table_list),(yyvsp[-1].item));
            Lex->pop_context();
            (yyvsp[-4].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[-4].table_list);
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
              MYSQL_YYABORT;
          }
    break;

  case 1294:
#line 7453 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if ((yyvsp[-2].num))
            {
	      if (sel->set_braces(1))
	      {
                my_parse_error(ER(ER_SYNTAX_ERROR));
	        MYSQL_YYABORT;
	      }
              /* select in braces, can't contain global parameters */
	      if (sel->master_unit()->fake_select_lex)
                sel->master_unit()->global_parameters=
                   sel->master_unit()->fake_select_lex;
            }
            if ((yyvsp[-1].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
            (yyval.table_list)= 0;
            /* incomplete derived tables return NULL, we must be
               nested in select_derived rule to be here. */
          }
    break;

  case 1295:
#line 7475 "sql_yacc.yy"
    {
          /* Use $2 instead of Lex->current_select as derived table will
             alter value of Lex->current_select. */

          if (!((yyvsp[-3].table_list) || (yyvsp[0].lex_str_ptr)) && (yyvsp[-4].select_lex)->embedding &&
              !(yyvsp[-4].select_lex)->embedding->nested_join->join_list.elements)
          {
            /* we have a derived table ($3 == NULL) but no alias,
               Since we are nested in further parentheses so we
               can pass NULL to the outer level parentheses
               Permits parsing of "((((select ...))) as xyz)" */
            (yyval.table_list)= 0;
          }
          else
          if (!(yyvsp[-3].table_list))
          {
            /* Handle case of derived table, alias may be NULL if there
               are no outer parentheses, add_table_to_list() will throw
               error in this case */
	    LEX *lex=Lex;
            SELECT_LEX *sel= lex->current_select;
	    SELECT_LEX_UNIT *unit= sel->master_unit();
	    lex->current_select= sel= unit->outer_select();
	    if (!((yyval.table_list)= sel->
                  add_table_to_list(lex->thd, new Table_ident(unit), (yyvsp[0].lex_str_ptr), 0,
				    TL_READ)))

	      MYSQL_YYABORT;
            sel->add_joined_table((yyval.table_list));
            lex->pop_context();
          }
	  else
          if ((yyvsp[-2].num) || (yyvsp[0].lex_str_ptr))
	  {
            /* simple nested joins cannot have aliases or unions */
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
          else
            (yyval.table_list)= (yyvsp[-3].table_list);
	}
    break;

  case 1296:
#line 7521 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if ((yyvsp[0].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
          }
    break;

  case 1297:
#line 7527 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            /* for normal joins, $3 != NULL and end_nested_join() != NULL,
               for derived tables, both must equal NULL */

            if (!((yyval.table_list)= (yyvsp[-2].select_lex)->end_nested_join(lex->thd)) && (yyvsp[0].table_list))
              MYSQL_YYABORT;
            if (!(yyvsp[0].table_list) && (yyval.table_list))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
	      MYSQL_YYABORT;
            }
          }
    break;

  case 1298:
#line 7543 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  lex->derived_tables|= DERIVED_SUBQUERY;
          if (!lex->expr_allows_subselect ||
              lex->sql_command == (int)SQLCOM_PURGE)
	  {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
	  if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
              mysql_new_select(lex, 1))
	    MYSQL_YYABORT;
	  mysql_init_select(lex);
	  lex->current_select->linkage= DERIVED_TABLE_TYPE;
	  lex->current_select->parsing_place= SELECT_LIST;
	}
    break;

  case 1299:
#line 7560 "sql_yacc.yy"
    {
	  Select->parsing_place= NO_MATTER;
	}
    break;

  case 1301:
#line 7567 "sql_yacc.yy"
    { (yyval.select_lex)= Select; }
    break;

  case 1302:
#line 7572 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (! lex->parsing_options.allows_derived)
            {
              my_error(ER_VIEW_SELECT_DERIVED, MYF(0));
              MYSQL_YYABORT;
            }

            SELECT_LEX *sel= lex->current_select;
            TABLE_LIST *embedding;
            if (!sel->embedding || sel->end_nested_join(lex->thd))
	    {
              /* we are not in parentheses */
              my_parse_error(ER(ER_SYNTAX_ERROR));
	      MYSQL_YYABORT;
	    }
            embedding= Select->embedding;
            (yyval.num)= embedding &&
                !embedding->nested_join->join_list.elements;
            /* return true if we are deeply nested */
          }
    break;

  case 1303:
#line 7597 "sql_yacc.yy"
    {}
    break;

  case 1304:
#line 7598 "sql_yacc.yy"
    {}
    break;

  case 1305:
#line 7602 "sql_yacc.yy"
    {
            (yyval.num)= global_system_variables.old_mode ? 
                  INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; 
	  }
    break;

  case 1306:
#line 7606 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
    break;

  case 1307:
#line 7607 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_ORDER; }
    break;

  case 1308:
#line 7608 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_GROUP; }
    break;

  case 1309:
#line 7612 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_FORCE; }
    break;

  case 1310:
#line 7613 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_IGNORE; }
    break;

  case 1311:
#line 7618 "sql_yacc.yy"
    {
         Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num));
	  }
    break;

  case 1313:
#line 7623 "sql_yacc.yy"
    {
         Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num));
       }
    break;

  case 1318:
#line 7636 "sql_yacc.yy"
    { Select->alloc_index_hints(YYTHD); }
    break;

  case 1320:
#line 7640 "sql_yacc.yy"
    {  Select->clear_index_hints(); }
    break;

  case 1322:
#line 7645 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, NULL, 0); }
    break;

  case 1323:
#line 7646 "sql_yacc.yy"
    {}
    break;

  case 1324:
#line 7650 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); }
    break;

  case 1325:
#line 7652 "sql_yacc.yy"
    { 
            Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); 
          }
    break;

  case 1328:
#line 7664 "sql_yacc.yy"
    {
            if (!((yyval.string_list)= new List<String>))
	      MYSQL_YYABORT;
            (yyval.string_list)->push_back(new (YYTHD->mem_root)
                              String((const char *) (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length,
                                      system_charset_info));
	  }
    break;

  case 1329:
#line 7672 "sql_yacc.yy"
    {
            (yyvsp[-2].string_list)->push_back(new (YYTHD->mem_root)
                              String((const char *) (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length,
                                      system_charset_info));
            (yyval.string_list)= (yyvsp[-2].string_list);
	  }
    break;

  case 1330:
#line 7680 "sql_yacc.yy"
    {}
    break;

  case 1331:
#line 7681 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_HOUR; }
    break;

  case 1332:
#line 7682 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
    break;

  case 1333:
#line 7683 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MINUTE; }
    break;

  case 1334:
#line 7684 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_SECOND; }
    break;

  case 1335:
#line 7685 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
    break;

  case 1336:
#line 7686 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
    break;

  case 1337:
#line 7687 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_SECOND; }
    break;

  case 1338:
#line 7688 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MICROSECOND; }
    break;

  case 1339:
#line 7689 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
    break;

  case 1340:
#line 7690 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
    break;

  case 1341:
#line 7691 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
    break;

  case 1342:
#line 7692 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_YEAR_MONTH; }
    break;

  case 1343:
#line 7695 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_DAY; }
    break;

  case 1344:
#line 7696 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_WEEK; }
    break;

  case 1345:
#line 7697 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_HOUR; }
    break;

  case 1346:
#line 7698 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
    break;

  case 1347:
#line 7699 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MINUTE; }
    break;

  case 1348:
#line 7700 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MONTH; }
    break;

  case 1349:
#line 7701 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_QUARTER; }
    break;

  case 1350:
#line 7702 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_SECOND; }
    break;

  case 1351:
#line 7703 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_YEAR; }
    break;

  case 1352:
#line 7707 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;}
    break;

  case 1353:
#line 7708 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;}
    break;

  case 1354:
#line 7709 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1355:
#line 7710 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1359:
#line 7719 "sql_yacc.yy"
    { (yyval.lex_str_ptr)=0; }
    break;

  case 1360:
#line 7721 "sql_yacc.yy"
    { (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str),sizeof(LEX_STRING)); }
    break;

  case 1363:
#line 7729 "sql_yacc.yy"
    { Select->where= 0; }
    break;

  case 1364:
#line 7731 "sql_yacc.yy"
    {
            Select->parsing_place= IN_WHERE;
          }
    break;

  case 1365:
#line 7735 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
	    select->where= (yyvsp[0].item);
            select->parsing_place= NO_MATTER;
	    if ((yyvsp[0].item))
	      (yyvsp[0].item)->top_level_item();
	  }
    break;

  case 1367:
#line 7747 "sql_yacc.yy"
    {
	    Select->parsing_place= IN_HAVING;
          }
    break;

  case 1368:
#line 7751 "sql_yacc.yy"
    {
	    SELECT_LEX *sel= Select;
	    sel->having= (yyvsp[0].item);
	    sel->parsing_place= NO_MATTER;
	    if ((yyvsp[0].item))
	      (yyvsp[0].item)->top_level_item();
	  }
    break;

  case 1369:
#line 7762 "sql_yacc.yy"
    {
            Lex->escape_used= TRUE;
            (yyval.item)= (yyvsp[0].item);
          }
    break;

  case 1370:
#line 7767 "sql_yacc.yy"
    {
            Lex->escape_used= FALSE;
            (yyval.item)= ((YYTHD->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
		 new Item_string("", 0, &my_charset_latin1) :
                 new Item_string("\\", 1, &my_charset_latin1));
          }
    break;

  case 1373:
#line 7786 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; }
    break;

  case 1374:
#line 7788 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; }
    break;

  case 1375:
#line 7791 "sql_yacc.yy"
    {}
    break;

  case 1376:
#line 7793 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
	    {
	      my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
		       "global union parameters");
	      MYSQL_YYABORT;
	    }
	    lex->current_select->olap= CUBE_TYPE;
	    my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
	    MYSQL_YYABORT;	/* To be deleted in 5.1 */
	  }
    break;

  case 1377:
#line 7806 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
	    {
	      my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
		       "global union parameters");
	      MYSQL_YYABORT;
	    }
	    lex->current_select->olap= ROLLUP_TYPE;
	  }
    break;

  case 1381:
#line 7833 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            bool ascending= ((yyvsp[0].num) == 1) ? true : false;
            if (add_order_to_list(thd, (yyvsp[-1].item), ascending))
              MYSQL_YYABORT;
          }
    break;

  case 1384:
#line 7851 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          SELECT_LEX *sel= lex->current_select;
          SELECT_LEX_UNIT *unit= sel-> master_unit();
	  if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
	      sel->olap != UNSPECIFIED_OLAP_TYPE)
	  {
	    my_error(ER_WRONG_USAGE, MYF(0),
                     "CUBE/ROLLUP", "ORDER BY");
	    MYSQL_YYABORT;
	  }
          if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
          {
            /*
              A query of the of the form (SELECT ...) ORDER BY order_list is
              executed in the same way as the query
              SELECT ... ORDER BY order_list
              unless the SELECT construct contains ORDER BY or LIMIT clauses.
              Otherwise we create a fake SELECT_LEX if it has not been created
              yet.
            */
            SELECT_LEX *first_sl= unit->first_select();
            if (!unit->is_union() &&
                (first_sl->order_list.elements || 
                 first_sl->select_limit) &&            
                unit->add_fake_select_lex(lex->thd))
              MYSQL_YYABORT;
          }
	}
    break;

  case 1386:
#line 7883 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; }
    break;

  case 1387:
#line 7885 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; }
    break;

  case 1388:
#line 7888 "sql_yacc.yy"
    { (yyval.num) =  1; }
    break;

  case 1389:
#line 7889 "sql_yacc.yy"
    { (yyval.num) =1; }
    break;

  case 1390:
#line 7890 "sql_yacc.yy"
    { (yyval.num) =0; }
    break;

  case 1391:
#line 7895 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  SELECT_LEX *sel= lex->current_select;
          sel->offset_limit= 0;
          sel->select_limit= 0;
	}
    break;

  case 1392:
#line 7901 "sql_yacc.yy"
    {}
    break;

  case 1393:
#line 7905 "sql_yacc.yy"
    {}
    break;

  case 1394:
#line 7906 "sql_yacc.yy"
    {}
    break;

  case 1395:
#line 7910 "sql_yacc.yy"
    {}
    break;

  case 1396:
#line 7915 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[0].item);
            sel->offset_limit= 0;
	    sel->explicit_limit= 1;
	  }
    break;

  case 1397:
#line 7922 "sql_yacc.yy"
    {
	    SELECT_LEX *sel= Select;
	    sel->select_limit= (yyvsp[0].item);
	    sel->offset_limit= (yyvsp[-2].item);
	    sel->explicit_limit= 1;
	  }
    break;

  case 1398:
#line 7929 "sql_yacc.yy"
    {
	    SELECT_LEX *sel= Select;
	    sel->select_limit= (yyvsp[-2].item);
	    sel->offset_limit= (yyvsp[0].item);
	    sel->explicit_limit= 1;
	  }
    break;

  case 1399:
#line 7938 "sql_yacc.yy"
    {
          ((Item_param *) (yyvsp[0].item))->set_strict_type(INT_RESULT);
        }
    break;

  case 1400:
#line 7941 "sql_yacc.yy"
    { (yyval.item)= new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); }
    break;

  case 1401:
#line 7942 "sql_yacc.yy"
    { (yyval.item)= new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); }
    break;

  case 1402:
#line 7943 "sql_yacc.yy"
    { (yyval.item)= new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); }
    break;

  case 1403:
#line 7948 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->current_select->select_limit= 0;
	}
    break;

  case 1404:
#line 7953 "sql_yacc.yy"
    {
	  SELECT_LEX *sel= Select;
	  sel->select_limit= (yyvsp[0].item);
	  sel->explicit_limit= 1;
	}
    break;

  case 1405:
#line 7960 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1406:
#line 7961 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); }
    break;

  case 1407:
#line 7962 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1408:
#line 7963 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1409:
#line 7964 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1410:
#line 7965 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1411:
#line 7969 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1412:
#line 7970 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); }
    break;

  case 1413:
#line 7971 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1414:
#line 7972 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1415:
#line 7973 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1416:
#line 7977 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1417:
#line 7978 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1418:
#line 7979 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1419:
#line 7980 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1420:
#line 7981 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1421:
#line 7985 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1422:
#line 7986 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1423:
#line 7987 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); }
    break;

  case 1424:
#line 7988 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1425:
#line 7993 "sql_yacc.yy"
    { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
    break;

  case 1429:
#line 8004 "sql_yacc.yy"
    {
	    LEX *lex=Lex;

            if (! lex->parsing_options.allows_select_procedure)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

	    if (&lex->select_lex != lex->current_select)
	    {
	      my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
	      MYSQL_YYABORT;
	    }
	    lex->proc_list.elements=0;
	    lex->proc_list.first=0;
	    lex->proc_list.next= (uchar**) &lex->proc_list.first;
	    if (add_proc_to_list(lex->thd, new Item_field(&lex->
                                                          current_select->
                                                          context,
                                                          NULL,NULL,(yyvsp[0].lex_str).str)))
	      MYSQL_YYABORT;
	    Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
	  }
    break;

  case 1431:
#line 8032 "sql_yacc.yy"
    {}
    break;

  case 1432:
#line 8033 "sql_yacc.yy"
    {}
    break;

  case 1435:
#line 8041 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

	    if (add_proc_to_list(thd, (yyvsp[-1].item)))
	      MYSQL_YYABORT;
	    if (!(yyvsp[-1].item)->name)
              (yyvsp[-1].item)->set_name((yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset());
	  }
    break;

  case 1436:
#line 8053 "sql_yacc.yy"
    {
             LEX *lex=Lex;
	     if (!lex->describe && (!(lex->result= new select_dumpvar())))
	        MYSQL_YYABORT;
	   }
    break;

  case 1437:
#line 8059 "sql_yacc.yy"
    {}
    break;

  case 1439:
#line 8064 "sql_yacc.yy"
    {}
    break;

  case 1440:
#line 8069 "sql_yacc.yy"
    {
             LEX *lex=Lex;
	     if (lex->result) 
	       ((select_dumpvar *)lex->result)->var_list.push_back( new my_var((yyvsp[0].lex_str),0,0,(enum_field_types)0));
	     else
               /*
                 The parser won't create select_result instance only
	         if it's an EXPLAIN.
               */
               DBUG_ASSERT(lex->describe);
	   }
    break;

  case 1441:
#line 8081 "sql_yacc.yy"
    {
             LEX *lex=Lex;
	     sp_variable_t *t;

	     if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[0].lex_str))))
	     {
	       my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str);
	       MYSQL_YYABORT;
	     }
	     if (lex->result)
             {
               my_var *var;
	       ((select_dumpvar *)lex->result)->
                 var_list.push_back(var= new my_var((yyvsp[0].lex_str),1,t->offset,t->type));
#ifndef DBUG_OFF
	       if (var)
		 var->sp= lex->sphead;
#endif
             }
	     else
	     {
               /*
                 The parser won't create select_result instance only
	         if it's an EXPLAIN.
               */
               DBUG_ASSERT(lex->describe);
	     }
	   }
    break;

  case 1442:
#line 8113 "sql_yacc.yy"
    {
          if (! Lex->parsing_options.allows_select_into)
          {
            my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
            MYSQL_YYABORT;
          }
	}
    break;

  case 1444:
#line 8125 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str, 0)) ||
              !(lex->result= new select_export(lex->exchange)))
            MYSQL_YYABORT;
	}
    break;

  case 1446:
#line 8134 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (!lex->describe)
	  {
	    lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
	    if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str,1)))
	      MYSQL_YYABORT;
	    if (!(lex->result= new select_dump(lex->exchange)))
	      MYSQL_YYABORT;
	  }
	}
    break;

  case 1447:
#line 8146 "sql_yacc.yy"
    {
	  Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
	}
    break;

  case 1448:
#line 8156 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command = SQLCOM_DO;
	  mysql_init_select(lex);
	}
    break;

  case 1449:
#line 8162 "sql_yacc.yy"
    {
	  Lex->insert_list= (yyvsp[0].item_list);
	}
    break;

  case 1450:
#line 8173 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command = SQLCOM_DROP_TABLE;
	  lex->drop_temporary= (yyvsp[-4].num);
	  lex->drop_if_exists= (yyvsp[-2].num);
	}
    break;

  case 1451:
#line 8179 "sql_yacc.yy"
    {}
    break;

  case 1452:
#line 8180 "sql_yacc.yy"
    {
	     LEX *lex=Lex;
	     lex->sql_command= SQLCOM_DROP_INDEX;
	     lex->alter_info.reset();
             lex->alter_info.flags= ALTER_DROP_INDEX;
	     lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
                                                                (yyvsp[-3].lex_str).str));
	     if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), NULL,
							TL_OPTION_UPDATING))
	      MYSQL_YYABORT;
	  }
    break;

  case 1453:
#line 8192 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_DROP_DB;
	    lex->drop_if_exists=(yyvsp[-1].num);
	    lex->name= (yyvsp[0].lex_str);
	 }
    break;

  case 1454:
#line 8199 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    if (lex->sphead)
	    {
	      my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
	      MYSQL_YYABORT;
	    }
	    lex->sql_command = SQLCOM_DROP_FUNCTION;
	    lex->drop_if_exists= (yyvsp[-1].num);
	    lex->spname= (yyvsp[0].spname);
	  }
    break;

  case 1455:
#line 8211 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    if (lex->sphead)
	    {
	      my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
	      MYSQL_YYABORT;
	    }
	    lex->sql_command = SQLCOM_DROP_PROCEDURE;
	    lex->drop_if_exists= (yyvsp[-1].num);
	    lex->spname= (yyvsp[0].spname);
	  }
    break;

  case 1456:
#line 8223 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_DROP_USER;
          }
    break;

  case 1457:
#line 8227 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->sql_command= SQLCOM_DROP_VIEW;
	    lex->drop_if_exists= (yyvsp[-2].num);
	  }
    break;

  case 1458:
#line 8233 "sql_yacc.yy"
    {
            Lex->drop_if_exists= (yyvsp[-1].num);
            Lex->spname= (yyvsp[0].spname);
            Lex->sql_command = SQLCOM_DROP_EVENT;
          }
    break;

  case 1459:
#line 8239 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_TRIGGER;
            lex->drop_if_exists= (yyvsp[-1].num);
            lex->spname= (yyvsp[0].spname);
	  }
    break;

  case 1460:
#line 8246 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE;
          }
    break;

  case 1461:
#line 8251 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
         }
    break;

  case 1462:
#line 8256 "sql_yacc.yy"
    {
          Lex->sql_command = SQLCOM_DROP_SERVER;
          Lex->drop_if_exists= (yyvsp[-1].num);
          Lex->server_options.server_name= (yyvsp[0].lex_str).str;
          Lex->server_options.server_name_length= (yyvsp[0].lex_str).length;
        }
    break;

  case 1465:
#line 8270 "sql_yacc.yy"
    {
	  if (!Select->add_table_to_list(YYTHD, (yyvsp[0].table), NULL, TL_OPTION_UPDATING))
	    MYSQL_YYABORT;
	}
    break;

  case 1466:
#line 8277 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1467:
#line 8278 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1468:
#line 8282 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1469:
#line 8283 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1470:
#line 8291 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  lex->sql_command= SQLCOM_INSERT;
	  lex->duplicates= DUP_ERROR; 
	  mysql_init_select(lex);
	  /* for subselects */
          lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
	}
    break;

  case 1471:
#line 8300 "sql_yacc.yy"
    {
	  Select->set_lock_for_tables((yyvsp[-2].lock_type));
	  Lex->current_select= &Lex->select_lex;
	}
    break;

  case 1472:
#line 8305 "sql_yacc.yy"
    {}
    break;

  case 1473:
#line 8310 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command = SQLCOM_REPLACE;
	  lex->duplicates= DUP_REPLACE;
	  mysql_init_select(lex);
	}
    break;

  case 1474:
#line 8317 "sql_yacc.yy"
    {
	  Select->set_lock_for_tables((yyvsp[-1].lock_type));
	  Lex->current_select= &Lex->select_lex;
	}
    break;

  case 1475:
#line 8322 "sql_yacc.yy"
    {}
    break;

  case 1476:
#line 8327 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              If it is SP we do not allow insert optimisation whan result of
              insert visible only after the table unlocking but everyone can
              read table.
            */
            (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
#else
            (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
#endif
          }
    break;

  case 1477:
#line 8339 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1478:
#line 8340 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1479:
#line 8341 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE; }
    break;

  case 1480:
#line 8345 "sql_yacc.yy"
    { (yyval.lock_type)= (yyvsp[0].lock_type); }
    break;

  case 1481:
#line 8346 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1482:
#line 8349 "sql_yacc.yy"
    {}
    break;

  case 1483:
#line 8350 "sql_yacc.yy"
    {}
    break;

  case 1484:
#line 8354 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->field_list.empty();
	  lex->many_values.empty();
	  lex->insert_list=0;
	}
    break;

  case 1485:
#line 8362 "sql_yacc.yy"
    {}
    break;

  case 1486:
#line 8363 "sql_yacc.yy"
    {}
    break;

  case 1487:
#line 8364 "sql_yacc.yy"
    {}
    break;

  case 1488:
#line 8366 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    if (!(lex->insert_list = new List_item) ||
		lex->many_values.push_back(lex->insert_list))
	      MYSQL_YYABORT;
	   }
    break;

  case 1490:
#line 8375 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[0].item)); }
    break;

  case 1491:
#line 8376 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[0].item)); }
    break;

  case 1492:
#line 8379 "sql_yacc.yy"
    {}
    break;

  case 1493:
#line 8380 "sql_yacc.yy"
    {}
    break;

  case 1494:
#line 8381 "sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 1495:
#line 8381 "sql_yacc.yy"
    {}
    break;

  case 1496:
#line 8382 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 1497:
#line 8382 "sql_yacc.yy"
    {}
    break;

  case 1502:
#line 8396 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->field_list.push_back((yyvsp[-2].item)) ||
	      lex->insert_list->push_back((yyvsp[0].item)))
	    MYSQL_YYABORT;
	 }
    break;

  case 1503:
#line 8403 "sql_yacc.yy"
    {}
    break;

  case 1504:
#line 8404 "sql_yacc.yy"
    {}
    break;

  case 1505:
#line 8408 "sql_yacc.yy"
    {}
    break;

  case 1506:
#line 8409 "sql_yacc.yy"
    {}
    break;

  case 1507:
#line 8414 "sql_yacc.yy"
    {
	    if (!(Lex->insert_list = new List_item))
	      MYSQL_YYABORT;
	 }
    break;

  case 1508:
#line 8419 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->many_values.push_back(lex->insert_list))
	    MYSQL_YYABORT;
	 }
    break;

  case 1509:
#line 8426 "sql_yacc.yy"
    {}
    break;

  case 1511:
#line 8431 "sql_yacc.yy"
    {
	  if (Lex->insert_list->push_back((yyvsp[0].item)))
	    MYSQL_YYABORT;
	}
    break;

  case 1512:
#line 8436 "sql_yacc.yy"
    {
	    if (Lex->insert_list->push_back((yyvsp[0].item)))
	      MYSQL_YYABORT;
	  }
    break;

  case 1513:
#line 8443 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[0].item);}
    break;

  case 1514:
#line 8444 "sql_yacc.yy"
    {(yyval.item)= new Item_default_value(Lex->current_context()); }
    break;

  case 1516:
#line 8449 "sql_yacc.yy"
    { Lex->duplicates= DUP_UPDATE; }
    break;

  case 1518:
#line 8457 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  mysql_init_select(lex);
          lex->sql_command= SQLCOM_UPDATE;
	  lex->lock_option= TL_UNLOCK; 	/* Will be set later */
	  lex->duplicates= DUP_ERROR; 
        }
    break;

  case 1519:
#line 8466 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
          if (lex->select_lex.table_list.elements > 1)
            lex->sql_command= SQLCOM_UPDATE_MULTI;
	  else if (lex->select_lex.get_table_list()->derived)
	  {
	    /* it is single table update and it is update of derived table */
	    my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
                     lex->select_lex.get_table_list()->alias, "UPDATE");
	    MYSQL_YYABORT;
	  }
          /*
            In case of multi-update setting write lock for all tables may
            be too pessimistic. We will decrease lock level if possible in
            mysql_multi_update().
          */
          Select->set_lock_for_tables((yyvsp[-4].lock_type));
	}
    break;

  case 1520:
#line 8484 "sql_yacc.yy"
    {}
    break;

  case 1523:
#line 8493 "sql_yacc.yy"
    {
	  if (add_item_to_list(YYTHD, (yyvsp[-2].item)) || add_value_to_list(YYTHD, (yyvsp[0].item)))
	    MYSQL_YYABORT;
	}
    break;

  case 1526:
#line 8504 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  if (lex->update_list.push_back((yyvsp[-2].item)) || 
	      lex->value_list.push_back((yyvsp[0].item)))
	      MYSQL_YYABORT;
	  }
    break;

  case 1527:
#line 8512 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1528:
#line 8513 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1529:
#line 8519 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  lex->sql_command= SQLCOM_DELETE;
	  mysql_init_select(lex);
	  lex->lock_option= TL_WRITE_DEFAULT;
	  lex->ignore= 0;
	  lex->select_lex.init_order();
	}
    break;

  case 1530:
#line 8527 "sql_yacc.yy"
    {}
    break;

  case 1531:
#line 8532 "sql_yacc.yy"
    {
	  if (!Select->add_table_to_list(YYTHD, (yyvsp[0].table), NULL, TL_OPTION_UPDATING,
					 Lex->lock_option))
	    MYSQL_YYABORT;
	}
    break;

  case 1532:
#line 8538 "sql_yacc.yy"
    {}
    break;

  case 1533:
#line 8540 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1534:
#line 8542 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1535:
#line 8547 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1536:
#line 8549 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1537:
#line 8556 "sql_yacc.yy"
    {}
    break;

  case 1538:
#line 8557 "sql_yacc.yy"
    {}
    break;

  case 1539:
#line 8561 "sql_yacc.yy"
    {
	  if (!Select->add_table_to_list(YYTHD, new Table_ident((yyvsp[-2].lex_str)), (yyvsp[0].lex_str_ptr),
					 TL_OPTION_UPDATING | 
                                         TL_OPTION_ALIAS, Lex->lock_option))
	    MYSQL_YYABORT;
        }
    break;

  case 1540:
#line 8568 "sql_yacc.yy"
    {
	    if (!Select->add_table_to_list(YYTHD,
					   new Table_ident(YYTHD, (yyvsp[-4].lex_str), (yyvsp[-2].lex_str), 0),
					   (yyvsp[0].lex_str_ptr), 
                                           TL_OPTION_UPDATING | 
                                           TL_OPTION_ALIAS,
					   Lex->lock_option))
	      MYSQL_YYABORT;
	  }
    break;

  case 1541:
#line 8580 "sql_yacc.yy"
    {}
    break;

  case 1542:
#line 8581 "sql_yacc.yy"
    {}
    break;

  case 1543:
#line 8585 "sql_yacc.yy"
    {}
    break;

  case 1544:
#line 8586 "sql_yacc.yy"
    {}
    break;

  case 1545:
#line 8589 "sql_yacc.yy"
    { Select->options|= OPTION_QUICK; }
    break;

  case 1546:
#line 8590 "sql_yacc.yy"
    { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1547:
#line 8591 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1548:
#line 8595 "sql_yacc.yy"
    {
	  LEX* lex= Lex;
	  lex->sql_command= SQLCOM_TRUNCATE;
	  lex->select_lex.options= 0;
          lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
	  lex->select_lex.init_order();
	}
    break;

  case 1551:
#line 8611 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->wild=0;
          lex->lock_option= TL_READ;
          mysql_init_select(lex);
          lex->current_select->parsing_place= SELECT_LIST;
	  bzero((char*) &lex->create_info,sizeof(lex->create_info));
	}
    break;

  case 1552:
#line 8620 "sql_yacc.yy"
    {}
    break;

  case 1553:
#line 8625 "sql_yacc.yy"
    {
           LEX *lex= Lex;
           lex->sql_command= SQLCOM_SHOW_DATABASES;
           if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA))
             MYSQL_YYABORT;
         }
    break;

  case 1554:
#line 8632 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLES;
             lex->select_lex.db= (yyvsp[-1].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES))
               MYSQL_YYABORT;
           }
    break;

  case 1555:
#line 8640 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TRIGGERS;
             lex->select_lex.db= (yyvsp[-1].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS))
               MYSQL_YYABORT;
           }
    break;

  case 1556:
#line 8648 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_EVENTS;
             lex->select_lex.db= (yyvsp[-1].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS))
               MYSQL_YYABORT;
           }
    break;

  case 1557:
#line 8656 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLE_STATUS;
             lex->select_lex.db= (yyvsp[-1].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES))
               MYSQL_YYABORT;
           }
    break;

  case 1558:
#line 8664 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
	    lex->select_lex.db= (yyvsp[-1].simple_string);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES))
              MYSQL_YYABORT;
	  }
    break;

  case 1559:
#line 8672 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    WARN_DEPRECATED(yythd, "5.2", "SHOW PLUGIN", "'SHOW PLUGINS'");
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
	  }
    break;

  case 1560:
#line 8680 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
	  }
    break;

  case 1561:
#line 8687 "sql_yacc.yy"
    { Lex->create_info.db_type= (yyvsp[-1].db_type); }
    break;

  case 1562:
#line 8689 "sql_yacc.yy"
    { Lex->create_info.db_type= NULL; }
    break;

  case 1563:
#line 8691 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->sql_command= SQLCOM_SHOW_FIELDS;
	    if ((yyvsp[-1].simple_string))
	      (yyvsp[-2].table)->change_db((yyvsp[-1].simple_string));
	    if (prepare_schema_table(YYTHD, lex, (yyvsp[-2].table), SCH_COLUMNS))
	      MYSQL_YYABORT;
	  }
    break;

  case 1564:
#line 8703 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
	    Lex->mi.log_file_name = (yyvsp[-8].lex_str).str;
	    Lex->mi.pos = (yyvsp[-4].ulonglong_number);
	    Lex->mi.server_id = (yyvsp[0].ulong_num);
          }
    break;

  case 1565:
#line 8710 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_SHOW_BINLOGS;
          }
    break;

  case 1566:
#line 8714 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
          }
    break;

  case 1567:
#line 8718 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
          }
    break;

  case 1569:
#line 8723 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_KEYS;
	    if ((yyvsp[-1].simple_string))
	      (yyvsp[-2].table)->change_db((yyvsp[-1].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[-2].table), SCH_STATISTICS))
              MYSQL_YYABORT;
	  }
    break;

  case 1570:
#line 8732 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES;
	  }
    break;

  case 1571:
#line 8737 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
	    WARN_DEPRECATED(yythd, "5.2", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'");
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
	  }
    break;

  case 1572:
#line 8745 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
	  }
    break;

  case 1573:
#line 8752 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_AUTHORS;
	  }
    break;

  case 1574:
#line 8757 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
	  }
    break;

  case 1575:
#line 8762 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
	  }
    break;

  case 1576:
#line 8767 "sql_yacc.yy"
    { (void) create_select_for_variable("warning_count"); }
    break;

  case 1577:
#line 8769 "sql_yacc.yy"
    { (void) create_select_for_variable("error_count"); }
    break;

  case 1578:
#line 8771 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_WARNS;}
    break;

  case 1579:
#line 8773 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_ERRORS;}
    break;

  case 1580:
#line 8775 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS;
            lex->option_type= (yyvsp[-2].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS))
              MYSQL_YYABORT;
	  }
    break;

  case 1581:
#line 8783 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_ENGINE_STATUS;
            if (!(lex->create_info.db_type=
                  ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
            {
	      my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
	      MYSQL_YYABORT;
            }
            WARN_DEPRECATED(yythd, "5.2", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'");
	  }
    break;

  case 1582:
#line 8795 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_ENGINE_MUTEX;
            if (!(lex->create_info.db_type=
                  ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
            {
	      my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
	      MYSQL_YYABORT;
            }
            WARN_DEPRECATED(yythd, "5.2", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'");
	  }
    break;

  case 1583:
#line 8807 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
    break;

  case 1584:
#line 8809 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_VARIABLES;
            lex->option_type= (yyvsp[-2].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES))
              MYSQL_YYABORT;
	  }
    break;

  case 1585:
#line 8817 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CHARSETS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_CHARSETS))
              MYSQL_YYABORT;
          }
    break;

  case 1586:
#line 8824 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_COLLATIONS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS))
              MYSQL_YYABORT;
          }
    break;

  case 1587:
#line 8831 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_GRANTS;
	    LEX_USER *curr_user;
            if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            bzero(curr_user, sizeof(st_lex_user));
	    lex->grant_user= curr_user;
	  }
    break;

  case 1588:
#line 8841 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->sql_command= SQLCOM_SHOW_GRANTS;
	    lex->grant_user=(yyvsp[0].lex_user);
	    lex->grant_user->password=null_lex_str;
	  }
    break;

  case 1589:
#line 8848 "sql_yacc.yy"
    {
	    Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
	    Lex->create_info.options=(yyvsp[-1].num);
	    Lex->name= (yyvsp[0].lex_str);
	  }
    break;

  case 1590:
#line 8854 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->sql_command = SQLCOM_SHOW_CREATE;
	    if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[0].table), NULL,0))
	      MYSQL_YYABORT;
            lex->only_view= 0;
	    lex->create_info.storage_media= HA_SM_DEFAULT;
	  }
    break;

  case 1591:
#line 8863 "sql_yacc.yy"
    {
            LEX *lex= Lex;
	    lex->sql_command = SQLCOM_SHOW_CREATE;
	    if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[0].table), NULL, 0))
	      MYSQL_YYABORT;
            lex->only_view= 1;
	  }
    break;

  case 1592:
#line 8871 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
          }
    break;

  case 1593:
#line 8875 "sql_yacc.yy"
    {
	    Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
          }
    break;

  case 1594:
#line 8879 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
	    lex->spname= (yyvsp[0].spname);
	  }
    break;

  case 1595:
#line 8886 "sql_yacc.yy"
    {
	    LEX *lex= Lex;

	    lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
	    lex->spname= (yyvsp[0].spname);
	  }
    break;

  case 1596:
#line 8893 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
	    lex->spname= (yyvsp[0].spname);
	  }
    break;

  case 1597:
#line 8899 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
	    if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
	      MYSQL_YYABORT;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
	  }
    break;

  case 1598:
#line 8908 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
	    if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
	      MYSQL_YYABORT;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
	  }
    break;

  case 1599:
#line 8917 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
	    Lex->spname= (yyvsp[0].spname);
#endif
          }
    break;

  case 1600:
#line 8927 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
	    Lex->spname= (yyvsp[0].spname);
#endif
          }
    break;

  case 1601:
#line 8937 "sql_yacc.yy"
    {
            Lex->spname= (yyvsp[0].spname);
            Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
          }
    break;

  case 1602:
#line 8945 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
    break;

  case 1603:
#line 8947 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
    break;

  case 1604:
#line 8949 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
    break;

  case 1609:
#line 8960 "sql_yacc.yy"
    { (yyval.simple_string)= 0; }
    break;

  case 1610:
#line 8961 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[0].lex_str).str; }
    break;

  case 1611:
#line 8964 "sql_yacc.yy"
    { Lex->verbose=0; }
    break;

  case 1612:
#line 8965 "sql_yacc.yy"
    { Lex->verbose=1; }
    break;

  case 1615:
#line 8972 "sql_yacc.yy"
    { Lex->mi.log_file_name = 0; }
    break;

  case 1616:
#line 8973 "sql_yacc.yy"
    { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; }
    break;

  case 1617:
#line 8976 "sql_yacc.yy"
    { Lex->mi.pos = 4; /* skip magic number */ }
    break;

  case 1618:
#line 8977 "sql_yacc.yy"
    { Lex->mi.pos = (yyvsp[0].ulonglong_number); }
    break;

  case 1620:
#line 8982 "sql_yacc.yy"
    { Lex->wild=  new (YYTHD->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length,
                                                   system_charset_info); }
    break;

  case 1621:
#line 8985 "sql_yacc.yy"
    {
          Select->where= (yyvsp[0].item);
          if ((yyvsp[0].item))
            (yyvsp[0].item)->top_level_item();
        }
    break;

  case 1622:
#line 8996 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->lock_option= TL_READ;
          mysql_init_select(lex);
          lex->current_select->parsing_place= SELECT_LIST;
          lex->sql_command= SQLCOM_SHOW_FIELDS;
          lex->select_lex.db= 0;
          lex->verbose= 0;
          if (prepare_schema_table(YYTHD, lex, (yyvsp[0].table), SCH_COLUMNS))
	    MYSQL_YYABORT;
	}
    break;

  case 1623:
#line 9007 "sql_yacc.yy"
    {}
    break;

  case 1624:
#line 9009 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_NORMAL; }
    break;

  case 1625:
#line 9011 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->select_lex.options|= SELECT_DESCRIBE;
	  }
    break;

  case 1628:
#line 9022 "sql_yacc.yy"
    {}
    break;

  case 1629:
#line 9023 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_EXTENDED; }
    break;

  case 1630:
#line 9024 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_PARTITIONS; }
    break;

  case 1631:
#line 9029 "sql_yacc.yy"
    {}
    break;

  case 1632:
#line 9030 "sql_yacc.yy"
    { Lex->wild= (yyvsp[0].string); }
    break;

  case 1633:
#line 9032 "sql_yacc.yy"
    { Lex->wild= new (YYTHD->mem_root) String((const char*) (yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,system_charset_info); }
    break;

  case 1634:
#line 9039 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_FLUSH;
          lex->type= 0;
          lex->no_write_to_binlog= (yyvsp[0].num);
	}
    break;

  case 1635:
#line 9046 "sql_yacc.yy"
    {}
    break;

  case 1638:
#line 9054 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES; }
    break;

  case 1639:
#line 9054 "sql_yacc.yy"
    {}
    break;

  case 1640:
#line 9055 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; }
    break;

  case 1641:
#line 9056 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
    break;

  case 1642:
#line 9057 "sql_yacc.yy"
    { Lex->type|= REFRESH_HOSTS; }
    break;

  case 1643:
#line 9058 "sql_yacc.yy"
    { Lex->type|= REFRESH_GRANT; }
    break;

  case 1644:
#line 9059 "sql_yacc.yy"
    { Lex->type|= REFRESH_LOG; }
    break;

  case 1645:
#line 9060 "sql_yacc.yy"
    { Lex->type|= REFRESH_STATUS; }
    break;

  case 1646:
#line 9061 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1647:
#line 9062 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1648:
#line 9063 "sql_yacc.yy"
    { Lex->type|= REFRESH_DES_KEY_FILE; }
    break;

  case 1649:
#line 9064 "sql_yacc.yy"
    { Lex->type|= REFRESH_USER_RESOURCES; }
    break;

  case 1650:
#line 9067 "sql_yacc.yy"
    {;}
    break;

  case 1651:
#line 9068 "sql_yacc.yy"
    {;}
    break;

  case 1652:
#line 9072 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_RESET; lex->type=0;
	}
    break;

  case 1653:
#line 9076 "sql_yacc.yy"
    {}
    break;

  case 1656:
#line 9084 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1657:
#line 9085 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1658:
#line 9086 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE;}
    break;

  case 1659:
#line 9090 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->type=0;
          lex->sql_command = SQLCOM_PURGE;
	}
    break;

  case 1660:
#line 9095 "sql_yacc.yy"
    {}
    break;

  case 1662:
#line 9104 "sql_yacc.yy"
    {
	   Lex->to_log = (yyvsp[0].lex_str).str;
        }
    break;

  case 1663:
#line 9108 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  lex->value_list.empty();
	  lex->value_list.push_front((yyvsp[0].item));
	  lex->sql_command= SQLCOM_PURGE_BEFORE;
	}
    break;

  case 1664:
#line 9120 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->value_list.empty();
	  lex->value_list.push_front((yyvsp[0].item));
          lex->sql_command= SQLCOM_KILL;
	}
    break;

  case 1665:
#line 9128 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1666:
#line 9129 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1667:
#line 9130 "sql_yacc.yy"
    { Lex->type= ONLY_KILL_QUERY; }
    break;

  case 1668:
#line 9136 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command=SQLCOM_CHANGE_DB;
	  lex->select_lex.db= (yyvsp[0].lex_str).str;
	}
    break;

  case 1669:
#line 9145 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;

	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD DATA");
	    MYSQL_YYABORT;
	  }
          lex->fname_start= lip->get_ptr();
        }
    break;

  case 1670:
#line 9158 "sql_yacc.yy"
    {}
    break;

  case 1671:
#line 9161 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          WARN_DEPRECATED(yythd, "5.2", "LOAD TABLE FROM MASTER",
                          "MySQL Administrator (mysqldump, mysql)");
          if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE");
	    MYSQL_YYABORT;
	  }
          lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
          if (!Select->add_table_to_list(YYTHD, (yyvsp[-2].table), NULL, TL_OPTION_UPDATING))
            MYSQL_YYABORT;
        }
    break;

  case 1672:
#line 9177 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_LOAD;
	  lex->lock_option= (yyvsp[-3].lock_type);
	  lex->local_file=  (yyvsp[-2].num);
	  lex->duplicates= DUP_ERROR;
	  lex->ignore= 0;
	  if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str, 0)))
	    MYSQL_YYABORT;
        }
    break;

  case 1673:
#line 9188 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
          lex->fname_end= lip->get_ptr();
	}
    break;

  case 1674:
#line 9195 "sql_yacc.yy"
    {
          LEX *lex=Lex;
          if (!Select->add_table_to_list(YYTHD, (yyvsp[0].table), NULL, TL_OPTION_UPDATING,
                                         lex->lock_option))
            MYSQL_YYABORT;
          lex->field_list.empty();
          lex->update_list.empty();
          lex->value_list.empty();
        }
    break;

  case 1675:
#line 9205 "sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[0].charset); }
    break;

  case 1676:
#line 9208 "sql_yacc.yy"
    {}
    break;

  case 1677:
#line 9211 "sql_yacc.yy"
    {
	  Lex->sql_command = SQLCOM_LOAD_MASTER_DATA;
          WARN_DEPRECATED(yythd, "5.2", "LOAD DATA FROM MASTER",
                          "mysqldump or future "
                          "BACKUP/RESTORE DATABASE facility");
        }
    break;

  case 1678:
#line 9219 "sql_yacc.yy"
    { (yyval.num)=0;}
    break;

  case 1679:
#line 9220 "sql_yacc.yy"
    { (yyval.num)=1;}
    break;

  case 1680:
#line 9223 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1681:
#line 9225 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              Ignore this option in SP to avoid problem with query cache
            */
            if (Lex->sphead != 0)
              (yyval.lock_type)= TL_WRITE_DEFAULT;
            else
#endif
              (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
          }
    break;

  case 1682:
#line 9236 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1683:
#line 9240 "sql_yacc.yy"
    { Lex->duplicates=DUP_ERROR; }
    break;

  case 1684:
#line 9241 "sql_yacc.yy"
    { Lex->duplicates=DUP_REPLACE; }
    break;

  case 1685:
#line 9242 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1690:
#line 9254 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->field_term= (yyvsp[0].string);
          }
    break;

  case 1691:
#line 9259 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            DBUG_ASSERT(lex->exchange != 0);
            lex->exchange->enclosed= (yyvsp[0].string);
            lex->exchange->opt_enclosed= 1;
	  }
    break;

  case 1692:
#line 9266 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->enclosed= (yyvsp[0].string);
          }
    break;

  case 1693:
#line 9271 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->escaped= (yyvsp[0].string);
          }
    break;

  case 1698:
#line 9286 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_term= (yyvsp[0].string);
          }
    break;

  case 1699:
#line 9291 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_start= (yyvsp[0].string);
          }
    break;

  case 1701:
#line 9299 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->skip_lines= atol((yyvsp[-1].lex_str).str);
          }
    break;

  case 1702:
#line 9305 "sql_yacc.yy"
    { }
    break;

  case 1703:
#line 9306 "sql_yacc.yy"
    { }
    break;

  case 1704:
#line 9307 "sql_yacc.yy"
    { }
    break;

  case 1705:
#line 9311 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[0].item)); }
    break;

  case 1706:
#line 9313 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[0].item)); }
    break;

  case 1707:
#line 9317 "sql_yacc.yy"
    {(yyval.item)= (yyvsp[0].item);}
    break;

  case 1708:
#line 9319 "sql_yacc.yy"
    { (yyval.item)= new Item_user_var_as_out_param((yyvsp[0].lex_str)); }
    break;

  case 1709:
#line 9323 "sql_yacc.yy"
    { }
    break;

  case 1710:
#line 9324 "sql_yacc.yy"
    { }
    break;

  case 1711:
#line 9331 "sql_yacc.yy"
    {
          LEX_STRING tmp;
          THD *thd= YYTHD;
          CHARSET_INFO *cs_con= thd->variables.collation_connection;
          CHARSET_INFO *cs_cli= thd->variables.character_set_client;
          uint repertoire= thd->lex->text_string_is_7bit &&
                             my_charset_is_ascii_based(cs_cli) ?
                           MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
          if (thd->charset_is_collation_connection ||
              (repertoire == MY_REPERTOIRE_ASCII &&
               my_charset_is_ascii_based(cs_con)))
            tmp= (yyvsp[0].lex_str);
          else
            thd->convert_string(&tmp, cs_con, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, cs_cli);
          (yyval.item)= new Item_string(tmp.str, tmp.length, cs_con,
                              DERIVATION_COERCIBLE, repertoire);
        }
    break;

  case 1712:
#line 9349 "sql_yacc.yy"
    {
          uint repertoire= Lex->text_string_is_7bit ?
                           MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
          DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
          (yyval.item)= new Item_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, national_charset_info,
                              DERIVATION_COERCIBLE, repertoire);
        }
    break;

  case 1713:
#line 9357 "sql_yacc.yy"
    {
            (yyval.item)= new Item_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, (yyvsp[-1].charset));
            ((Item_string*) (yyval.item))->set_repertoire_from_value();
          }
    break;

  case 1714:
#line 9362 "sql_yacc.yy"
    {
            Item_string* item= (Item_string*) (yyvsp[-1].item);
            item->append((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
            if (!(item->collation.repertoire & MY_REPERTOIRE_EXTENDED))
            {
              /*
                 If the string has been pure ASCII so far,
                 check the new part.
              */
              CHARSET_INFO *cs= YYTHD->variables.collation_connection;
              item->collation.repertoire|= my_string_repertoire(cs,
                                                                (yyvsp[0].lex_str).str,
                                                                (yyvsp[0].lex_str).length);
            }
          }
    break;

  case 1715:
#line 9381 "sql_yacc.yy"
    { (yyval.string)=  new (YYTHD->mem_root) String((yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,YYTHD->variables.collation_connection); }
    break;

  case 1716:
#line 9383 "sql_yacc.yy"
    {
	    Item *tmp= new Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
	    /*
	      it is OK only emulate fix_fields, because we need only
              value of constant
	    */
	    (yyval.string)= tmp ?
	      tmp->quick_fix_field(), tmp->val_str((String*) 0) :
	      (String*) 0;
	  }
    break;

  case 1717:
#line 9394 "sql_yacc.yy"
    {
	    Item *tmp= new Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
	    /*
	      it is OK only emulate fix_fields, because we need only
              value of constant
	    */
	    (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str((String*) 0) :
		      (String*) 0;
          }
    break;

  case 1718:
#line 9407 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
          Item_param *item;
          if (! lex->parsing_options.allows_variable)
          {
            my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
            MYSQL_YYABORT;
          }
          item= new Item_param((uint) (lip->get_tok_start() - thd->query));
          if (!((yyval.item)= item) || lex->param_list.push_back(item))
          {
            my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
            MYSQL_YYABORT;
          }
        }
    break;

  case 1719:
#line 9427 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item); }
    break;

  case 1720:
#line 9428 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item_num); }
    break;

  case 1721:
#line 9430 "sql_yacc.yy"
    {
	    (yyvsp[0].item_num)->max_length++;
	    (yyval.item)= (yyvsp[0].item_num)->neg();
	  }
    break;

  case 1722:
#line 9438 "sql_yacc.yy"
    { (yyval.item) =	(yyvsp[0].item); }
    break;

  case 1723:
#line 9439 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item_num); }
    break;

  case 1724:
#line 9441 "sql_yacc.yy"
    {
            (yyval.item) = new Item_null();
            YYTHD->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
          }
    break;

  case 1725:
#line 9445 "sql_yacc.yy"
    { (yyval.item)= new Item_int((char*) "FALSE",0,1); }
    break;

  case 1726:
#line 9446 "sql_yacc.yy"
    { (yyval.item)= new Item_int((char*) "TRUE",1,1); }
    break;

  case 1727:
#line 9447 "sql_yacc.yy"
    { (yyval.item) =	new Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);}
    break;

  case 1728:
#line 9448 "sql_yacc.yy"
    { (yyval.item)= new Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); }
    break;

  case 1729:
#line 9450 "sql_yacc.yy"
    {
            Item *tmp= new Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            String *str= tmp ?
              tmp->quick_fix_field(), tmp->val_str((String*) 0) :
              (String*) 0;
            (yyval.item)= new Item_string(str ? str->ptr() : "",
                                str ? str->length() : 0,
                                (yyvsp[-1].charset));
            if ((yyval.item))
              ((Item_string *) (yyval.item))->set_repertoire_from_value();
          }
    break;

  case 1730:
#line 9466 "sql_yacc.yy"
    {
	    Item *tmp= new Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
	    /*
	      it is OK only emulate fix_fieds, because we need only
              value of constant
	    */
	    String *str= tmp ?
	      tmp->quick_fix_field(), tmp->val_str((String*) 0) :
	      (String*) 0;
	    (yyval.item)= new Item_string(str ? str->ptr() : "",
				str ? str->length() : 0,
				Lex->charset);
          }
    break;

  case 1731:
#line 9479 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item); }
    break;

  case 1732:
#line 9480 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item); }
    break;

  case 1733:
#line 9481 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[0].item); }
    break;

  case 1734:
#line 9484 "sql_yacc.yy"
    { int error; (yyval.item_num) = new Item_int((yyvsp[0].lex_str).str, (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), (yyvsp[0].lex_str).length); }
    break;

  case 1735:
#line 9485 "sql_yacc.yy"
    { int error; (yyval.item_num) = new Item_int((yyvsp[0].lex_str).str, (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), (yyvsp[0].lex_str).length); }
    break;

  case 1736:
#line 9486 "sql_yacc.yy"
    { (yyval.item_num) =	new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); }
    break;

  case 1737:
#line 9488 "sql_yacc.yy"
    {
           (yyval.item_num)= new Item_decimal((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, YYTHD->charset());
	   if (YYTHD->net.report_error)
	   {
	     MYSQL_YYABORT;
	   }
	}
    break;

  case 1738:
#line 9496 "sql_yacc.yy"
    {
	   (yyval.item_num) =	new Item_float((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
	   if (YYTHD->net.report_error)
	   {
	     MYSQL_YYABORT;
	   }
	}
    break;

  case 1739:
#line 9510 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 1740:
#line 9511 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 1741:
#line 9515 "sql_yacc.yy"
    {
          SELECT_LEX *sel= Select;
	  (yyval.item) = new Item_field(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, "*");
	  sel->with_wild++;
	}
    break;

  case 1742:
#line 9521 "sql_yacc.yy"
    {
          SELECT_LEX *sel= Select;
	  (yyval.item) = new Item_field(Lex->current_context(), (YYTHD->client_capabilities &
                             CLIENT_NO_SCHEMA ? NullS : (yyvsp[-4].lex_str).str),
                             (yyvsp[-2].lex_str).str,"*");
	  sel->with_wild++;
	}
    break;

  case 1743:
#line 9531 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 1744:
#line 9535 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
	  sp_variable_t *spv;
          sp_pcontext *spc = lex->spcont;
	  if (spc && (spv = spc->find_variable(&(yyvsp[0].lex_str))))
	  {
            /* We're compiling a stored procedure and found a variable */
            if (! lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }

            Item_splocal *splocal;
            splocal= new Item_splocal((yyvsp[0].lex_str), spv->offset, spv->type,
                                      lip->get_tok_start_prev() -
                                      lex->sphead->m_tmp_query,
                                      lip->get_tok_end() - lip->get_tok_start_prev());
#ifndef DBUG_OFF
            if (splocal)
              splocal->m_sp= lex->sphead;
#endif
	    (yyval.item) = (Item*) splocal;
	    lex->safe_to_cache_query=0;
	  }
	  else
	  {
	    SELECT_LEX *sel=Select;
	    (yyval.item)= (sel->parsing_place != IN_HAVING ||
	         sel->get_in_sum_expr() > 0) ?
                 (Item*) new Item_field(Lex->current_context(), NullS, NullS, (yyvsp[0].lex_str).str) :
	         (Item*) new Item_ref(Lex->current_context(), NullS, NullS, (yyvsp[0].lex_str).str);
	  }
        }
    break;

  case 1745:
#line 9571 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[0].item); }
    break;

  case 1746:
#line 9576 "sql_yacc.yy"
    {
	  SELECT_LEX *sel=Select;
	  (yyval.item)= (sel->parsing_place != IN_HAVING ||
	       sel->get_in_sum_expr() > 0) ?
              (Item*) new Item_field(Lex->current_context(), NullS, NullS, (yyvsp[0].lex_str).str) :
	      (Item*) new Item_ref(Lex->current_context(), NullS, NullS, (yyvsp[0].lex_str).str);
	}
    break;

  case 1747:
#line 9583 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[0].item); }
    break;

  case 1748:
#line 9588 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;

          /*
            FIXME This will work ok in simple_ident_nospvar case because
            we can't meet simple_ident_nospvar in trigger now. But it
            should be changed in future.
          */
          if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
              (!my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "NEW") ||
               !my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "OLD")))
          {
            Item_trigger_field *trg_fld;
            bool new_row= ((yyvsp[-2].lex_str).str[0]=='N' || (yyvsp[-2].lex_str).str[0]=='n');

            if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
                !new_row)
            {
              my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
              MYSQL_YYABORT;
            }

            if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
                new_row)
            {
              my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
              MYSQL_YYABORT;
            }

            DBUG_ASSERT(!new_row ||
                        (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                         lex->trg_chistics.event == TRG_EVENT_UPDATE));
            const bool read_only=
              !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
            if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
                                                  new_row ?
                                                  Item_trigger_field::NEW_ROW:
                                                  Item_trigger_field::OLD_ROW,
                                                  (yyvsp[0].lex_str).str,
                                                  SELECT_ACL,
                                                  read_only)))
              MYSQL_YYABORT;

            /*
              Let us add this item to list of all Item_trigger_field objects
              in trigger.
            */
            lex->trg_table_fields.link_in_list((uchar*) trg_fld,
	              			       (uchar**) &trg_fld->
						next_trg_field);

            (yyval.item)= (Item *)trg_fld;
          }
          else
          {
	    SELECT_LEX *sel= lex->current_select;
	    if (sel->no_table_names_allowed)
	    {
	      my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[-2].lex_str).str, thd->where);
	    }
	    (yyval.item)= (sel->parsing_place != IN_HAVING ||
	         sel->get_in_sum_expr() > 0) ?
	        (Item*) new Item_field(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str) :
	        (Item*) new Item_ref(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str);
          }
        }
    break;

  case 1749:
#line 9657 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;
	  SELECT_LEX *sel= lex->current_select;
	  if (sel->no_table_names_allowed)
	  {
	    my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                     MYF(0), (yyvsp[-2].lex_str).str, thd->where);
	  }
	  (yyval.item)= (sel->parsing_place != IN_HAVING ||
	       sel->get_in_sum_expr() > 0) ?
	      (Item*) new Item_field(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str) :
              (Item*) new Item_ref(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str);
	}
    break;

  case 1750:
#line 9672 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;
	  SELECT_LEX *sel= lex->current_select;
	  if (sel->no_table_names_allowed)
	  {
	    my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                     MYF(0), (yyvsp[-2].lex_str).str, thd->where);
	  }
	  (yyval.item)= (sel->parsing_place != IN_HAVING ||
	       sel->get_in_sum_expr() > 0) ?
	      (Item*) new Item_field(Lex->current_context(),
                                     (YYTHD->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(Lex->current_context(),
                                   (YYTHD->client_capabilities &
				    CLIENT_NO_SCHEMA ? NullS : (yyvsp[-4].lex_str).str),
                                   (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str);
	}
    break;

  case 1751:
#line 9695 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str);}
    break;

  case 1752:
#line 9697 "sql_yacc.yy"
    {
            TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[-4].lex_str).str, table->db))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-4].lex_str).str);
              MYSQL_YYABORT;
            }
            if (my_strcasecmp(table_alias_charset, (yyvsp[-2].lex_str).str,
                              table->table_name))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[0].lex_str);
          }
    break;

  case 1753:
#line 9713 "sql_yacc.yy"
    {
            TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[-2].lex_str).str, table->alias))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[0].lex_str);
          }
    break;

  case 1754:
#line 9722 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str);}
    break;

  case 1755:
#line 9725 "sql_yacc.yy"
    { (yyval.table)=new Table_ident((yyvsp[0].lex_str)); }
    break;

  case 1756:
#line 9726 "sql_yacc.yy"
    { (yyval.table)=new Table_ident(YYTHD, (yyvsp[-2].lex_str),(yyvsp[0].lex_str),0);}
    break;

  case 1757:
#line 9727 "sql_yacc.yy"
    { (yyval.table)=new Table_ident((yyvsp[0].lex_str));}
    break;

  case 1758:
#line 9731 "sql_yacc.yy"
    { LEX_STRING db={(char*) any_db,3}; (yyval.table)=new Table_ident(YYTHD, db,(yyvsp[0].lex_str),0); }
    break;

  case 1759:
#line 9735 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[0].lex_str); }
    break;

  case 1760:
#line 9737 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;

	    if (thd->charset_is_system_charset)
            {
              CHARSET_INFO *cs= system_charset_info;
              int dummy_error;
              uint wlen= cs->cset->well_formed_len(cs, (yyvsp[0].lex_str).str,
                                                   (yyvsp[0].lex_str).str+(yyvsp[0].lex_str).length,
                                                   (yyvsp[0].lex_str).length, &dummy_error);
              if (wlen < (yyvsp[0].lex_str).length)
              {
                my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
                         cs->csname, (yyvsp[0].lex_str).str + wlen);
                MYSQL_YYABORT;
              }
	      (yyval.lex_str)= (yyvsp[0].lex_str);
            }
	    else
	      thd->convert_string(&(yyval.lex_str), system_charset_info,
				  (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset());
	  }
    break;

  case 1761:
#line 9763 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;

	  if (thd->charset_is_system_charset)
	    (yyval.lex_str)= (yyvsp[0].lex_str);
	  else
	    thd->convert_string(&(yyval.lex_str), system_charset_info,
				(yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset());
	}
    break;

  case 1762:
#line 9776 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;

	  if (thd->charset_is_collation_connection)
	    (yyval.lex_str)= (yyvsp[0].lex_str);
	  else
	    thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection,
				(yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset());
	}
    break;

  case 1763:
#line 9790 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;

	  if (thd->charset_is_character_set_filesystem)
	    (yyval.lex_str)= (yyvsp[0].lex_str);
	  else
	    thd->convert_string(&(yyval.lex_str), thd->variables.character_set_filesystem,
				(yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset());
	}
    break;

  case 1764:
#line 9802 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str); }
    break;

  case 1765:
#line 9804 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  (yyval.lex_str).str= thd->strmake("read_only",9);
	  (yyval.lex_str).length= 9;
	}
    break;

  case 1766:
#line 9810 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  (yyval.lex_str).str=    thd->strmake((yyvsp[0].symbol).str, (yyvsp[0].symbol).length);
	  (yyval.lex_str).length= (yyvsp[0].symbol).length;
	}
    break;

  case 1767:
#line 9818 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str); }
    break;

  case 1768:
#line 9820 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  (yyval.lex_str).str=    thd->strmake((yyvsp[0].symbol).str, (yyvsp[0].symbol).length);
	  (yyval.lex_str).length= (yyvsp[0].symbol).length;
	}
    break;

  case 1769:
#line 9828 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str);}
    break;

  case 1770:
#line 9829 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str);}
    break;

  case 1771:
#line 9830 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[0].lex_str);}
    break;

  case 1772:
#line 9834 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
	    MYSQL_YYABORT;
	  (yyval.lex_user)->user = (yyvsp[0].lex_str);
	  (yyval.lex_user)->host.str= (char *) "%";
	  (yyval.lex_user)->host.length= 1;

          if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                       USERNAME_CHAR_LENGTH,
                                       system_charset_info, 0))
	    MYSQL_YYABORT;
	}
    break;

  case 1773:
#line 9848 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;
	    if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
	      MYSQL_YYABORT;
	    (yyval.lex_user)->user = (yyvsp[-2].lex_str); (yyval.lex_user)->host=(yyvsp[0].lex_str);

	    if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0) ||
	        check_string_byte_length(&(yyval.lex_user)->host, ER(ER_HOSTNAME),
                                         HOSTNAME_LENGTH))
	      MYSQL_YYABORT;
	  }
    break;

  case 1774:
#line 9862 "sql_yacc.yy"
    {
          if (!((yyval.lex_user)=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
            MYSQL_YYABORT;
          /* 
            empty LEX_USER means current_user and 
            will be handled in the  get_current_user() function
            later
          */
          bzero((yyval.lex_user), sizeof(LEX_USER));
	}
    break;

  case 1775:
#line 9875 "sql_yacc.yy"
    {}
    break;

  case 1776:
#line 9876 "sql_yacc.yy"
    {}
    break;

  case 1777:
#line 9877 "sql_yacc.yy"
    {}
    break;

  case 1778:
#line 9878 "sql_yacc.yy"
    {}
    break;

  case 1779:
#line 9879 "sql_yacc.yy"
    {}
    break;

  case 1780:
#line 9880 "sql_yacc.yy"
    {}
    break;

  case 1781:
#line 9881 "sql_yacc.yy"
    {}
    break;

  case 1782:
#line 9882 "sql_yacc.yy"
    {}
    break;

  case 1783:
#line 9883 "sql_yacc.yy"
    {}
    break;

  case 1784:
#line 9884 "sql_yacc.yy"
    {}
    break;

  case 1785:
#line 9885 "sql_yacc.yy"
    {}
    break;

  case 1786:
#line 9886 "sql_yacc.yy"
    {}
    break;

  case 1787:
#line 9887 "sql_yacc.yy"
    {}
    break;

  case 1788:
#line 9888 "sql_yacc.yy"
    {}
    break;

  case 1789:
#line 9889 "sql_yacc.yy"
    {}
    break;

  case 1790:
#line 9890 "sql_yacc.yy"
    {}
    break;

  case 1791:
#line 9891 "sql_yacc.yy"
    {}
    break;

  case 1792:
#line 9892 "sql_yacc.yy"
    {}
    break;

  case 1793:
#line 9893 "sql_yacc.yy"
    {}
    break;

  case 1794:
#line 9894 "sql_yacc.yy"
    {}
    break;

  case 1795:
#line 9895 "sql_yacc.yy"
    {}
    break;

  case 1796:
#line 9896 "sql_yacc.yy"
    {}
    break;

  case 1797:
#line 9897 "sql_yacc.yy"
    {}
    break;

  case 1798:
#line 9898 "sql_yacc.yy"
    {}
    break;

  case 1799:
#line 9899 "sql_yacc.yy"
    {}
    break;

  case 1800:
#line 9900 "sql_yacc.yy"
    {}
    break;

  case 1801:
#line 9901 "sql_yacc.yy"
    {}
    break;

  case 1802:
#line 9902 "sql_yacc.yy"
    {}
    break;

  case 1803:
#line 9903 "sql_yacc.yy"
    {}
    break;

  case 1804:
#line 9904 "sql_yacc.yy"
    {}
    break;

  case 1805:
#line 9905 "sql_yacc.yy"
    {}
    break;

  case 1806:
#line 9906 "sql_yacc.yy"
    {}
    break;

  case 1807:
#line 9907 "sql_yacc.yy"
    {}
    break;

  case 1808:
#line 9908 "sql_yacc.yy"
    {}
    break;

  case 1809:
#line 9909 "sql_yacc.yy"
    {}
    break;

  case 1810:
#line 9910 "sql_yacc.yy"
    {}
    break;

  case 1811:
#line 9911 "sql_yacc.yy"
    {}
    break;

  case 1812:
#line 9912 "sql_yacc.yy"
    {}
    break;

  case 1813:
#line 9913 "sql_yacc.yy"
    {}
    break;

  case 1814:
#line 9914 "sql_yacc.yy"
    {}
    break;

  case 1815:
#line 9915 "sql_yacc.yy"
    {}
    break;

  case 1816:
#line 9916 "sql_yacc.yy"
    {}
    break;

  case 1817:
#line 9917 "sql_yacc.yy"
    {}
    break;

  case 1818:
#line 9918 "sql_yacc.yy"
    {}
    break;

  case 1819:
#line 9919 "sql_yacc.yy"
    {}
    break;

  case 1820:
#line 9920 "sql_yacc.yy"
    {}
    break;

  case 1821:
#line 9921 "sql_yacc.yy"
    {}
    break;

  case 1822:
#line 9922 "sql_yacc.yy"
    {}
    break;

  case 1823:
#line 9923 "sql_yacc.yy"
    {}
    break;

  case 1824:
#line 9924 "sql_yacc.yy"
    {}
    break;

  case 1825:
#line 9934 "sql_yacc.yy"
    {}
    break;

  case 1826:
#line 9935 "sql_yacc.yy"
    {}
    break;

  case 1827:
#line 9936 "sql_yacc.yy"
    {}
    break;

  case 1828:
#line 9937 "sql_yacc.yy"
    {}
    break;

  case 1829:
#line 9938 "sql_yacc.yy"
    {}
    break;

  case 1830:
#line 9939 "sql_yacc.yy"
    {}
    break;

  case 1831:
#line 9940 "sql_yacc.yy"
    {}
    break;

  case 1832:
#line 9941 "sql_yacc.yy"
    {}
    break;

  case 1833:
#line 9942 "sql_yacc.yy"
    {}
    break;

  case 1834:
#line 9943 "sql_yacc.yy"
    {}
    break;

  case 1835:
#line 9944 "sql_yacc.yy"
    {}
    break;

  case 1836:
#line 9945 "sql_yacc.yy"
    {}
    break;

  case 1837:
#line 9946 "sql_yacc.yy"
    {}
    break;

  case 1838:
#line 9947 "sql_yacc.yy"
    {}
    break;

  case 1839:
#line 9948 "sql_yacc.yy"
    {}
    break;

  case 1840:
#line 9949 "sql_yacc.yy"
    {}
    break;

  case 1841:
#line 9950 "sql_yacc.yy"
    {}
    break;

  case 1842:
#line 9951 "sql_yacc.yy"
    {}
    break;

  case 1843:
#line 9952 "sql_yacc.yy"
    {}
    break;

  case 1844:
#line 9953 "sql_yacc.yy"
    {}
    break;

  case 1845:
#line 9954 "sql_yacc.yy"
    {}
    break;

  case 1846:
#line 9955 "sql_yacc.yy"
    {}
    break;

  case 1847:
#line 9956 "sql_yacc.yy"
    {}
    break;

  case 1848:
#line 9957 "sql_yacc.yy"
    {}
    break;

  case 1849:
#line 9958 "sql_yacc.yy"
    {}
    break;

  case 1850:
#line 9959 "sql_yacc.yy"
    {}
    break;

  case 1851:
#line 9960 "sql_yacc.yy"
    {}
    break;

  case 1852:
#line 9961 "sql_yacc.yy"
    {}
    break;

  case 1853:
#line 9962 "sql_yacc.yy"
    {}
    break;

  case 1854:
#line 9963 "sql_yacc.yy"
    {}
    break;

  case 1855:
#line 9964 "sql_yacc.yy"
    {}
    break;

  case 1856:
#line 9965 "sql_yacc.yy"
    {}
    break;

  case 1857:
#line 9966 "sql_yacc.yy"
    {}
    break;

  case 1858:
#line 9967 "sql_yacc.yy"
    {}
    break;

  case 1859:
#line 9968 "sql_yacc.yy"
    {}
    break;

  case 1860:
#line 9969 "sql_yacc.yy"
    {}
    break;

  case 1861:
#line 9970 "sql_yacc.yy"
    {}
    break;

  case 1862:
#line 9971 "sql_yacc.yy"
    {}
    break;

  case 1863:
#line 9972 "sql_yacc.yy"
    {}
    break;

  case 1864:
#line 9973 "sql_yacc.yy"
    {}
    break;

  case 1865:
#line 9974 "sql_yacc.yy"
    {}
    break;

  case 1866:
#line 9975 "sql_yacc.yy"
    {}
    break;

  case 1867:
#line 9976 "sql_yacc.yy"
    {}
    break;

  case 1868:
#line 9977 "sql_yacc.yy"
    {}
    break;

  case 1869:
#line 9978 "sql_yacc.yy"
    {}
    break;

  case 1870:
#line 9979 "sql_yacc.yy"
    {}
    break;

  case 1871:
#line 9980 "sql_yacc.yy"
    {}
    break;

  case 1872:
#line 9981 "sql_yacc.yy"
    {}
    break;

  case 1873:
#line 9982 "sql_yacc.yy"
    {}
    break;

  case 1874:
#line 9983 "sql_yacc.yy"
    {}
    break;

  case 1875:
#line 9984 "sql_yacc.yy"
    {}
    break;

  case 1876:
#line 9985 "sql_yacc.yy"
    {}
    break;

  case 1877:
#line 9986 "sql_yacc.yy"
    {}
    break;

  case 1878:
#line 9987 "sql_yacc.yy"
    {}
    break;

  case 1879:
#line 9988 "sql_yacc.yy"
    {}
    break;

  case 1880:
#line 9989 "sql_yacc.yy"
    {}
    break;

  case 1881:
#line 9990 "sql_yacc.yy"
    {}
    break;

  case 1882:
#line 9991 "sql_yacc.yy"
    {}
    break;

  case 1883:
#line 9992 "sql_yacc.yy"
    {}
    break;

  case 1884:
#line 9993 "sql_yacc.yy"
    {}
    break;

  case 1885:
#line 9994 "sql_yacc.yy"
    {}
    break;

  case 1886:
#line 9995 "sql_yacc.yy"
    {}
    break;

  case 1887:
#line 9996 "sql_yacc.yy"
    {}
    break;

  case 1888:
#line 9997 "sql_yacc.yy"
    {}
    break;

  case 1889:
#line 9998 "sql_yacc.yy"
    {}
    break;

  case 1890:
#line 9999 "sql_yacc.yy"
    {}
    break;

  case 1891:
#line 10000 "sql_yacc.yy"
    {}
    break;

  case 1892:
#line 10001 "sql_yacc.yy"
    {}
    break;

  case 1893:
#line 10002 "sql_yacc.yy"
    {}
    break;

  case 1894:
#line 10003 "sql_yacc.yy"
    {}
    break;

  case 1895:
#line 10004 "sql_yacc.yy"
    {}
    break;

  case 1896:
#line 10005 "sql_yacc.yy"
    {}
    break;

  case 1897:
#line 10006 "sql_yacc.yy"
    {}
    break;

  case 1898:
#line 10007 "sql_yacc.yy"
    {}
    break;

  case 1899:
#line 10008 "sql_yacc.yy"
    {}
    break;

  case 1900:
#line 10009 "sql_yacc.yy"
    {}
    break;

  case 1901:
#line 10010 "sql_yacc.yy"
    {}
    break;

  case 1902:
#line 10011 "sql_yacc.yy"
    {}
    break;

  case 1903:
#line 10012 "sql_yacc.yy"
    {}
    break;

  case 1904:
#line 10013 "sql_yacc.yy"
    {}
    break;

  case 1905:
#line 10014 "sql_yacc.yy"
    {}
    break;

  case 1906:
#line 10015 "sql_yacc.yy"
    {}
    break;

  case 1907:
#line 10016 "sql_yacc.yy"
    {}
    break;

  case 1908:
#line 10017 "sql_yacc.yy"
    {}
    break;

  case 1909:
#line 10018 "sql_yacc.yy"
    {}
    break;

  case 1910:
#line 10019 "sql_yacc.yy"
    {}
    break;

  case 1911:
#line 10020 "sql_yacc.yy"
    {}
    break;

  case 1912:
#line 10021 "sql_yacc.yy"
    {}
    break;

  case 1913:
#line 10022 "sql_yacc.yy"
    {}
    break;

  case 1914:
#line 10023 "sql_yacc.yy"
    {}
    break;

  case 1915:
#line 10024 "sql_yacc.yy"
    {}
    break;

  case 1916:
#line 10025 "sql_yacc.yy"
    {}
    break;

  case 1917:
#line 10026 "sql_yacc.yy"
    {}
    break;

  case 1918:
#line 10027 "sql_yacc.yy"
    {}
    break;

  case 1919:
#line 10028 "sql_yacc.yy"
    {}
    break;

  case 1920:
#line 10029 "sql_yacc.yy"
    {}
    break;

  case 1921:
#line 10030 "sql_yacc.yy"
    {}
    break;

  case 1922:
#line 10031 "sql_yacc.yy"
    {}
    break;

  case 1923:
#line 10032 "sql_yacc.yy"
    {}
    break;

  case 1924:
#line 10033 "sql_yacc.yy"
    {}
    break;

  case 1925:
#line 10034 "sql_yacc.yy"
    {}
    break;

  case 1926:
#line 10035 "sql_yacc.yy"
    {}
    break;

  case 1927:
#line 10036 "sql_yacc.yy"
    {}
    break;

  case 1928:
#line 10037 "sql_yacc.yy"
    {}
    break;

  case 1929:
#line 10038 "sql_yacc.yy"
    {}
    break;

  case 1930:
#line 10039 "sql_yacc.yy"
    {}
    break;

  case 1931:
#line 10040 "sql_yacc.yy"
    {}
    break;

  case 1932:
#line 10041 "sql_yacc.yy"
    {}
    break;

  case 1933:
#line 10042 "sql_yacc.yy"
    {}
    break;

  case 1934:
#line 10043 "sql_yacc.yy"
    {}
    break;

  case 1935:
#line 10044 "sql_yacc.yy"
    {}
    break;

  case 1936:
#line 10045 "sql_yacc.yy"
    {}
    break;

  case 1937:
#line 10046 "sql_yacc.yy"
    {}
    break;

  case 1938:
#line 10047 "sql_yacc.yy"
    {}
    break;

  case 1939:
#line 10048 "sql_yacc.yy"
    {}
    break;

  case 1940:
#line 10049 "sql_yacc.yy"
    {}
    break;

  case 1941:
#line 10050 "sql_yacc.yy"
    {}
    break;

  case 1942:
#line 10051 "sql_yacc.yy"
    {}
    break;

  case 1943:
#line 10052 "sql_yacc.yy"
    {}
    break;

  case 1944:
#line 10053 "sql_yacc.yy"
    {}
    break;

  case 1945:
#line 10054 "sql_yacc.yy"
    {}
    break;

  case 1946:
#line 10055 "sql_yacc.yy"
    {}
    break;

  case 1947:
#line 10056 "sql_yacc.yy"
    {}
    break;

  case 1948:
#line 10057 "sql_yacc.yy"
    {}
    break;

  case 1949:
#line 10058 "sql_yacc.yy"
    {}
    break;

  case 1950:
#line 10059 "sql_yacc.yy"
    {}
    break;

  case 1951:
#line 10060 "sql_yacc.yy"
    {}
    break;

  case 1952:
#line 10061 "sql_yacc.yy"
    {}
    break;

  case 1953:
#line 10062 "sql_yacc.yy"
    {}
    break;

  case 1954:
#line 10063 "sql_yacc.yy"
    {}
    break;

  case 1955:
#line 10064 "sql_yacc.yy"
    {}
    break;

  case 1956:
#line 10065 "sql_yacc.yy"
    {}
    break;

  case 1957:
#line 10066 "sql_yacc.yy"
    {}
    break;

  case 1958:
#line 10067 "sql_yacc.yy"
    {}
    break;

  case 1959:
#line 10068 "sql_yacc.yy"
    {}
    break;

  case 1960:
#line 10069 "sql_yacc.yy"
    {}
    break;

  case 1961:
#line 10070 "sql_yacc.yy"
    {}
    break;

  case 1962:
#line 10071 "sql_yacc.yy"
    {}
    break;

  case 1963:
#line 10072 "sql_yacc.yy"
    {}
    break;

  case 1964:
#line 10073 "sql_yacc.yy"
    {}
    break;

  case 1965:
#line 10074 "sql_yacc.yy"
    {}
    break;

  case 1966:
#line 10075 "sql_yacc.yy"
    {}
    break;

  case 1967:
#line 10076 "sql_yacc.yy"
    {}
    break;

  case 1968:
#line 10077 "sql_yacc.yy"
    {}
    break;

  case 1969:
#line 10078 "sql_yacc.yy"
    {}
    break;

  case 1970:
#line 10079 "sql_yacc.yy"
    {}
    break;

  case 1971:
#line 10080 "sql_yacc.yy"
    {}
    break;

  case 1972:
#line 10081 "sql_yacc.yy"
    {}
    break;

  case 1973:
#line 10082 "sql_yacc.yy"
    {}
    break;

  case 1974:
#line 10083 "sql_yacc.yy"
    {}
    break;

  case 1975:
#line 10084 "sql_yacc.yy"
    {}
    break;

  case 1976:
#line 10085 "sql_yacc.yy"
    {}
    break;

  case 1977:
#line 10086 "sql_yacc.yy"
    {}
    break;

  case 1978:
#line 10087 "sql_yacc.yy"
    {}
    break;

  case 1979:
#line 10088 "sql_yacc.yy"
    {}
    break;

  case 1980:
#line 10089 "sql_yacc.yy"
    {}
    break;

  case 1981:
#line 10090 "sql_yacc.yy"
    {}
    break;

  case 1982:
#line 10091 "sql_yacc.yy"
    {}
    break;

  case 1983:
#line 10092 "sql_yacc.yy"
    {}
    break;

  case 1984:
#line 10093 "sql_yacc.yy"
    {}
    break;

  case 1985:
#line 10094 "sql_yacc.yy"
    {}
    break;

  case 1986:
#line 10095 "sql_yacc.yy"
    {}
    break;

  case 1987:
#line 10096 "sql_yacc.yy"
    {}
    break;

  case 1988:
#line 10097 "sql_yacc.yy"
    {}
    break;

  case 1989:
#line 10098 "sql_yacc.yy"
    {}
    break;

  case 1990:
#line 10099 "sql_yacc.yy"
    {}
    break;

  case 1991:
#line 10100 "sql_yacc.yy"
    {}
    break;

  case 1992:
#line 10101 "sql_yacc.yy"
    {}
    break;

  case 1993:
#line 10102 "sql_yacc.yy"
    {}
    break;

  case 1994:
#line 10103 "sql_yacc.yy"
    {}
    break;

  case 1995:
#line 10104 "sql_yacc.yy"
    {}
    break;

  case 1996:
#line 10105 "sql_yacc.yy"
    {}
    break;

  case 1997:
#line 10106 "sql_yacc.yy"
    {}
    break;

  case 1998:
#line 10107 "sql_yacc.yy"
    {}
    break;

  case 1999:
#line 10108 "sql_yacc.yy"
    {}
    break;

  case 2000:
#line 10109 "sql_yacc.yy"
    {}
    break;

  case 2001:
#line 10110 "sql_yacc.yy"
    {}
    break;

  case 2002:
#line 10111 "sql_yacc.yy"
    {}
    break;

  case 2003:
#line 10112 "sql_yacc.yy"
    {}
    break;

  case 2004:
#line 10113 "sql_yacc.yy"
    {}
    break;

  case 2005:
#line 10114 "sql_yacc.yy"
    {}
    break;

  case 2006:
#line 10115 "sql_yacc.yy"
    {}
    break;

  case 2007:
#line 10116 "sql_yacc.yy"
    {}
    break;

  case 2008:
#line 10117 "sql_yacc.yy"
    {}
    break;

  case 2009:
#line 10118 "sql_yacc.yy"
    {}
    break;

  case 2010:
#line 10119 "sql_yacc.yy"
    {}
    break;

  case 2011:
#line 10120 "sql_yacc.yy"
    {}
    break;

  case 2012:
#line 10121 "sql_yacc.yy"
    {}
    break;

  case 2013:
#line 10122 "sql_yacc.yy"
    {}
    break;

  case 2014:
#line 10123 "sql_yacc.yy"
    {}
    break;

  case 2015:
#line 10124 "sql_yacc.yy"
    {}
    break;

  case 2016:
#line 10125 "sql_yacc.yy"
    {}
    break;

  case 2017:
#line 10126 "sql_yacc.yy"
    {}
    break;

  case 2018:
#line 10127 "sql_yacc.yy"
    {}
    break;

  case 2019:
#line 10128 "sql_yacc.yy"
    {}
    break;

  case 2020:
#line 10129 "sql_yacc.yy"
    {}
    break;

  case 2021:
#line 10130 "sql_yacc.yy"
    {}
    break;

  case 2022:
#line 10131 "sql_yacc.yy"
    {}
    break;

  case 2023:
#line 10132 "sql_yacc.yy"
    {}
    break;

  case 2024:
#line 10133 "sql_yacc.yy"
    {}
    break;

  case 2025:
#line 10134 "sql_yacc.yy"
    {}
    break;

  case 2026:
#line 10135 "sql_yacc.yy"
    {}
    break;

  case 2027:
#line 10136 "sql_yacc.yy"
    {}
    break;

  case 2028:
#line 10137 "sql_yacc.yy"
    {}
    break;

  case 2029:
#line 10138 "sql_yacc.yy"
    {}
    break;

  case 2030:
#line 10139 "sql_yacc.yy"
    {}
    break;

  case 2031:
#line 10140 "sql_yacc.yy"
    {}
    break;

  case 2032:
#line 10141 "sql_yacc.yy"
    {}
    break;

  case 2033:
#line 10142 "sql_yacc.yy"
    {}
    break;

  case 2034:
#line 10143 "sql_yacc.yy"
    {}
    break;

  case 2035:
#line 10144 "sql_yacc.yy"
    {}
    break;

  case 2036:
#line 10145 "sql_yacc.yy"
    {}
    break;

  case 2037:
#line 10146 "sql_yacc.yy"
    {}
    break;

  case 2038:
#line 10147 "sql_yacc.yy"
    {}
    break;

  case 2039:
#line 10148 "sql_yacc.yy"
    {}
    break;

  case 2040:
#line 10149 "sql_yacc.yy"
    {}
    break;

  case 2041:
#line 10150 "sql_yacc.yy"
    {}
    break;

  case 2042:
#line 10151 "sql_yacc.yy"
    {}
    break;

  case 2043:
#line 10152 "sql_yacc.yy"
    {}
    break;

  case 2044:
#line 10153 "sql_yacc.yy"
    {}
    break;

  case 2045:
#line 10154 "sql_yacc.yy"
    {}
    break;

  case 2046:
#line 10155 "sql_yacc.yy"
    {}
    break;

  case 2047:
#line 10156 "sql_yacc.yy"
    {}
    break;

  case 2048:
#line 10157 "sql_yacc.yy"
    {}
    break;

  case 2049:
#line 10158 "sql_yacc.yy"
    {}
    break;

  case 2050:
#line 10159 "sql_yacc.yy"
    {}
    break;

  case 2051:
#line 10160 "sql_yacc.yy"
    {}
    break;

  case 2052:
#line 10161 "sql_yacc.yy"
    {}
    break;

  case 2053:
#line 10162 "sql_yacc.yy"
    {}
    break;

  case 2054:
#line 10163 "sql_yacc.yy"
    {}
    break;

  case 2055:
#line 10164 "sql_yacc.yy"
    {}
    break;

  case 2056:
#line 10165 "sql_yacc.yy"
    {}
    break;

  case 2057:
#line 10166 "sql_yacc.yy"
    {}
    break;

  case 2058:
#line 10167 "sql_yacc.yy"
    {}
    break;

  case 2059:
#line 10168 "sql_yacc.yy"
    {}
    break;

  case 2060:
#line 10169 "sql_yacc.yy"
    {}
    break;

  case 2061:
#line 10170 "sql_yacc.yy"
    {}
    break;

  case 2062:
#line 10171 "sql_yacc.yy"
    {}
    break;

  case 2063:
#line 10172 "sql_yacc.yy"
    {}
    break;

  case 2064:
#line 10173 "sql_yacc.yy"
    {}
    break;

  case 2065:
#line 10174 "sql_yacc.yy"
    {}
    break;

  case 2066:
#line 10175 "sql_yacc.yy"
    {}
    break;

  case 2067:
#line 10176 "sql_yacc.yy"
    {}
    break;

  case 2068:
#line 10177 "sql_yacc.yy"
    {}
    break;

  case 2069:
#line 10178 "sql_yacc.yy"
    {}
    break;

  case 2070:
#line 10179 "sql_yacc.yy"
    {}
    break;

  case 2071:
#line 10180 "sql_yacc.yy"
    {}
    break;

  case 2072:
#line 10181 "sql_yacc.yy"
    {}
    break;

  case 2073:
#line 10188 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_SET_OPTION;
	  mysql_init_select(lex);
	  lex->option_type=OPT_SESSION;
	  lex->var_list.empty();
          lex->one_shot_set= 0;
	}
    break;

  case 2074:
#line 10197 "sql_yacc.yy"
    {}
    break;

  case 2075:
#line 10201 "sql_yacc.yy"
    {}
    break;

  case 2076:
#line 10202 "sql_yacc.yy"
    {}
    break;

  case 2079:
#line 10209 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;

          if (lex->sphead)
          {
            /*
              If we are in SP we want have own LEX for each assignment.
              This is mostly because it is hard for several sp_instr_set
              and sp_instr_set_trigger instructions share one LEX.
              (Well, it is theoretically possible but adds some extra
               overhead on preparation for execution stage and IMO less
               robust).

              QQ: May be we should simply prohibit group assignments in SP?
            */
            lex->sphead->reset_lex(thd);
            lex= thd->lex;

            /* Set new LEX as if we at start of set rule. */
	    lex->sql_command= SQLCOM_SET_OPTION;
	    mysql_init_select(lex);
	    lex->option_type=OPT_SESSION;
	    lex->var_list.empty();
            lex->one_shot_set= 0;
            lex->sphead->m_tmp_query= lip->get_tok_start();
          }
        }
    break;

  case 2080:
#line 10239 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;

          if (lex->sphead)
          {
            sp_head *sp= lex->sphead;

	    if (!lex->var_list.is_empty())
	    {
              /*
                We have assignment to user or system variable or
                option setting, so we should construct sp_instr_stmt
                for it.
              */
              LEX_STRING qbuff;
	      sp_instr_stmt *i;

              if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
                                         lex)))
                MYSQL_YYABORT;

              /*
                Extract the query statement from the tokenizer.  The
                end is either lip->ptr, if there was no lookahead,
                lip->tok_end otherwise.
              */
              if (yychar == YYEMPTY)
                qbuff.length= lip->get_ptr() - sp->m_tmp_query;
              else
                qbuff.length= lip->get_tok_end() - sp->m_tmp_query;

              if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
                                                  qbuff.length + 5)))
                MYSQL_YYABORT;

              strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
                      qbuff.length);
              qbuff.length+= 4;
              i->m_query= qbuff;
              sp->add_instr(i);
            }
            lex->sphead->restore_lex(thd);
          }
        }
    break;

  case 2081:
#line 10287 "sql_yacc.yy"
    {}
    break;

  case 2082:
#line 10288 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2083:
#line 10289 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2084:
#line 10290 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2085:
#line 10294 "sql_yacc.yy"
    { (yyval.num)= OPT_DEFAULT; }
    break;

  case 2086:
#line 10295 "sql_yacc.yy"
    { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; }
    break;

  case 2087:
#line 10299 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2088:
#line 10300 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2089:
#line 10301 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2090:
#line 10302 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2091:
#line 10306 "sql_yacc.yy"
    { (yyval.var_type)=OPT_DEFAULT; }
    break;

  case 2092:
#line 10307 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2093:
#line 10308 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2094:
#line 10309 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2097:
#line 10318 "sql_yacc.yy"
    {
          LEX *lex=Lex;

          if ((yyvsp[-2].variable).var == trg_new_row_fake_var)
          {
            /* We are in trigger and assigning value to field of new row */
            Item *it;
            Item_trigger_field *trg_fld;
            sp_instr_set_trigger_field *sp_fld;
	    LINT_INIT(sp_fld);
            if ((yyvsp[-3].var_type))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if ((yyvsp[0].item))
              it= (yyvsp[0].item);
            else
            {
              /* QQ: Shouldn't this be field's default value ? */
              it= new Item_null();
            }

            DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
                        (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                         lex->trg_chistics.event == TRG_EVENT_UPDATE));
            if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
                                                  Item_trigger_field::NEW_ROW,
                                                  (yyvsp[-2].variable).base_name.str,
                                                  UPDATE_ACL, FALSE)) ||
                !(sp_fld= new sp_instr_set_trigger_field(lex->sphead->
                          	                         instructions(),
                                	                 lex->spcont,
							 trg_fld,
                                        	         it, lex)))
              MYSQL_YYABORT;

            /*
              Let us add this item to list of all Item_trigger_field
              objects in trigger.
            */
            lex->trg_table_fields.link_in_list((uchar *)trg_fld,
                                               (uchar **) &trg_fld->
					       next_trg_field);

            lex->sphead->add_instr(sp_fld);
          }
          else if ((yyvsp[-2].variable).var)
          { /* System variable */
            if ((yyvsp[-3].var_type))
              lex->option_type= (yyvsp[-3].var_type);
            lex->var_list.push_back(new set_var(lex->option_type, (yyvsp[-2].variable).var,
                                    &(yyvsp[-2].variable).base_name, (yyvsp[0].item)));
          }
          else
          {
            /* An SP local variable */
            sp_pcontext *ctx= lex->spcont;
            sp_variable_t *spv;
            sp_instr_set *sp_set;
            Item *it;
            if ((yyvsp[-3].var_type))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }

            spv= ctx->find_variable(&(yyvsp[-2].variable).base_name);

            if ((yyvsp[0].item))
              it= (yyvsp[0].item);
            else if (spv->dflt)
              it= spv->dflt;
            else
              it= new Item_null();
            sp_set= new sp_instr_set(lex->sphead->instructions(), ctx,
                                     spv->offset, it, spv->type, lex, TRUE);
            lex->sphead->add_instr(sp_set);
          }
        }
    break;

  case 2098:
#line 10399 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->option_type= (yyvsp[-4].var_type);
	  lex->var_list.push_back(new set_var(lex->option_type,
                                              find_sys_var(YYTHD, "tx_isolation"),
                                              &null_lex_str,
                                              new Item_int((int32) (yyvsp[0].tx_isolation))));
	}
    break;

  case 2099:
#line 10411 "sql_yacc.yy"
    {
          Lex->var_list.push_back(new set_var_user(new Item_func_set_user_var((yyvsp[-2].lex_str),(yyvsp[0].item))));
	}
    break;

  case 2100:
#line 10415 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    lex->var_list.push_back(new set_var((yyvsp[-3].var_type), (yyvsp[-2].variable).var, &(yyvsp[-2].variable).base_name, (yyvsp[0].item)));
	  }
    break;

  case 2101:
#line 10420 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;
	  (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset): global_system_variables.character_set_client;
	  lex->var_list.push_back(new set_var_collation_client((yyvsp[0].charset),thd->variables.collation_database,(yyvsp[0].charset)));
	}
    break;

  case 2102:
#line 10427 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;
	    LEX_STRING names;

	    names.str= (char *)"names";
	    names.length= 5;
	    if (spc && spc->find_variable(&names))
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str);
            else
              my_parse_error(ER(ER_SYNTAX_ERROR));

	    MYSQL_YYABORT;
	  }
    break;

  case 2103:
#line 10442 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  (yyvsp[-1].charset)= (yyvsp[-1].charset) ? (yyvsp[-1].charset) : global_system_variables.character_set_client;
	  (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset) : (yyvsp[-1].charset);
	  if (!my_charset_same((yyvsp[-1].charset),(yyvsp[0].charset)))
	  {
	    my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                     (yyvsp[0].charset)->name, (yyvsp[-1].charset)->csname);
	    MYSQL_YYABORT;
	  }
	  lex->var_list.push_back(new set_var_collation_client((yyvsp[0].charset),(yyvsp[0].charset),(yyvsp[0].charset)));
	}
    break;

  case 2104:
#line 10455 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;
	    LEX *lex= thd->lex;
	    LEX_USER *user;
            sp_pcontext *spc= lex->spcont;
	    LEX_STRING pw;

	    pw.str= (char *)"password";
	    pw.length= 8;
	    if (spc && spc->find_variable(&pw))
	    {
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str);
	      MYSQL_YYABORT;
	    }
	    if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
	      MYSQL_YYABORT;
	    user->host=null_lex_str;
	    user->user.str=thd->security_ctx->priv_user;
	    thd->lex->var_list.push_back(new set_var_password(user, (yyvsp[0].simple_string)));
	  }
    break;

  case 2105:
#line 10476 "sql_yacc.yy"
    {
	    Lex->var_list.push_back(new set_var_password((yyvsp[-2].lex_user),(yyvsp[0].simple_string)));
	  }
    break;

  case 2106:
#line 10483 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          sp_pcontext *spc= lex->spcont;
	  sp_variable_t *spv;

	  /* We have to lookup here since local vars can shadow sysvars */
	  if (!spc || !(spv = spc->find_variable(&(yyvsp[0].lex_str))))
	  {
            /* Not an SP local variable */
	    sys_var *tmp=find_sys_var(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
	    if (!tmp)
	      MYSQL_YYABORT;
	    (yyval.variable).var= tmp;
	    (yyval.variable).base_name= null_lex_str;
            if (spc && tmp == &sys_autocommit)
            {
              /*
                We don't allow setting AUTOCOMMIT from a stored function
		or trigger.
              */
              lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
            }
	  }
	  else
	  {
            /* An SP local variable */
	    (yyval.variable).var= NULL;
	    (yyval.variable).base_name= (yyvsp[0].lex_str);
	  }
	}
    break;

  case 2107:
#line 10515 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (check_reserved_words(&(yyvsp[-2].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "NEW") || 
                 !my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "OLD")))
            {
              if ((yyvsp[-2].lex_str).str[0]=='O' || (yyvsp[-2].lex_str).str[0]=='o')
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "OLD", "");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.event == TRG_EVENT_DELETE)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0),
                         "NEW", "on DELETE");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.action_time == TRG_ACTION_AFTER)
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "NEW", "after ");
                MYSQL_YYABORT;
              }
              /* This special combination will denote field of NEW row */
              (yyval.variable).var= trg_new_row_fake_var;
              (yyval.variable).base_name= (yyvsp[0].lex_str);
            }
            else
            {
              sys_var *tmp=find_sys_var(YYTHD, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
              if (!tmp)
                MYSQL_YYABORT;
              if (!tmp->is_struct())
                my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[0].lex_str).str);
              (yyval.variable).var= tmp;
              (yyval.variable).base_name= (yyvsp[-2].lex_str);
            }
	  }
    break;

  case 2108:
#line 10558 "sql_yacc.yy"
    {
	    sys_var *tmp=find_sys_var(YYTHD, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);
	    if (!tmp)
	      MYSQL_YYABORT;
	    if (!tmp->is_struct())
	      my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[0].lex_str).str);
	    (yyval.variable).var= tmp;
	    (yyval.variable).base_name.str=    (char*) "default";
	    (yyval.variable).base_name.length= 7;
	  }
    break;

  case 2109:
#line 10571 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
    break;

  case 2110:
#line 10572 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
    break;

  case 2111:
#line 10573 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
    break;

  case 2112:
#line 10574 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
    break;

  case 2113:
#line 10578 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[0].lex_str).str;}
    break;

  case 2114:
#line 10580 "sql_yacc.yy"
    {
	    (yyval.simple_string)= (yyvsp[-1].lex_str).length ? YYTHD->variables.old_passwords ?
	        Item_func_old_password::alloc(YYTHD, (yyvsp[-1].lex_str).str) :
	        Item_func_password::alloc(YYTHD, (yyvsp[-1].lex_str).str) :
	      (yyvsp[-1].lex_str).str;
	  }
    break;

  case 2115:
#line 10587 "sql_yacc.yy"
    {
	    (yyval.simple_string)= (yyvsp[-1].lex_str).length ? Item_func_old_password::alloc(YYTHD, (yyvsp[-1].lex_str).str) :
	      (yyvsp[-1].lex_str).str;
	  }
    break;

  case 2116:
#line 10595 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[0].item); }
    break;

  case 2117:
#line 10596 "sql_yacc.yy"
    { (yyval.item)=0; }
    break;

  case 2118:
#line 10597 "sql_yacc.yy"
    { (yyval.item)=new Item_string("ON",  2, system_charset_info); }
    break;

  case 2119:
#line 10598 "sql_yacc.yy"
    { (yyval.item)=new Item_string("ALL", 3, system_charset_info); }
    break;

  case 2120:
#line 10599 "sql_yacc.yy"
    { (yyval.item)=new Item_string("binary", 6, system_charset_info); }
    break;

  case 2121:
#line 10607 "sql_yacc.yy"
    {
	  LEX *lex= Lex;

	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
	    MYSQL_YYABORT;
	  }
	  lex->sql_command= SQLCOM_LOCK_TABLES;
	}
    break;

  case 2122:
#line 10618 "sql_yacc.yy"
    {}
    break;

  case 2127:
#line 10631 "sql_yacc.yy"
    {
	  if (!Select->add_table_to_list(YYTHD, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), 0, (thr_lock_type) (yyvsp[0].num)))
	   MYSQL_YYABORT;
	}
    break;

  case 2128:
#line 10638 "sql_yacc.yy"
    { (yyval.num)=TL_READ_NO_INSERT; }
    break;

  case 2129:
#line 10639 "sql_yacc.yy"
    { (yyval.num)=TL_WRITE_DEFAULT; }
    break;

  case 2130:
#line 10640 "sql_yacc.yy"
    { (yyval.num)=TL_WRITE_LOW_PRIORITY; }
    break;

  case 2131:
#line 10641 "sql_yacc.yy"
    { (yyval.num)= TL_READ; }
    break;

  case 2132:
#line 10646 "sql_yacc.yy"
    {
	  LEX *lex= Lex;

	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
	    MYSQL_YYABORT;
	  }
	  lex->sql_command= SQLCOM_UNLOCK_TABLES;
	}
    break;

  case 2133:
#line 10657 "sql_yacc.yy"
    {}
    break;

  case 2134:
#line 10667 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
	    MYSQL_YYABORT;
	  }
	  lex->sql_command = SQLCOM_HA_OPEN;
	  if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-2].table), (yyvsp[0].lex_str_ptr), 0))
	    MYSQL_YYABORT;
	}
    break;

  case 2135:
#line 10679 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
	    MYSQL_YYABORT;
	  }
	  lex->sql_command = SQLCOM_HA_CLOSE;
	  if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), 0, 0))
	    MYSQL_YYABORT;
	}
    break;

  case 2136:
#line 10691 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->sphead)
	  {
	    my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
	    MYSQL_YYABORT;
	  }
          lex->expr_allows_subselect= FALSE;
	  lex->sql_command = SQLCOM_HA_READ;
	  lex->ha_rkey_mode= HA_READ_KEY_EXACT;	/* Avoid purify warnings */
	  lex->current_select->select_limit= new Item_int((int32) 1);
	  lex->current_select->offset_limit= 0;
	  if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), 0, 0))
	    MYSQL_YYABORT;
        }
    break;

  case 2137:
#line 10707 "sql_yacc.yy"
    {
          Lex->expr_allows_subselect= TRUE;
        }
    break;

  case 2138:
#line 10713 "sql_yacc.yy"
    { Lex->ident= null_lex_str; }
    break;

  case 2139:
#line 10714 "sql_yacc.yy"
    { Lex->ident= (yyvsp[-1].lex_str); }
    break;

  case 2140:
#line 10718 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2141:
#line 10719 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2142:
#line 10723 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2143:
#line 10724 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2144:
#line 10725 "sql_yacc.yy"
    { Lex->ha_read_mode = RPREV;  }
    break;

  case 2145:
#line 10726 "sql_yacc.yy"
    { Lex->ha_read_mode = RLAST;  }
    break;

  case 2146:
#line 10728 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->ha_read_mode = RKEY;
	  lex->ha_rkey_mode=(yyvsp[0].ha_rkey_mode);
	  if (!(lex->insert_list = new List_item))
	    MYSQL_YYABORT;
	}
    break;

  case 2147:
#line 10734 "sql_yacc.yy"
    { }
    break;

  case 2148:
#line 10738 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT;   }
    break;

  case 2149:
#line 10739 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; }
    break;

  case 2150:
#line 10740 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; }
    break;

  case 2151:
#line 10741 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY;   }
    break;

  case 2152:
#line 10742 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY;  }
    break;

  case 2153:
#line 10749 "sql_yacc.yy"
    {}
    break;

  case 2154:
#line 10754 "sql_yacc.yy"
    {
          LEX *lex= Lex;
	  lex->sql_command= SQLCOM_REVOKE;
          lex->type= 0;
        }
    break;

  case 2155:
#line 10761 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->columns.elements)
          {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
          }
	  lex->sql_command= SQLCOM_REVOKE;
          lex->type= TYPE_ENUM_FUNCTION;
          
        }
    break;

  case 2156:
#line 10774 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->columns.elements)
          {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
          }
	  lex->sql_command= SQLCOM_REVOKE;
          lex->type= TYPE_ENUM_PROCEDURE;
        }
    break;

  case 2157:
#line 10786 "sql_yacc.yy"
    {
	  Lex->sql_command = SQLCOM_REVOKE_ALL;
	}
    break;

  case 2158:
#line 10793 "sql_yacc.yy"
    {}
    break;

  case 2159:
#line 10799 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          lex->sql_command= SQLCOM_GRANT;
          lex->type= 0;
        }
    break;

  case 2160:
#line 10807 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->columns.elements)
          {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
          }
          lex->sql_command= SQLCOM_GRANT;
          lex->type= TYPE_ENUM_FUNCTION;
        }
    break;

  case 2161:
#line 10820 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->columns.elements)
          {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
          }
          lex->sql_command= SQLCOM_GRANT;
          lex->type= TYPE_ENUM_PROCEDURE;
        }
    break;

  case 2164:
#line 10837 "sql_yacc.yy"
    { }
    break;

  case 2165:
#line 10839 "sql_yacc.yy"
    { 
          Lex->all_privileges= 1; 
          Lex->grant= GLOBAL_ACLS;
        }
    break;

  case 2170:
#line 10855 "sql_yacc.yy"
    { Lex->which_columns = SELECT_ACL;}
    break;

  case 2171:
#line 10855 "sql_yacc.yy"
    {}
    break;

  case 2172:
#line 10856 "sql_yacc.yy"
    { Lex->which_columns = INSERT_ACL;}
    break;

  case 2173:
#line 10856 "sql_yacc.yy"
    {}
    break;

  case 2174:
#line 10857 "sql_yacc.yy"
    { Lex->which_columns = UPDATE_ACL; }
    break;

  case 2175:
#line 10857 "sql_yacc.yy"
    {}
    break;

  case 2176:
#line 10858 "sql_yacc.yy"
    { Lex->which_columns = REFERENCES_ACL;}
    break;

  case 2177:
#line 10858 "sql_yacc.yy"
    {}
    break;

  case 2178:
#line 10859 "sql_yacc.yy"
    { Lex->grant |= DELETE_ACL;}
    break;

  case 2179:
#line 10860 "sql_yacc.yy"
    {}
    break;

  case 2180:
#line 10861 "sql_yacc.yy"
    { Lex->grant |= INDEX_ACL;}
    break;

  case 2181:
#line 10862 "sql_yacc.yy"
    { Lex->grant |= ALTER_ACL;}
    break;

  case 2182:
#line 10863 "sql_yacc.yy"
    { Lex->grant |= CREATE_ACL;}
    break;

  case 2183:
#line 10864 "sql_yacc.yy"
    { Lex->grant |= DROP_ACL;}
    break;

  case 2184:
#line 10865 "sql_yacc.yy"
    { Lex->grant |= EXECUTE_ACL;}
    break;

  case 2185:
#line 10866 "sql_yacc.yy"
    { Lex->grant |= RELOAD_ACL;}
    break;

  case 2186:
#line 10867 "sql_yacc.yy"
    { Lex->grant |= SHUTDOWN_ACL;}
    break;

  case 2187:
#line 10868 "sql_yacc.yy"
    { Lex->grant |= PROCESS_ACL;}
    break;

  case 2188:
#line 10869 "sql_yacc.yy"
    { Lex->grant |= FILE_ACL;}
    break;

  case 2189:
#line 10870 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2190:
#line 10871 "sql_yacc.yy"
    { Lex->grant |= SHOW_DB_ACL;}
    break;

  case 2191:
#line 10872 "sql_yacc.yy"
    { Lex->grant |= SUPER_ACL;}
    break;

  case 2192:
#line 10873 "sql_yacc.yy"
    { Lex->grant |= CREATE_TMP_ACL;}
    break;

  case 2193:
#line 10874 "sql_yacc.yy"
    { Lex->grant |= LOCK_TABLES_ACL; }
    break;

  case 2194:
#line 10875 "sql_yacc.yy"
    { Lex->grant |= REPL_SLAVE_ACL; }
    break;

  case 2195:
#line 10876 "sql_yacc.yy"
    { Lex->grant |= REPL_CLIENT_ACL; }
    break;

  case 2196:
#line 10877 "sql_yacc.yy"
    { Lex->grant |= CREATE_VIEW_ACL; }
    break;

  case 2197:
#line 10878 "sql_yacc.yy"
    { Lex->grant |= SHOW_VIEW_ACL; }
    break;

  case 2198:
#line 10879 "sql_yacc.yy"
    { Lex->grant |= CREATE_PROC_ACL; }
    break;

  case 2199:
#line 10880 "sql_yacc.yy"
    { Lex->grant |= ALTER_PROC_ACL; }
    break;

  case 2200:
#line 10881 "sql_yacc.yy"
    { Lex->grant |= CREATE_USER_ACL; }
    break;

  case 2201:
#line 10882 "sql_yacc.yy"
    { Lex->grant |= EVENT_ACL;}
    break;

  case 2202:
#line 10883 "sql_yacc.yy"
    { Lex->grant |= TRIGGER_ACL; }
    break;

  case 2203:
#line 10888 "sql_yacc.yy"
    {}
    break;

  case 2204:
#line 10889 "sql_yacc.yy"
    {}
    break;

  case 2207:
#line 10899 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->x509_subject)
	  {
	    my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
	    MYSQL_YYABORT;
	  }
	  lex->x509_subject=(yyvsp[0].lex_str).str;
	}
    break;

  case 2208:
#line 10909 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->x509_issuer)
	  {
	    my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
	    MYSQL_YYABORT;
	  }
	  lex->x509_issuer=(yyvsp[0].lex_str).str;
	}
    break;

  case 2209:
#line 10919 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->ssl_cipher)
	  {
	    my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
	    MYSQL_YYABORT;
	  }
	  lex->ssl_cipher=(yyvsp[0].lex_str).str;
	}
    break;

  case 2210:
#line 10932 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
            size_t dummy;
            if (lex->copy_db_to(&lex->current_select->db, &dummy))
              MYSQL_YYABORT;
	    if (lex->grant == GLOBAL_ACLS)
	      lex->grant = DB_ACLS & ~GRANT_ACL;
	    else if (lex->columns.elements)
	    {
	      my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
	      MYSQL_YYABORT;
	    }
	  }
    break;

  case 2211:
#line 10947 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->current_select->db = (yyvsp[-2].lex_str).str;
	    if (lex->grant == GLOBAL_ACLS)
	      lex->grant = DB_ACLS & ~GRANT_ACL;
	    else if (lex->columns.elements)
	    {
	      my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
	      MYSQL_YYABORT;
	    }
	  }
    break;

  case 2212:
#line 10960 "sql_yacc.yy"
    {
	    LEX *lex= Lex;
	    lex->current_select->db = NULL;
	    if (lex->grant == GLOBAL_ACLS)
	      lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
	    else if (lex->columns.elements)
	    {
	      my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
	      MYSQL_YYABORT;
	    }
	  }
    break;

  case 2213:
#line 10973 "sql_yacc.yy"
    {
	    LEX *lex=Lex;
	    if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[0].table),NULL,
                                                        TL_OPTION_UPDATING))
	      MYSQL_YYABORT;
	    if (lex->grant == GLOBAL_ACLS)
	      lex->grant =  TABLE_ACLS & ~GRANT_ACL;
	  }
    break;

  case 2214:
#line 10985 "sql_yacc.yy"
    { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT;}
    break;

  case 2215:
#line 10987 "sql_yacc.yy"
    {
	    if (Lex->users_list.push_back((yyvsp[0].lex_user)))
	      MYSQL_YYABORT;
	  }
    break;

  case 2216:
#line 10995 "sql_yacc.yy"
    { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT;}
    break;

  case 2217:
#line 10997 "sql_yacc.yy"
    {
	    if (Lex->users_list.push_back((yyvsp[0].lex_user)))
	      MYSQL_YYABORT;
	  }
    break;

  case 2218:
#line 11006 "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)
	   {
             if (YYTHD->variables.old_passwords)
             {
               char *buff= 
                 (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
               if (buff)
                 make_scrambled_password_323(buff, (yyvsp[0].lex_str).str);
               (yyvsp[-3].lex_user)->password.str= buff;
               (yyvsp[-3].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
             }
             else
             {
               char *buff= 
                 (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_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= SCRAMBLED_PASSWORD_CHAR_LENGTH;
             }
	  }
	}
    break;

  case 2219:
#line 11031 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[-4].lex_user); (yyvsp[-4].lex_user)->password= (yyvsp[0].lex_str); }
    break;

  case 2220:
#line 11033 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[0].lex_user); (yyvsp[0].lex_user)->password= null_lex_str; }
    break;

  case 2221:
#line 11039 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->grant |= lex->which_columns;
	}
    break;

  case 2225:
#line 11051 "sql_yacc.yy"
    {
	  String *new_str = new (YYTHD->mem_root) String((const char*) (yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,system_charset_info);
	  List_iterator <LEX_COLUMN> iter(Lex->columns);
	  class LEX_COLUMN *point;
	  LEX *lex=Lex;
	  while ((point=iter++))
	  {
	    if (!my_strcasecmp(system_charset_info,
                               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 2227:
#line 11073 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_SPECIFIED;
          }
    break;

  case 2228:
#line 11077 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_ANY;
          }
    break;

  case 2229:
#line 11081 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_X509;
          }
    break;

  case 2230:
#line 11085 "sql_yacc.yy"
    {
	    Lex->ssl_type=SSL_TYPE_NONE;
	  }
    break;

  case 2231:
#line 11091 "sql_yacc.yy"
    {}
    break;

  case 2233:
#line 11095 "sql_yacc.yy"
    {}
    break;

  case 2234:
#line 11096 "sql_yacc.yy"
    {}
    break;

  case 2235:
#line 11100 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2236:
#line 11102 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->mqh.questions=(yyvsp[0].ulong_num);
	  lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
	}
    break;

  case 2237:
#line 11108 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->mqh.updates=(yyvsp[0].ulong_num);
	  lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
	}
    break;

  case 2238:
#line 11114 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->mqh.conn_per_hour= (yyvsp[0].ulong_num);
	  lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
	}
    break;

  case 2239:
#line 11120 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          lex->mqh.user_conn= (yyvsp[0].ulong_num);
          lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
	}
    break;

  case 2240:
#line 11129 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          lex->sql_command = SQLCOM_BEGIN;
          lex->start_transaction_opt= 0;
        }
    break;

  case 2241:
#line 11134 "sql_yacc.yy"
    {}
    break;

  case 2242:
#line 11138 "sql_yacc.yy"
    {}
    break;

  case 2243:
#line 11139 "sql_yacc.yy"
    {}
    break;

  case 2244:
#line 11143 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 1); }
    break;

  case 2245:
#line 11144 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2246:
#line 11145 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2247:
#line 11149 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 2); }
    break;

  case 2248:
#line 11150 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2249:
#line 11151 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2250:
#line 11155 "sql_yacc.yy"
    {}
    break;

  case 2251:
#line 11156 "sql_yacc.yy"
    {}
    break;

  case 2252:
#line 11161 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_COMMIT;
	  lex->tx_chain= (yyvsp[-1].num); 
	  lex->tx_release= (yyvsp[0].num);
	}
    break;

  case 2253:
#line 11171 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_ROLLBACK;
	  lex->tx_chain= (yyvsp[-1].num); 
	  lex->tx_release= (yyvsp[0].num);
	}
    break;

  case 2254:
#line 11179 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
	  lex->ident= (yyvsp[0].lex_str);
	}
    break;

  case 2255:
#line 11188 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_SAVEPOINT;
	  lex->ident= (yyvsp[0].lex_str);
	}
    break;

  case 2256:
#line 11197 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
	  lex->ident= (yyvsp[0].lex_str);
	}
    break;

  case 2257:
#line 11210 "sql_yacc.yy"
    {}
    break;

  case 2259:
#line 11216 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  if (lex->result)
	  {
	    /* Only the last SELECT can have  INTO...... */
	    my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
	    MYSQL_YYABORT;
	  }
	  if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
	  {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
          /* This counter shouldn't be incremented for UNION parts */
          Lex->nest_level--;
	  if (mysql_new_select(lex, 0))
	    MYSQL_YYABORT;
          mysql_init_select(lex);
	  lex->current_select->linkage=UNION_TYPE;
          if ((yyvsp[0].num)) /* UNION DISTINCT - remember position */
            lex->current_select->master_unit()->union_distinct=
                                                      lex->current_select;
	}
    break;

  case 2260:
#line 11240 "sql_yacc.yy"
    {
          /*
	    Remove from the name resolution context stack the context of the
            last select in the union.
	  */
          Lex->pop_context();
        }
    break;

  case 2261:
#line 11250 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 2262:
#line 11251 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2263:
#line 11252 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2264:
#line 11256 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;
	    LEX *lex= thd->lex;
	    DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
	    SELECT_LEX *sel= lex->current_select;
	    SELECT_LEX_UNIT *unit= sel->master_unit();
	    SELECT_LEX *fake= unit->fake_select_lex;
	    if (fake)
	    {
	      unit->global_parameters= fake;
	      fake->no_table_names_allowed= 1;
	      lex->current_select= fake;
	    }
	    thd->where= "global ORDER clause";
	  }
    break;

  case 2265:
#line 11272 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;
	    thd->lex->current_select->no_table_names_allowed= 0;
	    thd->where= "";
          }
    break;

  case 2268:
#line 11285 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2269:
#line 11286 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2270:
#line 11287 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2271:
#line 11292 "sql_yacc.yy"
    {
          (yyval.select_lex)= (yyvsp[-1].select_lex);
        }
    break;

  case 2272:
#line 11296 "sql_yacc.yy"
    {
	    THD *thd= YYTHD;
            /*
              note that a local variable can't be used for
              $3 as it's used in local variable construction
              and some compilers can't guarnatee the order
              in which the local variables are initialized.
            */
            List_iterator<Item> it((yyvsp[-1].select_lex)->item_list);
            Item *item;
            /*
              we must fill the items list for the "derived table".
            */
            while ((item= it++))
              add_item_to_list(thd, item);
          }
    break;

  case 2273:
#line 11312 "sql_yacc.yy"
    { (yyval.select_lex)= (yyvsp[-4].select_lex); }
    break;

  case 2274:
#line 11316 "sql_yacc.yy"
    {
    (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
  }
    break;

  case 2275:
#line 11321 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          if (!lex->expr_allows_subselect ||
              lex->sql_command == (int)SQLCOM_PURGE)
	  {
            my_parse_error(ER(ER_SYNTAX_ERROR));
	    MYSQL_YYABORT;
	  }
          /* 
            we are making a "derived table" for the parenthesis
            as we need to have a lex level to fit the union 
            after the parenthesis, e.g. 
            (SELECT .. ) UNION ...  becomes 
            SELECT * FROM ((SELECT ...) UNION ...)
          */
	  if (mysql_new_select(Lex, 1))
	    MYSQL_YYABORT;
	}
    break;

  case 2276:
#line 11341 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
          lex->pop_context();
          SELECT_LEX *child= lex->current_select;
	  lex->current_select = lex->current_select->return_after_parsing();
          lex->nest_level--;
          lex->current_select->n_child_sum_items += child->n_sum_items;
          /*
            A subselect can add fields to an outer select. Reserve space for
            them.
          */
          lex->current_select->select_n_where_fields+=
            child->select_n_where_fields;
	}
    break;

  case 2277:
#line 11364 "sql_yacc.yy"
    {}
    break;

  case 2278:
#line 11366 "sql_yacc.yy"
    {}
    break;

  case 2279:
#line 11371 "sql_yacc.yy"
    {}
    break;

  case 2280:
#line 11373 "sql_yacc.yy"
    {}
    break;

  case 2281:
#line 11375 "sql_yacc.yy"
    {}
    break;

  case 2282:
#line 11377 "sql_yacc.yy"
    {}
    break;

  case 2283:
#line 11388 "sql_yacc.yy"
    {
          /*
            We have to distinguish missing DEFINER-clause from case when
            CURRENT_USER specified as definer explicitly in order to properly
            handle CREATE TRIGGER statements which come to replication thread
            from older master servers (i.e. to create non-suid trigger in this
            case).
           */
          YYTHD->lex->definer= 0;
	}
    break;

  case 2284:
#line 11399 "sql_yacc.yy"
    {
	  YYTHD->lex->definer= get_current_user(YYTHD, (yyvsp[0].lex_user));
	}
    break;

  case 2285:
#line 11412 "sql_yacc.yy"
    {}
    break;

  case 2286:
#line 11414 "sql_yacc.yy"
    {}
    break;

  case 2287:
#line 11416 "sql_yacc.yy"
    {}
    break;

  case 2288:
#line 11421 "sql_yacc.yy"
    { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
    break;

  case 2289:
#line 11426 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; }
    break;

  case 2290:
#line 11428 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
    break;

  case 2291:
#line 11430 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
    break;

  case 2292:
#line 11435 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
    break;

  case 2293:
#line 11437 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFINER; }
    break;

  case 2294:
#line 11439 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_INVOKER; }
    break;

  case 2295:
#line 11444 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  LEX *lex= thd->lex;
	  lex->sql_command= SQLCOM_CREATE_VIEW;
	  /* first table in list is target VIEW name */
	  if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING))
	    MYSQL_YYABORT;
	}
    break;

  case 2296:
#line 11453 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
	  Lex_input_stream *lip= thd->m_lip;

	  lip->body_utf8_start(thd, lip->get_cpp_ptr());
	}
    break;

  case 2297:
#line 11460 "sql_yacc.yy"
    {
	  THD *thd= YYTHD;
          LEX *lex= thd->lex;
	  Lex_input_stream *lip= thd->m_lip;

	  lip->body_utf8_append(lip->get_cpp_ptr());

          lex->view_body_utf8.str= thd->strmake(lip->get_body_utf8_str(),
                                                lip->get_body_utf8_length());
          lex->view_body_utf8.length= lip->get_body_utf8_length();

          trim_whitespace(&my_charset_utf8_general_ci, &lex->view_body_utf8);
	}
    break;

  case 2298:
#line 11477 "sql_yacc.yy"
    {}
    break;

  case 2300:
#line 11483 "sql_yacc.yy"
    {
	    Lex->view_list.push_back((LEX_STRING*)
				     sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING)));
	  }
    break;

  case 2301:
#line 11488 "sql_yacc.yy"
    {
	    Lex->view_list.push_back((LEX_STRING*)
				     sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING)));
	  }
    break;

  case 2302:
#line 11495 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= Lex;
          Lex_input_stream *lip= thd->m_lip;
          lex->parsing_options.allows_variable= FALSE;
          lex->parsing_options.allows_select_into= FALSE;
          lex->parsing_options.allows_select_procedure= FALSE;
          lex->parsing_options.allows_derived= FALSE;
          lex->create_view_select_start= lip->get_cpp_ptr();
        }
    break;

  case 2303:
#line 11506 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= Lex;
          Lex_input_stream *lip= thd->m_lip;
          lex->parsing_options.allows_variable= TRUE;
          lex->parsing_options.allows_select_into= TRUE;
          lex->parsing_options.allows_select_procedure= TRUE;
          lex->parsing_options.allows_derived= TRUE;
          lex->create_view_select_end= lip->get_cpp_ptr();
        }
    break;

  case 2306:
#line 11525 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_NONE; }
    break;

  case 2307:
#line 11527 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2308:
#line 11529 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2309:
#line 11531 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_LOCAL; }
    break;

  case 2310:
#line 11548 "sql_yacc.yy"
    { /* $8 */
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
          lex->raw_trg_on_table_name_begin= lip->get_tok_start();
        }
    break;

  case 2311:
#line 11557 "sql_yacc.yy"
    { /* $12 */
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
          lex->raw_trg_on_table_name_end= lip->get_tok_start();
        }
    break;

  case 2312:
#line 11565 "sql_yacc.yy"
    { /* $15 */
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
	  sp_head *sp;

	  if (lex->sphead)
	  {
	    my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
	    MYSQL_YYABORT;
	  }

	  if (!(sp= new sp_head()))
	    MYSQL_YYABORT;
	  sp->reset_thd_mem_root(thd);
	  sp->init(lex);
	  sp->m_type= TYPE_ENUM_TRIGGER;
          sp->init_sp_name(thd, (yyvsp[-11].spname));
	  lex->stmt_definition_begin= (yyvsp[-12].simple_string);
          lex->ident.str= (yyvsp[-7].simple_string);
          lex->ident.length= (yyvsp[-3].simple_string) - (yyvsp[-7].simple_string);

	  lex->sphead= sp;
	  lex->spname= (yyvsp[-11].spname);
	  /*
	    We have to turn of CLIENT_MULTI_QUERIES while parsing a
	    stored procedure, otherwise yylex will chop it into pieces
	    at each ';'.
	  */
	  (yyval.ulong_num)= thd->client_capabilities & CLIENT_MULTI_QUERIES;
	  thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;

	  bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
	  lex->sphead->m_chistics= &lex->sp_chistics;
          lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
	}
    break;

  case 2313:
#line 11602 "sql_yacc.yy"
    { /* $17 */
	  LEX *lex= Lex;
	  sp_head *sp= lex->sphead;

	  lex->sql_command= SQLCOM_CREATE_TRIGGER;
	  sp->set_stmt_end(YYTHD);
	  /* Restore flag if it was cleared above */

	  YYTHD->client_capabilities |= (yyvsp[-1].ulong_num);
	  sp->restore_thd_mem_root(YYTHD);

	  if (sp->is_not_allowed_in_function("trigger"))
	      MYSQL_YYABORT;

	  /*
	    We have to do it after parsing trigger body, because some of
	    sp_proc_stmt alternatives are not saving/restoring LEX, so
	    lex->query_tables can be wiped out.
	  */
	  if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[-7].table),
	                                         (LEX_STRING*) 0,
	                                         TL_OPTION_UPDATING,
                                                 TL_IGNORE))
	    MYSQL_YYABORT;
	}
    break;

  case 2314:
#line 11637 "sql_yacc.yy"
    {
	  LEX *lex=Lex;
	  lex->udf.type= (yyvsp[-3].udf_type);
	  lex->stmt_definition_begin= (yyvsp[-2].simple_string);
	  lex->spname= (yyvsp[0].spname);
	}
    break;

  case 2315:
#line 11644 "sql_yacc.yy"
    {}
    break;

  case 2316:
#line 11646 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  sp_head *sp;

	  if (lex->sphead)
	  {
	    my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
	    MYSQL_YYABORT;
	  }

	  lex->stmt_definition_begin= (yyvsp[-1].simple_string);

	  /* Order is important here: new - reset - init */
	  sp= new sp_head();
	  sp->reset_thd_mem_root(YYTHD);
	  sp->init(lex);
	  sp->m_type= TYPE_ENUM_PROCEDURE;
          sp->init_sp_name(YYTHD, (yyvsp[0].spname));

	  lex->sphead= sp;
	  /*
	   * We have to turn of CLIENT_MULTI_QUERIES while parsing a
	   * stored procedure, otherwise yylex will chop it into pieces
	   * at each ';'.
	   */
          (yyval.ulong_num)= YYTHD->client_capabilities & CLIENT_MULTI_QUERIES;
	  YYTHD->client_capabilities &= (~CLIENT_MULTI_QUERIES);
	}
    break;

  case 2317:
#line 11675 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;
          const char* tmp_param_begin;

          tmp_param_begin= lip->get_cpp_tok_start();
          tmp_param_begin++;
          lex->sphead->m_param_begin= tmp_param_begin;
	}
    break;

  case 2318:
#line 11687 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;

          lex->sphead->m_param_end= lip->get_cpp_tok_start();
	  bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
	}
    break;

  case 2319:
#line 11696 "sql_yacc.yy"
    {
          THD *thd= YYTHD;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= thd->m_lip;

	  lex->sphead->m_chistics= &lex->sp_chistics;
          lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
	}
    break;

  case 2320:
#line 11705 "sql_yacc.yy"
    {
	  LEX *lex= Lex;
	  sp_head *sp= lex->sphead;

	  sp->set_stmt_end(YYTHD);
	  lex->sql_command= SQLCOM_CREATE_PROCEDURE;
          /*
            Restore flag if it was cleared above
            Be careful with counting. the block where we save the value
            is $4.
          */
          YYTHD->client_capabilities |= (yyvsp[-8].ulong_num);
	  sp->restore_thd_mem_root(YYTHD);
	}
    break;

  case 2321:
#line 11724 "sql_yacc.yy"
    {
        Lex->sql_command = SQLCOM_XA_START;
      }
    break;

  case 2322:
#line 11728 "sql_yacc.yy"
    {
        Lex->sql_command = SQLCOM_XA_END;
      }
    break;

  case 2323:
#line 11732 "sql_yacc.yy"
    {
        Lex->sql_command = SQLCOM_XA_PREPARE;
      }
    break;

  case 2324:
#line 11736 "sql_yacc.yy"
    {
        Lex->sql_command = SQLCOM_XA_COMMIT;
      }
    break;

  case 2325:
#line 11740 "sql_yacc.yy"
    {
        Lex->sql_command = SQLCOM_XA_ROLLBACK;
      }
    break;

  case 2326:
#line 11744 "sql_yacc.yy"
    {
        Lex->sql_command = SQLCOM_XA_RECOVER;
      }
    break;

  case 2327:
#line 11750 "sql_yacc.yy"
    {
       MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE);
       if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
         MYSQL_YYABORT;
       Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0);
     }
    break;

  case 2328:
#line 11757 "sql_yacc.yy"
    {
       MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE);
       if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
         MYSQL_YYABORT;
       Lex->xid->set(1L, (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length(), (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length());
     }
    break;

  case 2329:
#line 11764 "sql_yacc.yy"
    {
       MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && (yyvsp[-2].string)->length() <= MAXBQUALSIZE);
       if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
         MYSQL_YYABORT;
       Lex->xid->set((yyvsp[0].ulong_num), (yyvsp[-4].string)->ptr(), (yyvsp[-4].string)->length(), (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length());
     }
    break;

  case 2330:
#line 11772 "sql_yacc.yy"
    {}
    break;

  case 2331:
#line 11773 "sql_yacc.yy"
    {}
    break;

  case 2332:
#line 11777 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2333:
#line 11778 "sql_yacc.yy"
    { Lex->xa_opt=XA_JOIN;        }
    break;

  case 2334:
#line 11779 "sql_yacc.yy"
    { Lex->xa_opt=XA_RESUME;      }
    break;

  case 2335:
#line 11783 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2336:
#line 11784 "sql_yacc.yy"
    { Lex->xa_opt=XA_ONE_PHASE;   }
    break;

  case 2337:
#line 11788 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2338:
#line 11789 "sql_yacc.yy"
    { Lex->xa_opt=XA_SUSPEND;     }
    break;

  case 2340:
#line 11794 "sql_yacc.yy"
    { }
    break;

  case 2341:
#line 11795 "sql_yacc.yy"
    { Lex->xa_opt=XA_FOR_MIGRATE; }
    break;

  case 2342:
#line 11800 "sql_yacc.yy"
    {
    LEX *lex= Lex;
    lex->sql_command= SQLCOM_INSTALL_PLUGIN;
    lex->comment= (yyvsp[-2].lex_str);
    lex->ident= (yyvsp[0].lex_str);
  }
    break;

  case 2343:
#line 11809 "sql_yacc.yy"
    {
    LEX *lex= Lex;
    lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
    lex->comment= (yyvsp[0].lex_str);
  }
    break;


    }

/* Line 1037 of yacc.c.  */
#line 29737 "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 look-ahead 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;
		 yydestruct ("Error: popping",
                             yystos[*yyssp], yyvsp);
	       }
        }
      else
	{
	  yydestruct ("Error: discarding", yytoken, &yylval);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse look-ahead 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;


      yydestruct ("Error: popping", yystos[yystate], yyvsp);
      YYPOPSTACK;
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  *++yyvsp = yylval;


  /* Shift the error token. */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yydestruct ("Error: discarding lookahead",
              yytoken, &yylval);
  yychar = YYEMPTY;
  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;
}




