00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #define YYBISON 1
00047
00048
00049 #define YYBISON_VERSION "2.4.1"
00050
00051
00052 #define YYSKELETON_NAME "yacc.c"
00053
00054
00055 #define YYPURE 1
00056
00057
00058 #define YYPUSH 0
00059
00060
00061 #define YYPULL 1
00062
00063
00064 #define YYLSP_NEEDED 0
00065
00066
00067 #define yyparse base_sql_parse
00068 #define yylex base_sql_lex
00069 #define yyerror base_sql_error
00070 #define yylval base_sql_lval
00071 #define yychar base_sql_char
00072 #define yydebug base_sql_debug
00073 #define yynerrs base_sql_nerrs
00074
00075
00076
00077
00078
00079 #line 23 "drizzled/sql_yacc.yy"
00080
00081
00082
00083
00084
00085
00086 #define YYSession (session)
00087
00088 #define YYENABLE_NLS 0
00089 #define YYLTYPE_IS_TRIVIAL 0
00090
00091 #define YYINITDEPTH 100
00092 #define YYMAXDEPTH 3200
00093 #define Lex (session->lex())
00094
00095 #include <config.h>
00096 #include <cstdio>
00097 #include <drizzled/parser.h>
00098 #include <drizzled/session.h>
00099 #include <drizzled/alter_column.h>
00100 #include <drizzled/alter_drop.h>
00101 #include <drizzled/alter_info.h>
00102 #include <drizzled/item/subselect.h>
00103
00104 int yylex(union ParserType *yylval, drizzled::Session *session);
00105
00106 #define yyoverflow(A,B,C,D,E,F) \
00107 { \
00108 unsigned long val= *(F); \
00109 if (drizzled::my_yyoverflow((B), (D), &val)) \
00110 { \
00111 yyerror(NULL, (char*) (A)); \
00112 return 2; \
00113 } \
00114 else \
00115 { \
00116 *(F)= (YYSIZE_T)val; \
00117 } \
00118 }
00119
00120 #define DRIZZLE_YYABORT \
00121 do \
00122 { \
00123 YYABORT; \
00124 } while (0)
00125
00126 #define DRIZZLE_YYABORT_UNLESS(A) \
00127 if (!(A)) \
00128 { \
00129 parser::my_parse_error(YYSession->m_lip);\
00130 DRIZZLE_YYABORT; \
00131 }
00132
00133 namespace drizzled
00134 {
00135
00136 class Table_ident;
00137 class Item;
00138 class Item_num;
00139
00140 namespace item
00141 {
00142 class Boolean;
00143 class True;
00144 class False;
00145 }
00146
00147
00168 static void base_sql_error(drizzled::Session *session, const char *s)
00169 {
00170 parser::errorOn(session, s);
00171 }
00172
00173 }
00174
00175 using namespace drizzled;
00176
00177
00178
00179 #line 180 "drizzled/sql_yacc.cc"
00180
00181
00182 #ifndef YYDEBUG
00183 # define YYDEBUG 1
00184 #endif
00185
00186
00187 #ifdef YYERROR_VERBOSE
00188 # undef YYERROR_VERBOSE
00189 # define YYERROR_VERBOSE 1
00190 #else
00191 # define YYERROR_VERBOSE 0
00192 #endif
00193
00194
00195 #ifndef YYTOKEN_TABLE
00196 # define YYTOKEN_TABLE 0
00197 #endif
00198
00199
00200
00201 #ifndef YYTOKENTYPE
00202 # define YYTOKENTYPE
00203
00204
00205 enum yytokentype {
00206 ABORT_SYM = 258,
00207 ACTION = 259,
00208 ADD_SYM = 260,
00209 ADDDATE_SYM = 261,
00210 AFTER_SYM = 262,
00211 AGGREGATE_SYM = 263,
00212 ALL = 264,
00213 ALTER_SYM = 265,
00214 ANALYZE_SYM = 266,
00215 AND_SYM = 267,
00216 ANY_SYM = 268,
00217 AS = 269,
00218 ASC = 270,
00219 ASENSITIVE_SYM = 271,
00220 AT_SYM = 272,
00221 AUTO_INC = 273,
00222 AVG_SYM = 274,
00223 BEFORE_SYM = 275,
00224 BEGIN_SYM = 276,
00225 BETWEEN_SYM = 277,
00226 BIGINT_SYM = 278,
00227 BINARY = 279,
00228 BIN_NUM = 280,
00229 BIT_SYM = 281,
00230 BLOB_SYM = 282,
00231 BOOLEAN_SYM = 283,
00232 BOOL_SYM = 284,
00233 BOTH = 285,
00234 BTREE_SYM = 286,
00235 BY = 287,
00236 CALL_SYM = 288,
00237 CASCADE = 289,
00238 CASCADED = 290,
00239 CASE_SYM = 291,
00240 CAST_SYM = 292,
00241 CATALOG_SYM = 293,
00242 CHAIN_SYM = 294,
00243 CHANGE_SYM = 295,
00244 CHAR_SYM = 296,
00245 CHECKSUM_SYM = 297,
00246 CHECK_SYM = 298,
00247 CLOSE_SYM = 299,
00248 COALESCE = 300,
00249 COLLATE_SYM = 301,
00250 COLLATION_SYM = 302,
00251 COLUMNS = 303,
00252 COLUMN_SYM = 304,
00253 COMMENT_SYM = 305,
00254 COMMITTED_SYM = 306,
00255 COMMIT_SYM = 307,
00256 COMPACT_SYM = 308,
00257 COMPRESSED_SYM = 309,
00258 CONCURRENT = 310,
00259 CONDITION_SYM = 311,
00260 CONNECTION_SYM = 312,
00261 CONSISTENT_SYM = 313,
00262 CONSTRAINT = 314,
00263 CONTAINS_SYM = 315,
00264 CONVERT_SYM = 316,
00265 COUNT_SYM = 317,
00266 CREATE = 318,
00267 CROSS = 319,
00268 CUBE_SYM = 320,
00269 CURDATE = 321,
00270 CURRENT_USER = 322,
00271 CURSOR_SYM = 323,
00272 DATABASE = 324,
00273 DATABASES = 325,
00274 DATA_SYM = 326,
00275 DATETIME_SYM = 327,
00276 DATE_ADD_INTERVAL = 328,
00277 DATE_SUB_INTERVAL = 329,
00278 DATE_SYM = 330,
00279 DAY_HOUR_SYM = 331,
00280 DAY_MICROSECOND_SYM = 332,
00281 DAY_MINUTE_SYM = 333,
00282 DAY_SECOND_SYM = 334,
00283 DAY_SYM = 335,
00284 DEALLOCATE_SYM = 336,
00285 DECIMAL_NUM = 337,
00286 DECIMAL_SYM = 338,
00287 DECLARE_SYM = 339,
00288 DEFAULT = 340,
00289 DELETE_SYM = 341,
00290 DESC = 342,
00291 DESCRIBE = 343,
00292 DETERMINISTIC_SYM = 344,
00293 DISABLE_SYM = 345,
00294 DISCARD = 346,
00295 DISTINCT = 347,
00296 DIV_SYM = 348,
00297 DO_SYM = 349,
00298 DOUBLE_SYM = 350,
00299 DROP = 351,
00300 DUMPFILE = 352,
00301 DUPLICATE_SYM = 353,
00302 DYNAMIC_SYM = 354,
00303 EACH_SYM = 355,
00304 ELSE = 356,
00305 ENABLE_SYM = 357,
00306 ENCLOSED = 358,
00307 END = 359,
00308 ENDS_SYM = 360,
00309 END_OF_INPUT = 361,
00310 ENGINE_SYM = 362,
00311 ENUM_SYM = 363,
00312 EQUAL_SYM = 364,
00313 ERRORS = 365,
00314 ESCAPED = 366,
00315 ESCAPE_SYM = 367,
00316 EXCLUSIVE_SYM = 368,
00317 EXECUTE_SYM = 369,
00318 EXISTS = 370,
00319 EXTENDED_SYM = 371,
00320 EXTRACT_SYM = 372,
00321 FALSE_SYM = 373,
00322 FILE_SYM = 374,
00323 FIRST_SYM = 375,
00324 FIXED_SYM = 376,
00325 FLOAT_NUM = 377,
00326 FLUSH_SYM = 378,
00327 FORCE_SYM = 379,
00328 FOREIGN = 380,
00329 FOR_SYM = 381,
00330 FOUND_SYM = 382,
00331 FRAC_SECOND_SYM = 383,
00332 FROM = 384,
00333 FULL = 385,
00334 GE = 386,
00335 GLOBAL_SYM = 387,
00336 GROUP_SYM = 388,
00337 GROUP_CONCAT_SYM = 389,
00338 HASH_SYM = 390,
00339 HAVING = 391,
00340 HEX_NUM = 392,
00341 HOUR_MICROSECOND_SYM = 393,
00342 HOUR_MINUTE_SYM = 394,
00343 HOUR_SECOND_SYM = 395,
00344 HOUR_SYM = 396,
00345 IDENT = 397,
00346 IDENTIFIED_SYM = 398,
00347 IDENTITY_SYM = 399,
00348 IDENT_QUOTED = 400,
00349 IF = 401,
00350 IGNORE_SYM = 402,
00351 IMPORT = 403,
00352 INDEXES = 404,
00353 INDEX_SYM = 405,
00354 INFILE = 406,
00355 INNER_SYM = 407,
00356 INOUT_SYM = 408,
00357 INSENSITIVE_SYM = 409,
00358 INSERT = 410,
00359 INTERVAL_SYM = 411,
00360 INTO = 412,
00361 INT_SYM = 413,
00362 IN_SYM = 414,
00363 IS = 415,
00364 ISOLATION = 416,
00365 ITERATE_SYM = 417,
00366 JOIN_SYM = 418,
00367 KEYS = 419,
00368 KEY_BLOCK_SIZE = 420,
00369 KEY_SYM = 421,
00370 KILL_SYM = 422,
00371 LAST_SYM = 423,
00372 LE = 424,
00373 LEADING = 425,
00374 LEFT = 426,
00375 LEVEL_SYM = 427,
00376 LEX_HOSTNAME = 428,
00377 LIKE = 429,
00378 LIMIT = 430,
00379 LINES = 431,
00380 LOAD = 432,
00381 LOCAL_SYM = 433,
00382 LOCKS_SYM = 434,
00383 LOCK_SYM = 435,
00384 LOGS_SYM = 436,
00385 LONG_NUM = 437,
00386 LONG_SYM = 438,
00387 MATCH = 439,
00388 MAX_SYM = 440,
00389 MAX_VALUE_SYM = 441,
00390 MEDIUM_SYM = 442,
00391 MERGE_SYM = 443,
00392 MICROSECOND_SYM = 444,
00393 MINUTE_MICROSECOND_SYM = 445,
00394 MINUTE_SECOND_SYM = 446,
00395 MINUTE_SYM = 447,
00396 MIN_SYM = 448,
00397 MODE_SYM = 449,
00398 MODIFIES_SYM = 450,
00399 MODIFY_SYM = 451,
00400 MOD_SYM = 452,
00401 MONTH_SYM = 453,
00402 NAMES_SYM = 454,
00403 NAME_SYM = 455,
00404 NATIONAL_SYM = 456,
00405 NATURAL = 457,
00406 NE = 458,
00407 NEW_SYM = 459,
00408 NEXT_SYM = 460,
00409 NONE_SYM = 461,
00410 NOT_SYM = 462,
00411 NOW_SYM = 463,
00412 NO_SYM = 464,
00413 NULL_SYM = 465,
00414 NUM = 466,
00415 NUMERIC_SYM = 467,
00416 OFFLINE_SYM = 468,
00417 OFFSET_SYM = 469,
00418 ON = 470,
00419 ONE_SHOT_SYM = 471,
00420 ONE_SYM = 472,
00421 ONLINE_SYM = 473,
00422 OPEN_SYM = 474,
00423 OPTIMIZE = 475,
00424 OPTION = 476,
00425 OPTIONALLY = 477,
00426 ORDER_SYM = 478,
00427 OR_SYM = 479,
00428 OUTER = 480,
00429 OUTFILE = 481,
00430 OUT_SYM = 482,
00431 PARTIAL = 483,
00432 POSITION_SYM = 484,
00433 PRECISION = 485,
00434 PREV_SYM = 486,
00435 PRIMARY_SYM = 487,
00436 PROCESS = 488,
00437 PROCESSLIST_SYM = 489,
00438 QUARTER_SYM = 490,
00439 QUERY_SYM = 491,
00440 RANGE_SYM = 492,
00441 READS_SYM = 493,
00442 READ_SYM = 494,
00443 READ_WRITE_SYM = 495,
00444 REAL = 496,
00445 REDUNDANT_SYM = 497,
00446 REGEXP_SYM = 498,
00447 REFERENCES = 499,
00448 RELEASE_SYM = 500,
00449 RENAME = 501,
00450 REPEATABLE_SYM = 502,
00451 REPEAT_SYM = 503,
00452 REPLACE = 504,
00453 REPLICATE = 505,
00454 REPLICATION = 506,
00455 RESTRICT = 507,
00456 RETURNS_SYM = 508,
00457 RETURN_SYM = 509,
00458 REVOKE = 510,
00459 RIGHT = 511,
00460 ROLLBACK_SYM = 512,
00461 ROLLUP_SYM = 513,
00462 ROUTINE_SYM = 514,
00463 ROWS_SYM = 515,
00464 ROW_FORMAT_SYM = 516,
00465 ROW_SYM = 517,
00466 SAVEPOINT_SYM = 518,
00467 SECOND_MICROSECOND_SYM = 519,
00468 SECOND_SYM = 520,
00469 SECURITY_SYM = 521,
00470 SELECT_SYM = 522,
00471 SENSITIVE_SYM = 523,
00472 SEPARATOR_SYM = 524,
00473 SERIALIZABLE_SYM = 525,
00474 SERIAL_SYM = 526,
00475 SESSION_SYM = 527,
00476 SERVER_SYM = 528,
00477 SET_SYM = 529,
00478 SET_VAR = 530,
00479 SHARE_SYM = 531,
00480 SHOW = 532,
00481 SIGNED_SYM = 533,
00482 SIMPLE_SYM = 534,
00483 SNAPSHOT_SYM = 535,
00484 SPECIFIC_SYM = 536,
00485 SQLEXCEPTION_SYM = 537,
00486 SQLSTATE_SYM = 538,
00487 SQLWARNING_SYM = 539,
00488 SQL_BIG_RESULT = 540,
00489 SQL_BUFFER_RESULT = 541,
00490 SQL_CALC_FOUND_ROWS = 542,
00491 SQL_SMALL_RESULT = 543,
00492 SQL_SYM = 544,
00493 STARTING = 545,
00494 START_SYM = 546,
00495 STATUS_SYM = 547,
00496 STDDEV_SAMP_SYM = 548,
00497 STD_SYM = 549,
00498 STOP_SYM = 550,
00499 STORED_SYM = 551,
00500 STRAIGHT_JOIN = 552,
00501 STRING_SYM = 553,
00502 SUBDATE_SYM = 554,
00503 SUBJECT_SYM = 555,
00504 SUBSTRING = 556,
00505 SUM_SYM = 557,
00506 SUSPEND_SYM = 558,
00507 SYSDATE = 559,
00508 TABLES = 560,
00509 TABLESPACE = 561,
00510 TABLE_REF_PRIORITY = 562,
00511 TABLE_SYM = 563,
00512 TEMPORARY_SYM = 564,
00513 TERMINATED = 565,
00514 TEXT_STRING = 566,
00515 TEXT_SYM = 567,
00516 THEN_SYM = 568,
00517 TIME_SYM = 569,
00518 TIMESTAMP_SYM = 570,
00519 TIMESTAMP_ADD = 571,
00520 TIMESTAMP_DIFF = 572,
00521 TO_SYM = 573,
00522 TRAILING = 574,
00523 TRANSACTION_SYM = 575,
00524 TRIM = 576,
00525 TRUE_SYM = 577,
00526 TRUNCATE_SYM = 578,
00527 TYPE_SYM = 579,
00528 ULONGLONG_NUM = 580,
00529 UNCOMMITTED_SYM = 581,
00530 UNDOFILE_SYM = 582,
00531 UNDO_SYM = 583,
00532 UNION_SYM = 584,
00533 UNIQUE_SYM = 585,
00534 UNKNOWN_SYM = 586,
00535 UNLOCK_SYM = 587,
00536 UNSIGNED_SYM = 588,
00537 UPDATE_SYM = 589,
00538 USAGE = 590,
00539 USER = 591,
00540 USE_SYM = 592,
00541 USING = 593,
00542 UTC_DATE_SYM = 594,
00543 UTC_TIMESTAMP_SYM = 595,
00544 UUID_SYM = 596,
00545 VALUES = 597,
00546 VALUE_SYM = 598,
00547 VARBINARY = 599,
00548 VARCHAR_SYM = 600,
00549 VARIABLES = 601,
00550 VARIANCE_SYM = 602,
00551 VARYING = 603,
00552 VAR_SAMP_SYM = 604,
00553 WAIT_SYM = 605,
00554 WARNINGS = 606,
00555 WEEK_SYM = 607,
00556 WHEN_SYM = 608,
00557 WHERE = 609,
00558 WITH = 610,
00559 WITH_ROLLUP_SYM = 611,
00560 WORK_SYM = 612,
00561 WRITE_SYM = 613,
00562 XOR = 614,
00563 YEAR_MONTH_SYM = 615,
00564 YEAR_SYM = 616,
00565 ZEROFILL_SYM = 617,
00566 LESS_THAN = 618,
00567 GREATER_THAN = 619,
00568 CONCAT = 620,
00569 SHIFT_RIGHT = 621,
00570 SHIFT_LEFT = 622,
00571 UMINUS = 623
00572 };
00573 #endif
00574
00575 #define ABORT_SYM 258
00576 #define ACTION 259
00577 #define ADD_SYM 260
00578 #define ADDDATE_SYM 261
00579 #define AFTER_SYM 262
00580 #define AGGREGATE_SYM 263
00581 #define ALL 264
00582 #define ALTER_SYM 265
00583 #define ANALYZE_SYM 266
00584 #define AND_SYM 267
00585 #define ANY_SYM 268
00586 #define AS 269
00587 #define ASC 270
00588 #define ASENSITIVE_SYM 271
00589 #define AT_SYM 272
00590 #define AUTO_INC 273
00591 #define AVG_SYM 274
00592 #define BEFORE_SYM 275
00593 #define BEGIN_SYM 276
00594 #define BETWEEN_SYM 277
00595 #define BIGINT_SYM 278
00596 #define BINARY 279
00597 #define BIN_NUM 280
00598 #define BIT_SYM 281
00599 #define BLOB_SYM 282
00600 #define BOOLEAN_SYM 283
00601 #define BOOL_SYM 284
00602 #define BOTH 285
00603 #define BTREE_SYM 286
00604 #define BY 287
00605 #define CALL_SYM 288
00606 #define CASCADE 289
00607 #define CASCADED 290
00608 #define CASE_SYM 291
00609 #define CAST_SYM 292
00610 #define CATALOG_SYM 293
00611 #define CHAIN_SYM 294
00612 #define CHANGE_SYM 295
00613 #define CHAR_SYM 296
00614 #define CHECKSUM_SYM 297
00615 #define CHECK_SYM 298
00616 #define CLOSE_SYM 299
00617 #define COALESCE 300
00618 #define COLLATE_SYM 301
00619 #define COLLATION_SYM 302
00620 #define COLUMNS 303
00621 #define COLUMN_SYM 304
00622 #define COMMENT_SYM 305
00623 #define COMMITTED_SYM 306
00624 #define COMMIT_SYM 307
00625 #define COMPACT_SYM 308
00626 #define COMPRESSED_SYM 309
00627 #define CONCURRENT 310
00628 #define CONDITION_SYM 311
00629 #define CONNECTION_SYM 312
00630 #define CONSISTENT_SYM 313
00631 #define CONSTRAINT 314
00632 #define CONTAINS_SYM 315
00633 #define CONVERT_SYM 316
00634 #define COUNT_SYM 317
00635 #define CREATE 318
00636 #define CROSS 319
00637 #define CUBE_SYM 320
00638 #define CURDATE 321
00639 #define CURRENT_USER 322
00640 #define CURSOR_SYM 323
00641 #define DATABASE 324
00642 #define DATABASES 325
00643 #define DATA_SYM 326
00644 #define DATETIME_SYM 327
00645 #define DATE_ADD_INTERVAL 328
00646 #define DATE_SUB_INTERVAL 329
00647 #define DATE_SYM 330
00648 #define DAY_HOUR_SYM 331
00649 #define DAY_MICROSECOND_SYM 332
00650 #define DAY_MINUTE_SYM 333
00651 #define DAY_SECOND_SYM 334
00652 #define DAY_SYM 335
00653 #define DEALLOCATE_SYM 336
00654 #define DECIMAL_NUM 337
00655 #define DECIMAL_SYM 338
00656 #define DECLARE_SYM 339
00657 #define DEFAULT 340
00658 #define DELETE_SYM 341
00659 #define DESC 342
00660 #define DESCRIBE 343
00661 #define DETERMINISTIC_SYM 344
00662 #define DISABLE_SYM 345
00663 #define DISCARD 346
00664 #define DISTINCT 347
00665 #define DIV_SYM 348
00666 #define DO_SYM 349
00667 #define DOUBLE_SYM 350
00668 #define DROP 351
00669 #define DUMPFILE 352
00670 #define DUPLICATE_SYM 353
00671 #define DYNAMIC_SYM 354
00672 #define EACH_SYM 355
00673 #define ELSE 356
00674 #define ENABLE_SYM 357
00675 #define ENCLOSED 358
00676 #define END 359
00677 #define ENDS_SYM 360
00678 #define END_OF_INPUT 361
00679 #define ENGINE_SYM 362
00680 #define ENUM_SYM 363
00681 #define EQUAL_SYM 364
00682 #define ERRORS 365
00683 #define ESCAPED 366
00684 #define ESCAPE_SYM 367
00685 #define EXCLUSIVE_SYM 368
00686 #define EXECUTE_SYM 369
00687 #define EXISTS 370
00688 #define EXTENDED_SYM 371
00689 #define EXTRACT_SYM 372
00690 #define FALSE_SYM 373
00691 #define FILE_SYM 374
00692 #define FIRST_SYM 375
00693 #define FIXED_SYM 376
00694 #define FLOAT_NUM 377
00695 #define FLUSH_SYM 378
00696 #define FORCE_SYM 379
00697 #define FOREIGN 380
00698 #define FOR_SYM 381
00699 #define FOUND_SYM 382
00700 #define FRAC_SECOND_SYM 383
00701 #define FROM 384
00702 #define FULL 385
00703 #define GE 386
00704 #define GLOBAL_SYM 387
00705 #define GROUP_SYM 388
00706 #define GROUP_CONCAT_SYM 389
00707 #define HASH_SYM 390
00708 #define HAVING 391
00709 #define HEX_NUM 392
00710 #define HOUR_MICROSECOND_SYM 393
00711 #define HOUR_MINUTE_SYM 394
00712 #define HOUR_SECOND_SYM 395
00713 #define HOUR_SYM 396
00714 #define IDENT 397
00715 #define IDENTIFIED_SYM 398
00716 #define IDENTITY_SYM 399
00717 #define IDENT_QUOTED 400
00718 #define IF 401
00719 #define IGNORE_SYM 402
00720 #define IMPORT 403
00721 #define INDEXES 404
00722 #define INDEX_SYM 405
00723 #define INFILE 406
00724 #define INNER_SYM 407
00725 #define INOUT_SYM 408
00726 #define INSENSITIVE_SYM 409
00727 #define INSERT 410
00728 #define INTERVAL_SYM 411
00729 #define INTO 412
00730 #define INT_SYM 413
00731 #define IN_SYM 414
00732 #define IS 415
00733 #define ISOLATION 416
00734 #define ITERATE_SYM 417
00735 #define JOIN_SYM 418
00736 #define KEYS 419
00737 #define KEY_BLOCK_SIZE 420
00738 #define KEY_SYM 421
00739 #define KILL_SYM 422
00740 #define LAST_SYM 423
00741 #define LE 424
00742 #define LEADING 425
00743 #define LEFT 426
00744 #define LEVEL_SYM 427
00745 #define LEX_HOSTNAME 428
00746 #define LIKE 429
00747 #define LIMIT 430
00748 #define LINES 431
00749 #define LOAD 432
00750 #define LOCAL_SYM 433
00751 #define LOCKS_SYM 434
00752 #define LOCK_SYM 435
00753 #define LOGS_SYM 436
00754 #define LONG_NUM 437
00755 #define LONG_SYM 438
00756 #define MATCH 439
00757 #define MAX_SYM 440
00758 #define MAX_VALUE_SYM 441
00759 #define MEDIUM_SYM 442
00760 #define MERGE_SYM 443
00761 #define MICROSECOND_SYM 444
00762 #define MINUTE_MICROSECOND_SYM 445
00763 #define MINUTE_SECOND_SYM 446
00764 #define MINUTE_SYM 447
00765 #define MIN_SYM 448
00766 #define MODE_SYM 449
00767 #define MODIFIES_SYM 450
00768 #define MODIFY_SYM 451
00769 #define MOD_SYM 452
00770 #define MONTH_SYM 453
00771 #define NAMES_SYM 454
00772 #define NAME_SYM 455
00773 #define NATIONAL_SYM 456
00774 #define NATURAL 457
00775 #define NE 458
00776 #define NEW_SYM 459
00777 #define NEXT_SYM 460
00778 #define NONE_SYM 461
00779 #define NOT_SYM 462
00780 #define NOW_SYM 463
00781 #define NO_SYM 464
00782 #define NULL_SYM 465
00783 #define NUM 466
00784 #define NUMERIC_SYM 467
00785 #define OFFLINE_SYM 468
00786 #define OFFSET_SYM 469
00787 #define ON 470
00788 #define ONE_SHOT_SYM 471
00789 #define ONE_SYM 472
00790 #define ONLINE_SYM 473
00791 #define OPEN_SYM 474
00792 #define OPTIMIZE 475
00793 #define OPTION 476
00794 #define OPTIONALLY 477
00795 #define ORDER_SYM 478
00796 #define OR_SYM 479
00797 #define OUTER 480
00798 #define OUTFILE 481
00799 #define OUT_SYM 482
00800 #define PARTIAL 483
00801 #define POSITION_SYM 484
00802 #define PRECISION 485
00803 #define PREV_SYM 486
00804 #define PRIMARY_SYM 487
00805 #define PROCESS 488
00806 #define PROCESSLIST_SYM 489
00807 #define QUARTER_SYM 490
00808 #define QUERY_SYM 491
00809 #define RANGE_SYM 492
00810 #define READS_SYM 493
00811 #define READ_SYM 494
00812 #define READ_WRITE_SYM 495
00813 #define REAL 496
00814 #define REDUNDANT_SYM 497
00815 #define REGEXP_SYM 498
00816 #define REFERENCES 499
00817 #define RELEASE_SYM 500
00818 #define RENAME 501
00819 #define REPEATABLE_SYM 502
00820 #define REPEAT_SYM 503
00821 #define REPLACE 504
00822 #define REPLICATE 505
00823 #define REPLICATION 506
00824 #define RESTRICT 507
00825 #define RETURNS_SYM 508
00826 #define RETURN_SYM 509
00827 #define REVOKE 510
00828 #define RIGHT 511
00829 #define ROLLBACK_SYM 512
00830 #define ROLLUP_SYM 513
00831 #define ROUTINE_SYM 514
00832 #define ROWS_SYM 515
00833 #define ROW_FORMAT_SYM 516
00834 #define ROW_SYM 517
00835 #define SAVEPOINT_SYM 518
00836 #define SECOND_MICROSECOND_SYM 519
00837 #define SECOND_SYM 520
00838 #define SECURITY_SYM 521
00839 #define SELECT_SYM 522
00840 #define SENSITIVE_SYM 523
00841 #define SEPARATOR_SYM 524
00842 #define SERIALIZABLE_SYM 525
00843 #define SERIAL_SYM 526
00844 #define SESSION_SYM 527
00845 #define SERVER_SYM 528
00846 #define SET_SYM 529
00847 #define SET_VAR 530
00848 #define SHARE_SYM 531
00849 #define SHOW 532
00850 #define SIGNED_SYM 533
00851 #define SIMPLE_SYM 534
00852 #define SNAPSHOT_SYM 535
00853 #define SPECIFIC_SYM 536
00854 #define SQLEXCEPTION_SYM 537
00855 #define SQLSTATE_SYM 538
00856 #define SQLWARNING_SYM 539
00857 #define SQL_BIG_RESULT 540
00858 #define SQL_BUFFER_RESULT 541
00859 #define SQL_CALC_FOUND_ROWS 542
00860 #define SQL_SMALL_RESULT 543
00861 #define SQL_SYM 544
00862 #define STARTING 545
00863 #define START_SYM 546
00864 #define STATUS_SYM 547
00865 #define STDDEV_SAMP_SYM 548
00866 #define STD_SYM 549
00867 #define STOP_SYM 550
00868 #define STORED_SYM 551
00869 #define STRAIGHT_JOIN 552
00870 #define STRING_SYM 553
00871 #define SUBDATE_SYM 554
00872 #define SUBJECT_SYM 555
00873 #define SUBSTRING 556
00874 #define SUM_SYM 557
00875 #define SUSPEND_SYM 558
00876 #define SYSDATE 559
00877 #define TABLES 560
00878 #define TABLESPACE 561
00879 #define TABLE_REF_PRIORITY 562
00880 #define TABLE_SYM 563
00881 #define TEMPORARY_SYM 564
00882 #define TERMINATED 565
00883 #define TEXT_STRING 566
00884 #define TEXT_SYM 567
00885 #define THEN_SYM 568
00886 #define TIME_SYM 569
00887 #define TIMESTAMP_SYM 570
00888 #define TIMESTAMP_ADD 571
00889 #define TIMESTAMP_DIFF 572
00890 #define TO_SYM 573
00891 #define TRAILING 574
00892 #define TRANSACTION_SYM 575
00893 #define TRIM 576
00894 #define TRUE_SYM 577
00895 #define TRUNCATE_SYM 578
00896 #define TYPE_SYM 579
00897 #define ULONGLONG_NUM 580
00898 #define UNCOMMITTED_SYM 581
00899 #define UNDOFILE_SYM 582
00900 #define UNDO_SYM 583
00901 #define UNION_SYM 584
00902 #define UNIQUE_SYM 585
00903 #define UNKNOWN_SYM 586
00904 #define UNLOCK_SYM 587
00905 #define UNSIGNED_SYM 588
00906 #define UPDATE_SYM 589
00907 #define USAGE 590
00908 #define USER 591
00909 #define USE_SYM 592
00910 #define USING 593
00911 #define UTC_DATE_SYM 594
00912 #define UTC_TIMESTAMP_SYM 595
00913 #define UUID_SYM 596
00914 #define VALUES 597
00915 #define VALUE_SYM 598
00916 #define VARBINARY 599
00917 #define VARCHAR_SYM 600
00918 #define VARIABLES 601
00919 #define VARIANCE_SYM 602
00920 #define VARYING 603
00921 #define VAR_SAMP_SYM 604
00922 #define WAIT_SYM 605
00923 #define WARNINGS 606
00924 #define WEEK_SYM 607
00925 #define WHEN_SYM 608
00926 #define WHERE 609
00927 #define WITH 610
00928 #define WITH_ROLLUP_SYM 611
00929 #define WORK_SYM 612
00930 #define WRITE_SYM 613
00931 #define XOR 614
00932 #define YEAR_MONTH_SYM 615
00933 #define YEAR_SYM 616
00934 #define ZEROFILL_SYM 617
00935 #define LESS_THAN 618
00936 #define GREATER_THAN 619
00937 #define CONCAT 620
00938 #define SHIFT_RIGHT 621
00939 #define SHIFT_LEFT 622
00940 #define UMINUS 623
00941
00942
00943
00944
00945 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00946 typedef union
00947
00948 #line 120 "drizzled/sql_yacc.yy"
00949 ParserType
00950 {
00951
00952
00953 #line 120 "drizzled/sql_yacc.yy"
00954
00955 bool boolean;
00956 int num;
00957 unsigned long ulong_num;
00958 uint64_t ulonglong_number;
00959 int64_t longlong_number;
00960 drizzled::LEX_STRING lex_str;
00961 drizzled::LEX_STRING *lex_str_ptr;
00962 drizzled::LEX_SYMBOL symbol;
00963 drizzled::Table_ident *table;
00964 char *simple_string;
00965 drizzled::Item *item;
00966 drizzled::Item_num *item_num;
00967 drizzled::List<drizzled::Item> *item_list;
00968 drizzled::List<drizzled::String> *string_list;
00969 drizzled::String *string;
00970 drizzled::Key_part_spec *key_part;
00971 const drizzled::plugin::Function *udf;
00972 drizzled::TableList *table_list;
00973 drizzled::enum_field_types field_val;
00974 drizzled::sys_var_with_base variable;
00975 drizzled::sql_var_t var_type;
00976 drizzled::Key::Keytype key_type;
00977 drizzled::ha_key_alg key_alg;
00978 drizzled::ha_rkey_function ha_rkey_mode;
00979 drizzled::enum_tx_isolation tx_isolation;
00980 drizzled::Cast_target cast_type;
00981 const drizzled::CHARSET_INFO *charset;
00982 drizzled::thr_lock_type lock_type;
00983 drizzled::interval_type interval, interval_time_st;
00984 drizzled::type::timestamp_t date_time_type;
00985 drizzled::Select_Lex *select_lex;
00986 drizzled::chooser_compare_func_creator boolfunc2creator;
00987 drizzled::st_lex *lex;
00988 drizzled::index_hint_type index_hint;
00989 drizzled::enum_filetype filetype;
00990 drizzled::ha_build_method build_method;
00991 drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption m_fk_option;
00992 drizzled::execute_string_t execute_string;
00993
00994
00995
00996
00997 #line 998 "drizzled/sql_yacc.cc"
00998 } YYSTYPE;
00999 # define YYSTYPE_IS_TRIVIAL 1
01000 # define yystype YYSTYPE
01001 # define YYSTYPE_IS_DECLARED 1
01002 #endif
01003
01004
01005
01006
01007
01008 #line 161 "drizzled/sql_yacc.yy"
01009
01010 namespace drizzled
01011 {
01012 bool my_yyoverflow(short **a, union ParserType **b, unsigned long *yystacksize);
01013 }
01014
01015
01016
01017 #line 1018 "drizzled/sql_yacc.cc"
01018
01019 #ifdef short
01020 # undef short
01021 #endif
01022
01023 #ifdef YYTYPE_UINT8
01024 typedef YYTYPE_UINT8 yytype_uint8;
01025 #else
01026 typedef unsigned char yytype_uint8;
01027 #endif
01028
01029 #ifdef YYTYPE_INT8
01030 typedef YYTYPE_INT8 yytype_int8;
01031 #elif (defined __STDC__ || defined __C99__FUNC__ \
01032 || defined __cplusplus || defined _MSC_VER)
01033 typedef signed char yytype_int8;
01034 #else
01035 typedef short int yytype_int8;
01036 #endif
01037
01038 #ifdef YYTYPE_UINT16
01039 typedef YYTYPE_UINT16 yytype_uint16;
01040 #else
01041 typedef unsigned short int yytype_uint16;
01042 #endif
01043
01044 #ifdef YYTYPE_INT16
01045 typedef YYTYPE_INT16 yytype_int16;
01046 #else
01047 typedef short int yytype_int16;
01048 #endif
01049
01050 #ifndef YYSIZE_T
01051 # ifdef __SIZE_TYPE__
01052 # define YYSIZE_T __SIZE_TYPE__
01053 # elif defined size_t
01054 # define YYSIZE_T size_t
01055 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
01056 || defined __cplusplus || defined _MSC_VER)
01057 # include <stddef.h>
01058 # define YYSIZE_T size_t
01059 # else
01060 # define YYSIZE_T unsigned int
01061 # endif
01062 #endif
01063
01064 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
01065
01066 #ifndef YY_
01067 # if YYENABLE_NLS
01068 # if ENABLE_NLS
01069 # include <libintl.h>
01070 # define YY_(msgid) dgettext ("bison-runtime", msgid)
01071 # endif
01072 # endif
01073 # ifndef YY_
01074 # define YY_(msgid) msgid
01075 # endif
01076 #endif
01077
01078
01079 #if ! defined lint || defined __GNUC__
01080 # define YYUSE(e) ((void) (e))
01081 #else
01082 # define YYUSE(e)
01083 #endif
01084
01085
01086 #ifndef lint
01087 # define YYID(n) (n)
01088 #else
01089 #if (defined __STDC__ || defined __C99__FUNC__ \
01090 || defined __cplusplus || defined _MSC_VER)
01091 static int
01092 YYID (int yyi)
01093 #else
01094 static int
01095 YYID (yyi)
01096 int yyi;
01097 #endif
01098 {
01099 return yyi;
01100 }
01101 #endif
01102
01103 #if ! defined yyoverflow || YYERROR_VERBOSE
01104
01105
01106
01107 # ifdef YYSTACK_USE_ALLOCA
01108 # if YYSTACK_USE_ALLOCA
01109 # ifdef __GNUC__
01110 # define YYSTACK_ALLOC __builtin_alloca
01111 # elif defined __BUILTIN_VA_ARG_INCR
01112 # include <alloca.h>
01113 # elif defined _AIX
01114 # define YYSTACK_ALLOC __alloca
01115 # elif defined _MSC_VER
01116 # include <malloc.h>
01117 # define alloca _alloca
01118 # else
01119 # define YYSTACK_ALLOC alloca
01120 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01121 || defined __cplusplus || defined _MSC_VER)
01122 # include <stdlib.h>
01123 # ifndef _STDLIB_H
01124 # define _STDLIB_H 1
01125 # endif
01126 # endif
01127 # endif
01128 # endif
01129 # endif
01130
01131 # ifdef YYSTACK_ALLOC
01132
01133 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
01134 # ifndef YYSTACK_ALLOC_MAXIMUM
01135
01136
01137
01138
01139 # define YYSTACK_ALLOC_MAXIMUM 4032
01140 # endif
01141 # else
01142 # define YYSTACK_ALLOC YYMALLOC
01143 # define YYSTACK_FREE YYFREE
01144 # ifndef YYSTACK_ALLOC_MAXIMUM
01145 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
01146 # endif
01147 # if (defined __cplusplus && ! defined _STDLIB_H \
01148 && ! ((defined YYMALLOC || defined malloc) \
01149 && (defined YYFREE || defined free)))
01150 # include <stdlib.h>
01151 # ifndef _STDLIB_H
01152 # define _STDLIB_H 1
01153 # endif
01154 # endif
01155 # ifndef YYMALLOC
01156 # define YYMALLOC malloc
01157 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01158 || defined __cplusplus || defined _MSC_VER)
01159 void *malloc (YYSIZE_T);
01160 # endif
01161 # endif
01162 # ifndef YYFREE
01163 # define YYFREE free
01164 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01165 || defined __cplusplus || defined _MSC_VER)
01166 void free (void *);
01167 # endif
01168 # endif
01169 # endif
01170 #endif
01171
01172
01173 #if (! defined yyoverflow \
01174 && (! defined __cplusplus \
01175 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
01176
01177
01178 union yyalloc
01179 {
01180 yytype_int16 yyss_alloc;
01181 YYSTYPE yyvs_alloc;
01182 };
01183
01184
01185 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
01186
01187
01188
01189 # define YYSTACK_BYTES(N) \
01190 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
01191 + YYSTACK_GAP_MAXIMUM)
01192
01193
01194
01195 # ifndef YYCOPY
01196 # if defined __GNUC__ && 1 < __GNUC__
01197 # define YYCOPY(To, From, Count) \
01198 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
01199 # else
01200 # define YYCOPY(To, From, Count) \
01201 do \
01202 { \
01203 YYSIZE_T yyi; \
01204 for (yyi = 0; yyi < (Count); yyi++) \
01205 (To)[yyi] = (From)[yyi]; \
01206 } \
01207 while (YYID (0))
01208 # endif
01209 # endif
01210
01211
01212
01213
01214
01215
01216 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
01217 do \
01218 { \
01219 YYSIZE_T yynewbytes; \
01220 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
01221 Stack = &yyptr->Stack_alloc; \
01222 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
01223 yyptr += yynewbytes / sizeof (*yyptr); \
01224 } \
01225 while (YYID (0))
01226
01227 #endif
01228
01229
01230 #define YYFINAL 279
01231
01232 #define YYLAST 14939
01233
01234
01235 #define YYNTOKENS 386
01236
01237 #define YYNNTS 422
01238
01239 #define YYNRULES 1211
01240
01241 #define YYNSTATES 2091
01242
01243
01244 #define YYUNDEFTOK 2
01245 #define YYMAXUTOK 623
01246
01247 #define YYTRANSLATE(YYX) \
01248 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
01249
01250
01251 static const yytype_uint16 yytranslate[] =
01252 {
01253 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01254 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01256 2, 2, 2, 2, 2, 2, 2, 375, 368, 2,
01257 379, 380, 373, 372, 383, 371, 384, 374, 2, 2,
01258 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01259 2, 363, 2, 2, 385, 2, 2, 2, 2, 2,
01260 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01261 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01262 2, 2, 2, 2, 376, 2, 2, 2, 2, 2,
01263 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01264 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01265 2, 2, 2, 381, 367, 382, 377, 2, 2, 2,
01266 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01267 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01269 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01270 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01271 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01273 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01275 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01276 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01278 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
01279 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
01280 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
01281 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
01282 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
01283 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
01284 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
01285 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
01286 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
01287 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
01288 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
01289 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
01290 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
01291 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
01292 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
01293 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
01294 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
01295 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
01296 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
01297 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
01298 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
01299 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
01300 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
01301 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
01302 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
01303 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
01304 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
01305 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
01306 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
01307 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
01308 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
01309 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
01310 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
01311 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
01312 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
01313 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
01314 355, 356, 357, 358, 359, 360, 361, 362, 364, 365,
01315 366, 369, 370, 378
01316 };
01317
01318 #if YYDEBUG
01319
01320
01321 static const yytype_uint16 yyprhs[] =
01322 {
01323 0, 0, 3, 5, 8, 10, 12, 14, 16, 18,
01324 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
01325 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
01326 60, 62, 64, 68, 69, 77, 78, 92, 93, 100,
01327 106, 107, 113, 118, 121, 124, 125, 126, 131, 132,
01328 139, 142, 144, 145, 146, 153, 154, 156, 158, 160,
01329 164, 166, 170, 174, 178, 182, 183, 185, 186, 190,
01330 191, 193, 195, 198, 200, 203, 207, 209, 213, 217,
01331 221, 225, 229, 233, 237, 241, 245, 247, 252, 257,
01332 259, 261, 263, 265, 267, 269, 271, 273, 276, 278,
01333 282, 284, 286, 289, 292, 300, 309, 318, 321, 324,
01334 325, 327, 330, 331, 333, 336, 337, 342, 345, 351,
01335 354, 357, 360, 366, 369, 370, 377, 383, 386, 389,
01336 392, 395, 399, 403, 407, 410, 413, 415, 418, 420,
01337 422, 427, 432, 435, 438, 442, 443, 447, 449, 455,
01338 456, 460, 461, 463, 465, 466, 470, 471, 473, 474,
01339 478, 480, 482, 485, 488, 490, 493, 494, 497, 501,
01340 504, 505, 508, 512, 515, 516, 518, 521, 523, 525,
01341 528, 531, 533, 534, 536, 539, 541, 543, 545, 549,
01342 552, 554, 555, 557, 560, 562, 564, 568, 571, 576,
01343 578, 579, 582, 584, 586, 588, 589, 591, 592, 594,
01344 600, 601, 605, 609, 611, 612, 615, 618, 621, 622,
01345 626, 630, 637, 644, 646, 648, 651, 654, 657, 659,
01346 662, 665, 667, 669, 670, 672, 674, 676, 678, 679,
01347 681, 682, 684, 687, 688, 690, 692, 695, 698, 700,
01348 704, 707, 709, 711, 716, 719, 721, 726, 727, 729,
01349 730, 733, 735, 739, 740, 748, 749, 755, 756, 759,
01350 762, 764, 765, 767, 769, 771, 775, 778, 782, 785,
01351 790, 791, 798, 799, 800, 809, 813, 818, 822, 826,
01352 829, 832, 839, 845, 849, 853, 855, 857, 859, 860,
01353 862, 863, 865, 866, 869, 871, 872, 874, 876, 880,
01354 881, 885, 886, 891, 892, 897, 898, 903, 905, 909,
01355 913, 915, 918, 923, 926, 930, 933, 937, 938, 942,
01356 943, 944, 951, 954, 956, 958, 961, 964, 972, 973,
01357 975, 978, 980, 982, 984, 986, 988, 990, 992, 994,
01358 996, 998, 999, 1002, 1007, 1011, 1013, 1015, 1019, 1024,
01359 1025, 1026, 1027, 1030, 1033, 1035, 1037, 1038, 1041, 1045,
01360 1049, 1053, 1056, 1060, 1065, 1069, 1074, 1078, 1083, 1085,
01361 1089, 1094, 1098, 1102, 1109, 1111, 1117, 1124, 1130, 1138,
01362 1145, 1154, 1160, 1167, 1172, 1178, 1182, 1187, 1189, 1193,
01363 1197, 1201, 1205, 1209, 1213, 1219, 1225, 1229, 1233, 1237,
01364 1241, 1245, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263,
01365 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1281, 1283, 1285,
01366 1287, 1291, 1294, 1297, 1300, 1304, 1308, 1314, 1321, 1326,
01367 1331, 1334, 1341, 1347, 1354, 1359, 1364, 1370, 1375, 1378,
01368 1383, 1388, 1393, 1404, 1411, 1420, 1427, 1432, 1437, 1444,
01369 1449, 1454, 1459, 1467, 1475, 1483, 1490, 1497, 1504, 1511,
01370 1515, 1520, 1527, 1536, 1539, 1548, 1557, 1564, 1567, 1572,
01371 1579, 1586, 1595, 1604, 1611, 1620, 1627, 1630, 1635, 1644,
01372 1653, 1656, 1659, 1664, 1669, 1673, 1677, 1683, 1692, 1698,
01373 1703, 1710, 1715, 1722, 1731, 1738, 1743, 1747, 1754, 1755,
01374 1761, 1762, 1764, 1766, 1770, 1775, 1780, 1786, 1792, 1797,
01375 1798, 1799, 1807, 1812, 1818, 1823, 1829, 1834, 1839, 1844,
01376 1849, 1854, 1860, 1861, 1870, 1871, 1875, 1879, 1881, 1886,
01377 1887, 1889, 1890, 1893, 1894, 1896, 1897, 1901, 1904, 1906,
01378 1908, 1911, 1913, 1915, 1918, 1921, 1923, 1925, 1927, 1930,
01379 1932, 1936, 1937, 1939, 1940, 1943, 1948, 1954, 1956, 1958,
01380 1960, 1962, 1967, 1969, 1973, 1977, 1981, 1982, 1989, 1990,
01381 1997, 1998, 2007, 2012, 2013, 2022, 2023, 2034, 2041, 2042,
01382 2051, 2052, 2063, 2070, 2072, 2075, 2078, 2079, 2084, 2088,
01383 2094, 2098, 2099, 2100, 2109, 2111, 2112, 2113, 2120, 2121,
01384 2125, 2126, 2127, 2133, 2134, 2136, 2137, 2139, 2140, 2143,
01385 2147, 2151, 2153, 2155, 2156, 2164, 2165, 2173, 2175, 2178,
01386 2179, 2180, 2183, 2184, 2187, 2188, 2190, 2192, 2194, 2196,
01387 2200, 2202, 2206, 2208, 2210, 2212, 2214, 2216, 2218, 2220,
01388 2222, 2224, 2226, 2228, 2230, 2232, 2234, 2236, 2238, 2240,
01389 2242, 2244, 2246, 2248, 2250, 2252, 2253, 2255, 2256, 2259,
01390 2260, 2262, 2263, 2264, 2268, 2269, 2270, 2274, 2277, 2278,
01391 2279, 2284, 2289, 2292, 2293, 2295, 2299, 2303, 2305, 2308,
01392 2309, 2311, 2312, 2317, 2322, 2325, 2326, 2328, 2330, 2331,
01393 2333, 2334, 2336, 2339, 2341, 2345, 2349, 2351, 2353, 2355,
01394 2356, 2359, 2361, 2363, 2365, 2367, 2369, 2371, 2373, 2375,
01395 2377, 2379, 2381, 2382, 2385, 2389, 2391, 2394, 2395, 2399,
01396 2400, 2406, 2409, 2411, 2415, 2421, 2422, 2430, 2435, 2437,
01397 2441, 2443, 2444, 2447, 2448, 2450, 2456, 2458, 2461, 2462,
01398 2466, 2467, 2469, 2470, 2472, 2473, 2474, 2482, 2483, 2484,
01399 2490, 2493, 2495, 2497, 2499, 2503, 2508, 2509, 2513, 2517,
01400 2519, 2522, 2525, 2526, 2530, 2531, 2537, 2541, 2543, 2547,
01401 2549, 2553, 2555, 2557, 2558, 2560, 2561, 2566, 2567, 2569,
01402 2573, 2575, 2577, 2579, 2580, 2581, 2588, 2589, 2599, 2603,
01403 2605, 2609, 2613, 2615, 2619, 2620, 2629, 2630, 2632, 2636,
01404 2637, 2639, 2640, 2644, 2647, 2651, 2655, 2660, 2666, 2672,
01405 2678, 2684, 2687, 2690, 2694, 2697, 2701, 2703, 2707, 2712,
01406 2713, 2716, 2718, 2720, 2721, 2724, 2727, 2728, 2733, 2734,
01407 2739, 2741, 2743, 2744, 2746, 2747, 2749, 2751, 2752, 2756,
01408 2760, 2762, 2763, 2767, 2772, 2774, 2776, 2779, 2780, 2782,
01409 2786, 2787, 2789, 2791, 2794, 2795, 2796, 2797, 2798, 2817,
01410 2819, 2820, 2822, 2823, 2825, 2827, 2828, 2830, 2832, 2834,
01411 2837, 2840, 2841, 2844, 2847, 2849, 2853, 2858, 2862, 2866,
01412 2867, 2870, 2873, 2875, 2879, 2883, 2884, 2888, 2890, 2892,
01413 2893, 2897, 2900, 2904, 2906, 2908, 2911, 2912, 2915, 2917,
01414 2920, 2922, 2924, 2926, 2928, 2931, 2934, 2936, 2938, 2940,
01415 2942, 2944, 2946, 2948, 2951, 2954, 2956, 2958, 2960, 2962,
01416 2964, 2967, 2970, 2972, 2974, 2976, 2978, 2980, 2982, 2985,
01417 2988, 2990, 2992, 2994, 2996, 2998, 3000, 3002, 3006, 3012,
01418 3014, 3016, 3018, 3022, 3027, 3033, 3035, 3041, 3045, 3048,
01419 3050, 3054, 3057, 3059, 3061, 3063, 3065, 3067, 3069, 3071,
01420 3073, 3075, 3077, 3079, 3081, 3083, 3085, 3087, 3089, 3091,
01421 3093, 3095, 3097, 3099, 3101, 3103, 3105, 3107, 3109, 3111,
01422 3113, 3115, 3117, 3119, 3121, 3123, 3125, 3127, 3129, 3131,
01423 3133, 3135, 3137, 3139, 3141, 3143, 3145, 3147, 3149, 3151,
01424 3153, 3155, 3157, 3159, 3161, 3163, 3165, 3167, 3169, 3171,
01425 3173, 3175, 3177, 3179, 3181, 3183, 3185, 3187, 3189, 3191,
01426 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3207, 3209, 3211,
01427 3213, 3215, 3217, 3219, 3221, 3223, 3225, 3227, 3229, 3231,
01428 3233, 3235, 3237, 3239, 3241, 3243, 3245, 3247, 3249, 3251,
01429 3253, 3255, 3257, 3259, 3261, 3263, 3265, 3267, 3269, 3271,
01430 3273, 3275, 3277, 3279, 3281, 3283, 3285, 3287, 3289, 3291,
01431 3293, 3295, 3297, 3299, 3301, 3303, 3305, 3307, 3309, 3311,
01432 3313, 3315, 3317, 3319, 3321, 3323, 3325, 3327, 3329, 3331,
01433 3333, 3335, 3337, 3339, 3341, 3343, 3345, 3347, 3349, 3351,
01434 3353, 3355, 3357, 3359, 3361, 3363, 3365, 3367, 3369, 3371,
01435 3373, 3375, 3377, 3379, 3381, 3383, 3384, 3389, 3390, 3392,
01436 3394, 3398, 3399, 3402, 3404, 3406, 3408, 3410, 3411, 3413,
01437 3414, 3416, 3418, 3420, 3421, 3424, 3427, 3430, 3432, 3435,
01438 3440, 3446, 3451, 3458, 3460, 3462, 3464, 3466, 3468, 3470,
01439 3473, 3476, 3479, 3481, 3483, 3485, 3487, 3489, 3491, 3493,
01440 3495, 3496, 3500, 3501, 3505, 3506, 3508, 3509, 3513, 3516,
01441 3517, 3519, 3522, 3523, 3525, 3530, 3535, 3541, 3544, 3548,
01442 3550, 3551, 3553, 3554, 3559, 3560, 3562, 3564, 3565, 3568,
01443 3571, 3573, 3574, 3576, 3578, 3581, 3585, 3587, 3588, 3594,
01444 3598, 3599
01445 };
01446
01447
01448 static const yytype_int16 yyrhs[] =
01449 {
01450 387, 0, -1, 106, -1, 388, 106, -1, 389, -1,
01451 783, -1, 483, -1, 500, -1, 502, -1, 789, -1,
01452 390, -1, 688, -1, 699, -1, 645, -1, 651, -1,
01453 705, -1, 656, -1, 711, -1, 714, -1, 792, -1,
01454 504, -1, 659, -1, 790, -1, 791, -1, 508, -1,
01455 762, -1, 693, -1, 498, -1, 691, -1, 781, -1,
01456 682, -1, 713, -1, 63, 38, 751, -1, -1, 63,
01457 407, 308, 408, 749, 391, 394, -1, -1, 63, 487,
01458 392, 470, 150, 756, 472, 215, 749, 379, 478, 380,
01459 473, -1, -1, 63, 69, 408, 750, 393, 404, -1,
01460 379, 419, 380, 409, 396, -1, -1, 379, 400, 380,
01461 395, 797, -1, 379, 399, 380, 409, -1, 399, 409,
01462 -1, 409, 396, -1, -1, -1, 722, 400, 397, 794,
01463 -1, -1, 722, 379, 400, 380, 398, 797, -1, 174,
01464 749, -1, 401, -1, -1, -1, 267, 402, 519, 525,
01465 403, 418, -1, -1, 415, -1, 405, -1, 406, -1,
01466 406, 383, 405, -1, 757, -1, 250, 674, 322, -1,
01467 250, 674, 118, -1, 757, 673, 757, -1, 757, 673,
01468 636, -1, -1, 309, -1, -1, 146, 207, 115, -1,
01469 -1, 411, -1, 412, -1, 412, 410, -1, 412, -1,
01470 412, 411, -1, 412, 383, 411, -1, 413, -1, 107,
01471 673, 757, -1, 50, 674, 753, -1, 18, 674, 636,
01472 -1, 250, 674, 322, -1, 250, 674, 118, -1, 261,
01473 673, 417, -1, 119, 673, 753, -1, 757, 673, 758,
01474 -1, 757, 673, 636, -1, 414, -1, 457, 46, 674,
01475 456, -1, 457, 46, 674, 456, -1, 53, -1, 54,
01476 -1, 85, -1, 99, -1, 121, -1, 242, -1, 416,
01477 -1, 630, -1, 518, 524, -1, 420, -1, 419, 383,
01478 420, -1, 421, -1, 422, -1, 427, 423, -1, 427,
01479 459, -1, 465, 480, 472, 379, 478, 380, 473, -1,
01480 425, 466, 480, 472, 379, 478, 380, 473, -1, 425,
01481 125, 166, 480, 379, 478, 380, 459, -1, 426, 423,
01482 -1, 425, 424, -1, -1, 424, -1, 43, 531, -1,
01483 -1, 426, -1, 59, 480, -1, -1, 748, 428, 429,
01484 454, -1, 315, 451, -1, 315, 379, 211, 380, 451,
01485 -1, 72, 451, -1, 432, 448, -1, 41, 445, -1,
01486 431, 379, 211, 380, 445, -1, 312, 445, -1, -1,
01487 108, 430, 379, 482, 380, 445, -1, 344, 379, 211,
01488 380, 443, -1, 433, 448, -1, 75, 443, -1, 314,
01489 443, -1, 27, 443, -1, 83, 434, 448, -1, 212,
01490 434, 448, -1, 121, 434, 448, -1, 341, 443, -1,
01491 28, 444, -1, 271, -1, 41, 348, -1, 41, -1,
01492 345, -1, 158, 438, 437, 439, -1, 23, 438, 437,
01493 439, -1, 241, 440, -1, 95, 440, -1, 95, 230,
01494 440, -1, -1, 379, 211, 380, -1, 435, -1, 379,
01495 211, 383, 211, 380, -1, -1, 379, 211, 380, -1,
01496 -1, 278, -1, 333, -1, -1, 379, 211, 380, -1,
01497 -1, 362, -1, -1, 379, 211, 380, -1, 435, -1,
01498 210, -1, 207, 210, -1, 458, 166, -1, 330, -1,
01499 330, 166, -1, -1, 443, 441, -1, 443, 85, 737,
01500 -1, 443, 442, -1, -1, 444, 441, -1, 444, 85,
01501 740, -1, 444, 442, -1, -1, 446, -1, 446, 447,
01502 -1, 447, -1, 441, -1, 85, 737, -1, 46, 455,
01503 -1, 442, -1, -1, 449, -1, 449, 450, -1, 450,
01504 -1, 441, -1, 18, -1, 271, 85, 343, -1, 85,
01505 739, -1, 442, -1, -1, 452, -1, 452, 453, -1,
01506 453, -1, 441, -1, 85, 208, 530, -1, 85, 741,
01507 -1, 215, 334, 208, 530, -1, 442, -1, -1, 50,
01508 753, -1, 757, -1, 455, -1, 85, -1, -1, 85,
01509 -1, -1, 232, -1, 244, 749, 460, 462, 463, -1,
01510 -1, 379, 461, 380, -1, 461, 383, 756, -1, 756,
01511 -1, -1, 184, 130, -1, 184, 228, -1, 184, 279,
01512 -1, -1, 215, 334, 464, -1, 215, 86, 464, -1,
01513 215, 334, 464, 215, 86, 464, -1, 215, 86, 464,
01514 215, 334, 464, -1, 252, -1, 34, -1, 274, 210,
01515 -1, 209, 4, -1, 274, 85, -1, 467, -1, 232,
01516 166, -1, 330, 468, -1, 166, -1, 150, -1, -1,
01517 467, -1, 164, -1, 150, -1, 149, -1, -1, 330,
01518 -1, -1, 471, -1, 471, 475, -1, -1, 474, -1,
01519 476, -1, 474, 476, -1, 338, 477, -1, 475, -1,
01520 165, 674, 635, -1, 50, 753, -1, 31, -1, 135,
01521 -1, 478, 383, 479, 628, -1, 479, 628, -1, 756,
01522 -1, 756, 379, 211, 380, -1, -1, 748, -1, -1,
01523 384, 756, -1, 736, -1, 482, 383, 736, -1, -1,
01524 10, 487, 495, 308, 749, 484, 486, -1, -1, 10,
01525 69, 750, 485, 415, -1, -1, 91, 306, -1, 148,
01526 306, -1, 488, -1, -1, 218, -1, 213, -1, 490,
01527 -1, 488, 383, 490, -1, 5, 494, -1, 489, 421,
01528 496, -1, 5, 422, -1, 489, 379, 419, 380, -1,
01529 -1, 40, 494, 748, 491, 427, 496, -1, -1, -1,
01530 196, 494, 748, 492, 429, 454, 493, 496, -1, 96,
01531 494, 748, -1, 96, 125, 166, 480, -1, 96, 232,
01532 166, -1, 96, 467, 748, -1, 90, 164, -1, 102,
01533 164, -1, 10, 494, 748, 274, 85, 737, -1, 10,
01534 494, 748, 96, 85, -1, 246, 497, 749, -1, 61,
01535 318, 456, -1, 410, -1, 124, -1, 621, -1, -1,
01536 49, -1, -1, 147, -1, -1, 7, 756, -1, 120,
01537 -1, -1, 318, -1, 14, -1, 291, 320, 499, -1,
01538 -1, 355, 58, 280, -1, -1, 11, 780, 501, 647,
01539 -1, -1, 43, 780, 503, 647, -1, -1, 246, 780,
01540 505, 506, -1, 507, -1, 506, 383, 507, -1, 749,
01541 318, 749, -1, 509, -1, 267, 512, -1, 379, 510,
01542 380, 797, -1, 267, 514, -1, 379, 510, 380, -1,
01543 267, 582, -1, 379, 511, 380, -1, -1, 514, 513,
01544 794, -1, -1, -1, 515, 519, 525, 516, 517, 524,
01545 -1, 624, 630, -1, 641, -1, 518, -1, 641, 518,
01546 -1, 518, 641, -1, 129, 564, 613, 618, 615, 624,
01547 630, -1, -1, 520, -1, 520, 523, -1, 523, -1,
01548 92, -1, 9, -1, 288, -1, 285, -1, 297, -1,
01549 286, -1, 522, -1, 521, -1, 287, -1, -1, 126,
01550 334, -1, 180, 159, 276, 194, -1, 525, 383, 526,
01551 -1, 526, -1, 373, -1, 527, 744, 528, -1, 527,
01552 531, 528, 529, -1, -1, -1, -1, 14, 756, -1,
01553 14, 753, -1, 756, -1, 753, -1, -1, 379, 380,
01554 -1, 531, 224, 531, -1, 531, 359, 531, -1, 531,
01555 12, 531, -1, 207, 531, -1, 532, 160, 322, -1,
01556 532, 160, 207, 322, -1, 532, 160, 118, -1, 532,
01557 160, 207, 118, -1, 532, 160, 331, -1, 532, 160,
01558 207, 331, -1, 532, -1, 532, 160, 210, -1, 532,
01559 160, 207, 210, -1, 532, 109, 533, -1, 532, 535,
01560 533, -1, 532, 535, 536, 379, 805, 380, -1, 533,
01561 -1, 534, 159, 379, 805, 380, -1, 534, 207, 159,
01562 379, 805, 380, -1, 534, 159, 379, 531, 380, -1,
01563 534, 159, 379, 531, 383, 559, 380, -1, 534, 207,
01564 159, 379, 531, 380, -1, 534, 207, 159, 379, 531,
01565 383, 559, 380, -1, 534, 22, 534, 12, 533, -1,
01566 534, 207, 22, 534, 12, 533, -1, 534, 174, 537,
01567 617, -1, 534, 207, 174, 537, 617, -1, 534, 243,
01568 534, -1, 534, 207, 243, 534, -1, 534, -1, 534,
01569 367, 534, -1, 534, 368, 534, -1, 534, 369, 534,
01570 -1, 534, 370, 534, -1, 534, 372, 534, -1, 534,
01571 371, 534, -1, 534, 372, 156, 531, 607, -1, 534,
01572 371, 156, 531, 607, -1, 534, 373, 534, -1, 534,
01573 374, 534, -1, 534, 375, 534, -1, 534, 93, 534,
01574 -1, 534, 197, 534, -1, 534, 376, 534, -1, 537,
01575 -1, 363, -1, 131, -1, 365, -1, 169, -1, 364,
01576 -1, 203, -1, 9, -1, 13, -1, 746, -1, 538,
01577 -1, 539, -1, 541, -1, 540, -1, 537, 46, 757,
01578 -1, 738, -1, 550, -1, 546, -1, 537, 366, 537,
01579 -1, 372, 537, -1, 371, 537, -1, 377, 537, -1,
01580 379, 805, 380, -1, 379, 531, 380, -1, 379, 531,
01581 383, 559, 380, -1, 262, 379, 531, 383, 559, 380,
01582 -1, 115, 379, 805, 380, -1, 381, 756, 531, 382,
01583 -1, 24, 537, -1, 37, 379, 531, 14, 558, 380,
01584 -1, 36, 560, 562, 561, 104, -1, 61, 379, 531,
01585 383, 558, 380, -1, 85, 379, 746, 380, -1, 342,
01586 379, 746, 380, -1, 156, 531, 607, 372, 531, -1,
01587 41, 379, 559, 380, -1, 67, 530, -1, 75, 379,
01588 531, 380, -1, 80, 379, 531, 380, -1, 141, 379,
01589 531, 380, -1, 155, 379, 531, 383, 531, 383, 531,
01590 383, 531, 380, -1, 156, 379, 531, 383, 531, 380,
01591 -1, 156, 379, 531, 383, 531, 383, 559, 380, -1,
01592 171, 379, 531, 383, 531, 380, -1, 192, 379, 531,
01593 380, -1, 198, 379, 531, 380, -1, 256, 379, 531,
01594 383, 531, 380, -1, 265, 379, 531, 380, -1, 315,
01595 379, 531, 380, -1, 321, 379, 531, 380, -1, 321,
01596 379, 170, 531, 129, 531, 380, -1, 321, 379, 319,
01597 531, 129, 531, 380, -1, 321, 379, 30, 531, 129,
01598 531, 380, -1, 321, 379, 170, 129, 531, 380, -1,
01599 321, 379, 319, 129, 531, 380, -1, 321, 379, 30,
01600 129, 531, 380, -1, 321, 379, 531, 129, 531, 380,
01601 -1, 336, 379, 380, -1, 361, 379, 531, 380, -1,
01602 6, 379, 531, 383, 531, 380, -1, 6, 379, 531,
01603 383, 156, 531, 607, 380, -1, 66, 530, -1, 73,
01604 379, 531, 383, 156, 531, 607, 380, -1, 74, 379,
01605 531, 383, 156, 531, 607, 380, -1, 117, 379, 607,
01606 129, 531, 380, -1, 208, 530, -1, 208, 379, 531,
01607 380, -1, 229, 379, 534, 159, 531, 380, -1, 299,
01608 379, 531, 383, 531, 380, -1, 299, 379, 531, 383,
01609 156, 531, 607, 380, -1, 301, 379, 531, 383, 531,
01610 383, 531, 380, -1, 301, 379, 531, 383, 531, 380,
01611 -1, 301, 379, 531, 129, 531, 126, 531, 380, -1,
01612 301, 379, 531, 129, 531, 380, -1, 304, 530, -1,
01613 304, 379, 531, 380, -1, 316, 379, 608, 383, 531,
01614 383, 531, 380, -1, 317, 379, 608, 383, 531, 383,
01615 531, 380, -1, 339, 530, -1, 340, 530, -1, 45,
01616 379, 559, 380, -1, 47, 379, 531, 380, -1, 69,
01617 379, 380, -1, 38, 379, 380, -1, 114, 379, 531,
01618 380, 655, -1, 146, 379, 531, 383, 531, 383, 531,
01619 380, -1, 167, 712, 379, 531, 380, -1, 189, 379,
01620 531, 380, -1, 197, 379, 531, 383, 531, 380, -1,
01621 235, 379, 531, 380, -1, 248, 379, 531, 383, 531,
01622 380, -1, 249, 379, 531, 383, 531, 383, 531, 380,
01623 -1, 323, 379, 531, 383, 531, 380, -1, 350, 379,
01624 531, 380, -1, 341, 379, 380, -1, 350, 379, 531,
01625 383, 531, 380, -1, -1, 752, 379, 542, 543, 380,
01626 -1, -1, 544, -1, 545, -1, 544, 383, 545, -1,
01627 527, 531, 528, 529, -1, 19, 379, 556, 380, -1,
01628 19, 379, 92, 556, 380, -1, 62, 379, 612, 373,
01629 380, -1, 62, 379, 556, 380, -1, -1, -1, 62,
01630 379, 92, 547, 559, 548, 380, -1, 193, 379, 556,
01631 380, -1, 193, 379, 92, 556, 380, -1, 185, 379,
01632 556, 380, -1, 185, 379, 92, 556, 380, -1, 294,
01633 379, 556, 380, -1, 347, 379, 556, 380, -1, 293,
01634 379, 556, 380, -1, 349, 379, 556, 380, -1, 302,
01635 379, 556, 380, -1, 302, 379, 92, 556, 380, -1,
01636 -1, 134, 379, 553, 549, 559, 555, 554, 380, -1,
01637 -1, 385, 551, 552, -1, 775, 275, 531, -1, 775,
01638 -1, 385, 771, 775, 481, -1, -1, 92, -1, -1,
01639 269, 736, -1, -1, 625, -1, -1, 612, 557, 531,
01640 -1, 24, 436, -1, 28, -1, 278, -1, 278, 158,
01641 -1, 158, -1, 333, -1, 333, 158, -1, 41, 436,
01642 -1, 75, -1, 314, -1, 72, -1, 83, 434, -1,
01643 531, -1, 559, 383, 531, -1, -1, 531, -1, -1,
01644 101, 531, -1, 353, 531, 313, 531, -1, 562, 353,
01645 531, 313, 531, -1, 576, -1, 567, -1, 566, -1,
01646 563, -1, 381, 756, 563, 382, -1, 565, -1, 566,
01647 383, 565, -1, 563, 575, 563, -1, 563, 297, 576,
01648 -1, -1, 563, 575, 563, 215, 568, 531, -1, -1,
01649 563, 297, 576, 215, 569, 531, -1, -1, 563, 575,
01650 563, 338, 570, 379, 606, 380, -1, 563, 202, 163,
01651 576, -1, -1, 563, 171, 592, 163, 563, 215, 571,
01652 531, -1, -1, 563, 171, 592, 163, 576, 572, 338,
01653 379, 606, 380, -1, 563, 202, 171, 592, 163, 576,
01654 -1, -1, 563, 256, 592, 163, 563, 215, 573, 531,
01655 -1, -1, 563, 256, 592, 163, 576, 574, 338, 379,
01656 606, 380, -1, 563, 202, 256, 592, 163, 576, -1,
01657 163, -1, 152, 163, -1, 64, 163, -1, -1, 577,
01658 749, 611, 601, -1, 591, 590, 587, -1, 379, 590,
01659 578, 380, 611, -1, 585, 624, 630, -1, -1, -1,
01660 578, 329, 801, 579, 802, 580, 624, 630, -1, 582,
01661 -1, -1, -1, 583, 519, 525, 584, 418, 524, -1,
01662 -1, 590, 586, 566, -1, -1, -1, 588, 519, 525,
01663 589, 418, -1, -1, 267, -1, -1, 225, -1, -1,
01664 126, 163, -1, 126, 223, 32, -1, 126, 133, 32,
01665 -1, 124, -1, 147, -1, -1, 594, 467, 593, 596,
01666 379, 605, 380, -1, -1, 337, 467, 593, 597, 379,
01667 603, 380, -1, 595, -1, 598, 595, -1, -1, -1,
01668 600, 598, -1, -1, 602, 599, -1, -1, 605, -1,
01669 756, -1, 232, -1, 604, -1, 605, 383, 604, -1,
01670 756, -1, 606, 383, 756, -1, 609, -1, 76, -1,
01671 77, -1, 78, -1, 79, -1, 138, -1, 139, -1,
01672 140, -1, 190, -1, 191, -1, 264, -1, 360, -1,
01673 609, -1, 128, -1, 80, -1, 352, -1, 141, -1,
01674 192, -1, 198, -1, 235, -1, 265, -1, 189, -1,
01675 361, -1, -1, 14, -1, -1, 610, 756, -1, -1,
01676 9, -1, -1, -1, 354, 614, 531, -1, -1, -1,
01677 136, 616, 531, -1, 112, 537, -1, -1, -1, 133,
01678 32, 619, 620, -1, 619, 383, 745, 628, -1, 745,
01679 628, -1, -1, 356, -1, 223, 32, 622, -1, 622,
01680 383, 623, -1, 623, -1, 746, 628, -1, -1, 625,
01681 -1, -1, 223, 32, 626, 627, -1, 627, 383, 745,
01682 628, -1, 745, 628, -1, -1, 15, -1, 87, -1,
01683 -1, 631, -1, -1, 631, -1, 175, 632, -1, 633,
01684 -1, 633, 383, 633, -1, 633, 214, 633, -1, 325,
01685 -1, 182, -1, 211, -1, -1, 175, 633, -1, 211,
01686 -1, 137, -1, 182, -1, 325, -1, 82, -1, 122,
01687 -1, 211, -1, 325, -1, 182, -1, 82, -1, 122,
01688 -1, -1, 638, 639, -1, 639, 383, 640, -1, 640,
01689 -1, 385, 775, -1, -1, 157, 642, 643, -1, -1,
01690 226, 755, 644, 723, 726, -1, 97, 755, -1, 637,
01691 -1, 96, 38, 751, -1, 96, 650, 780, 649, 647,
01692 -1, -1, 96, 487, 150, 756, 215, 749, 646, -1,
01693 96, 69, 649, 750, -1, 648, -1, 647, 383, 648,
01694 -1, 749, -1, -1, 146, 115, -1, -1, 309, -1,
01695 114, 652, 653, 654, 655, -1, 775, -1, 385, 775,
01696 -1, -1, 355, 209, 254, -1, -1, 55, -1, -1,
01697 350, -1, -1, -1, 155, 657, 495, 662, 658, 664,
01698 680, -1, -1, -1, 249, 660, 662, 661, 664, -1,
01699 157, 663, -1, 663, -1, 648, -1, 667, -1, 379,
01700 380, 667, -1, 379, 666, 380, 667, -1, -1, 274,
01701 665, 671, -1, 666, 383, 743, -1, 743, -1, 342,
01702 670, -1, 343, 670, -1, -1, 401, 668, 794, -1,
01703 -1, 379, 401, 380, 669, 797, -1, 670, 383, 675,
01704 -1, 675, -1, 671, 383, 672, -1, 672, -1, 746,
01705 673, 679, -1, 363, -1, 275, -1, -1, 673, -1,
01706 -1, 379, 676, 677, 380, -1, -1, 678, -1, 678,
01707 383, 679, -1, 679, -1, 531, -1, 85, -1, -1,
01708 -1, 215, 98, 681, 166, 334, 686, -1, -1, 334,
01709 495, 749, 274, 684, 683, 613, 624, 634, -1, 684,
01710 383, 685, -1, 685, -1, 746, 673, 679, -1, 686,
01711 383, 687, -1, 687, -1, 746, 673, 679, -1, -1,
01712 86, 690, 129, 749, 689, 613, 624, 634, -1, -1,
01713 147, -1, 323, 692, 648, -1, -1, 308, -1, -1,
01714 277, 694, 695, -1, 70, 698, -1, 305, 696, 698,
01715 -1, 309, 305, 698, -1, 308, 292, 696, 698, -1,
01716 48, 697, 749, 696, 698, -1, 469, 697, 749, 696,
01717 613, -1, 62, 379, 373, 380, 351, -1, 62, 379,
01718 373, 380, 110, -1, 351, 629, -1, 110, 629, -1,
01719 770, 292, 698, -1, 758, 292, -1, 63, 308, 749,
01720 -1, 234, -1, 770, 346, 698, -1, 63, 69, 408,
01721 756, -1, -1, 697, 756, -1, 129, -1, 159, -1,
01722 -1, 174, 753, -1, 354, 531, -1, -1, 702, 749,
01723 700, 704, -1, -1, 702, 703, 701, 508, -1, 87,
01724 -1, 88, -1, -1, 116, -1, -1, 736, -1, 756,
01725 -1, -1, 123, 706, 707, -1, 707, 383, 708, -1,
01726 708, -1, -1, 780, 709, 710, -1, 305, 355, 239,
01727 180, -1, 181, -1, 292, -1, 132, 292, -1, -1,
01728 647, -1, 167, 712, 531, -1, -1, 57, -1, 236,
01729 -1, 337, 750, -1, -1, -1, -1, -1, 177, 719,
01730 715, 720, 151, 755, 716, 721, 157, 717, 308, 749,
01731 718, 723, 726, 729, 731, 734, -1, 71, -1, -1,
01732 55, -1, -1, 249, -1, 147, -1, -1, 14, -1,
01733 249, -1, 147, -1, 249, 14, -1, 147, 14, -1,
01734 -1, 48, 724, -1, 724, 725, -1, 725, -1, 310,
01735 32, 736, -1, 222, 103, 32, 736, -1, 103, 32,
01736 736, -1, 111, 32, 736, -1, -1, 176, 727, -1,
01737 727, 728, -1, 728, -1, 310, 32, 736, -1, 290,
01738 32, 736, -1, -1, 147, 211, 730, -1, 176, -1,
01739 260, -1, -1, 379, 732, 380, -1, 379, 380, -1,
01740 732, 383, 733, -1, 733, -1, 746, -1, 385, 775,
01741 -1, -1, 274, 686, -1, 754, -1, 735, 754, -1,
01742 754, -1, 137, -1, 25, -1, 738, -1, 372, 742,
01743 -1, 371, 742, -1, 735, -1, 742, -1, 210, -1,
01744 118, -1, 322, -1, 137, -1, 25, -1, 75, 735,
01745 -1, 315, 735, -1, 735, -1, 137, -1, 25, -1,
01746 742, -1, 210, -1, 372, 742, -1, 371, 742, -1,
01747 210, -1, 118, -1, 322, -1, 735, -1, 210, -1,
01748 742, -1, 75, 735, -1, 315, 735, -1, 211, -1,
01749 182, -1, 325, -1, 82, -1, 122, -1, 746, -1,
01750 744, -1, 756, 384, 373, -1, 756, 384, 756, 384,
01751 373, -1, 531, -1, 756, -1, 747, -1, 756, 384,
01752 756, -1, 384, 756, 384, 756, -1, 756, 384, 756,
01753 384, 756, -1, 756, -1, 756, 384, 756, 384, 756,
01754 -1, 756, 384, 756, -1, 384, 756, -1, 756, -1,
01755 750, 384, 756, -1, 384, 756, -1, 756, -1, 756,
01756 -1, 142, -1, 145, -1, 311, -1, 311, -1, 311,
01757 -1, 752, -1, 760, -1, 752, -1, 753, -1, 752,
01758 -1, 753, -1, 315, -1, 286, -1, 144, -1, 761,
01759 -1, 21, -1, 42, -1, 44, -1, 50, -1, 52,
01760 -1, 60, -1, 81, -1, 94, -1, 104, -1, 123,
01761 -1, 209, -1, 219, -1, 257, -1, 263, -1, 266,
01762 -1, 273, -1, 278, -1, 291, -1, 295, -1, 323,
01763 -1, 4, -1, 6, -1, 7, -1, 8, -1, 13,
01764 -1, 17, -1, 18, -1, 19, -1, 26, -1, 29,
01765 -1, 28, -1, 31, -1, 35, -1, 39, -1, 45,
01766 -1, 47, -1, 48, -1, 51, -1, 53, -1, 54,
01767 -1, 55, -1, 57, -1, 58, -1, 65, -1, 71,
01768 -1, 70, -1, 72, -1, 75, -1, 80, -1, 90,
01769 -1, 91, -1, 97, -1, 98, -1, 99, -1, 105,
01770 -1, 108, -1, 107, -1, 110, -1, 112, -1, 113,
01771 -1, 116, -1, 127, -1, 102, -1, 130, -1, 119,
01772 -1, 120, -1, 121, -1, 128, -1, 132, -1, 135,
01773 -1, 141, -1, 143, -1, 148, -1, 149, -1, 161,
01774 -1, 165, -1, 168, -1, 172, -1, 178, -1, 179,
01775 -1, 181, -1, 186, -1, 187, -1, 188, -1, 189,
01776 -1, 192, -1, 196, -1, 194, -1, 198, -1, 200,
01777 -1, 199, -1, 201, -1, 205, -1, 204, -1, 206,
01778 -1, 213, -1, 214, -1, 216, -1, 217, -1, 218,
01779 -1, 228, -1, 231, -1, 233, -1, 234, -1, 235,
01780 -1, 236, -1, 242, -1, 247, -1, 253, -1, 258,
01781 -1, 259, -1, 260, -1, 261, -1, 262, -1, 265,
01782 -1, 271, -1, 270, -1, 272, -1, 279, -1, 276,
01783 -1, 280, -1, 292, -1, 298, -1, 299, -1, 300,
01784 -1, 303, -1, 305, -1, 306, -1, 309, -1, 312,
01785 -1, 320, -1, 314, -1, 316, -1, 317, -1, 324,
01786 -1, 326, -1, 327, -1, 331, -1, 341, -1, 336,
01787 -1, 346, -1, 343, -1, 351, -1, 352, -1, 357,
01788 -1, 361, -1, -1, 274, 764, 763, 765, -1, -1,
01789 221, -1, 766, -1, 765, 383, 766, -1, -1, 767,
01790 772, -1, 769, -1, 132, -1, 178, -1, 272, -1,
01791 -1, 216, -1, -1, 132, -1, 178, -1, 272, -1,
01792 -1, 132, 384, -1, 178, 384, -1, 272, 384, -1,
01793 773, -1, 769, 774, -1, 768, 777, 673, 779, -1,
01794 768, 320, 161, 172, 778, -1, 385, 775, 673, 531,
01795 -1, 385, 385, 771, 777, 673, 779, -1, 776, -1,
01796 753, -1, 173, -1, 759, -1, 752, -1, 776, -1,
01797 239, 326, -1, 239, 51, -1, 247, 239, -1, 270,
01798 -1, 531, -1, 85, -1, 215, -1, 9, -1, 24,
01799 -1, 308, -1, 305, -1, -1, 332, 782, 780, -1,
01800 -1, 21, 784, 785, -1, -1, 357, -1, -1, 12,
01801 209, 39, -1, 12, 39, -1, -1, 245, -1, 209,
01802 245, -1, -1, 263, -1, 52, 785, 786, 787, -1,
01803 257, 785, 786, 787, -1, 257, 785, 318, 788, 793,
01804 -1, 263, 793, -1, 245, 263, 793, -1, 752, -1,
01805 -1, 795, -1, -1, 329, 801, 796, 509, -1, -1,
01806 795, -1, 798, -1, -1, 799, 800, -1, 625, 629,
01807 -1, 631, -1, -1, 92, -1, 9, -1, 267, 581,
01808 -1, 379, 511, 380, -1, 802, -1, -1, 803, 329,
01809 801, 804, 802, -1, 806, 803, 807, -1, -1, -1
01810 };
01811
01812
01813 static const yytype_uint16 yyrline[] =
01814 {
01815 0, 798, 798, 810, 814, 815, 820, 821, 822, 823,
01816 824, 825, 826, 827, 828, 829, 830, 831, 832, 833,
01817 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
01818 844, 845, 851, 856, 855, 870, 869, 883, 882, 893,
01819 896, 895, 900, 902, 904, 909, 911, 910, 916, 915,
01820 923, 933, 943, 964, 942, 978, 979, 980, 984, 985,
01821 989, 994, 998, 1002, 1006, 1013, 1014, 1018, 1019, 1022,
01822 1024, 1028, 1029, 1033, 1034, 1035, 1038, 1041, 1045, 1049,
01823 1053, 1057, 1061, 1065, 1069, 1073, 1077, 1081, 1091, 1098,
01824 1099, 1100, 1101, 1102, 1103, 1107, 1115, 1116, 1120, 1121,
01825 1125, 1126, 1130, 1131, 1138, 1142, 1147, 1151, 1155, 1161,
01826 1163, 1167, 1171, 1172, 1176, 1181, 1180, 1206, 1210, 1214,
01827 1221, 1225, 1229, 1233, 1242, 1241, 1252, 1256, 1261, 1268,
01828 1275, 1279, 1283, 1287, 1291, 1295, 1299, 1306, 1308, 1310,
01829 1315, 1319, 1326, 1330, 1334, 1342, 1343, 1345, 1350, 1358,
01830 1359, 1363, 1364, 1365, 1369, 1370, 1374, 1375, 1380, 1381,
01831 1383, 1388, 1392, 1404, 1408, 1412, 1419, 1420, 1422, 1429,
01832 1434, 1435, 1437, 1444, 1449, 1450, 1454, 1455, 1459, 1461,
01833 1468, 1481, 1486, 1487, 1491, 1492, 1496, 1498, 1502, 1506,
01834 1513, 1518, 1519, 1523, 1524, 1528, 1530, 1537, 1544, 1548,
01835 1553, 1554, 1565, 1576, 1577, 1581, 1582, 1585, 1587, 1591,
01836 1599, 1600, 1604, 1606, 1615, 1616, 1618, 1620, 1626, 1630,
01837 1635, 1640, 1646, 1655, 1656, 1657, 1658, 1659, 1663, 1667,
01838 1668, 1672, 1673, 1677, 1678, 1682, 1683, 1684, 1688, 1689,
01839 1693, 1705, 1706, 1710, 1711, 1715, 1716, 1720, 1724, 1725,
01840 1727, 1732, 1733, 1737, 1738, 1742, 1743, 1755, 1756, 1760,
01841 1761, 1765, 1766, 1774, 1773, 1790, 1789, 1801, 1803, 1808,
01842 1813, 1818, 1821, 1825, 1832, 1833, 1837, 1847, 1848, 1854,
01843 1862, 1861, 1869, 1882, 1868, 1896, 1903, 1907, 1911, 1915,
01844 1922, 1929, 1936, 1943, 1964, 1974, 1980, 1986, 1995, 1996,
01845 2000, 2001, 2005, 2006, 2010, 2017, 2018, 2019, 2023, 2030,
01846 2031, 2039, 2038, 2048, 2047, 2057, 2056, 2065, 2066, 2070,
01847 2087, 2095, 2096, 2100, 2105, 2110, 2115, 2120, 2119, 2138,
01848 2145, 2138, 2152, 2153, 2154, 2155, 2156, 2160, 2169, 2171,
01849 2176, 2177, 2181, 2191, 2204, 2214, 2228, 2229, 2235, 2237,
01850 2239, 2247, 2249, 2253, 2261, 2262, 2263, 2273, 2278, 2298,
01851 2305, 2312, 2313, 2314, 2315, 2316, 2320, 2321, 2326, 2375,
01852 2380, 2421, 2423, 2427, 2431, 2435, 2439, 2443, 2447, 2451,
01853 2455, 2459, 2463, 2467, 2471, 2475, 2479, 2484, 2488, 2494,
01854 2498, 2506, 2510, 2516, 2520, 2524, 2534, 2545, 2549, 2553,
01855 2557, 2561, 2565, 2569, 2573, 2577, 2581, 2585, 2589, 2593,
01856 2597, 2601, 2605, 2609, 2610, 2611, 2612, 2613, 2614, 2618,
01857 2619, 2623, 2624, 2625, 2626, 2627, 2628, 2635, 2636, 2637,
01858 2641, 2645, 2646, 2650, 2654, 2658, 2659, 2664, 2669, 2673,
01859 2674, 2679, 2686, 2688, 2695, 2700, 2705, 2717, 2719, 2727,
01860 2729, 2731, 2733, 2735, 2743, 2750, 2752, 2754, 2756, 2758,
01861 2760, 2762, 2764, 2766, 2768, 2770, 2772, 2774, 2776, 2778,
01862 2786, 2802, 2807, 2809, 2814, 2816, 2818, 2820, 2825, 2830,
01863 2832, 2837, 2839, 2850, 2860, 2871, 2881, 2886, 2891, 2893,
01864 2895, 2900, 2913, 2915, 2917, 2925, 2933, 2948, 2950, 2965,
01865 2967, 2969, 2971, 2973, 2975, 2977, 2986, 2994, 3016, 3015,
01866 3063, 3064, 3068, 3073, 3081, 3101, 3103, 3105, 3107, 3110,
01867 3112, 3109, 3115, 3122, 3124, 3126, 3128, 3130, 3132, 3134,
01868 3136, 3138, 3141, 3140, 3156, 3155, 3164, 3169, 3174, 3188,
01869 3189, 3194, 3197, 3202, 3205, 3217, 3216, 3232, 3234, 3236,
01870 3238, 3240, 3242, 3244, 3246, 3248, 3250, 3252, 3254, 3259,
01871 3264, 3272, 3273, 3277, 3278, 3282, 3288, 3299, 3300, 3308,
01872 3319, 3320, 3326, 3327, 3347, 3352, 3358, 3356, 3374, 3372,
01873 3390, 3388, 3395, 3404, 3402, 3420, 3419, 3429, 3440, 3438,
01874 3456, 3455, 3465, 3475, 3476, 3477, 3493, 3493, 3504, 3543,
01875 3584, 3588, 3593, 3585, 3605, 3624, 3631, 3624, 3640, 3639,
01876 3661, 3675, 3661, 3682, 3686, 3704, 3705, 3710, 3713, 3714,
01877 3715, 3719, 3720, 3725, 3724, 3730, 3729, 3737, 3738, 3741,
01878 3743, 3743, 3747, 3747, 3752, 3753, 3757, 3759, 3764, 3765,
01879 3769, 3777, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794,
01880 3795, 3796, 3797, 3798, 3802, 3803, 3821, 3822, 3823, 3824,
01881 3825, 3826, 3827, 3828, 3829, 3832, 3834, 3838, 3839, 3845,
01882 3847, 3851, 3853, 3852, 3866, 3869, 3868, 3883, 3889, 3899,
01883 3901, 3905, 3907, 3912, 3913, 3937, 3941, 3942, 3946, 3958,
01884 3960, 3965, 3964, 3973, 3978, 3986, 3987, 3988, 3993, 3998,
01885 4002, 4003, 4007, 4011, 4018, 4025, 4035, 4036, 4037, 4042,
01886 4045, 4054, 4055, 4056, 4057, 4058, 4059, 4063, 4064, 4065,
01887 4066, 4067, 4071, 4071, 4080, 4081, 4085, 4104, 4103, 4110,
01888 4109, 4117, 4128, 4137, 4141, 4148, 4148, 4159, 4169, 4170,
01889 4174, 4182, 4183, 4187, 4188, 4196, 4203, 4207, 4213, 4214,
01890 4218, 4219, 4223, 4224, 4233, 4241, 4232, 4251, 4257, 4250,
01891 4266, 4267, 4271, 4279, 4280, 4281, 4283, 4282, 4292, 4293,
01892 4297, 4298, 4300, 4299, 4305, 4304, 4312, 4313, 4317, 4318,
01893 4322, 4331, 4332, 4336, 4337, 4342, 4341, 4354, 4355, 4359,
01894 4364, 4372, 4373, 4376, 4378, 4378, 4386, 4385, 4412, 4413,
01895 4417, 4425, 4426, 4430, 4442, 4441, 4457, 4458, 4462, 4470,
01896 4472, 4479, 4478, 4490, 4496, 4502, 4508, 4514, 4520, 4525,
01897 4529, 4533, 4537, 4541, 4546, 4551, 4556, 4561, 4566, 4573,
01898 4574, 4578, 4579, 4582, 4584, 4591, 4602, 4601, 4610, 4609,
01899 4618, 4619, 4623, 4624, 4628, 4629, 4630, 4643, 4642, 4651,
01900 4652, 4657, 4656, 4662, 4667, 4672, 4677, 4685, 4686, 4692,
01901 4699, 4700, 4701, 4707, 4718, 4726, 4734, 4739, 4717, 4754,
01902 4757, 4758, 4765, 4766, 4767, 4771, 4772, 4773, 4774, 4775,
01903 4776, 4779, 4781, 4785, 4786, 4790, 4795, 4801, 4806, 4813,
01904 4815, 4819, 4820, 4824, 4829, 4836, 4838, 4846, 4847, 4851,
01905 4852, 4853, 4857, 4859, 4864, 4865, 4870, 4871, 4877, 4881,
01906 4888, 4894, 4905, 4918, 4919, 4920, 4928, 4929, 4930, 4935,
01907 4936, 4937, 4938, 4939, 4940, 4944, 4945, 4946, 4947, 4948,
01908 4953, 4954, 4962, 4967, 4971, 4978, 4979, 4984, 4985, 4986,
01909 4990, 4995, 5000, 5002, 5010, 5025, 5026, 5030, 5034, 5041,
01910 5045, 5049, 5053, 5057, 5061, 5068, 5072, 5079, 5086, 5093,
01911 5097, 5101, 5108, 5112, 5116, 5120, 5138, 5145, 5152, 5159,
01912 5160, 5168, 5169, 5173, 5174, 5178, 5179, 5180, 5185, 5186,
01913 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196,
01914 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5215,
01915 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225,
01916 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235,
01917 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245,
01918 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255,
01919 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265,
01920 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275,
01921 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285,
01922 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295,
01923 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305,
01924 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315,
01925 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325,
01926 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335,
01927 5336, 5337, 5338, 5339, 5340, 5347, 5346, 5355, 5356, 5360,
01928 5361, 5365, 5365, 5371, 5372, 5373, 5374, 5378, 5379, 5383,
01929 5384, 5385, 5386, 5390, 5391, 5392, 5393, 5397, 5398, 5402,
01930 5413, 5425, 5429, 5436, 5437, 5438, 5442, 5447, 5451, 5466,
01931 5467, 5468, 5469, 5473, 5474, 5475, 5476, 5477, 5481, 5482,
01932 5487, 5486, 5496, 5495, 5503, 5504, 5509, 5510, 5511, 5516,
01933 5517, 5518, 5522, 5523, 5527, 5534, 5538, 5545, 5552, 5559,
01934 5568, 5569, 5574, 5573, 5589, 5590, 5591, 5595, 5595, 5616,
01935 5617, 5621, 5622, 5623, 5627, 5631, 5638, 5641, 5639, 5654,
01936 5661, 5680
01937 };
01938 #endif
01939
01940 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01941
01942
01943 static const char *const yytname[] =
01944 {
01945 "$end", "error", "$undefined", "ABORT_SYM", "ACTION", "ADD_SYM",
01946 "ADDDATE_SYM", "AFTER_SYM", "AGGREGATE_SYM", "ALL", "ALTER_SYM",
01947 "ANALYZE_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASENSITIVE_SYM",
01948 "AT_SYM", "AUTO_INC", "AVG_SYM", "BEFORE_SYM", "BEGIN_SYM",
01949 "BETWEEN_SYM", "BIGINT_SYM", "BINARY", "BIN_NUM", "BIT_SYM", "BLOB_SYM",
01950 "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "CALL_SYM",
01951 "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CATALOG_SYM",
01952 "CHAIN_SYM", "CHANGE_SYM", "CHAR_SYM", "CHECKSUM_SYM", "CHECK_SYM",
01953 "CLOSE_SYM", "COALESCE", "COLLATE_SYM", "COLLATION_SYM", "COLUMNS",
01954 "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM",
01955 "COMPACT_SYM", "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM",
01956 "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM",
01957 "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
01958 "CURRENT_USER", "CURSOR_SYM", "DATABASE", "DATABASES", "DATA_SYM",
01959 "DATETIME_SYM", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DATE_SYM",
01960 "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
01961 "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
01962 "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DELETE_SYM", "DESC",
01963 "DESCRIBE", "DETERMINISTIC_SYM", "DISABLE_SYM", "DISCARD", "DISTINCT",
01964 "DIV_SYM", "DO_SYM", "DOUBLE_SYM", "DROP", "DUMPFILE", "DUPLICATE_SYM",
01965 "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ENABLE_SYM", "ENCLOSED", "END",
01966 "ENDS_SYM", "END_OF_INPUT", "ENGINE_SYM", "ENUM_SYM", "EQUAL_SYM",
01967 "ERRORS", "ESCAPED", "ESCAPE_SYM", "EXCLUSIVE_SYM", "EXECUTE_SYM",
01968 "EXISTS", "EXTENDED_SYM", "EXTRACT_SYM", "FALSE_SYM", "FILE_SYM",
01969 "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLUSH_SYM", "FORCE_SYM",
01970 "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
01971 "GE", "GLOBAL_SYM", "GROUP_SYM", "GROUP_CONCAT_SYM", "HASH_SYM",
01972 "HAVING", "HEX_NUM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
01973 "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENTITY_SYM",
01974 "IDENT_QUOTED", "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM",
01975 "INFILE", "INNER_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT",
01976 "INTERVAL_SYM", "INTO", "INT_SYM", "IN_SYM", "IS", "ISOLATION",
01977 "ITERATE_SYM", "JOIN_SYM", "KEYS", "KEY_BLOCK_SIZE", "KEY_SYM",
01978 "KILL_SYM", "LAST_SYM", "LE", "LEADING", "LEFT", "LEVEL_SYM",
01979 "LEX_HOSTNAME", "LIKE", "LIMIT", "LINES", "LOAD", "LOCAL_SYM",
01980 "LOCKS_SYM", "LOCK_SYM", "LOGS_SYM", "LONG_NUM", "LONG_SYM", "MATCH",
01981 "MAX_SYM", "MAX_VALUE_SYM", "MEDIUM_SYM", "MERGE_SYM", "MICROSECOND_SYM",
01982 "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_SYM",
01983 "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM", "MONTH_SYM",
01984 "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM", "NATURAL", "NE", "NEW_SYM",
01985 "NEXT_SYM", "NONE_SYM", "NOT_SYM", "NOW_SYM", "NO_SYM", "NULL_SYM",
01986 "NUM", "NUMERIC_SYM", "OFFLINE_SYM", "OFFSET_SYM", "ON", "ONE_SHOT_SYM",
01987 "ONE_SYM", "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE", "OPTION", "OPTIONALLY",
01988 "ORDER_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM", "PARTIAL",
01989 "POSITION_SYM", "PRECISION", "PREV_SYM", "PRIMARY_SYM", "PROCESS",
01990 "PROCESSLIST_SYM", "QUARTER_SYM", "QUERY_SYM", "RANGE_SYM", "READS_SYM",
01991 "READ_SYM", "READ_WRITE_SYM", "REAL", "REDUNDANT_SYM", "REGEXP_SYM",
01992 "REFERENCES", "RELEASE_SYM", "RENAME", "REPEATABLE_SYM", "REPEAT_SYM",
01993 "REPLACE", "REPLICATE", "REPLICATION", "RESTRICT", "RETURNS_SYM",
01994 "RETURN_SYM", "REVOKE", "RIGHT", "ROLLBACK_SYM", "ROLLUP_SYM",
01995 "ROUTINE_SYM", "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM", "SAVEPOINT_SYM",
01996 "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM",
01997 "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM",
01998 "SESSION_SYM", "SERVER_SYM", "SET_SYM", "SET_VAR", "SHARE_SYM", "SHOW",
01999 "SIGNED_SYM", "SIMPLE_SYM", "SNAPSHOT_SYM", "SPECIFIC_SYM",
02000 "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT",
02001 "SQL_BUFFER_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT",
02002 "SQL_SYM", "STARTING", "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM",
02003 "STD_SYM", "STOP_SYM", "STORED_SYM", "STRAIGHT_JOIN", "STRING_SYM",
02004 "SUBDATE_SYM", "SUBJECT_SYM", "SUBSTRING", "SUM_SYM", "SUSPEND_SYM",
02005 "SYSDATE", "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
02006 "TEMPORARY_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THEN_SYM",
02007 "TIME_SYM", "TIMESTAMP_SYM", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TO_SYM",
02008 "TRAILING", "TRANSACTION_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM",
02009 "TYPE_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDOFILE_SYM",
02010 "UNDO_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM",
02011 "UNSIGNED_SYM", "UPDATE_SYM", "USAGE", "USER", "USE_SYM", "USING",
02012 "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UUID_SYM", "VALUES", "VALUE_SYM",
02013 "VARBINARY", "VARCHAR_SYM", "VARIABLES", "VARIANCE_SYM", "VARYING",
02014 "VAR_SAMP_SYM", "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE",
02015 "WITH", "WITH_ROLLUP_SYM", "WORK_SYM", "WRITE_SYM", "XOR",
02016 "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL_SYM", "'='", "LESS_THAN",
02017 "GREATER_THAN", "CONCAT", "'|'", "'&'", "SHIFT_RIGHT", "SHIFT_LEFT",
02018 "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "UMINUS", "'('", "')'",
02019 "'{'", "'}'", "','", "'.'", "'@'", "$accept", "query", "verb_clause",
02020 "statement", "create", "$@1", "$@2", "$@3", "create_table_definition",
02021 "$@4", "create_select_as", "$@5", "$@6", "create_like", "create_select",
02022 "stored_select", "$@7", "$@8", "opt_create_database_options",
02023 "opt_database_custom_options", "custom_database_option",
02024 "opt_table_options", "opt_if_not_exists", "opt_create_table_options",
02025 "create_table_options_space_separated", "create_table_options",
02026 "create_table_option", "custom_engine_option", "default_collation",
02027 "default_collation_schema", "row_format", "row_format_or_text",
02028 "opt_select_from", "field_list", "field_list_item", "column_def",
02029 "key_def", "opt_check_constraint", "check_constraint", "opt_constraint",
02030 "constraint", "field_spec", "$@9", "field_def", "$@10", "varchar",
02031 "int_type", "real_type", "float_options", "precision", "opt_len",
02032 "opt_field_number_signed", "ignored_field_number_length", "opt_zerofill",
02033 "opt_precision", "opt_attribute_not_null", "opt_attribute_index",
02034 "opt_attribute", "opt_attribute_boolean", "opt_attribute_string",
02035 "opt_attribute_list_string", "attribute_string", "opt_attribute_number",
02036 "opt_attribute_list_integer", "attribute_integer",
02037 "opt_attribute_timestamp", "opt_attribute_list_timestamp",
02038 "attribute_timestamp", "opt_attribute_comment", "collation_name",
02039 "collation_name_or_default", "opt_default", "opt_primary", "references",
02040 "opt_ref_list", "ref_list", "opt_match_clause", "opt_on_update_delete",
02041 "delete_option", "key_type", "constraint_key_type", "key_or_index",
02042 "opt_key_or_index", "keys_or_index", "opt_unique", "init_key_options",
02043 "key_alg", "key_options", "key_opts", "key_using_alg", "key_opt",
02044 "btree_or_rtree", "key_list", "key_part", "opt_ident", "opt_component",
02045 "string_list", "alter", "$@11", "$@12", "alter_commands", "build_method",
02046 "alter_list", "add_column", "alter_list_item", "$@13", "$@14", "$@15",
02047 "opt_column", "opt_ignore", "opt_place", "opt_to", "start",
02048 "start_transaction_opts", "analyze", "$@16", "check", "$@17", "rename",
02049 "$@18", "table_to_table_list", "table_to_table", "select", "select_init",
02050 "select_paren", "select_paren_derived", "select_init2", "$@19",
02051 "select_part2", "$@20", "$@21", "select_into", "select_from",
02052 "select_options", "select_option_list", "select_option_distinct_or_all",
02053 "select_option_small_or_big", "select_option", "select_lock_type",
02054 "select_item_list", "select_item", "remember_name", "remember_end",
02055 "select_alias", "optional_braces", "expr", "bool_pri", "predicate",
02056 "bit_expr", "comp_op", "all_or_any", "simple_expr",
02057 "function_call_keyword", "function_call_nonkeyword",
02058 "function_call_conflict", "function_call_generic", "@22",
02059 "opt_udf_expr_list", "udf_expr_list", "udf_expr", "sum_expr", "$@23",
02060 "$@24", "$@25", "variable", "$@26", "variable_aux", "opt_distinct",
02061 "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "$@27",
02062 "cast_type", "expr_list", "opt_expr", "opt_else", "when_list",
02063 "table_ref", "join_table_list", "esc_table_ref", "derived_table_list",
02064 "join_table", "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34",
02065 "normal_join", "table_factor", "$@35", "select_derived_union", "$@36",
02066 "$@37", "select_init2_derived", "select_part2_derived", "$@38", "$@39",
02067 "select_derived", "$@40", "select_derived2", "$@41", "$@42",
02068 "get_select_lex", "select_derived_init", "opt_outer",
02069 "index_hint_clause", "index_hint_type", "index_hint_definition", "$@43",
02070 "$@44", "index_hints_list", "opt_index_hints_list", "$@45",
02071 "opt_key_definition", "$@46", "opt_key_usage_list", "key_usage_element",
02072 "key_usage_list", "using_list", "interval", "interval_time_stamp",
02073 "interval_time_st", "table_alias", "opt_table_alias", "opt_all",
02074 "where_clause", "$@47", "having_clause", "$@48", "opt_escape",
02075 "group_clause", "group_list", "olap_opt", "alter_order_clause",
02076 "alter_order_list", "alter_order_item", "opt_order_clause",
02077 "order_clause", "$@49", "order_list", "order_dir",
02078 "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
02079 "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
02080 "ulonglong_num", "select_var_list_init", "$@50", "select_var_list",
02081 "select_var_ident", "into", "$@51", "into_destination", "$@52", "drop",
02082 "$@53", "table_list", "table_name", "if_exists", "opt_temporary",
02083 "execute", "execute_var_or_string", "opt_status", "opt_concurrent",
02084 "opt_wait", "insert", "$@54", "$@55", "replace", "$@56", "$@57",
02085 "insert2", "insert_table", "insert_field_spec", "$@58", "fields",
02086 "insert_values", "$@59", "$@60", "values_list", "ident_eq_list",
02087 "ident_eq_value", "equal", "opt_equal", "no_braces", "$@61",
02088 "opt_values", "values", "expr_or_default", "opt_insert_update", "$@62",
02089 "update", "$@63", "update_list", "update_elem", "insert_update_list",
02090 "insert_update_elem", "delete", "$@64", "opt_delete_option", "truncate",
02091 "opt_table_sym", "show", "$@65", "show_param", "opt_db", "from_or_in",
02092 "show_wild", "describe", "$@66", "$@67", "describe_command",
02093 "opt_extended_describe", "opt_describe_column", "flush", "$@68",
02094 "flush_options", "flush_option", "$@69", "opt_table_list", "kill",
02095 "kill_option", "use", "load", "$@70", "$@71", "$@72", "$@73",
02096 "data_file", "load_data_lock", "opt_duplicate", "opt_duplicate_as",
02097 "opt_field_term", "field_term_list", "field_term", "opt_line_term",
02098 "line_term_list", "line_term", "opt_ignore_lines", "lines_or_rows",
02099 "opt_field_or_var_spec", "fields_or_vars", "field_or_var",
02100 "opt_load_data_set_spec", "text_literal", "text_string",
02101 "signed_literal", "literal", "integer_literal", "boolean_literal",
02102 "date_literal", "NUM_literal", "insert_ident", "table_wild",
02103 "order_ident", "simple_ident", "simple_ident_q", "field_ident",
02104 "table_ident", "schema_name", "catalog_name", "IDENT_sys",
02105 "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
02106 "ident", "ident_or_text", "engine_option_value",
02107 "keyword_exception_for_variable", "keyword", "keyword_sp", "set", "$@74",
02108 "opt_option", "option_value_list", "option_type_value", "$@75",
02109 "option_type", "option_type2", "opt_var_type", "opt_var_ident_type",
02110 "ext_option_value", "sys_option_value", "option_value",
02111 "user_variable_ident", "internal_variable_ident",
02112 "internal_variable_name", "isolation_types", "set_expr_or_default",
02113 "table_or_tables", "unlock", "$@76", "begin", "$@77", "opt_work",
02114 "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
02115 "savepoint", "release", "savepoint_ident", "union_clause", "union_list",
02116 "$@78", "union_opt", "union_order_or_limit", "$@79", "order_or_limit",
02117 "union_option", "query_specification", "query_expression_body", "$@80",
02118 "subselect", "subselect_start", "subselect_end", 0
02119 };
02120 #endif
02121
02122 # ifdef YYPRINT
02123
02124
02125 static const yytype_uint16 yytoknum[] =
02126 {
02127 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
02128 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
02129 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
02130 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
02131 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
02132 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
02133 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
02134 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
02135 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
02136 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
02137 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
02138 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
02139 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
02140 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
02141 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
02142 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
02143 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
02144 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
02145 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
02146 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
02147 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
02148 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
02149 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
02150 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
02151 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
02152 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
02153 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
02154 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
02155 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
02156 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
02157 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
02158 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
02159 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
02160 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
02161 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
02162 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
02163 615, 616, 617, 61, 618, 619, 620, 124, 38, 621,
02164 622, 45, 43, 42, 47, 37, 94, 126, 623, 40,
02165 41, 123, 125, 44, 46, 64
02166 };
02167 # endif
02168
02169
02170 static const yytype_uint16 yyr1[] =
02171 {
02172 0, 386, 387, 387, 388, 388, 389, 389, 389, 389,
02173 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
02174 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
02175 389, 389, 390, 391, 390, 392, 390, 393, 390, 394,
02176 395, 394, 394, 394, 394, 396, 397, 396, 398, 396,
02177 399, 400, 402, 403, 401, 404, 404, 404, 405, 405,
02178 406, 406, 406, 406, 406, 407, 407, 408, 408, 409,
02179 409, 410, 410, 411, 411, 411, 412, 413, 413, 413,
02180 413, 413, 413, 413, 413, 413, 413, 414, 415, 416,
02181 416, 416, 416, 416, 416, 417, 418, 418, 419, 419,
02182 420, 420, 421, 421, 422, 422, 422, 422, 422, 423,
02183 423, 424, 425, 425, 426, 428, 427, 429, 429, 429,
02184 429, 429, 429, 429, 430, 429, 429, 429, 429, 429,
02185 429, 429, 429, 429, 429, 429, 429, 431, 431, 431,
02186 432, 432, 433, 433, 433, 434, 434, 434, 435, 436,
02187 436, 437, 437, 437, 438, 438, 439, 439, 440, 440,
02188 440, 441, 441, 442, 442, 442, 443, 443, 443, 443,
02189 444, 444, 444, 444, 445, 445, 446, 446, 447, 447,
02190 447, 447, 448, 448, 449, 449, 450, 450, 450, 450,
02191 450, 451, 451, 452, 452, 453, 453, 453, 453, 453,
02192 454, 454, 455, 456, 456, 457, 457, 458, 458, 459,
02193 460, 460, 461, 461, 462, 462, 462, 462, 463, 463,
02194 463, 463, 463, 464, 464, 464, 464, 464, 465, 466,
02195 466, 467, 467, 468, 468, 469, 469, 469, 470, 470,
02196 471, 472, 472, 473, 473, 474, 474, 475, 476, 476,
02197 476, 477, 477, 478, 478, 479, 479, 480, 480, 481,
02198 481, 482, 482, 484, 483, 485, 483, 486, 486, 486,
02199 486, 487, 487, 487, 488, 488, 489, 490, 490, 490,
02200 491, 490, 492, 493, 490, 490, 490, 490, 490, 490,
02201 490, 490, 490, 490, 490, 490, 490, 490, 494, 494,
02202 495, 495, 496, 496, 496, 497, 497, 497, 498, 499,
02203 499, 501, 500, 503, 502, 505, 504, 506, 506, 507,
02204 508, 509, 509, 510, 510, 511, 511, 513, 512, 515,
02205 516, 514, 517, 517, 517, 517, 517, 518, 519, 519,
02206 520, 520, 521, 521, 522, 522, 523, 523, 523, 523,
02207 523, 524, 524, 524, 525, 525, 525, 526, 526, 527,
02208 528, 529, 529, 529, 529, 529, 530, 530, 531, 531,
02209 531, 531, 531, 531, 531, 531, 531, 531, 531, 532,
02210 532, 532, 532, 532, 532, 533, 533, 533, 533, 533,
02211 533, 533, 533, 533, 533, 533, 533, 533, 534, 534,
02212 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
02213 534, 534, 534, 535, 535, 535, 535, 535, 535, 536,
02214 536, 537, 537, 537, 537, 537, 537, 537, 537, 537,
02215 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
02216 537, 537, 537, 537, 537, 537, 537, 538, 538, 538,
02217 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
02218 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
02219 538, 539, 539, 539, 539, 539, 539, 539, 539, 539,
02220 539, 539, 539, 539, 539, 539, 539, 539, 539, 539,
02221 539, 539, 540, 540, 540, 540, 540, 540, 540, 540,
02222 540, 540, 540, 540, 540, 540, 540, 540, 542, 541,
02223 543, 543, 544, 544, 545, 546, 546, 546, 546, 547,
02224 548, 546, 546, 546, 546, 546, 546, 546, 546, 546,
02225 546, 546, 549, 546, 551, 550, 552, 552, 552, 553,
02226 553, 554, 554, 555, 555, 557, 556, 558, 558, 558,
02227 558, 558, 558, 558, 558, 558, 558, 558, 558, 559,
02228 559, 560, 560, 561, 561, 562, 562, 563, 563, 564,
02229 565, 565, 566, 566, 567, 567, 568, 567, 569, 567,
02230 570, 567, 567, 571, 567, 572, 567, 567, 573, 567,
02231 574, 567, 567, 575, 575, 575, 577, 576, 576, 576,
02232 578, 579, 580, 578, 581, 583, 584, 582, 586, 585,
02233 588, 589, 587, 590, 591, 592, 592, 593, 593, 593,
02234 593, 594, 594, 596, 595, 597, 595, 598, 598, 599,
02235 600, 599, 602, 601, 603, 603, 604, 604, 605, 605,
02236 606, 606, 607, 607, 607, 607, 607, 607, 607, 607,
02237 607, 607, 607, 607, 608, 608, 609, 609, 609, 609,
02238 609, 609, 609, 609, 609, 610, 610, 611, 611, 612,
02239 612, 613, 614, 613, 615, 616, 615, 617, 617, 618,
02240 618, 619, 619, 620, 620, 621, 622, 622, 623, 624,
02241 624, 626, 625, 627, 627, 628, 628, 628, 629, 629,
02242 630, 630, 631, 632, 632, 632, 633, 633, 633, 634,
02243 634, 635, 635, 635, 635, 635, 635, 636, 636, 636,
02244 636, 636, 638, 637, 639, 639, 640, 642, 641, 644,
02245 643, 643, 643, 645, 645, 646, 645, 645, 647, 647,
02246 648, 649, 649, 650, 650, 651, 652, 652, 653, 653,
02247 654, 654, 655, 655, 657, 658, 656, 660, 661, 659,
02248 662, 662, 663, 664, 664, 664, 665, 664, 666, 666,
02249 667, 667, 668, 667, 669, 667, 670, 670, 671, 671,
02250 672, 673, 673, 674, 674, 676, 675, 677, 677, 678,
02251 678, 679, 679, 680, 681, 680, 683, 682, 684, 684,
02252 685, 686, 686, 687, 689, 688, 690, 690, 691, 692,
02253 692, 694, 693, 695, 695, 695, 695, 695, 695, 695,
02254 695, 695, 695, 695, 695, 695, 695, 695, 695, 696,
02255 696, 697, 697, 698, 698, 698, 700, 699, 701, 699,
02256 702, 702, 703, 703, 704, 704, 704, 706, 705, 707,
02257 707, 709, 708, 708, 708, 708, 708, 710, 710, 711,
02258 712, 712, 712, 713, 715, 716, 717, 718, 714, 719,
02259 720, 720, 721, 721, 721, 722, 722, 722, 722, 722,
02260 722, 723, 723, 724, 724, 725, 725, 725, 725, 726,
02261 726, 727, 727, 728, 728, 729, 729, 730, 730, 731,
02262 731, 731, 732, 732, 733, 733, 734, 734, 735, 735,
02263 736, 736, 736, 737, 737, 737, 738, 738, 738, 738,
02264 738, 738, 738, 738, 738, 739, 739, 739, 739, 739,
02265 739, 739, 740, 740, 740, 741, 741, 741, 741, 741,
02266 742, 742, 742, 742, 742, 743, 743, 744, 744, 745,
02267 746, 746, 747, 747, 747, 748, 748, 748, 748, 749,
02268 749, 749, 750, 751, 752, 752, 753, 754, 755, 756,
02269 756, 757, 757, 758, 758, 759, 759, 759, 760, 760,
02270 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
02271 760, 760, 760, 760, 760, 760, 760, 760, 760, 761,
02272 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02273 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02274 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02275 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02276 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02277 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02278 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02279 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02280 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02281 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02282 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02283 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
02284 761, 761, 761, 761, 761, 763, 762, 764, 764, 765,
02285 765, 767, 766, 768, 768, 768, 768, 769, 769, 770,
02286 770, 770, 770, 771, 771, 771, 771, 772, 772, 773,
02287 773, 774, 774, 775, 775, 775, 776, 776, 777, 778,
02288 778, 778, 778, 779, 779, 779, 779, 779, 780, 780,
02289 782, 781, 784, 783, 785, 785, 786, 786, 786, 787,
02290 787, 787, 788, 788, 789, 790, 790, 791, 792, 793,
02291 794, 794, 796, 795, 797, 797, 797, 799, 798, 800,
02292 800, 801, 801, 801, 802, 802, 803, 804, 803, 805,
02293 806, 807
02294 };
02295
02296
02297 static const yytype_uint8 yyr2[] =
02298 {
02299 0, 2, 1, 2, 1, 1, 1, 1, 1, 1,
02300 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02301 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02302 1, 1, 3, 0, 7, 0, 13, 0, 6, 5,
02303 0, 5, 4, 2, 2, 0, 0, 4, 0, 6,
02304 2, 1, 0, 0, 6, 0, 1, 1, 1, 3,
02305 1, 3, 3, 3, 3, 0, 1, 0, 3, 0,
02306 1, 1, 2, 1, 2, 3, 1, 3, 3, 3,
02307 3, 3, 3, 3, 3, 3, 1, 4, 4, 1,
02308 1, 1, 1, 1, 1, 1, 1, 2, 1, 3,
02309 1, 1, 2, 2, 7, 8, 8, 2, 2, 0,
02310 1, 2, 0, 1, 2, 0, 4, 2, 5, 2,
02311 2, 2, 5, 2, 0, 6, 5, 2, 2, 2,
02312 2, 3, 3, 3, 2, 2, 1, 2, 1, 1,
02313 4, 4, 2, 2, 3, 0, 3, 1, 5, 0,
02314 3, 0, 1, 1, 0, 3, 0, 1, 0, 3,
02315 1, 1, 2, 2, 1, 2, 0, 2, 3, 2,
02316 0, 2, 3, 2, 0, 1, 2, 1, 1, 2,
02317 2, 1, 0, 1, 2, 1, 1, 1, 3, 2,
02318 1, 0, 1, 2, 1, 1, 3, 2, 4, 1,
02319 0, 2, 1, 1, 1, 0, 1, 0, 1, 5,
02320 0, 3, 3, 1, 0, 2, 2, 2, 0, 3,
02321 3, 6, 6, 1, 1, 2, 2, 2, 1, 2,
02322 2, 1, 1, 0, 1, 1, 1, 1, 0, 1,
02323 0, 1, 2, 0, 1, 1, 2, 2, 1, 3,
02324 2, 1, 1, 4, 2, 1, 4, 0, 1, 0,
02325 2, 1, 3, 0, 7, 0, 5, 0, 2, 2,
02326 1, 0, 1, 1, 1, 3, 2, 3, 2, 4,
02327 0, 6, 0, 0, 8, 3, 4, 3, 3, 2,
02328 2, 6, 5, 3, 3, 1, 1, 1, 0, 1,
02329 0, 1, 0, 2, 1, 0, 1, 1, 3, 0,
02330 3, 0, 4, 0, 4, 0, 4, 1, 3, 3,
02331 1, 2, 4, 2, 3, 2, 3, 0, 3, 0,
02332 0, 6, 2, 1, 1, 2, 2, 7, 0, 1,
02333 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02334 1, 0, 2, 4, 3, 1, 1, 3, 4, 0,
02335 0, 0, 2, 2, 1, 1, 0, 2, 3, 3,
02336 3, 2, 3, 4, 3, 4, 3, 4, 1, 3,
02337 4, 3, 3, 6, 1, 5, 6, 5, 7, 6,
02338 8, 5, 6, 4, 5, 3, 4, 1, 3, 3,
02339 3, 3, 3, 3, 5, 5, 3, 3, 3, 3,
02340 3, 3, 1, 1, 1, 1, 1, 1, 1, 1,
02341 1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
02342 3, 2, 2, 2, 3, 3, 5, 6, 4, 4,
02343 2, 6, 5, 6, 4, 4, 5, 4, 2, 4,
02344 4, 4, 10, 6, 8, 6, 4, 4, 6, 4,
02345 4, 4, 7, 7, 7, 6, 6, 6, 6, 3,
02346 4, 6, 8, 2, 8, 8, 6, 2, 4, 6,
02347 6, 8, 8, 6, 8, 6, 2, 4, 8, 8,
02348 2, 2, 4, 4, 3, 3, 5, 8, 5, 4,
02349 6, 4, 6, 8, 6, 4, 3, 6, 0, 5,
02350 0, 1, 1, 3, 4, 4, 5, 5, 4, 0,
02351 0, 7, 4, 5, 4, 5, 4, 4, 4, 4,
02352 4, 5, 0, 8, 0, 3, 3, 1, 4, 0,
02353 1, 0, 2, 0, 1, 0, 3, 2, 1, 1,
02354 2, 1, 1, 2, 2, 1, 1, 1, 2, 1,
02355 3, 0, 1, 0, 2, 4, 5, 1, 1, 1,
02356 1, 4, 1, 3, 3, 3, 0, 6, 0, 6,
02357 0, 8, 4, 0, 8, 0, 10, 6, 0, 8,
02358 0, 10, 6, 1, 2, 2, 0, 4, 3, 5,
02359 3, 0, 0, 8, 1, 0, 0, 6, 0, 3,
02360 0, 0, 5, 0, 1, 0, 1, 0, 2, 3,
02361 3, 1, 1, 0, 7, 0, 7, 1, 2, 0,
02362 0, 2, 0, 2, 0, 1, 1, 1, 1, 3,
02363 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
02364 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02365 1, 1, 1, 1, 1, 0, 1, 0, 2, 0,
02366 1, 0, 0, 3, 0, 0, 3, 2, 0, 0,
02367 4, 4, 2, 0, 1, 3, 3, 1, 2, 0,
02368 1, 0, 4, 4, 2, 0, 1, 1, 0, 1,
02369 0, 1, 2, 1, 3, 3, 1, 1, 1, 0,
02370 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02371 1, 1, 0, 2, 3, 1, 2, 0, 3, 0,
02372 5, 2, 1, 3, 5, 0, 7, 4, 1, 3,
02373 1, 0, 2, 0, 1, 5, 1, 2, 0, 3,
02374 0, 1, 0, 1, 0, 0, 7, 0, 0, 5,
02375 2, 1, 1, 1, 3, 4, 0, 3, 3, 1,
02376 2, 2, 0, 3, 0, 5, 3, 1, 3, 1,
02377 3, 1, 1, 0, 1, 0, 4, 0, 1, 3,
02378 1, 1, 1, 0, 0, 6, 0, 9, 3, 1,
02379 3, 3, 1, 3, 0, 8, 0, 1, 3, 0,
02380 1, 0, 3, 2, 3, 3, 4, 5, 5, 5,
02381 5, 2, 2, 3, 2, 3, 1, 3, 4, 0,
02382 2, 1, 1, 0, 2, 2, 0, 4, 0, 4,
02383 1, 1, 0, 1, 0, 1, 1, 0, 3, 3,
02384 1, 0, 3, 4, 1, 1, 2, 0, 1, 3,
02385 0, 1, 1, 2, 0, 0, 0, 0, 18, 1,
02386 0, 1, 0, 1, 1, 0, 1, 1, 1, 2,
02387 2, 0, 2, 2, 1, 3, 4, 3, 3, 0,
02388 2, 2, 1, 3, 3, 0, 3, 1, 1, 0,
02389 3, 2, 3, 1, 1, 2, 0, 2, 1, 2,
02390 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
02391 1, 1, 1, 2, 2, 1, 1, 1, 1, 1,
02392 2, 2, 1, 1, 1, 1, 1, 1, 2, 2,
02393 1, 1, 1, 1, 1, 1, 1, 3, 5, 1,
02394 1, 1, 3, 4, 5, 1, 5, 3, 2, 1,
02395 3, 2, 1, 1, 1, 1, 1, 1, 1, 1,
02396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02399 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02400 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02406 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02409 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02410 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02411 1, 1, 1, 1, 1, 0, 4, 0, 1, 1,
02412 3, 0, 2, 1, 1, 1, 1, 0, 1, 0,
02413 1, 1, 1, 0, 2, 2, 2, 1, 2, 4,
02414 5, 4, 6, 1, 1, 1, 1, 1, 1, 2,
02415 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
02416 0, 3, 0, 3, 0, 1, 0, 3, 2, 0,
02417 1, 2, 0, 1, 4, 4, 5, 2, 3, 1,
02418 0, 1, 0, 4, 0, 1, 1, 0, 2, 2,
02419 1, 0, 1, 1, 2, 3, 1, 0, 5, 3,
02420 0, 0
02421 };
02422
02423
02424
02425
02426 static const yytype_uint16 yydefact[] =
02427 {
02428 0, 271, 0, 1172, 0, 1174, 271, 806, 840, 841,
02429 743, 2, 0, 847, 754, 860, 0, 0, 0, 757,
02430 1174, 0, 329, 1127, 811, 0, 809, 1170, 300, 0,
02431 0, 0, 0, 4, 10, 6, 27, 7, 8, 20,
02432 24, 320, 13, 14, 16, 21, 30, 11, 28, 26,
02433 12, 842, 15, 17, 31, 18, 25, 29, 5, 9,
02434 22, 23, 19, 0, 273, 272, 300, 1169, 1168, 311,
02435 1174, 313, 1175, 1176, 0, 67, 66, 0, 35, 807,
02436 0, 0, 741, 744, 0, 0, 964, 977, 965, 1155,
02437 976, 966, 975, 0, 748, 1157, 1154, 1156, 746, 1153,
02438 0, 300, 861, 862, 0, 869, 864, 0, 315, 0,
02439 1176, 1189, 1187, 321, 327, 338, 1128, 1125, 1139, 309,
02440 810, 0, 0, 301, 0, 999, 1000, 1001, 1002, 1003,
02441 1004, 1005, 1006, 979, 1007, 1009, 1008, 1010, 1011, 1012,
02442 980, 981, 1013, 1014, 1015, 982, 1016, 983, 1017, 1018,
02443 1019, 1020, 1021, 984, 1022, 1024, 1023, 1025, 1026, 1027,
02444 985, 1028, 1029, 986, 1030, 1031, 1032, 1041, 987, 1033,
02445 1035, 1034, 1036, 1037, 1038, 1039, 1043, 1044, 1045, 988,
02446 1040, 1046, 1042, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
02447 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
02448 1064, 1066, 1065, 1067, 1069, 1068, 1070, 1072, 1071, 1073,
02449 989, 1074, 1075, 1076, 1077, 1078, 990, 1079, 1080, 1081,
02450 1082, 1083, 1084, 1085, 1086, 1087, 991, 1088, 1089, 1090,
02451 1091, 1092, 992, 1093, 993, 1095, 1094, 1096, 994, 1098,
02452 995, 1097, 1099, 996, 1100, 997, 1101, 1102, 1103, 1104,
02453 1105, 1106, 1107, 1108, 1110, 1111, 1112, 1109, 998, 1113,
02454 1114, 1115, 1116, 1118, 1117, 1120, 1119, 1121, 1122, 1123,
02455 1124, 863, 969, 962, 970, 978, 329, 0, 0, 1,
02456 3, 1039, 0, 838, 836, 0, 959, 265, 0, 0,
02457 1173, 0, 0, 1179, 32, 963, 0, 0, 67, 238,
02458 0, 733, 0, 0, 0, 741, 747, 0, 750, 0,
02459 854, 855, 1169, 848, 850, 851, 0, 1000, 1006, 0,
02460 922, 561, 0, 0, 0, 1013, 1014, 0, 0, 366,
02461 366, 0, 0, 0, 1026, 1027, 943, 0, 0, 0,
02462 0, 919, 944, 0, 921, 1049, 0, 0, 0, 860,
02463 0, 941, 0, 1063, 1064, 0, 0, 1067, 0, 366,
02464 918, 940, 0, 1083, 0, 0, 0, 1092, 1093, 0,
02465 0, 1102, 0, 0, 366, 967, 0, 1111, 1112, 0,
02466 920, 998, 942, 1118, 366, 366, 1117, 0, 0, 0,
02467 0, 1124, 0, 0, 0, 1210, 0, 0, 534, 859,
02468 378, 384, 397, 412, 422, 423, 425, 424, 429, 428,
02469 916, 427, 917, 421, 951, 969, 908, 950, 870, 1188,
02470 0, 0, 762, 758, 761, 740, 1182, 1179, 1190, 343,
02471 342, 345, 347, 350, 344, 346, 359, 339, 349, 348,
02472 341, 1131, 0, 0, 0, 833, 698, 1140, 237, 236,
02473 235, 1141, 826, 1142, 829, 0, 0, 698, 0, 812,
02474 973, 974, 0, 0, 0, 308, 808, 1171, 0, 323,
02475 0, 1194, 961, 0, 844, 0, 205, 0, 312, 738,
02476 314, 1178, 0, 0, 1180, 1184, 0, 37, 0, 239,
02477 0, 804, 742, 737, 0, 0, 0, 751, 752, 856,
02478 0, 0, 857, 755, 0, 669, 440, 562, 0, 0,
02479 0, 0, 0, 0, 0, 669, 0, 473, 448, 0,
02480 0, 0, 0, 923, 0, 0, 0, 1210, 0, 539,
02481 0, 0, 0, 1210, 0, 0, 0, 669, 0, 0,
02482 669, 0, 0, 371, 0, 477, 0, 0, 0, 0,
02483 0, 0, 0, 669, 669, 0, 0, 669, 0, 486,
02484 0, 924, 0, 0, 0, 0, 0, 490, 491, 0,
02485 0, 669, 669, 0, 0, 432, 431, 433, 0, 0,
02486 0, 0, 0, 0, 0, 0, 0, 0, 414, 0,
02487 416, 418, 413, 417, 415, 0, 0, 0, 0, 0,
02488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02489 0, 0, 0, 0, 0, 909, 508, 0, 871, 0,
02490 316, 317, 0, 760, 0, 1183, 0, 1185, 1201, 328,
02491 1191, 356, 330, 355, 0, 340, 1126, 1129, 1137, 831,
02492 832, 0, 0, 67, 0, 0, 0, 813, 0, 822,
02493 699, 833, 0, 829, 833, 821, 0, 824, 833, 833,
02494 0, 0, 324, 1195, 322, 1196, 0, 839, 912, 911,
02495 837, 845, 910, 846, 960, 206, 266, 0, 263, 0,
02496 1177, 1181, 68, 55, 33, 0, 671, 0, 734, 749,
02497 753, 745, 0, 849, 858, 852, 0, 0, 670, 669,
02498 0, 545, 0, 563, 0, 495, 559, 0, 0, 0,
02499 0, 519, 0, 545, 367, 494, 0, 0, 0, 0,
02500 0, 0, 0, 643, 644, 645, 646, 656, 647, 648,
02501 649, 658, 663, 650, 651, 659, 660, 661, 652, 662,
02502 657, 653, 664, 0, 642, 540, 532, 0, 0, 0,
02503 0, 0, 0, 0, 669, 0, 0, 0, 669, 0,
02504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02505 0, 0, 0, 0, 669, 0, 0, 0, 655, 0,
02506 654, 0, 0, 0, 0, 0, 0, 469, 506, 0,
02507 0, 0, 0, 0, 435, 0, 434, 605, 0, 1206,
02508 1211, 0, 0, 1143, 535, 537, 370, 368, 369, 381,
02509 374, 0, 379, 372, 376, 419, 1003, 382, 0, 0,
02510 409, 1210, 678, 410, 0, 0, 0, 0, 395, 398,
02511 399, 400, 401, 0, 403, 0, 402, 406, 407, 408,
02512 411, 971, 972, 426, 430, 359, 952, 0, 0, 0,
02513 52, 766, 0, 0, 0, 772, 759, 763, 1186, 1203,
02514 1202, 1192, 359, 689, 360, 360, 950, 1131, 1134, 1135,
02515 1138, 1136, 0, 1133, 1132, 1147, 829, 0, 0, 825,
02516 834, 835, 707, 708, 706, 702, 703, 814, 830, 833,
02517 815, 829, 823, 827, 310, 796, 799, 0, 0, 698,
02518 1200, 1198, 783, 205, 739, 783, 38, 57, 58, 56,
02519 60, 69, 240, 672, 689, 735, 853, 793, 0, 0,
02520 515, 0, 0, 0, 0, 0, 0, 447, 0, 492,
02521 493, 0, 0, 518, 0, 0, 0, 449, 450, 444,
02522 752, 438, 0, 0, 451, 0, 0, 0, 0, 0,
02523 0, 0, 524, 499, 456, 0, 522, 0, 457, 478,
02524 0, 501, 0, 0, 0, 0, 459, 528, 526, 0,
02525 0, 0, 0, 530, 487, 460, 0, 0, 0, 0,
02526 0, 0, 0, 0, 0, 461, 0, 445, 527, 529,
02527 505, 0, 470, 0, 1204, 604, 338, 605, 0, 0,
02528 1201, 1209, 439, 953, 0, 0, 0, 0, 0, 375,
02529 380, 373, 377, 1210, 0, 0, 0, 0, 393, 0,
02530 1210, 678, 396, 0, 0, 0, 0, 511, 512, 0,
02531 968, 865, 318, 319, 338, 0, 785, 770, 777, 771,
02532 0, 0, 0, 769, 946, 945, 1190, 0, 354, 596,
02533 727, 351, 334, 700, 690, 333, 361, 357, 0, 1130,
02534 0, 1158, 0, 0, 1148, 833, 0, 828, 0, 0,
02535 816, 671, 0, 671, 782, 781, 0, 691, 1199, 784,
02536 0, 298, 298, 783, 298, 783, 0, 0, 0, 298,
02537 0, 0, 0, 296, 0, 298, 0, 305, 783, 0,
02538 295, 71, 76, 86, 0, 264, 270, 0, 274, 297,
02539 0, 0, 0, 0, 0, 112, 34, 69, 875, 70,
02540 73, 241, 0, 0, 709, 736, 0, 756, 0, 0,
02541 516, 546, 0, 564, 0, 442, 149, 548, 149, 557,
02542 555, 145, 551, 549, 556, 552, 0, 560, 0, 520,
02543 517, 0, 0, 496, 0, 543, 0, 0, 0, 446,
02544 498, 0, 525, 523, 0, 0, 0, 0, 0, 0,
02545 0, 0, 0, 0, 531, 0, 0, 0, 0, 0,
02546 0, 0, 0, 0, 0, 0, 436, 359, 325, 0,
02547 1205, 1207, 1144, 1145, 1146, 259, 536, 0, 391, 387,
02548 0, 385, 677, 0, 0, 0, 394, 405, 404, 360,
02549 509, 359, 954, 872, 359, 767, 779, 0, 787, 0,
02550 0, 764, 774, 0, 0, 773, 1193, 614, 613, 0,
02551 570, 671, 572, 569, 568, 567, 0, 613, 722, 0,
02552 0, 331, 336, 332, 701, 335, 0, 358, 365, 364,
02553 947, 952, 0, 0, 1143, 0, 817, 820, 819, 705,
02554 704, 818, 798, 689, 792, 791, 800, 0, 204, 203,
02555 88, 202, 299, 257, 232, 231, 278, 0, 109, 257,
02556 228, 276, 0, 0, 0, 0, 0, 289, 268, 0,
02557 0, 0, 0, 290, 0, 0, 269, 0, 0, 307,
02558 306, 0, 0, 0, 72, 783, 205, 112, 0, 302,
02559 109, 115, 955, 0, 62, 61, 59, 720, 721, 719,
02560 717, 718, 64, 63, 50, 0, 0, 51, 0, 98,
02561 100, 101, 43, 876, 878, 877, 44, 0, 205, 74,
02562 0, 242, 0, 673, 0, 805, 794, 0, 471, 565,
02563 0, 0, 547, 554, 0, 558, 147, 550, 553, 441,
02564 443, 0, 0, 0, 476, 541, 544, 0, 0, 453,
02565 0, 455, 500, 479, 502, 0, 458, 437, 0, 480,
02566 0, 485, 483, 0, 0, 0, 467, 0, 465, 0,
02567 466, 0, 468, 504, 507, 606, 326, 0, 0, 538,
02568 383, 0, 392, 389, 0, 386, 361, 513, 874, 873,
02569 0, 53, 0, 0, 0, 788, 790, 776, 1194, 765,
02570 768, 613, 596, 0, 0, 593, 615, 0, 615, 596,
02571 596, 679, 596, 665, 610, 0, 0, 732, 0, 728,
02572 352, 0, 363, 362, 0, 0, 1166, 1167, 1164, 1165,
02573 1163, 1149, 0, 0, 709, 949, 692, 695, 114, 258,
02574 0, 0, 0, 233, 108, 257, 107, 110, 240, 0,
02575 79, 280, 78, 294, 257, 287, 288, 285, 77, 83,
02576 282, 685, 687, 695, 293, 81, 80, 89, 90, 91,
02577 92, 93, 94, 95, 82, 0, 275, 0, 958, 0,
02578 304, 277, 0, 102, 103, 0, 0, 85, 84, 69,
02579 40, 69, 112, 880, 879, 0, 46, 75, 251, 252,
02580 247, 0, 710, 0, 0, 566, 0, 0, 521, 0,
02581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02582 0, 0, 464, 462, 463, 700, 1208, 260, 388, 0,
02583 514, 866, 700, 778, 780, 786, 0, 775, 0, 689,
02584 608, 0, 595, 594, 616, 0, 596, 615, 615, 0,
02585 575, 574, 0, 674, 573, 666, 0, 632, 598, 338,
02586 731, 729, 0, 723, 725, 0, 948, 0, 0, 1162,
02587 1150, 0, 1151, 797, 0, 696, 697, 694, 111, 257,
02588 229, 234, 230, 240, 0, 0, 0, 0, 286, 0,
02589 0, 688, 87, 279, 303, 210, 154, 166, 170, 174,
02590 191, 166, 145, 158, 124, 145, 154, 145, 158, 136,
02591 174, 166, 191, 166, 0, 139, 200, 0, 182, 182,
02592 957, 42, 1197, 875, 99, 0, 1190, 0, 0, 472,
02593 150, 146, 0, 474, 475, 542, 533, 497, 0, 454,
02594 503, 481, 484, 482, 488, 489, 351, 351, 96, 390,
02595 0, 54, 789, 1201, 665, 700, 596, 571, 596, 582,
02596 0, 0, 596, 578, 576, 580, 0, 675, 689, 668,
02597 597, 629, 359, 881, 726, 0, 353, 1160, 1159, 1161,
02598 0, 695, 0, 0, 0, 292, 0, 302, 200, 686,
02599 0, 214, 0, 151, 130, 135, 0, 0, 0, 161,
02600 208, 164, 137, 178, 181, 121, 175, 177, 0, 0,
02601 0, 195, 199, 119, 192, 194, 128, 182, 158, 0,
02602 160, 143, 0, 182, 151, 182, 142, 123, 129, 0,
02603 117, 134, 0, 0, 116, 0, 187, 0, 0, 186,
02604 190, 120, 183, 185, 127, 0, 41, 39, 48, 47,
02605 0, 695, 255, 0, 0, 0, 607, 97, 0, 601,
02606 599, 600, 609, 0, 567, 596, 596, 0, 567, 0,
02607 0, 0, 683, 695, 0, 700, 633, 0, 611, 0,
02608 889, 724, 1152, 693, 0, 0, 0, 0, 0, 0,
02609 0, 291, 913, 281, 283, 0, 213, 0, 218, 0,
02610 152, 153, 156, 0, 167, 169, 0, 171, 173, 180,
02611 179, 162, 165, 176, 163, 0, 366, 936, 0, 935,
02612 197, 937, 0, 193, 131, 144, 0, 0, 133, 156,
02613 132, 0, 0, 201, 0, 927, 926, 929, 0, 0,
02614 925, 189, 928, 0, 184, 956, 1197, 243, 0, 254,
02615 0, 795, 802, 0, 148, 452, 867, 0, 583, 0,
02616 587, 592, 588, 0, 579, 577, 0, 684, 0, 680,
02617 682, 676, 337, 621, 622, 0, 0, 627, 631, 700,
02618 0, 0, 0, 0, 882, 884, 0, 730, 0, 0,
02619 243, 915, 914, 302, 211, 0, 215, 216, 217, 0,
02620 209, 155, 157, 141, 168, 933, 932, 934, 172, 938,
02621 196, 939, 366, 159, 0, 261, 140, 191, 166, 174,
02622 931, 930, 188, 49, 0, 783, 36, 244, 248, 245,
02623 695, 0, 0, 0, 881, 602, 0, 0, 0, 0,
02624 0, 640, 695, 617, 617, 628, 612, 0, 0, 0,
02625 0, 883, 0, 0, 890, 892, 0, 243, 104, 284,
02626 212, 0, 0, 198, 174, 0, 118, 126, 122, 250,
02627 0, 246, 253, 256, 801, 803, 889, 689, 584, 0,
02628 589, 0, 581, 0, 681, 0, 625, 623, 887, 888,
02629 0, 885, 0, 0, 891, 106, 105, 224, 0, 223,
02630 0, 220, 219, 125, 262, 715, 716, 712, 713, 711,
02631 714, 249, 895, 700, 0, 0, 641, 0, 618, 0,
02632 0, 0, 886, 894, 893, 226, 227, 225, 0, 0,
02633 0, 899, 603, 586, 591, 620, 619, 634, 0, 0,
02634 0, 0, 0, 906, 637, 0, 638, 635, 636, 0,
02635 222, 221, 897, 898, 896, 901, 0, 0, 903, 904,
02636 0, 868, 626, 0, 624, 905, 900, 0, 907, 639,
02637 902
02638 };
02639
02640
02641 static const yytype_int16 yydefgoto[] =
02642 {
02643 -1, 31, 32, 33, 34, 911, 299, 683, 1116, 1642,
02644 1336, 1646, 1866, 1117, 1326, 855, 1034, 1552, 906, 907,
02645 908, 77, 297, 1118, 1100, 1119, 1120, 1102, 1103, 676,
02646 1493, 1494, 1666, 1328, 1329, 1330, 1331, 1466, 1467, 1277,
02647 1278, 1310, 1505, 1636, 1742, 1637, 1638, 1639, 1355, 1356,
02648 1352, 1822, 1713, 1923, 1741, 1759, 1760, 1714, 1715, 1725,
02649 1726, 1727, 1761, 1762, 1763, 1733, 1734, 1735, 1754, 1269,
02650 1270, 1104, 1728, 1504, 1711, 1815, 1818, 1920, 2021, 1279,
02651 1465, 1280, 1602, 458, 490, 1121, 1122, 1946, 1947, 1948,
02652 1949, 1520, 1770, 1771, 1458, 1399, 1934, 35, 903, 476,
02653 1105, 66, 1106, 1107, 1108, 1607, 1609, 1913, 1281, 124,
02654 1501, 1301, 36, 465, 37, 289, 38, 291, 39, 420,
02655 620, 621, 40, 41, 278, 999, 113, 428, 114, 115,
02656 863, 1051, 1667, 436, 437, 438, 439, 440, 1241, 632,
02657 633, 634, 1056, 1247, 517, 706, 400, 401, 402, 595,
02658 818, 403, 404, 405, 406, 407, 845, 1026, 1027, 1028,
02659 408, 932, 1361, 943, 409, 583, 804, 746, 1532, 1365,
02660 700, 921, 1146, 993, 508, 925, 703, 1230, 1231, 1232,
02661 1233, 1234, 1790, 1789, 1791, 1956, 1879, 1958, 1883, 1430,
02662 1235, 1236, 1558, 1877, 1997, 994, 995, 996, 1545, 1559,
02663 1676, 1578, 1579, 1899, 1421, 1237, 1565, 2006, 1896, 1897,
02664 2041, 2040, 1898, 1796, 1797, 1690, 1691, 2065, 2066, 2067,
02665 1960, 743, 779, 744, 1576, 1577, 701, 914, 1123, 1688,
02666 1794, 1018, 1573, 1792, 1889, 1109, 1481, 1482, 1053, 1054,
02667 1267, 1456, 1597, 649, 1668, 1244, 885, 886, 1345, 2031,
02668 1322, 1437, 1438, 1583, 1584, 1055, 1238, 1439, 1693, 42,
02669 1125, 478, 479, 303, 85, 43, 94, 308, 498, 691,
02670 44, 101, 696, 45, 109, 624, 423, 424, 856, 1035,
02671 1042, 857, 1046, 1418, 1037, 1215, 1216, 1079, 1080, 1038,
02672 1218, 1414, 1415, 1266, 1127, 1523, 46, 1073, 895, 896,
02673 1871, 1872, 47, 686, 80, 48, 121, 49, 118, 459,
02674 651, 652, 647, 50, 474, 473, 51, 283, 670, 52,
02675 100, 313, 314, 502, 695, 53, 104, 54, 55, 418,
02676 1213, 1670, 1954, 106, 619, 1410, 1337, 1800, 1904, 1905,
02677 1907, 1974, 1975, 2051, 2074, 2063, 2077, 2078, 2081, 410,
02678 671, 1811, 411, 1861, 1928, 1840, 412, 1043, 1044, 1457,
02679 413, 414, 1311, 425, 285, 294, 415, 842, 416, 1031,
02680 417, 1110, 462, 97, 274, 275, 56, 441, 117, 636,
02681 637, 638, 872, 873, 463, 1007, 874, 875, 1064, 98,
02682 99, 1062, 1590, 1451, 315, 57, 122, 58, 70, 73,
02683 293, 485, 626, 59, 60, 61, 62, 112, 629, 663,
02684 1047, 664, 665, 666, 901, 861, 799, 800, 1397, 579,
02685 580, 1001
02686 };
02687
02688
02689
02690 #define YYPACT_NINF -1565
02691 static const yytype_int16 yypact[] =
02692 {
02693 1833, 558, -85, -1565, -85, -144, 487, 398, -1565, -1565,
02694 1028, -1565, -8, -1565, -1565, 107, 151, 299, -85, -1565,
02695 -144, 981, -1565, 394, -1565, 322, 340, -1565, 519, 14578,
02696 8, 698, 633, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02697 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02698 -1565, 11168, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02699 -1565, -1565, -1565, 14578, -1565, -1565, 519, -1565, -1565, -1565,
02700 -144, -1565, -1565, 720, 14578, 636, -1565, 495, -1565, -1565,
02701 728, 14578, 718, -1565, 733, -85, -1565, -1565, -1565, -1565,
02702 -1565, -1565, -1565, 1471, 551, -1565, -1565, -1565, -1565, -1565,
02703 1136, 519, -1565, -1565, 5294, -1565, -1565, 981, -1565, 10486,
02704 49, -1565, -1565, -1565, -1565, 875, -1565, -1565, 1820, 590,
02705 -1565, 11509, -85, -1565, 11509, -1565, -1565, -1565, -1565, -1565,
02706 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02707 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02708 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02709 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02710 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02711 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02712 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02713 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02714 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02715 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02716 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02717 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02718 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02719 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02720 -1565, -1565, -1565, -1565, -1565, -1565, -1565, 8, 566, -1565,
02721 -1565, 364, 14578, -1565, -1565, 577, 624, -1565, 675, 11509,
02722 -1565, 11509, 91, 3, -1565, -1565, 783, 14578, 636, 671,
02723 11509, -1565, 905, 14578, 14578, 718, -1565, 827, 1010, 777,
02724 -1565, -1565, 715, 699, -1565, -1565, 10486, 708, 753, 7586,
02725 -1565, 5294, 760, 762, 776, 785, 798, 805, 813, 814,
02726 814, 818, 825, 829, 305, 839, -1565, 849, 854, 861,
02727 863, -1565, -1565, 865, -1565, 878, 879, 885, 5676, 107,
02728 894, -1565, 896, 911, 920, 924, 937, 944, 5294, 953,
02729 -1565, -1565, 968, 970, 979, 980, 992, 1024, 1032, 1033,
02730 1037, 1046, 1048, 1051, 1054, -1565, 664, 1060, 1066, 1068,
02731 -1565, 1079, -1565, 1080, 814, 814, 1095, 1096, 1098, 1116,
02732 1125, 1128, 7586, 7586, 7586, 5294, 14578, 14578, -1565, 58,
02733 1050, -1565, 993, 67, -1565, -1565, -1565, -1565, -1565, -1565,
02734 781, -1565, -1565, -1565, -1565, 1129, -1565, 723, 1044, -1565,
02735 11509, 11509, -1565, -1565, -1565, -1565, 986, 3, 942, -1565,
02736 -1565, -1565, -1565, -1565, -1565, -1565, 739, 875, -1565, -1565,
02737 -1565, -1565, 68, 1134, 29, -5, 1143, -1565, -1565, -1565,
02738 -1565, -1565, -1565, -1565, 68, 1085, 1084, 1143, 68, -1565,
02739 -1565, -1565, 1225, -110, 1461, -1565, -1565, -1565, 1265, -1565,
02740 1152, 478, -1565, 429, 13214, 14578, 1448, 11509, 1160, -1565,
02741 1160, -1565, 1513, 1309, -1565, -1565, 1441, -1565, 11509, -1565,
02742 1412, -1565, -1565, -1565, 1352, 11509, 1317, -1565, 1239, -1565,
02743 1364, 1136, 11509, -1565, 5294, 170, -1565, 58, 1267, 5294,
02744 1221, 5294, 5294, 5294, 5294, 591, 1227, -1565, -1565, 1238,
02745 5294, 5294, 5294, 781, 5294, 11850, 5294, -1565, 2312, 1535,
02746 5294, 5294, 5294, 5294, 1945, 1250, 5294, 626, 5294, 5294,
02747 713, 5294, 5294, -1565, 3766, -1565, 7586, 5294, 5294, 5294,
02748 5294, 5294, 5294, 1623, 1623, 5294, 5294, 761, 3766, -1565,
02749 5294, 781, 2147, 2147, 3002, 5294, 1253, -1565, -1565, 1261,
02750 11850, 1623, 1623, 5294, 5294, -1565, -1565, -1565, 42, 1262,
02751 464, 5294, 1255, 1337, 5294, 5294, 5294, 7586, -1565, 1141,
02752 -1565, -1565, -1565, -1565, -1565, 6058, 7586, 7586, 1266, 7586,
02753 7586, 779, 7586, 7586, 7586, 7586, 7586, 7968, 8350, 7586,
02754 7586, 7586, 7586, 579, 7586, -1565, -1565, 14578, -1565, 1487,
02755 1263, -1565, 1332, -1565, 1283, -1565, 981, -1565, 888, -1565,
02756 -1565, -1565, 1270, -1565, 5294, -1565, 1272, -1565, 1047, -1565,
02757 -1565, 11509, 1284, 636, 11509, 1347, 5294, -1565, -10, -1565,
02758 -1565, -5, 14578, 68, -5, -1565, 11509, -1565, -5, -5,
02759 1379, 11850, -1565, -1565, -1565, -1565, 734, -1565, -1565, -1565,
02760 -1565, -1565, -1565, -1565, -1565, -1565, -1565, 1614, -1565, 11509,
02761 -1565, -1565, -1565, 1120, -1565, 14578, 1310, 11509, 1160, -1565,
02762 -1565, -1565, 1483, -1565, 1160, -1565, 1283, 88, -1565, 1623,
02763 1288, -1565, 5294, -23, 70, -1565, 58, 771, 788, 188,
02764 89, -1565, 1289, 1297, -1565, -1565, 92, 98, 261, 275,
02765 1292, 284, 1293, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02766 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02767 -1565, -1565, -1565, 1545, -1565, -1565, -1565, 302, 129, 144,
02768 43, 1305, 5294, 150, 1623, 1298, 313, 317, 1623, 1300,
02769 156, 319, 326, 1362, 343, 159, 171, 181, 187, 345,
02770 1301, 1302, 190, 47, 1623, 1303, 360, 369, -1565, 1304,
02771 -1565, 1306, 4148, 4530, 4912, 134, 204, -1565, -1565, 1308,
02772 1313, 1314, 56, 374, -1565, 5294, -1565, -1565, 486, -1565,
02773 1356, 84, 14578, 18, -1565, 1411, -1565, 33, 1678, -1565,
02774 -1565, 609, -1565, -1565, -1565, -1565, 1321, -1565, 1322, 704,
02775 1320, 5294, 10, 1320, 7586, 1323, 7586, 7586, 1666, 1745,
02776 939, 1403, 1403, 5676, -13, 5676, -13, 1320, 1320, 1320,
02777 1327, -1565, -1565, -1565, 93, 1325, 1324, 1399, 11509, 11509,
02778 -1565, -1565, 1333, 1333, 10126, -1565, -1565, -1565, -1565, -1565,
02779 -1565, -1565, -1565, 563, 58, -1565, 1330, -1565, -1565, -1565,
02780 -1565, -1565, 773, 1326, -1565, -1565, 68, 1336, 14578, -1565,
02781 -1565, 58, -1565, -1565, -1565, -1565, -74, -1565, -1565, -5,
02782 -1565, 68, -1565, -1565, -1565, 1334, -1565, -89, 1686, 1143,
02783 -1565, -1565, -89, 2224, -1565, -89, -1565, -1565, 1338, -1565,
02784 -89, 1124, -1565, -1565, 1501, -1565, -1565, 1510, 6440, 1346,
02785 -1565, 5294, 401, 5294, 5294, 1635, 1259, -1565, 5294, -1565,
02786 -1565, 1259, 5294, -1565, 1360, 1585, 1586, -1565, -1565, -1565,
02787 1239, -1565, 5294, 5294, -1565, 5294, 5294, 5294, 5294, 386,
02788 5294, 1363, -1565, -1565, -1565, 1365, -1565, 5294, -1565, -1565,
02789 5294, -1565, 5294, 5294, 5294, 5294, -1565, -1565, -1565, 6822,
02790 5294, 5294, 1368, -1565, -1565, -1565, 5294, 5294, 5294, 488,
02791 5294, 703, 5294, 726, 5294, -1565, 5294, -1565, -1565, -1565,
02792 -1565, 5294, -1565, 811, -1565, -1565, 875, -1565, 486, 1369,
02793 888, -1565, -1565, -1565, 1366, 1367, 1370, 1471, 5294, -1565,
02794 -1565, -1565, -1565, -1565, 7586, 73, 1372, 7586, -1565, 746,
02795 5294, 10, 1666, 1945, 1945, 5294, 1375, 1361, -1565, 14578,
02796 -1565, -1565, -1565, -1565, 875, 11850, -1565, 1373, -1565, 1373,
02797 1123, 1378, 823, -1565, -1565, -1565, 942, 429, -1565, -125,
02798 -1565, 63, 1605, 1143, -1565, 1634, 13555, -1565, 12532, -1565,
02799 1603, -1565, -89, 1380, -1565, -5, -31, -1565, -10, -10,
02800 -1565, 1310, 11850, 1310, -1565, -1565, 7204, -1565, -1565, -1565,
02801 35, 1088, 1718, -89, 1718, -89, 1450, 1607, 1475, 719,
02802 1619, -89, -89, -1565, 1478, 1718, 1755, 34, -89, -89,
02803 -1565, 1404, -1565, -1565, 1742, -1565, 1408, 10827, -1565, -1565,
02804 -89, 25, 584, 1850, 11509, 9444, -1565, 1404, 564, -1565,
02805 199, 1456, 1580, 5294, 1624, -1565, 1705, -1565, 5676, 430,
02806 -1565, 58, 5294, 58, 548, -1565, 1426, -1565, 1426, -1565,
02807 -1565, 1432, -1565, 1655, -1565, 1658, 1442, 58, 1449, 1438,
02808 -1565, 5294, 5294, -1565, 470, -90, 207, 220, 75, -1565,
02809 -1565, 479, -1565, -1565, 523, 539, 541, 230, 545, 840,
02810 5676, 549, 175, 81, -1565, 245, 253, 553, 5294, 599,
02811 5294, 606, 5294, 607, 611, 638, -1565, 739, -1565, 1455,
02812 -1565, -1565, -1565, -1565, -1565, 1446, 58, 1457, -1565, -1565,
02813 5294, -1565, 67, 7586, 87, 1459, -1565, -1565, -1565, 58,
02814 -1565, -1565, -1565, 348, 739, 1462, -1565, -89, 7204, 1333,
02815 1579, -1565, -1565, 1123, 11850, -1565, -1565, -1565, -1565, 14578,
02816 1258, 1310, -1565, 1465, -1565, -1565, 11509, -1565, 55, 1517,
02817 1693, -1565, -1565, -1565, -1565, -1565, 13896, -1565, -1565, -1565,
02818 -1565, 1469, 1683, 3384, 18, -89, -1565, -1565, -1565, -1565,
02819 -1565, -1565, -1565, 1501, 849, 58, -1565, 5294, -1565, -1565,
02820 -1565, -1565, -1565, 12191, -1565, -1565, -1565, 296, 543, 12191,
02821 -1565, -1565, 12191, 499, 12191, 1347, 35, -1565, -1565, 1698,
02822 1700, 12191, 12191, -1565, 579, 1347, -1565, 12191, 11850, -1565,
02823 -1565, 11509, 57, 940, -1565, -89, 2277, 9785, 14578, 148,
02824 83, -1565, 1485, 1850, -1565, -1565, -1565, -1565, -1565, -1565,
02825 -1565, -1565, -1565, -1565, -1565, 1479, 1490, -1565, 901, -1565,
02826 -1565, -1565, -1565, -1565, 1853, 1857, -1565, 526, 1386, -1565,
02827 210, -1565, 11509, 58, -10, -1565, -1565, 1945, -1565, 58,
02828 5294, 1661, -1565, -1565, 1662, -1565, -1565, -1565, -1565, -1565,
02829 -1565, 1495, 1945, 1945, -1565, 1608, -1565, 5294, 5294, -1565,
02830 5294, -1565, -1565, -1565, -1565, 5294, -1565, -1565, 1945, -1565,
02831 5294, -1565, -1565, 5294, 5294, 5294, -1565, 639, -1565, 646,
02832 -1565, 647, -1565, -1565, -1565, 1270, -1565, 464, 14578, -1565,
02833 -1565, 945, -1565, -1565, 5294, -1565, 13555, -1565, -1565, -1565,
02834 1722, 1270, 11850, 7204, 1500, 1498, -1565, -1565, 478, -1565,
02835 -1565, -1565, 547, 1725, 1726, -1565, 1667, 892, 1667, 547,
02836 547, 1758, -125, 631, -1565, 1399, 1399, -1565, 1508, -1565,
02837 -1565, 1618, -1565, -1565, 12873, 990, -1565, 7586, 849, -1565,
02838 58, -1565, 1057, 5294, 1624, 58, 1512, 138, -1565, -1565,
02839 5294, 1731, 1732, 48, -1565, 12191, -1565, -1565, -1565, 95,
02840 -1565, -1565, -1565, -1565, 12191, -1565, -1565, -1565, -1565, -1565,
02841 -1565, 1518, -1565, 138, -1565, -1565, -1565, -1565, -1565, -1565,
02842 -1565, -1565, -1565, -1565, -1565, 35, -1565, 973, -1565, 14578,
02843 -1565, -1565, 11509, -1565, -1565, 1936, 14578, -1565, -1565, 1404,
02844 -1565, 1404, 9785, -1565, -1565, 1579, -1565, -1565, -1565, -1565,
02845 -1565, 1523, -1565, 1740, 601, 58, 1527, 974, -1565, 1528,
02846 1529, 96, 1531, 648, 274, 998, 650, 724, 651, 653,
02847 657, 662, -1565, -1565, -1565, 77, -1565, -1565, -1565, 1015,
02848 -1565, -1565, 77, -1565, -1565, -1565, 7204, -1565, -134, 1501,
02849 -1565, 994, -1565, -1565, -1565, 1749, 547, 1667, 1667, 1750,
02850 1699, 370, 1883, 1780, -1565, -1565, 14578, -1565, -1565, 875,
02851 -1565, -1565, 1471, 1534, -1565, 1724, -1565, 153, 1684, -1565,
02852 -1565, -89, 58, -1565, 5294, -1565, -1565, -1565, 58, 12191,
02853 -1565, -1565, -1565, -1565, 1546, 1839, 1841, 12191, -1565, 1936,
02854 11850, -1565, -1565, -1565, -1565, 1548, 1549, -1565, -1565, 1045,
02855 1236, -1565, 1432, -103, -1565, 1432, 1549, 1432, 1552, -1565,
02856 918, -1565, 727, -1565, 1554, -1565, 1884, 1556, 917, 917,
02857 1557, -1565, -3, 564, -1565, 1558, 942, 14578, 1602, -1565,
02858 -1565, -1565, 1733, -1565, -1565, -1565, -1565, -1565, 5294, -1565,
02859 -1565, -1565, -1565, -1565, -1565, -1565, 63, 63, -1565, -1565,
02860 1637, -1565, -1565, 888, 1504, 1143, -125, -1565, 547, -1565,
02861 1783, 1787, 547, -1565, -1565, -1565, 5294, -1565, 1501, -1565,
02862 -1565, -16, 739, 1895, -1565, 1508, -1565, -1565, -1565, -1565,
02863 3384, 138, 1572, 1574, 14578, -1565, 1398, 148, 1884, -1565,
02864 14578, 1770, 1744, -105, 1254, 1260, 579, 1398, 1748, -1565,
02865 -1565, 1794, -1565, -1565, -1565, -1565, 918, -1565, 1795, 1094,
02866 1632, -1565, -1565, -1565, 1236, -1565, 1254, 917, 1552, 1756,
02867 -1565, -1565, 1592, 917, -105, 917, -1565, -1565, 1254, 1762,
02868 -1565, 1254, 1763, 1347, -1565, 1764, -1565, 1016, 1891, -1565,
02869 -1565, -1565, 917, -1565, -1565, 14578, -1565, -1565, -1565, -1565,
02870 1146, 138, 1600, 11850, 1601, 665, -1565, -1565, 11509, -1565,
02871 -1565, -1565, 1465, 1181, 1642, 547, 547, 1286, 1644, 5294,
02872 5294, 1604, -146, 138, 5294, 1143, -1565, 14, 1270, 13,
02873 1814, -1565, -1565, -1565, 14578, 14578, 1147, 781, 781, 870,
02874 870, -1565, -1565, -1565, -1565, 1168, -1565, 19, 1778, 1616,
02875 -1565, -1565, 1639, 1398, -1565, -1565, 570, -1565, -1565, -1565,
02876 -1565, -1565, -1565, -1565, -1565, 781, 814, -1565, 781, 781,
02877 -1565, -1565, 1786, -1565, -1565, -1565, 1178, 96, -1565, 1639,
02878 -1565, 1617, 1622, -1565, 1625, -1565, -1565, -1565, 870, 870,
02879 781, -1565, -1565, 1656, -1565, -1565, -3, 27, 14578, -1565,
02880 1792, 1621, -1565, -89, -1565, -1565, -1565, 464, -1565, 1668,
02881 -1565, -1565, -1565, 1669, 58, 58, 14578, -1565, 5294, -1565,
02882 -1565, 58, -1565, -1565, -1565, 48, 48, -1565, 14, 77,
02883 1977, 1980, 1910, 1982, 13, -1565, -59, -1565, 1180, 1189,
02884 27, -1565, -1565, 148, -1565, 14578, -1565, -1565, -1565, 6,
02885 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, 781,
02886 -1565, 781, 814, -1565, 1198, -1565, -1565, 1236, -1565, 918,
02887 -1565, -1565, -1565, -1565, 1347, -89, -1565, 27, -1565, -1565,
02888 138, 1636, 11850, 7204, 1895, -1565, 5294, 1638, 5294, 1641,
02889 1202, -1565, 138, 1892, 1892, -1565, -1565, 96, 96, 1994,
02890 96, -1565, 1995, 1997, -59, -1565, 1799, 27, -1565, -1565,
02891 -1565, 575, 575, -1565, 918, 96, -1565, 1254, -1565, -1565,
02892 23, -1565, -1565, -1565, -1565, -1565, 1814, 1501, 58, 14578,
02893 58, 14578, -1565, 14578, -1565, 871, -1565, -1565, -1565, -1565,
02894 96, -1565, 96, 96, -1565, -1565, -1565, -1565, 2026, -1565,
02895 59, 1832, 1834, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02896 -1565, -1565, 1901, 1143, 1208, 1213, -1565, 2019, -1565, 2020,
02897 1674, 1676, -1565, -1565, -1565, -1565, -1565, -1565, 1728, 1970,
02898 1852, 1687, -1565, -1565, -1565, -1565, -1565, 14237, 14237, 575,
02899 575, -22, 8732, 1791, -1565, 1690, -1565, 1689, -1565, 1234,
02900 -1565, -1565, -1565, -1565, -1565, -1565, 1471, 1248, -1565, -1565,
02901 11850, -1565, -1565, 14237, -1565, -1565, -1565, 9092, 1621, -1565,
02902 -1565
02903 };
02904
02905
02906 static const yytype_int16 yypgoto[] =
02907 {
02908 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02909 424, -1565, -1565, 958, -754, -826, -1565, -1565, -1565, 962,
02910 -1565, -1565, -225, -1074, 975, -1002, -861, -1565, -1565, 1394,
02911 -1565, -1565, -1506, 774, 568, 982, 1006, 778, 816, -1565,
02912 -1565, 484, -1565, 489, -1565, -1565, -1565, -1565, -287, -893,
02913 957, 358, 480, 256, -1048, -804, -752, -1514, -1565, -1564,
02914 -1565, 378, -94, -1565, 346, -1541, -1565, 388, 415, 410,
02915 -1163, -348, -1565, 154, -1565, -1565, -1565, -1565, -915, -1565,
02916 -1565, -1075, -1565, -1565, -1565, -1565, -1320, -1168, -1565, 1011,
02917 180, -1565, -828, 265, -1235, -1565, -1565, -1565, -1565, -1565,
02918 -1565, 249, -1565, -1565, 832, -1565, -1565, -1565, 452, 152,
02919 -1540, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02920 -1565, 1291, 1671, 1093, 1864, 1144, -1565, -1565, 1869, -1565,
02921 -1565, -1565, -738, -971, -1565, -1565, -1565, 1709, -875, -1154,
02922 1285, -743, -790, 743, -327, 1276, -1565, -564, 1949, -1565,
02923 -1565, -304, -1565, -1565, -1565, -1565, -1565, -1565, -1565, 941,
02924 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02925 1908, -1565, 1219, -491, -1565, -1565, -1565, -878, -1565, 721,
02926 475, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02927 -830, -1565, -1565, -1565, -1565, -1565, 1157, -1565, -1565, -1565,
02928 -1565, -1565, -1565, -1565, -1102, -1565, -457, 191, -1565, 262,
02929 -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, 76, 104,
02930 -1060, -522, 1609, 255, -1565, 490, 1648, -177, -1565, -1565,
02931 -1565, 1145, -1565, -1565, -1565, -1565, -1565, 569, -907, -631,
02932 -1565, -1565, -1443, -419, -1045, -405, -1565, -954, 714, -1565,
02933 -627, -1565, -1565, -1565, 481, 1121, -1565, -1565, -1565, -1565,
02934 -1565, 356, -87, 1873, -1565, -1565, -1565, -1565, -1565, 1241,
02935 -1565, -1565, -1565, -1565, -1565, -1565, 1858, 1761, 1488, -1565,
02936 -1565, -881, -1565, -1565, 1335, -1565, 775, -884, -895, 966,
02937 -1565, -1565, -1565, -1202, -1565, -1565, -1565, -1565, -1565, 1114,
02938 109, 238, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02939 -117, 304, -587, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02940 -1565, -1565, 1691, -1565, -1565, -1565, 1842, -1565, -1565, -1565,
02941 -1565, -1565, -1565, -1565, -1565, -1565, -1565, 239, -1565, 291,
02942 200, -1565, 224, -1565, -1565, -1565, -1565, 114, -1565, -323,
02943 -1481, -1551, -1559, -1565, -1565, -1565, 90, 978, 1569, -1529,
02944 -476, -1565, -244, -50, 617, 2124, -12, -7, -391, -512,
02945 100, -607, 893, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02946 1341, -1565, -1565, -1565, -1565, 959, -1565, -1565, -1565, -91,
02947 -845, 759, -1565, 514, 1171, -1565, -1565, -1565, -1565, 174,
02948 2105, 1789, -1565, -1565, -1565, -1565, -1565, -78, -1022, -424,
02949 -1565, -1382, -1565, -1565, -1565, -982, -1360, -1565, -1565, -497,
02950 -1565, -1565
02951 };
02952
02953
02954
02955
02956
02957 #define YYTABLE_NINF -1198
02958 static const yytype_int16 yytable[] =
02959 {
02960 95, 284, 306, 518, 630, 96, 843, 1124, 1243, 111,
02961 1111, 523, 751, 1076, 1291, 506, 1416, 272, 1191, 615,
02962 707, 708, 422, 809, 1225, 1187, 1113, 1061, 1041, 419,
02963 722, 817, 545, 1395, 466, 899, 1557, 1546, 655, 272,
02964 1611, 650, 1101, 1332, 1468, 584, 1671, 559, 1299, 720,
02965 1655, 272, 650, 561, 584, 584, 613, 567, 568, 584,
02966 1411, 292, 272, 1214, 887, 1701, 1747, 890, 584, 272,
02967 584, 892, 893, 488, 468, 1057, 910, 1944, 923, 1257,
02968 597, 95, 584, 672, 926, 584, 96, 584, 575, 576,
02969 577, 1750, 1981, 584, 789, 111, 584, 272, 643, 584,
02970 584, 584, 1025, -1194, 584, 2025, 460, 1736, -630, 272,
02971 584, 461, 272, 613, 1259, 1260, 1900, 1748, 1339, 1751,
02972 1268, 668, 1017, 1473, 1901, 1052, 1460, 1738, 677, 273,
02973 481, -630, 615, 898, 86, 1434, 87, 88, 1893, 613,
02974 1068, 584, 1227, 1314, 2046, 2026, 584, 1812, 1604, 1916,
02975 1004, 286, 1435, 1595, 2072, 1499, 584, 1793, 1812, 1221,
02976 2027, 1894, 584, 273, 102, 89, 1830, 1813, 584, 645,
02977 615, 584, 882, 1820, 295, 1485, 970, 86, 1253, 698,
02978 88, 295, 658, 584, 600, 897, 1074, 584, 1283, 1239,
02979 1285, 1605, 1945, 584, 110, 1673, 1005, 639, 1274, 584,
02980 584, 883, 584, 1302, 1697, 2028, 1049, 1294, 1295, 286,
02981 1887, 1554, 483, 72, 1275, 1303, 584, 1083, 288, 584,
02982 67, 286, 105, 68, 286, 1596, 1313, 640, 1821, 422,
02983 1603, 1972, 584, 669, 2029, 1902, 659, 1888, 2073, 1608,
02984 1101, 1518, 584, 1240, 290, -205, 1674, 1917, 484, 1085,
02985 491, 1973, 648, 316, 1228, 78, 1229, 584, 1803, 84,
02986 1766, 900, 699, 984, 1812, 584, 585, 585, 1500, 2047,
02987 272, 585, 1924, 584, 1075, 276, 1739, 272, 90, 272,
02988 585, 1436, 585, 1703, 675, 272, 584, 584, 272, 1327,
02989 1006, 272, 272, 928, 585, 822, 584, 585, 1918, 585,
02990 482, 1380, 1070, 91, 272, 585, 1091, 92, 585, 1069,
02991 844, 585, 585, 585, 584, 884, 585, 1245, 1092, 1560,
02992 1258, -630, 585, 1903, 1016, 584, 628, 1502, 1869, 584,
02993 924, 584, 1612, 1413, 422, 677, 1517, 644, 584, 1460,
02994 1982, 86, 1419, 103, 88, 1519, 91, 1315, 2030, 646,
02995 1890, 1895, 1300, 585, 1672, 584, 1454, 584, 585, 1962,
02996 609, 610, 611, 612, 1702, 1340, 1935, 426, 585, 1606,
02997 622, 1453, 584, 1979, 585, 1988, 614, 93, 1045, 1486,
02998 585, 584, 472, 585, 272, 272, 584, 277, 1601, 286,
02999 1522, 286, 586, 1966, 1041, 585, 1986, 273, 584, 585,
03000 286, 586, 586, 273, 494, 585, 586, 375, 272, 272,
03001 1495, 585, 585, 584, 585, 586, 286, 586, 878, 1406,
03002 2023, 1461, 794, 794, 1987, 795, 947, 678, 585, 586,
03003 971, 585, 586, 614, 586, 1641, 990, 1643, 684, 991,
03004 586, 1149, 584, 586, 585, 1101, 586, 586, 586, 1098,
03005 1198, 586, 1155, 1199, 585, 1369, 1200, 586, 1370, -1198,
03006 1099, 1382, 272, 272, 1383, 272, 1002, 1403, 1025, 585,
03007 1404, 918, 931, 1271, 1169, 935, 272, 585, 1256, 1698,
03008 1078, 936, 584, 272, 1943, 585, 2008, 2009, 586, 2011,
03009 272, 584, 805, 586, 650, 1408, 581, 582, 585, 585,
03010 584, 1207, 1208, 586, 2024, 910, 1323, 1992, 585, 586,
03011 91, 1327, 945, 272, 985, 586, 1197, 1955, 586, 2004,
03012 286, 286, 1021, 1205, 1366, 74, 585, 946, 1462, 2042,
03013 586, 2043, 2044, 950, 586, 584, 889, 585, 1798, 957,
03014 586, 585, 962, 585, 1561, 79, 586, 586, 858, 586,
03015 585, 584, 1571, 584, 963, 1381, 75, 584, 272, 1217,
03016 584, 584, 107, 586, 964, 584, 586, 585, 930, 585,
03017 965, 95, 1427, 969, 673, 674, 96, 286, 1333, 586,
03018 1746, 1317, 1338, 1516, 585, 1684, 1460, 986, 286, 586,
03019 1367, 876, 904, 585, 879, 286, 897, 1409, 585, 1570,
03020 698, 841, 286, 1368, 586, 272, 891, 1061, 1692, 2017,
03021 585, 584, 586, 1375, 111, 116, 375, 1178, 584, 584,
03022 586, 1318, 630, 584, 1769, 585, 1463, 63, 1384, 272,
03023 1781, -843, 272, 586, 586, 698, 1385, 915, 880, 1402,
03024 272, 937, 119, 586, 272, 1575, 271, 480, 120, 272,
03025 584, 584, 1675, -1197, 585, 938, 1470, 1658, 584, 584,
03026 584, 586, 584, 584, 940, 584, 123, 272, -113, 584,
03027 -45, 841, 586, 272, 584, 272, 586, 584, 586, 1271,
03028 287, 1319, 944, 711, 522, 586, 1507, 1478, 1925, 1327,
03029 1845, 1779, 1049, 953, 585, -667, 22, 954, 279, 958,
03030 64, -1197, 586, 585, 586, 65, 959, 1700, 1685, 1401,
03031 1320, 1334, 585, 1202, 1132, 584, 1014, 846, 754, 586,
03032 1050, 86, 698, 961, 88, 966, 86, 1009, 586, 88,
03033 1740, 797, 292, 586, 866, 1740, 1679, -667, 584, 280,
03034 974, 286, 1978, -843, 286, 586, 641, 585, 1045, 975,
03035 1892, 1995, 888, 997, 992, -667, 286, -667, 1203, 1065,
03036 586, 1645, 656, 585, -667, 585, 1160, -667, 1272, 585,
03037 698, 64, 585, 585, 1071, -113, 65, 585, -667, 286,
03038 1926, 1795, 296, -667, 2018, 912, 898, 286, -667, 586,
03039 272, 1776, 1777, 850, -667, -65, 76, 597, 622, 1033,
03040 1783, 824, -667, 298, 1787, 758, -667, 628, 30, 2016,
03041 1348, -667, 1729, 1335, 1227, 1723, 1731, 780, 780, 1010,
03042 1963, 1964, 1483, 585, 1321, 1524, 1723, 2019, 1731, 586,
03043 585, 585, 1180, -667, 905, 585, 272, 272, 586, 597,
03044 1529, 1530, 272, 798, 1289, 1740, -667, 586, 1784, 2020,
03045 1364, 688, 1788, 774, -667, 1182, 1537, 300, 694, 1371,
03046 95, 1350, 585, 585, 302, 998, 272, 1724, 1732, 1274,
03047 585, 585, 585, -113, 585, 585, 1806, 585, 1724, 1535,
03048 1732, 585, 586, 304, 429, 1275, 585, -667, 1271, 585,
03049 91, 841, 1927, -207, 1261, 91, 1263, 859, 586, 841,
03050 586, 600, 1003, 1372, 586, 1515, 307, 586, 586, 648,
03051 1824, 1827, 586, 1549, 487, 86, 1195, 87, 88, 1373,
03052 493, 1374, 1723, 1580, 1581, 1376, 1228, 585, -667, 1379,
03053 1731, 1011, 1824, 1386, 1718, 1756, 1217, 1719, 825, 2034,
03054 1012, 2035, 1730, 600, 1824, 464, 471, 1824, 286, 286,
03055 585, 1290, 336, 826, 866, 1880, 1881, 898, 586, 1720,
03056 -667, 475, 1825, 1828, 1716, 586, 586, 430, -667, -667,
03057 586, 1569, 1255, 948, 1724, 375, 1908, 1909, 1067, 1388,
03058 860, 1649, 1732, 477, 1825, -667, 1390, 1392, 2052, 1953,
03059 486, 1393, 342, 1487, 1488, 95, 1825, 586, 586, 1825,
03060 96, 489, 1757, 1717, 2037, 586, 586, 586, -962, 586,
03061 586, -667, 586, -667, -667, 596, 586, 272, 1394, 1542,
03062 492, 586, 827, 272, 586, 1489, 1543, 1544, 1657, 1459,
03063 1660, 1662, 597, 1663, 2038, 1459, 496, 1664, 1469, 1490,
03064 1471, 1855, 1665, 560, 272, 1875, 272, 1476, 1477, 1248,
03065 1990, 95, 351, 1480, 1431, 1566, 96, 1721, 1423, 90,
03066 272, 1491, 586, 1567, 1324, 497, 81, 2022, 841, 499,
03067 500, 603, 604, 605, 606, 607, 608, 609, 610, 611,
03068 612, 361, 501, -207, -207, 586, 597, 504, 92, 841,
03069 2033, 1716, 375, 1060, 2039, 272, 948, 82, 336, 618,
03070 841, 841, 272, 272, 1661, 841, 1749, 617, 841, 1271,
03071 1680, 1681, 631, 603, 604, 605, 606, 607, 608, 609,
03072 610, 611, 612, 86, 1718, 1718, 88, 1719, 1719, 1212,
03073 1717, -112, 505, 1731, 1483, 1723, 600, 1272, 342, 509,
03074 672, 510, 1083, 506, 2070, 2071, 1424, 1273, 1568, 1720,
03075 1720, 927, 598, 1856, 928, 511, 1249, 1425, 1251, 587,
03076 431, 432, 433, 434, 512, 1426, -205, 599, 929, 1835,
03077 -205, 928, 435, 69, 1085, 71, 336, 513, -271, 868,
03078 1723, 588, 1492, 1824, 514, 1732, 1433, 1724, 1758, 108,
03079 600, 1186, 515, 516, 928, 382, 1427, 519, 351, 86,
03080 601, 87, 88, 1223, 520, 675, 1224, 1312, 521, 675,
03081 589, -207, 272, -112, 286, 1312, 342, 272, 524, 590,
03082 1377, 1459, 630, 928, 272, 869, 1857, 361, 525, 1587,
03083 1459, 1091, 1724, 526, 272, 1825, 602, 1588, 1274, 1442,
03084 527, 64, 528, 1092, 529, 1423, 65, 1721, 1721, 625,
03085 1428, 1484, 1718, 591, 1275, 1719, 305, 530, 531, 810,
03086 1589, 272, 86, 870, 532, 88, 86, 272, 309, 88,
03087 272, 628, 272, 536, 841, 537, 351, 1720, 1472, 272,
03088 272, 1511, 841, 1136, 1512, 272, 272, 1137, 1479, 272,
03089 538, 1429, 1521, 467, 841, 272, 272, 1873, 1114, 539,
03090 1138, 460, 1836, 540, 1837, 361, 461, -1198, 605, 606,
03091 607, 608, 609, 610, 611, 612, 541, 310, 648, 871,
03092 -112, 1729, 1423, 542, 866, 1548, 841, 375, 928, 1422,
03093 272, 1139, 544, 1424, 1140, 1737, 286, 83, 1743, 1823,
03094 1745, 382, 1141, 90, 1425, 1826, 1443, 546, 811, 547,
03095 1423, 812, 1426, 1613, 1651, 1459, 1512, 1652, 548, 549,
03096 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
03097 905, 550, 92, 1312, 1098, 1721, 1677, 653, 1659, 1312,
03098 399, 928, 1312, 1427, 1312, 1099, 272, 1858, 1859, 654,
03099 850, 1312, 1312, 1722, 272, 1669, 1878, 1312, 928, 1248,
03100 272, 286, -207, 551, 1083, 375, 1839, 1312, 1498, 1838,
03101 1424, 552, 553, 592, 593, 594, 554, 1142, -112, 382,
03102 -207, 1425, 1083, 320, -138, 555, -207, 556, 311, 1426,
03103 557, 91, 272, 558, 1860, 91, 1085, 1428, 1424, 562,
03104 95, 312, 286, 1718, 68, 563, 1719, 564, 615, 1425,
03105 -205, 1730, 1615, 272, 1085, 597, 672, 1426, 565, 566,
03106 1427, 1718, 272, 813, 1719, 852, 853, 1718, 1720, 615,
03107 1719, 675, 814, 1807, 569, 570, 1873, 571, 1429, 86,
03108 336, 87, 88, 841, 523, 561, 1720, 272, 1427, 675,
03109 272, 1694, 1720, 1091, 272, 572, 597, 841, 1547, 841,
03110 272, 1882, 1220, 1115, 573, 1092, 1249, 574, 616, 1930,
03111 89, 1091, 1929, 642, 1428, 1931, 341, 657, 1575, 660,
03112 342, 960, 86, 1092, 87, 88, 1867, 1910, 86, 1868,
03113 1868, 88, 662, 675, 1282, 344, 1284, 1143, 615, 661,
03114 615, 1292, 1428, 679, 1212, 1764, 86, 1297, 1914, 88,
03115 850, 1915, 680, 89, 681, 1429, 682, 851, 1933, 600,
03116 1976, 1652, 685, 1868, 272, 1312, 1721, 687, -667, 1977,
03117 95, 689, 1868, 1144, 1312, 96, 672, 672, 1984, 672,
03118 351, 1985, 2002, 1429, 1721, 2003, 2079, 272, 2053, 690,
03119 1721, 2003, 1145, 2054, 672, 272, 2003, 507, 272, 1614,
03120 600, 705, 286, 692, 1873, 1983, 1640, 714, 360, 361,
03121 -667, 2079, 1312, 86, 2084, 87, 88, 2083, 715, 672,
03122 702, 672, 672, 90, 534, 852, 853, 745, 2086, 752,
03123 -667, 2087, 698, 787, 543, 272, 1098, -667, 847, 802,
03124 -667, 788, 796, 1844, 89, 821, 848, 1099, 91, 1848,
03125 849, 1850, 92, 862, 1098, 867, -667, 877, 91, 894,
03126 902, -667, 854, 916, 913, 1099, 90, -667, 920, 933,
03127 934, 578, 939, 941, 942, -667, 1689, 948, 952, -667,
03128 956, 967, 968, 973, -667, 1000, 1008, 976, 987, 977,
03129 584, 91, 272, 988, 989, 92, 612, 91, 272, 1312,
03130 -420, 1013, 1020, -1198, 841, -510, -667, 1312, 1029, 375,
03131 1030, 1063, 1036, 1808, 1058, 91, 1066, 1072, 1077, -667,
03132 380, 1112, 803, 382, 898, 1126, 1130, -667, 1876, 603,
03133 604, 605, 606, 607, 608, 609, 610, 611, 612, 1135,
03134 1150, 1151, 1152, 1162, 1211, 1163, 1853, 1772, 1174, 1190,
03135 1192, 1193, 1201, 272, 1194, 1210, 1219, 90, 1222, 597,
03136 -667, 272, 1050, 1049, 1252, 1254, 272, 1272, 1286, 1809,
03137 1810, 1287, -1198, -1198, 607, 608, 609, 610, 611, 612,
03138 697, 1288, 91, 1293, 1296, 704, 92, 1298, 1305, 709,
03139 710, 1306, 272, 272, 1340, 1342, 716, 717, 718, 1344,
03140 719, -667, 721, 1346, 1772, 1351, 747, 748, 749, 750,
03141 1816, 1354, 753, 1357, 756, 757, 1358, 760, 761, 1841,
03142 762, 928, 1359, 764, 765, 766, 767, 768, 769, 1360,
03143 1398, 772, 773, -667, 776, 1396, 777, 1400, 597, 1405,
03144 785, 786, -667, 1, 2, 1412, 850, 1862, 1432, 792,
03145 793, 1440, 1441, 1444, 3, 1445, 272, 801, -667, 1509,
03146 806, 807, 808, 600, 1474, 1865, 1475, 1513, 442, 1506,
03147 1510, 1514, 1526, 1527, 272, 1528, 4, 1531, 286, 1551,
03148 1555, 1556, 443, 444, -667, 5, -667, -667, 1562, 1563,
03149 445, 1572, 1564, 1582, 1585, 1594, 6, 1599, 1600, 1911,
03150 1912, 1610, 1647, 272, 1772, 1772, 1648, 1650, 1653, 1654,
03151 864, 1656, 1678, 1682, 1683, 1686, 1687, 1695, 1696, 7,
03152 8, 9, 881, 1699, 1705, 1704, 1706, 1710, 1712, 10,
03153 446, 1739, 1317, 1752, 1753, 1755, 1773, 1989, 1768, 11,
03154 272, 1765, 600, 1799, 1774, 1778, 1785, 12, 1940, 1941,
03155 1786, 1804, 447, 1805, 1817, 1819, 13, 584, 1831, 1616,
03156 1832, 1834, 86, 1617, 1618, 88, 1842, 1846, 1772, 448,
03157 449, 1847, 1318, 1851, 1852, 1854, 1863, 1619, 922, 1870,
03158 -585, 1874, -590, 1886, 450, 2085, 1961, 272, 14, 272,
03159 1906, 272, 86, 1919, 1932, 88, 1921, 1937, 451, 1942,
03160 15, 1922, 1938, 1951, 1952, 1939, 1957, 1959, 1620, 1967,
03161 16, 1621, 1968, 1969, 1970, 1980, 1993, 1999, 2005, 1622,
03162 2001, 723, 724, 725, 726, 727, 2010, 2012, 949, 2013,
03163 2045, 1623, 1319, 603, 604, 605, 606, 607, 608, 609,
03164 610, 611, 612, 1502, 1624, 272, 272, 2048, 2050, 2049,
03165 272, 2055, 2056, 2057, 452, 2058, 2060, 1625, 979, 981,
03166 983, 1320, 2059, 2061, 95, 2080, 2062, 1767, 272, 96,
03167 2082, 272, 2083, 1325, 1316, 272, 1304, 909, 17, 18,
03168 1644, 1497, 19, 728, 729, 730, 731, 1276, 1503, 1309,
03169 20, 1707, 453, 1464, 1626, 1353, 21, 1015, 1708, 1961,
03170 22, 1961, 1849, 2036, 1833, 1936, 1744, 23, 1864, 1023,
03171 24, 1024, -1198, 604, 605, 606, 607, 608, 609, 610,
03172 611, 612, 1843, 1814, 25, 454, 1829, 1991, 455, 456,
03173 2015, 91, 1341, 1950, 732, 733, 734, 735, 1496, 1032,
03174 1226, 470, 1189, 736, 667, 469, 635, 1048, 1627, 1550,
03175 1148, 1782, 1407, 1574, 1188, 2007, 26, 2068, 2068, 2089,
03176 1965, 91, 2069, 713, 1780, 27, 1206, 28, 1593, 585,
03177 29, 457, 781, 1242, 503, 1321, 1801, 1628, 495, 1709,
03178 737, 1153, 623, 2068, 917, 1417, 1262, 1553, 1039, 2088,
03179 1994, 535, 693, 1996, 1129, 1971, 2032, 1131, 2014, 1133,
03180 1134, 2090, 1420, 865, 1147, 301, 1508, 1629, 1059, 738,
03181 739, 1591, 30, 1452, 1802, 427, 627, 0, 1154, 0,
03182 0, 1156, 1157, 1158, 1159, 0, 1161, 727, 0, 1081,
03183 0, 0, 0, 1164, 1082, 0, 1165, 0, 1166, 1167,
03184 1168, 0, 1083, 0, 0, 1171, 1172, 1173, 1630, 0,
03185 1631, 1632, 1175, 1176, 1177, 0, 1179, 0, 1181, 0,
03186 1183, 0, 1184, 0, 1084, 0, 0, 1185, 0, 0,
03187 0, 0, 0, 0, 1085, 778, 0, 1633, 0, 0,
03188 1634, 1635, 1081, 0, 1196, 1086, 0, 1082, 731, 0,
03189 0, 0, 0, 0, 0, 1083, 1204, 740, 0, 0,
03190 0, 1209, 0, 0, 586, 741, 742, 0, 0, 675,
03191 0, 0, 0, 0, 1087, 1088, 0, 1084, 0, 0,
03192 1089, 0, 0, 0, 0, 0, 1090, 1085, 0, 0,
03193 -267, 1091, 0, 0, 0, 0, 732, 0, 1086, 735,
03194 0, 0, 0, 1092, 0, 736, 0, 0, 1093, 0,
03195 0, 0, 1265, 0, 0, 0, 0, 0, 0, 0,
03196 0, 0, 675, 0, 0, 0, 86, 1087, 0, 88,
03197 0, 0, 1094, 1089, 0, 0, 0, 0, 0, 1090,
03198 0, 0, 737, 0, 1091, 0, 0, 0, 723, 724,
03199 725, 726, 727, 0, 0, 0, 1092, 0, 0, 1343,
03200 0, 1093, 0, 0, 1347, 0, 0, 0, 1349, 0,
03201 0, 0, 739, 0, 0, 0, 0, 0, 0, 86,
03202 1095, 0, 88, 712, 0, 0, 0, 1362, 1363, 0,
03203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03204 0, 0, 0, 0, 0, 755, 1378, 1096, 759, 0,
03205 728, 729, 730, 731, 1387, 0, 1389, 0, 1391, 0,
03206 0, 770, 771, 0, 0, 775, 0, 0, 0, 0,
03207 1097, 0, 0, 1095, 1098, 0, 0, 0, 0, 790,
03208 791, 0, 0, 0, 0, 1099, 0, 0, 0, 0,
03209 0, 0, 0, 0, 1265, 763, 0, 0, 0, 740,
03210 1096, 732, 733, 734, 735, 0, 0, 0, 742, 0,
03211 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03212 0, 0, 0, 1097, 0, 0, 0, 1098, 0, 1450,
03213 0, 0, 0, 0, 0, 91, 0, 0, 1099, 0,
03214 0, 0, 0, 1455, 0, 819, 820, 737, 0, 823,
03215 0, 828, 829, 830, 831, 832, 834, 836, 837, 838,
03216 839, 840, 0, 0, 0, 0, 0, 0, 0, 0,
03217 0, 0, 0, 0, 0, 0, 738, 739, 0, 0,
03218 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
03219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03220 0, 0, 0, 0, 0, 0, 0, 919, 0, 0,
03221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03222 0, 0, 0, 0, 0, 0, 1525, 0, 0, 0,
03223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03224 0, 0, 0, 1533, 1534, 0, 0, 0, 0, 0,
03225 0, 1536, 0, 0, 0, 0, 1538, 0, 0, 1539,
03226 1540, 1541, 951, 0, 740, 0, 955, 0, 0, 0,
03227 0, 0, 741, 742, 0, 0, 0, 0, 0, 0,
03228 0, 0, 972, 0, 0, 0, 0, 0, 0, 1265,
03229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03232 0, 0, 0, 0, 0, 0, 0, 0, 0, 1592,
03233 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0,
03234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03237 0, 0, 0, 1019, 0, 0, 1022, 0, 0, 0,
03238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03243 0, 0, 1265, 0, 0, 0, 0, 0, 0, 0,
03244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03247 1455, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03253 0, 0, 0, 0, 1775, 0, 0, 0, 0, 0,
03254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03256 0, 0, 1455, 0, 0, 0, 0, 0, 0, 0,
03257 0, 0, 0, 0, 0, 0, 1450, 0, 0, 0,
03258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03260 0, 0, 0, 0, 0, 0, 125, 0, 317, 127,
03261 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03262 131, 318, 0, 133, 0, 0, 319, 320, 134, 0,
03263 135, 136, 782, 137, 0, 0, 0, 138, 321, 322,
03264 323, 139, 0, 324, 140, 0, 141, 325, 0, 326,
03265 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
03266 152, 0, 153, 327, 328, 1884, 1885, 154, 329, 330,
03267 1891, 331, 155, 156, 157, 332, 333, 334, 0, 0,
03268 0, 0, 335, 160, 336, 0, 0, 337, 0, 0,
03269 0, 0, 161, 162, 0, 0, 163, 0, 0, 164,
03270 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
03271 171, 0, 172, 0, 173, 174, 338, 339, 175, 340,
03272 341, 176, 177, 178, 342, 179, 0, 0, 0, 180,
03273 181, 0, 182, 0, 183, 0, 343, 184, 0, 344,
03274 0, 0, 0, 345, 86, 186, 0, 88, 346, 0,
03275 187, 188, 0, 0, 0, 0, 0, 347, 348, 0,
03276 0, 0, 0, 189, 1455, 0, 0, 190, 0, 349,
03277 191, 0, 783, 350, 192, 0, 0, 0, 0, 0,
03278 193, 194, 0, 195, 351, 0, 0, 352, 196, 197,
03279 198, 353, 0, 0, 354, 355, 201, 0, 202, 356,
03280 357, 204, 205, 206, 0, 0, 207, 208, 209, 358,
03281 359, 210, 360, 361, 0, 211, 212, 0, 213, 214,
03282 215, 216, 0, 0, 0, 0, 0, 0, 0, 1265,
03283 217, 362, 1998, 218, 2000, 219, 220, 363, 222, 0,
03284 0, 0, 0, 0, 223, 0, 0, 0, 0, 224,
03285 364, 365, 0, 0, 0, 225, 0, 0, 366, 226,
03286 227, 228, 229, 230, 367, 232, 0, 368, 234, 0,
03287 0, 0, 235, 236, 237, 238, 0, 0, 239, 0,
03288 240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
03289 0, 0, 0, 243, 244, 369, 370, 245, 0, 0,
03290 246, 371, 248, 372, 373, 249, 374, 250, 251, 0,
03291 0, 252, 0, 375, 253, 0, 254, 376, 377, 378,
03292 0, 784, 257, 379, 380, 381, 259, 382, 260, 261,
03293 0, 0, 0, 262, 0, 0, 0, 0, 383, 0,
03294 0, 384, 385, 386, 387, 265, 0, 0, 266, 388,
03295 0, 389, 390, 267, 268, 0, 0, 0, 0, 269,
03296 0, 0, 0, 391, 0, 0, 0, 0, 0, 0,
03297 0, 0, 0, 392, 393, 0, 0, 0, 0, 394,
03298 0, 395, 0, 396, 0, 0, 397, 398, 125, 0,
03299 317, 127, 128, 1446, 0, 0, 0, 129, 0, 0,
03300 0, 130, 131, 318, 0, 133, 0, 0, 1447, 320,
03301 134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
03302 321, 322, 323, 139, 0, 324, 140, 0, 141, 325,
03303 0, 326, 144, 0, 145, 146, 147, 148, 149, 150,
03304 0, 151, 152, 0, 153, 327, 328, 0, 0, 154,
03305 329, 330, 0, 331, 155, 156, 157, 332, 333, 334,
03306 0, 0, 0, 0, 335, 160, 336, 0, 0, 1448,
03307 0, 0, 0, 0, 161, 162, 0, 0, 163, 0,
03308 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
03309 0, 170, 171, 0, 172, 0, 173, 174, 338, 339,
03310 175, 340, 341, 176, 177, 178, 342, 179, 0, 0,
03311 0, 180, 181, 0, 182, 0, 183, 0, 343, 184,
03312 0, 344, 0, 0, 0, 345, 86, 186, 0, 88,
03313 346, 0, 187, 188, 0, 0, 0, 0, 0, 347,
03314 348, 0, 0, 0, 0, 189, 0, 0, 0, 190,
03315 0, 349, 191, 0, 0, 350, 192, 0, 0, 0,
03316 0, 0, 193, 194, 0, 195, 351, 0, 0, 352,
03317 196, 197, 198, 353, 0, 0, 354, 355, 201, 0,
03318 202, 356, 357, 204, 205, 206, 0, 0, 207, 208,
03319 209, 358, 359, 210, 360, 361, 0, 211, 212, 1449,
03320 213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
03321 0, 0, 217, 362, 0, 218, 0, 219, 220, 363,
03322 222, 0, 0, 0, 0, 0, 223, 0, 0, 0,
03323 0, 224, 364, 365, 0, 0, 0, 225, 0, 0,
03324 366, 226, 227, 228, 229, 230, 367, 232, 0, 368,
03325 234, 0, 0, 0, 235, 236, 237, 238, 0, 0,
03326 239, 0, 240, 241, 242, 0, 0, 0, 0, 0,
03327 0, 0, 0, 0, 0, 243, 244, 369, 370, 245,
03328 0, 0, 246, 371, 248, 372, 373, 249, 374, 250,
03329 251, 0, 0, 252, 0, 375, 253, 0, 254, 376,
03330 377, 378, 0, 0, 257, 379, 380, 381, 259, 382,
03331 260, 261, 0, 0, 0, 262, 0, 0, 0, 0,
03332 383, 0, 0, 384, 385, 386, 387, 265, 0, 0,
03333 266, 388, 0, 389, 390, 267, 268, 0, 0, 0,
03334 0, 269, 0, 0, 0, 391, 0, 0, 0, 0,
03335 0, 0, 0, 0, 0, 392, 393, 0, 0, 0,
03336 0, 394, 0, 395, 0, 396, 0, 0, 397, 398,
03337 125, 0, 317, 127, 128, 0, 0, 0, 0, 129,
03338 0, 0, 0, 130, 131, 318, 0, 133, 0, 0,
03339 319, 320, 134, 0, 135, 136, 0, 137, 0, 0,
03340 0, 138, 321, 322, 323, 139, 0, 324, 140, 0,
03341 141, 325, 0, 326, 144, 0, 145, 146, 147, 148,
03342 149, 150, 0, 151, 152, 0, 153, 327, 328, 0,
03343 0, 154, 329, 330, 0, 331, 155, 156, 157, 332,
03344 333, 334, 0, 0, 0, 0, 335, 160, 336, 0,
03345 0, 337, 0, 0, 0, 0, 161, 162, 0, 0,
03346 163, 0, 0, 164, 165, 166, 0, 0, 167, 0,
03347 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
03348 338, 339, 175, 340, 341, 176, 177, 178, 342, 179,
03349 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
03350 343, 184, 0, 344, 0, 0, 0, 345, 86, 186,
03351 0, 88, 346, 0, 187, 188, 0, 0, 0, 0,
03352 0, 347, 348, 0, 0, 0, 0, 189, 0, 0,
03353 0, 190, 0, 349, 191, 0, 0, 350, 192, 0,
03354 0, 0, 0, 0, 193, 194, 0, 195, 351, 0,
03355 0, 352, 196, 197, 198, 353, 0, 0, 354, 355,
03356 201, 0, 202, 356, 357, 204, 205, 206, 0, 0,
03357 207, 208, 209, 358, 359, 210, 360, 361, 0, 211,
03358 212, 0, 213, 214, 215, 216, 0, 0, 0, 0,
03359 0, 0, 0, 0, 217, 362, 0, 218, 0, 219,
03360 220, 363, 222, 0, 0, 0, 0, 0, 223, 0,
03361 0, 0, 0, 224, 364, 365, 0, 0, 0, 225,
03362 0, 0, 366, 226, 227, 228, 229, 230, 367, 232,
03363 0, 368, 234, 0, 0, 0, 235, 236, 237, 238,
03364 0, 0, 239, 0, 240, 241, 242, 0, 0, 0,
03365 0, 0, 0, 0, 0, 0, 0, 243, 244, 369,
03366 370, 245, 0, 0, 246, 371, 248, 372, 373, 249,
03367 374, 250, 251, 0, 0, 252, 0, 375, 253, 0,
03368 254, 376, 377, 378, 0, 0, 257, 379, 380, 381,
03369 259, 382, 260, 261, 0, 0, 0, 262, 0, 0,
03370 0, 0, 383, 0, 0, 384, 385, 386, 387, 265,
03371 0, 0, 266, 388, 0, 389, 390, 267, 268, 0,
03372 0, 0, 0, 269, 0, 0, 0, 391, 0, 0,
03373 0, 0, 0, 0, 0, 0, 0, 392, 393, 0,
03374 0, 0, 0, 394, 0, 395, 714, 396, 0, 0,
03375 397, 398, 125, 0, 317, 127, 128, 0, 0, 0,
03376 0, 129, 0, 0, 0, 130, 131, 318, 0, 133,
03377 0, 0, 319, 320, 134, 0, 135, 136, 0, 137,
03378 0, 0, 0, 138, 321, 322, 323, 139, 0, 324,
03379 140, 0, 141, 325, 0, 326, 144, 0, 145, 146,
03380 147, 148, 149, 150, 0, 151, 152, 0, 153, 327,
03381 328, 0, 0, 154, 329, 330, 0, 331, 155, 156,
03382 157, 332, 333, 334, 0, 0, 0, 0, 335, 160,
03383 336, 0, 0, 337, 0, 0, 0, 0, 161, 162,
03384 0, 0, 163, 0, 0, 164, 165, 166, 0, 0,
03385 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
03386 173, 174, 338, 339, 175, 340, 341, 176, 177, 178,
03387 342, 179, 0, 0, 0, 180, 181, 978, 182, 0,
03388 183, 0, 343, 184, 0, 344, 0, 0, 0, 345,
03389 86, 186, 0, 88, 346, 0, 187, 188, 0, 0,
03390 0, 0, 0, 347, 348, 0, 0, 0, 0, 189,
03391 0, 0, 0, 190, 0, 349, 191, 0, 0, 350,
03392 192, 0, 0, 0, 0, 0, 193, 194, 0, 195,
03393 351, 0, 0, 352, 196, 197, 198, 353, 0, 0,
03394 354, 355, 201, 0, 202, 356, 357, 204, 205, 206,
03395 0, 0, 207, 208, 209, 358, 359, 210, 360, 361,
03396 0, 211, 212, 0, 213, 214, 215, 216, 0, 0,
03397 0, 0, 0, 0, 0, 0, 217, 362, 0, 218,
03398 0, 219, 220, 363, 222, 0, 0, 0, 0, 0,
03399 223, 0, 0, 0, 0, 224, 364, 365, 0, 0,
03400 0, 225, 0, 0, 366, 226, 227, 228, 229, 230,
03401 367, 232, 0, 368, 234, 0, 0, 0, 235, 236,
03402 237, 238, 0, 0, 239, 0, 240, 241, 242, 0,
03403 0, 0, 0, 0, 0, 0, 0, 0, 0, 243,
03404 244, 369, 370, 245, 0, 0, 246, 371, 248, 372,
03405 373, 249, 374, 250, 251, 0, 0, 252, 0, 375,
03406 253, 0, 254, 376, 377, 378, 0, 0, 257, 379,
03407 380, 381, 259, 382, 260, 261, 0, 0, 0, 262,
03408 0, 0, 0, 0, 383, 0, 0, 384, 385, 386,
03409 387, 265, 0, 0, 266, 388, 0, 389, 390, 267,
03410 268, 0, 0, 0, 0, 269, 0, 0, 0, 391,
03411 0, 0, 0, 0, 0, 0, 0, 0, 0, 392,
03412 393, 0, 0, 0, 0, 394, 0, 395, 0, 396,
03413 0, 0, 397, 398, 125, 0, 317, 127, 128, 0,
03414 0, 0, 0, 129, 0, 0, 0, 130, 131, 318,
03415 0, 133, 0, 0, 319, 320, 134, 0, 135, 136,
03416 0, 137, 0, 0, 0, 138, 321, 322, 323, 139,
03417 0, 324, 140, 0, 141, 325, 0, 326, 144, 0,
03418 145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
03419 153, 327, 328, 0, 0, 154, 329, 330, 0, 331,
03420 155, 156, 157, 332, 333, 334, 0, 0, 0, 0,
03421 335, 160, 336, 0, 0, 337, 0, 0, 0, 0,
03422 161, 162, 0, 0, 163, 0, 0, 164, 165, 166,
03423 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
03424 172, 0, 173, 174, 338, 339, 175, 340, 341, 176,
03425 177, 178, 342, 179, 0, 0, 0, 180, 181, 980,
03426 182, 0, 183, 0, 343, 184, 0, 344, 0, 0,
03427 0, 345, 86, 186, 0, 88, 346, 0, 187, 188,
03428 0, 0, 0, 0, 0, 347, 348, 0, 0, 0,
03429 0, 189, 0, 0, 0, 190, 0, 349, 191, 0,
03430 0, 350, 192, 0, 0, 0, 0, 0, 193, 194,
03431 0, 195, 351, 0, 0, 352, 196, 197, 198, 353,
03432 0, 0, 354, 355, 201, 0, 202, 356, 357, 204,
03433 205, 206, 0, 0, 207, 208, 209, 358, 359, 210,
03434 360, 361, 0, 211, 212, 0, 213, 214, 215, 216,
03435 0, 0, 0, 0, 0, 0, 0, 0, 217, 362,
03436 0, 218, 0, 219, 220, 363, 222, 0, 0, 0,
03437 0, 0, 223, 0, 0, 0, 0, 224, 364, 365,
03438 0, 0, 0, 225, 0, 0, 366, 226, 227, 228,
03439 229, 230, 367, 232, 0, 368, 234, 0, 0, 0,
03440 235, 236, 237, 238, 0, 0, 239, 0, 240, 241,
03441 242, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03442 0, 243, 244, 369, 370, 245, 0, 0, 246, 371,
03443 248, 372, 373, 249, 374, 250, 251, 0, 0, 252,
03444 0, 375, 253, 0, 254, 376, 377, 378, 0, 0,
03445 257, 379, 380, 381, 259, 382, 260, 261, 0, 0,
03446 0, 262, 0, 0, 0, 0, 383, 0, 0, 384,
03447 385, 386, 387, 265, 0, 0, 266, 388, 0, 389,
03448 390, 267, 268, 0, 0, 0, 0, 269, 0, 0,
03449 0, 391, 0, 0, 0, 0, 0, 0, 0, 0,
03450 0, 392, 393, 0, 0, 0, 0, 394, 0, 395,
03451 0, 396, 0, 0, 397, 398, 125, 0, 317, 127,
03452 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03453 131, 318, 0, 133, 0, 0, 319, 320, 134, 0,
03454 135, 136, 0, 137, 0, 0, 0, 138, 321, 322,
03455 323, 139, 0, 324, 140, 0, 141, 325, 0, 326,
03456 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
03457 152, 0, 153, 327, 328, 0, 0, 154, 329, 330,
03458 0, 331, 155, 156, 157, 332, 333, 334, 0, 0,
03459 0, 0, 335, 160, 336, 0, 0, 337, 0, 0,
03460 0, 0, 161, 162, 0, 0, 163, 0, 0, 164,
03461 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
03462 171, 0, 172, 0, 173, 174, 338, 339, 175, 340,
03463 341, 176, 177, 178, 342, 179, 0, 0, 0, 180,
03464 181, 982, 182, 0, 183, 0, 343, 184, 0, 344,
03465 0, 0, 0, 345, 86, 186, 0, 88, 346, 0,
03466 187, 188, 0, 0, 0, 0, 0, 347, 348, 0,
03467 0, 0, 0, 189, 0, 0, 0, 190, 0, 349,
03468 191, 0, 0, 350, 192, 0, 0, 0, 0, 0,
03469 193, 194, 0, 195, 351, 0, 0, 352, 196, 197,
03470 198, 353, 0, 0, 354, 355, 201, 0, 202, 356,
03471 357, 204, 205, 206, 0, 0, 207, 208, 209, 358,
03472 359, 210, 360, 361, 0, 211, 212, 0, 213, 214,
03473 215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
03474 217, 362, 0, 218, 0, 219, 220, 363, 222, 0,
03475 0, 0, 0, 0, 223, 0, 0, 0, 0, 224,
03476 364, 365, 0, 0, 0, 225, 0, 0, 366, 226,
03477 227, 228, 229, 230, 367, 232, 0, 368, 234, 0,
03478 0, 0, 235, 236, 237, 238, 0, 0, 239, 0,
03479 240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
03480 0, 0, 0, 243, 244, 369, 370, 245, 0, 0,
03481 246, 371, 248, 372, 373, 249, 374, 250, 251, 0,
03482 0, 252, 0, 375, 253, 0, 254, 376, 377, 378,
03483 0, 0, 257, 379, 380, 381, 259, 382, 260, 261,
03484 0, 0, 0, 262, 0, 0, 0, 0, 383, 0,
03485 0, 384, 385, 386, 387, 265, 0, 0, 266, 388,
03486 0, 389, 390, 267, 268, 0, 0, 0, 0, 269,
03487 0, 0, 0, 391, 0, 0, 0, 0, 0, 0,
03488 0, 0, 0, 392, 393, 0, 0, 0, 0, 394,
03489 0, 395, 0, 396, 0, 0, 397, 398, 125, 0,
03490 317, 127, 128, 0, 0, 0, 0, 129, 0, 0,
03491 0, 130, 131, 318, 0, 133, 0, 0, 319, 320,
03492 134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
03493 321, 322, 323, 139, 0, 324, 140, 0, 141, 325,
03494 0, 326, 144, 0, 145, 146, 147, 148, 149, 150,
03495 0, 151, 152, 0, 153, 327, 328, 0, 0, 154,
03496 329, 330, 0, 331, 155, 156, 157, 332, 333, 334,
03497 0, 0, 0, 0, 335, 160, 336, 0, 0, 337,
03498 0, 0, 0, 0, 161, 162, 0, 0, 163, 0,
03499 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
03500 0, 170, 171, 0, 172, 0, 173, 174, 338, 339,
03501 175, 340, 341, 176, 177, 178, 342, 179, 0, 0,
03502 0, 180, 181, 0, 182, 0, 183, 0, 343, 184,
03503 0, 344, 0, 0, 0, 345, 86, 186, 0, 88,
03504 346, 0, 187, 188, 0, 0, 0, 0, 0, 347,
03505 348, 0, 0, 0, 0, 189, 0, 0, 0, 190,
03506 0, 349, 191, 0, 0, 350, 192, 0, 0, 0,
03507 0, 0, 193, 194, 0, 195, 351, 0, 0, 352,
03508 196, 197, 198, 353, 0, 0, 354, 355, 201, 0,
03509 202, 356, 357, 204, 205, 206, 0, 0, 207, 208,
03510 209, 358, 359, 210, 360, 361, 0, 211, 212, 0,
03511 213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
03512 0, 0, 217, 362, 0, 218, 0, 219, 220, 363,
03513 222, 0, 0, 0, 0, 0, 223, 0, 0, 0,
03514 0, 224, 364, 365, 0, 0, 0, 225, 0, 0,
03515 366, 226, 227, 228, 229, 230, 367, 232, 0, 368,
03516 234, 0, 0, 0, 235, 236, 237, 238, 0, 0,
03517 239, 0, 240, 241, 242, 0, 0, 0, 0, 0,
03518 0, 0, 0, 0, 0, 243, 244, 369, 370, 245,
03519 0, 0, 246, 371, 248, 372, 373, 249, 374, 250,
03520 251, 0, 0, 252, 0, 375, 253, 0, 254, 376,
03521 377, 378, 0, 0, 257, 379, 380, 381, 259, 382,
03522 260, 261, 0, 0, 0, 262, 0, 0, 0, 0,
03523 383, 0, 0, 384, 385, 386, 387, 265, 0, 0,
03524 266, 388, 0, 389, 390, 267, 268, 0, 0, 0,
03525 0, 269, 0, 0, 0, 391, 0, 0, 0, 0,
03526 0, 0, 0, 0, 0, 392, 393, 0, 0, 0,
03527 0, 394, 0, 395, 0, 396, 0, 0, 397, 398,
03528 125, 0, 317, 127, 128, 0, 0, 0, 0, 129,
03529 0, 0, 0, 130, 131, 318, 0, 133, 0, 0,
03530 319, 320, 134, 0, 135, 136, 0, 137, 0, 0,
03531 0, 138, 321, 322, 323, 139, 0, 324, 140, 0,
03532 141, 325, 0, 326, 144, 0, 145, 146, 147, 148,
03533 149, 150, 0, 151, 152, 0, 153, 327, 328, 0,
03534 0, 154, 329, 330, 0, 331, 155, 156, 157, 332,
03535 333, 334, 0, 0, 0, 0, 335, 160, 336, 0,
03536 0, 337, 0, 0, 0, 0, 161, 162, 0, 0,
03537 163, 0, 0, 164, 165, 166, 0, 0, 167, 0,
03538 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
03539 338, 339, 175, 340, 341, 176, 177, 178, 342, 179,
03540 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
03541 343, 184, 0, 344, 0, 0, 0, 345, 86, 186,
03542 0, 88, 346, 0, 187, 188, 0, 0, 0, 0,
03543 0, 347, 348, 0, 0, 0, 0, 189, 0, 0,
03544 0, 190, 0, 349, 191, 0, 0, 350, 192, 0,
03545 0, 0, 0, 0, 193, 194, 0, 195, 351, 0,
03546 0, 352, 196, 197, 198, 353, 0, 0, 354, 355,
03547 201, 0, 202, 356, 357, 204, 205, 206, 0, 0,
03548 207, 208, 209, 358, 359, 210, 360, 361, 0, 211,
03549 212, 0, 213, 214, 215, 216, 0, 0, 0, 0,
03550 0, 0, 0, 0, 217, 362, 0, 218, 0, 219,
03551 220, 363, 222, 0, 0, 0, 0, 0, 223, 0,
03552 0, 0, 0, 224, 364, 365, 0, 0, 0, 225,
03553 0, 0, 366, 226, 227, 228, 229, 230, 367, 232,
03554 0, 368, 234, 0, 0, 0, 235, 236, 237, 238,
03555 0, 0, 239, 0, 240, 241, 242, 0, 0, 0,
03556 0, 0, 0, 0, 0, 0, 0, 243, 244, 369,
03557 370, 245, 0, 0, 246, 371, 248, 372, 373, 249,
03558 374, 250, 251, 0, 0, 252, 0, 375, 253, 0,
03559 254, 376, 377, 378, 0, 0, 257, 379, 380, 381,
03560 259, 382, 260, 261, 0, 0, 0, 262, 0, 0,
03561 0, 0, 383, 0, 0, 384, 385, 386, 387, 265,
03562 0, 0, 266, 388, 0, 389, 390, 267, 268, 0,
03563 0, 0, 0, 269, 0, 0, 0, 391, 0, 0,
03564 0, 0, 0, 0, 0, 0, 0, 392, 393, 0,
03565 0, 0, 0, 394, 0, 533, 0, 396, 0, 0,
03566 397, 398, 125, 0, 317, 127, 128, 815, 0, 0,
03567 0, 816, 0, 0, 0, 130, 131, 318, 0, 133,
03568 0, 0, 319, 320, 134, 0, 135, 136, 0, 137,
03569 0, 0, 0, 138, 321, 322, 323, 139, 0, 324,
03570 140, 0, 141, 325, 0, 326, 144, 0, 145, 146,
03571 147, 148, 149, 150, 0, 151, 152, 0, 153, 327,
03572 328, 0, 0, 154, 329, 330, 0, 331, 155, 156,
03573 157, 332, 333, 334, 0, 0, 0, 0, 335, 160,
03574 336, 0, 0, 337, 0, 0, 0, 0, 161, 162,
03575 0, 0, 163, 0, 0, 164, 165, 166, 0, 0,
03576 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
03577 173, 174, 338, 339, 175, 340, 341, 176, 177, 178,
03578 342, 179, 0, 0, 0, 180, 181, 0, 182, 0,
03579 183, 0, 343, 184, 0, 344, 0, 0, 0, 345,
03580 86, 186, 0, 88, 346, 0, 187, 188, 0, 0,
03581 0, 0, 0, 347, 348, 0, 0, 0, 0, 189,
03582 0, 0, 0, 190, 0, 349, 191, 0, 0, 350,
03583 192, 0, 0, 0, 0, 0, 193, 194, 0, 195,
03584 351, 0, 0, 352, 196, 197, 198, 353, 0, 0,
03585 354, 355, 201, 0, 202, 356, 357, 204, 205, 206,
03586 0, 0, 207, 208, 209, 0, 359, 210, 360, 361,
03587 0, 211, 212, 0, 213, 214, 215, 216, 0, 0,
03588 0, 0, 0, 0, 0, 0, 217, 362, 0, 218,
03589 0, 219, 220, 363, 222, 0, 0, 0, 0, 0,
03590 223, 0, 0, 0, 0, 224, 364, 365, 0, 0,
03591 0, 225, 0, 0, 366, 226, 227, 228, 229, 230,
03592 367, 232, 0, 368, 234, 0, 0, 0, 235, 236,
03593 237, 238, 0, 0, 239, 0, 240, 241, 242, 0,
03594 0, 0, 0, 0, 0, 0, 0, 0, 0, 243,
03595 244, 369, 370, 245, 0, 0, 246, 371, 248, 372,
03596 373, 249, 374, 250, 251, 0, 0, 252, 0, 375,
03597 253, 0, 254, 376, 377, 378, 0, 0, 257, 379,
03598 380, 381, 259, 382, 260, 261, 0, 0, 0, 262,
03599 0, 0, 0, 0, 383, 0, 0, 384, 385, 386,
03600 387, 265, 0, 0, 266, 388, 0, 389, 390, 267,
03601 268, 0, 0, 0, 0, 269, 0, 0, 0, 391,
03602 0, 0, 0, 0, 0, 0, 0, 0, 0, 392,
03603 393, 0, 0, 0, 0, 394, 0, 395, 0, 396,
03604 0, 0, 397, 398, 125, 0, 317, 127, 128, 0,
03605 0, 0, 0, 129, 0, 0, 0, 130, 131, 318,
03606 0, 133, 0, 0, 319, 320, 134, 0, 135, 136,
03607 0, 137, 0, 0, 0, 138, 321, 322, 323, 139,
03608 0, 324, 140, 0, 141, 325, 0, 326, 144, 0,
03609 145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
03610 153, 327, 328, 0, 0, 154, 329, 330, 0, 331,
03611 155, 156, 157, 332, 333, 334, 0, 0, 0, 0,
03612 335, 160, 336, 0, 0, 337, 0, 0, 0, 0,
03613 161, 162, 0, 0, 163, 0, 0, 164, 165, 166,
03614 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
03615 172, 0, 173, 174, 338, 339, 175, 340, 341, 176,
03616 177, 178, 342, 179, 0, 0, 0, 180, 181, 0,
03617 182, 0, 183, 0, 343, 184, 0, 344, 0, 0,
03618 0, 345, 86, 186, 0, 88, 346, 0, 187, 188,
03619 0, 0, 0, 0, 0, 347, 1128, 0, 0, 0,
03620 0, 189, 0, 0, 0, 190, 0, 349, 191, 0,
03621 0, 350, 192, 0, 0, 0, 0, 0, 193, 194,
03622 0, 195, 351, 0, 0, 352, 196, 197, 198, 353,
03623 0, 0, 354, 355, 201, 0, 202, 356, 357, 204,
03624 205, 206, 0, 0, 207, 208, 209, 358, 359, 210,
03625 360, 361, 0, 211, 212, 0, 213, 214, 215, 216,
03626 0, 0, 0, 0, 0, 0, 0, 0, 217, 362,
03627 0, 218, 0, 219, 220, 363, 222, 0, 0, 0,
03628 0, 0, 223, 0, 0, 0, 0, 224, 364, 365,
03629 0, 0, 0, 225, 0, 0, 366, 226, 227, 228,
03630 229, 230, 367, 232, 0, 368, 234, 0, 0, 0,
03631 235, 236, 237, 238, 0, 0, 239, 0, 240, 241,
03632 242, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03633 0, 243, 244, 369, 370, 245, 0, 0, 246, 371,
03634 248, 372, 373, 249, 374, 250, 251, 0, 0, 252,
03635 0, 375, 253, 0, 254, 376, 377, 378, 0, 0,
03636 257, 379, 380, 381, 259, 382, 260, 261, 0, 0,
03637 0, 262, 0, 0, 0, 0, 383, 0, 0, 384,
03638 385, 386, 387, 265, 0, 0, 266, 388, 0, 389,
03639 390, 267, 268, 0, 0, 0, 0, 269, 0, 0,
03640 0, 391, 0, 0, 0, 0, 0, 0, 0, 0,
03641 0, 392, 393, 0, 0, 0, 0, 394, 0, 395,
03642 0, 396, 0, 0, 397, 398, 125, 0, 317, 127,
03643 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03644 131, 318, 0, 133, 0, 0, 319, 320, 134, 0,
03645 135, 136, 0, 137, 0, 0, 0, 138, 321, 322,
03646 323, 139, 0, 324, 140, 0, 141, 325, 0, 326,
03647 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
03648 152, 0, 153, 327, 328, 0, 0, 154, 329, 330,
03649 0, 331, 155, 156, 157, 332, 333, 334, 0, 0,
03650 0, 0, 335, 160, 336, 0, 0, 337, 0, 0,
03651 0, 0, 161, 162, 0, 0, 163, 0, 0, 164,
03652 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
03653 171, 0, 172, 0, 173, 174, 338, 339, 175, 340,
03654 341, 176, 177, 178, 342, 179, 0, 0, 0, 180,
03655 181, 0, 182, 0, 183, 0, 343, 184, 0, 344,
03656 0, 0, 0, 345, 86, 186, 0, 88, 346, 0,
03657 187, 188, 0, 0, 0, 0, 0, 347, 1170, 0,
03658 0, 0, 0, 189, 0, 0, 0, 190, 0, 349,
03659 191, 0, 0, 350, 192, 0, 0, 0, 0, 0,
03660 193, 194, 0, 195, 351, 0, 0, 352, 196, 197,
03661 198, 353, 0, 0, 354, 355, 201, 0, 202, 356,
03662 357, 204, 205, 206, 0, 0, 207, 208, 209, 358,
03663 359, 210, 360, 361, 0, 211, 212, 0, 213, 214,
03664 215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
03665 217, 362, 0, 218, 0, 219, 220, 363, 222, 0,
03666 0, 0, 0, 0, 223, 0, 0, 0, 0, 224,
03667 364, 365, 0, 0, 0, 225, 0, 0, 366, 226,
03668 227, 228, 229, 230, 367, 232, 0, 368, 234, 0,
03669 0, 0, 235, 236, 237, 238, 0, 0, 239, 0,
03670 240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
03671 0, 0, 0, 243, 244, 369, 370, 245, 0, 0,
03672 246, 371, 248, 372, 373, 249, 374, 250, 251, 0,
03673 0, 252, 0, 375, 253, 0, 254, 376, 377, 378,
03674 0, 0, 257, 379, 380, 381, 259, 382, 260, 261,
03675 0, 0, 0, 262, 0, 0, 0, 0, 383, 0,
03676 0, 384, 385, 386, 387, 265, 0, 0, 266, 388,
03677 0, 389, 390, 267, 268, 0, 0, 0, 0, 269,
03678 0, 0, 0, 391, 0, 0, 0, 0, 0, 0,
03679 0, 0, 0, 392, 393, 0, 0, 0, 0, 394,
03680 0, 395, 0, 396, 0, 0, 397, 398, 125, 0,
03681 317, 127, 128, 0, 0, 0, 0, 129, 0, 0,
03682 0, 130, 131, 318, 0, 133, 0, 0, 319, 320,
03683 134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
03684 321, 322, 323, 139, 0, 324, 140, 0, 141, 325,
03685 0, 326, 144, 0, 145, 146, 147, 148, 149, 150,
03686 0, 151, 152, 0, 153, 327, 328, 0, 0, 154,
03687 329, 330, 0, 331, 155, 156, 157, 332, 333, 334,
03688 0, 0, 0, 0, 335, 160, 336, 0, 0, 1264,
03689 0, 0, 0, 0, 161, 162, 0, 0, 163, 0,
03690 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
03691 0, 170, 171, 0, 172, 0, 173, 174, 338, 339,
03692 175, 340, 341, 176, 177, 178, 342, 179, 0, 0,
03693 0, 180, 181, 0, 182, 0, 183, 0, 343, 184,
03694 0, 344, 0, 0, 0, 345, 86, 186, 0, 88,
03695 346, 0, 187, 188, 0, 0, 0, 0, 0, 347,
03696 348, 0, 0, 0, 0, 189, 0, 0, 0, 190,
03697 0, 349, 191, 0, 0, 350, 192, 0, 0, 0,
03698 0, 0, 193, 194, 0, 195, 351, 0, 0, 352,
03699 196, 197, 198, 353, 0, 0, 354, 355, 201, 0,
03700 202, 356, 357, 204, 205, 206, 0, 0, 207, 208,
03701 209, 358, 359, 210, 360, 361, 0, 211, 212, 0,
03702 213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
03703 0, 0, 217, 362, 0, 218, 0, 219, 220, 363,
03704 222, 0, 0, 0, 0, 0, 223, 0, 0, 0,
03705 0, 224, 364, 365, 0, 0, 0, 225, 0, 0,
03706 366, 226, 227, 228, 229, 230, 367, 232, 0, 368,
03707 234, 0, 0, 0, 235, 236, 237, 238, 0, 0,
03708 239, 0, 240, 241, 242, 0, 0, 0, 0, 0,
03709 0, 0, 0, 0, 0, 243, 244, 369, 370, 245,
03710 0, 0, 246, 371, 248, 372, 373, 249, 374, 250,
03711 251, 0, 0, 252, 0, 375, 253, 0, 254, 376,
03712 377, 378, 0, 0, 257, 379, 380, 381, 259, 382,
03713 260, 261, 0, 0, 0, 262, 0, 0, 0, 0,
03714 383, 0, 0, 384, 385, 386, 387, 265, 0, 0,
03715 266, 388, 0, 389, 390, 267, 268, 0, 0, 0,
03716 0, 269, 0, 0, 0, 391, 0, 0, 0, 0,
03717 0, 0, 0, 0, 0, 392, 393, 0, 0, 0,
03718 0, 394, 0, 395, 0, 396, 0, 0, 397, 398,
03719 125, 0, 317, 127, 128, 0, 0, 0, 0, 129,
03720 0, 0, 0, 130, 131, 318, 0, 133, 0, 0,
03721 319, 320, 134, 0, 135, 136, 0, 137, 0, 0,
03722 0, 138, 321, 322, 323, 139, 0, 324, 140, 0,
03723 141, 325, 0, 326, 144, 0, 145, 146, 147, 148,
03724 149, 150, 0, 151, 152, 0, 153, 327, 328, 0,
03725 0, 154, 329, 330, 0, 331, 155, 156, 157, 332,
03726 333, 334, 0, 0, 0, 0, 335, 160, 336, 0,
03727 0, 337, 0, 0, 0, 0, 161, 162, 0, 0,
03728 163, 0, 0, 164, 165, 166, 0, 0, 167, 0,
03729 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
03730 338, 339, 175, 340, 341, 176, 177, 178, 342, 179,
03731 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
03732 343, 184, 0, 344, 0, 0, 0, 345, 86, 186,
03733 0, 88, 346, 0, 187, 188, 0, 0, 0, 0,
03734 0, 347, 348, 0, 0, 0, 0, 189, 0, 0,
03735 0, 190, 0, 349, 191, 0, 0, 350, 192, 0,
03736 0, 0, 0, 0, 193, 194, 0, 195, 351, 0,
03737 0, 352, 196, 197, 198, 353, 0, 0, 354, 355,
03738 201, 0, 202, 356, 357, 204, 205, 206, 0, 0,
03739 207, 208, 209, 0, 359, 210, 360, 361, 0, 211,
03740 212, 0, 213, 214, 215, 216, 0, 0, 0, 0,
03741 0, 0, 0, 0, 217, 362, 0, 218, 0, 219,
03742 220, 363, 222, 0, 0, 0, 0, 0, 223, 0,
03743 0, 0, 0, 224, 364, 365, 0, 0, 0, 225,
03744 0, 0, 366, 226, 227, 228, 229, 230, 367, 232,
03745 0, 368, 234, 0, 0, 0, 235, 236, 237, 238,
03746 0, 0, 239, 0, 240, 241, 242, 0, 0, 0,
03747 0, 0, 0, 0, 0, 0, 0, 243, 244, 369,
03748 370, 245, 0, 0, 246, 371, 248, 372, 373, 249,
03749 374, 250, 251, 0, 0, 252, 0, 375, 253, 0,
03750 254, 376, 377, 378, 0, 0, 257, 379, 380, 381,
03751 259, 382, 260, 261, 0, 0, 0, 262, 0, 0,
03752 0, 0, 383, 0, 0, 384, 385, 386, 387, 265,
03753 0, 0, 266, 388, 0, 389, 390, 267, 268, 0,
03754 0, 0, 0, 269, 0, 0, 0, 391, 0, 0,
03755 0, 0, 0, 0, 0, 0, 0, 392, 393, 0,
03756 0, 0, 0, 394, 0, 395, 0, 396, 0, 0,
03757 397, 398, 125, 0, 317, 127, 128, 0, 0, 0,
03758 0, 129, 0, 0, 0, 130, 131, 318, 0, 133,
03759 0, 0, 319, 320, 134, 0, 135, 136, 0, 137,
03760 0, 0, 0, 138, 321, 322, 323, 139, 0, 324,
03761 140, 0, 141, 325, 0, 326, 144, 0, 145, 146,
03762 147, 148, 149, 150, 0, 151, 152, 0, 153, 327,
03763 328, 0, 0, 154, 329, 330, 0, 331, 155, 156,
03764 157, 332, 333, 334, 0, 0, 0, 0, 335, 160,
03765 336, 0, 0, 337, 0, 0, 0, 0, 161, 162,
03766 0, 0, 163, 0, 0, 164, 165, 166, 0, 0,
03767 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
03768 173, 174, 338, 339, 175, 340, 341, 176, 177, 178,
03769 342, 179, 0, 0, 0, 180, 181, 0, 182, 0,
03770 183, 0, 343, 184, 0, 344, 0, 0, 0, 345,
03771 86, 186, 0, 88, 346, 0, 187, 188, 0, 0,
03772 0, 0, 0, 347, 833, 0, 0, 0, 0, 189,
03773 0, 0, 0, 190, 0, 349, 191, 0, 0, 350,
03774 192, 0, 0, 0, 0, 0, 193, 194, 0, 195,
03775 351, 0, 0, 352, 196, 197, 198, 353, 0, 0,
03776 354, 355, 201, 0, 202, 356, 357, 204, 205, 206,
03777 0, 0, 207, 208, 209, 0, 359, 210, 360, 361,
03778 0, 211, 212, 0, 213, 214, 215, 216, 0, 0,
03779 0, 0, 0, 0, 0, 0, 217, 362, 0, 218,
03780 0, 219, 220, 363, 222, 0, 0, 0, 0, 0,
03781 223, 0, 0, 0, 0, 224, 364, 365, 0, 0,
03782 0, 225, 0, 0, 366, 226, 227, 228, 229, 230,
03783 367, 232, 0, 368, 234, 0, 0, 0, 235, 236,
03784 237, 238, 0, 0, 239, 0, 240, 241, 242, 0,
03785 0, 0, 0, 0, 0, 0, 0, 0, 0, 243,
03786 244, 369, 370, 245, 0, 0, 246, 371, 248, 372,
03787 373, 249, 374, 250, 251, 0, 0, 252, 0, 375,
03788 253, 0, 254, 376, 377, 378, 0, 0, 257, 379,
03789 380, 381, 259, 382, 260, 261, 0, 0, 0, 262,
03790 0, 0, 0, 0, 383, 0, 0, 384, 385, 386,
03791 387, 265, 0, 0, 266, 388, 0, 389, 390, 267,
03792 268, 0, 0, 0, 0, 269, 0, 0, 0, 391,
03793 0, 0, 0, 0, 0, 0, 0, 0, 0, 392,
03794 393, 0, 0, 0, 0, 394, 0, 395, 0, 396,
03795 0, 0, 397, 398, 125, 0, 317, 127, 128, 0,
03796 0, 0, 0, 129, 0, 0, 0, 130, 131, 318,
03797 0, 133, 0, 0, 319, 320, 134, 0, 135, 136,
03798 0, 137, 0, 0, 0, 138, 321, 322, 323, 139,
03799 0, 324, 140, 0, 141, 325, 0, 326, 144, 0,
03800 145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
03801 153, 327, 328, 0, 0, 154, 329, 330, 0, 331,
03802 155, 156, 157, 332, 333, 334, 0, 0, 0, 0,
03803 335, 160, 336, 0, 0, 337, 0, 0, 0, 0,
03804 161, 162, 0, 0, 163, 0, 0, 164, 165, 166,
03805 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
03806 172, 0, 173, 174, 338, 339, 175, 340, 341, 176,
03807 177, 178, 342, 179, 0, 0, 0, 180, 181, 0,
03808 182, 0, 183, 0, 343, 184, 0, 344, 0, 0,
03809 0, 345, 86, 186, 0, 88, 346, 0, 187, 188,
03810 0, 0, 0, 0, 0, 347, 835, 0, 0, 0,
03811 0, 189, 0, 0, 0, 190, 0, 349, 191, 0,
03812 0, 350, 192, 0, 0, 0, 0, 0, 193, 194,
03813 0, 195, 351, 0, 0, 352, 196, 197, 198, 353,
03814 0, 0, 354, 355, 201, 0, 202, 356, 357, 204,
03815 205, 206, 0, 0, 207, 208, 209, 0, 359, 210,
03816 360, 361, 0, 211, 212, 0, 213, 214, 215, 216,
03817 0, 0, 0, 0, 0, 0, 0, 0, 217, 362,
03818 0, 218, 0, 219, 220, 363, 222, 0, 0, 0,
03819 0, 0, 223, 0, 0, 0, 0, 224, 364, 365,
03820 0, 0, 0, 225, 0, 0, 366, 226, 227, 228,
03821 229, 230, 367, 232, 0, 368, 234, 0, 0, 0,
03822 235, 236, 237, 238, 0, 0, 239, 0, 240, 241,
03823 242, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03824 0, 243, 244, 369, 370, 245, 0, 0, 246, 371,
03825 248, 372, 373, 249, 374, 250, 251, 0, 0, 252,
03826 0, 375, 253, 0, 254, 376, 377, 378, 0, 0,
03827 257, 379, 380, 381, 259, 382, 260, 261, 0, 0,
03828 0, 262, 0, 0, 0, 0, 383, 0, 0, 384,
03829 385, 386, 387, 265, 0, 0, 266, 388, 0, 389,
03830 390, 267, 268, 0, 0, 0, 0, 269, 0, 0,
03831 0, 391, 0, 0, 0, 0, 0, 0, 0, 0,
03832 0, 392, 393, 0, 0, 0, 0, 394, 0, 395,
03833 0, 396, 0, 0, 397, 398, 125, 0, 126, 127,
03834 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03835 131, 132, 0, 133, 0, 0, 0, 0, 134, 0,
03836 135, 136, 0, 137, 0, 0, 0, 138, 0, 0,
03837 0, 139, 0, 0, 140, 0, 141, 142, 0, 143,
03838 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
03839 152, 0, 153, 0, 0, 0, 0, 154, 0, 0,
03840 0, 0, 155, 156, 157, 0, 0, 158, 0, 0,
03841 0, 0, 159, 160, 0, 0, 0, 0, 0, 0,
03842 0, 0, 161, 162, 0, 0, 163, 0, 0, 164,
03843 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
03844 171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
03845 0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
03846 181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
03847 0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
03848 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
03849 0, 0, 0, 189, 0, 0, 0, 190, 0, 0,
03850 191, 0, 0, 0, 192, 0, 0, 0, 0, 0,
03851 193, 194, 0, 195, 0, 0, 0, 0, 196, 197,
03852 198, 199, 0, 0, 200, 0, 201, 0, 202, 0,
03853 203, 204, 205, 206, 0, 0, 207, 208, 209, 0,
03854 0, 210, 0, 0, 0, 211, 212, 0, 213, 214,
03855 215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
03856 217, 0, 0, 218, 0, 219, 220, 221, 222, 0,
03857 0, 0, 0, 0, 223, 0, 0, 0, 0, 224,
03858 0, 0, 0, 0, 0, 225, 0, 0, 0, 226,
03859 227, 228, 229, 230, 231, 232, 0, 233, 234, 0,
03860 0, 0, 235, 236, 237, 238, 0, 0, 239, 0,
03861 240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
03862 0, 0, 0, 243, 244, 0, 0, 245, 0, 0,
03863 246, 247, 248, 0, 0, 249, 0, 250, 251, 0,
03864 0, 252, 0, 0, 253, 0, 254, 0, 255, 256,
03865 0, 0, 257, 0, 0, 258, 259, 0, 260, 261,
03866 0, 0, 0, 262, 0, 0, 0, 0, 263, 0,
03867 0, 0, 0, 264, 0, 265, 0, 0, 266, 0,
03868 0, 0, 0, 267, 268, 0, 0, 0, 0, 269,
03869 0, 0, 0, 270, 0, 0, 125, 0, 126, 127,
03870 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03871 131, 132, 2075, 133, 0, 0, 397, 2076, 134, 0,
03872 135, 136, 0, 137, 0, 0, 0, 138, 0, 0,
03873 0, 139, 0, 0, 140, 0, 141, 142, 0, 143,
03874 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
03875 152, 0, 153, 0, 0, 0, 0, 154, 0, 0,
03876 0, 0, 155, 156, 157, 0, 0, 158, 0, 0,
03877 0, 0, 159, 160, 0, 0, 0, 0, 0, 0,
03878 0, 0, 161, 162, 0, 0, 163, 0, 0, 164,
03879 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
03880 171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
03881 0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
03882 181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
03883 0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
03884 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
03885 0, 0, 0, 189, 0, 0, 0, 190, 0, 0,
03886 191, 0, 0, 0, 192, 0, 0, 0, 0, 0,
03887 193, 194, 0, 195, 0, 0, 0, 0, 196, 197,
03888 198, 199, 0, 0, 200, 0, 201, 0, 202, 0,
03889 203, 204, 205, 206, 0, 0, 207, 208, 209, 0,
03890 0, 210, 0, 0, 0, 211, 212, 0, 213, 214,
03891 215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
03892 217, 0, 0, 218, 0, 219, 220, 221, 222, 0,
03893 0, 0, 0, 0, 223, 0, 0, 0, 0, 224,
03894 0, 0, 0, 0, 0, 225, 0, 0, 0, 226,
03895 227, 228, 229, 230, 231, 232, 0, 233, 234, 0,
03896 0, 0, 235, 236, 237, 238, 0, 0, 239, 0,
03897 240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
03898 0, 0, 0, 243, 244, 0, 0, 245, 0, 0,
03899 246, 247, 248, 0, 0, 249, 0, 250, 251, 0,
03900 0, 252, 0, 0, 253, 0, 254, 0, 255, 256,
03901 0, 0, 257, 0, 0, 258, 259, 0, 260, 261,
03902 0, 0, 0, 262, 0, 0, 0, 0, 263, 0,
03903 0, 0, 0, 264, 0, 265, 0, 0, 266, 0,
03904 0, 0, 0, 267, 268, 0, 0, 0, 125, 269,
03905 126, 127, 128, 270, 0, 0, 0, 129, 0, 0,
03906 0, 130, 131, 132, 0, 133, 0, 0, 0, 0,
03907 134, 0, 135, 136, 0, 137, 397, 2076, 0, 138,
03908 0, 0, 0, 139, 0, 0, 140, 0, 141, 142,
03909 0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
03910 0, 151, 152, 1273, 153, 0, 0, 0, 0, 154,
03911 0, 0, 0, 0, 155, 156, 157, 0, 0, 158,
03912 0, 0, 0, 0, 159, 160, 0, 0, 0, 0,
03913 0, 0, 0, 0, 161, 162, 0, 0, 163, 0,
03914 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
03915 0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
03916 175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
03917 0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
03918 0, 0, 0, 0, 0, 185, 86, 186, 0, 88,
03919 0, 0, 187, 188, 1274, 0, 0, 0, 0, 0,
03920 0, 0, 0, 0, 0, 189, 0, 0, 0, 190,
03921 1275, 0, 191, 0, 0, 0, 192, 0, 1114, 0,
03922 0, 0, 193, 194, 0, 195, 0, 0, 0, 0,
03923 196, 197, 198, 199, 0, 0, 200, 0, 201, 0,
03924 202, 0, 203, 204, 205, 206, 0, 0, 207, 208,
03925 209, 0, 0, 210, 0, 0, 0, 211, 212, 0,
03926 213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
03927 0, 0, 217, 0, 0, 218, 0, 219, 220, 221,
03928 222, 0, 0, 0, 0, 0, 223, 0, 0, 0,
03929 0, 224, 0, 0, 0, 0, 0, 225, 0, 0,
03930 0, 226, 227, 228, 229, 230, 231, 232, 0, 233,
03931 234, 850, 0, 0, 235, 236, 237, 238, 0, 0,
03932 239, 0, 240, 241, 242, 0, 0, 0, 0, 0,
03933 0, 0, 0, 0, 0, 243, 244, 0, 0, 245,
03934 0, 0, 246, 247, 248, 0, 0, 249, 0, 250,
03935 251, 0, 0, 252, 0, 0, 253, 0, 254, 0,
03936 255, 256, 0, 0, 257, 0, 0, 258, 259, 0,
03937 260, 261, 0, 0, 0, 262, 0, 0, 0, 0,
03938 263, 0, 0, 0, 0, 264, 0, 265, 0, 125,
03939 266, 126, 127, 128, 0, 267, 268, 0, 129, 0,
03940 0, 269, 130, 131, 132, 270, 133, 0, 0, 0,
03941 0, 134, 0, 135, 136, 0, 137, 0, 0, 0,
03942 138, 0, 0, 0, 139, 0, 0, 140, 1308, 141,
03943 142, 0, 143, 144, 0, 145, 146, 147, 148, 149,
03944 150, 0, 151, 152, 1273, 153, 0, 0, 0, 0,
03945 154, 0, 0, 0, 0, 155, 156, 157, 0, 0,
03946 158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
03947 0, 0, 0, 0, 0, 161, 162, 0, 0, 163,
03948 0, 0, 164, 165, 166, 0, 0, 167, 0, 168,
03949 169, 0, 170, 171, 0, 172, 0, 173, 174, 0,
03950 0, 175, 0, 0, 176, 177, 178, 0, 179, 0,
03951 0, 0, 180, 181, 0, 182, 0, 183, 0, 0,
03952 184, 0, 0, 0, 0, 0, 185, 86, 186, 0,
03953 88, 0, 0, 187, 188, 1274, 0, 0, 0, 0,
03954 0, 0, 0, 0, 0, 0, 189, 0, 0, 0,
03955 190, 1275, 0, 191, 0, 0, 0, 192, 0, 0,
03956 0, 0, 0, 193, 194, 0, 195, 0, 0, 0,
03957 0, 196, 197, 198, 199, 0, 0, 200, 0, 201,
03958 0, 202, 0, 203, 204, 205, 206, 0, 0, 207,
03959 208, 209, 0, 0, 210, 0, 0, 0, 211, 212,
03960 0, 213, 214, 215, 216, 0, 0, 0, 0, 0,
03961 0, 0, 0, 217, 0, 0, 218, 0, 219, 220,
03962 221, 222, 0, 0, 0, 0, 0, 223, 0, 0,
03963 0, 0, 224, 0, 0, 0, 0, 0, 225, 0,
03964 0, 0, 226, 227, 228, 229, 230, 231, 232, 0,
03965 233, 234, 0, 0, 0, 235, 236, 237, 238, 0,
03966 0, 239, 0, 240, 241, 242, 0, 0, 0, 0,
03967 0, 0, 0, 0, 0, 0, 243, 244, 0, 0,
03968 245, 0, 0, 246, 247, 248, 0, 0, 249, 0,
03969 250, 251, 0, 0, 252, 0, 0, 253, 0, 254,
03970 0, 255, 256, 0, 0, 257, 0, 0, 258, 259,
03971 0, 260, 261, 0, 0, 0, 262, 0, 0, 0,
03972 0, 263, 0, 0, 0, 0, 264, 0, 265, 0,
03973 125, 266, 126, 127, 128, 0, 267, 268, 0, 129,
03974 0, 0, 269, 130, 131, 132, 270, 133, 0, 0,
03975 0, 0, 134, 0, 135, 136, 0, 137, 0, 0,
03976 0, 138, 0, 0, 0, 139, 0, 0, 140, 1308,
03977 141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
03978 149, 150, 0, 151, 152, 0, 153, 0, 0, 0,
03979 0, 154, 0, 0, 0, 0, 155, 156, 157, 0,
03980 0, 158, 0, 0, 0, 0, 159, 160, 0, 0,
03981 0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
03982 163, 0, 0, 164, 165, 166, 0, 0, 167, 0,
03983 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
03984 0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
03985 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
03986 0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
03987 0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
03988 0, 0, 0, 0, 0, 0, 0, 189, 0, 0,
03989 0, 190, 0, 0, 191, 0, 0, 0, 192, 0,
03990 0, 0, 0, 0, 193, 194, 0, 195, 0, 0,
03991 0, 0, 196, 197, 198, 199, 0, 0, 200, 0,
03992 201, 0, 202, 0, 203, 204, 205, 206, 0, 0,
03993 207, 208, 209, 0, 0, 210, 0, 0, 0, 211,
03994 212, 0, 213, 214, 215, 216, 0, 0, 0, 0,
03995 0, 0, 0, 0, 217, 0, 0, 218, 0, 219,
03996 220, 221, 222, 0, 0, 0, 0, 0, 223, 0,
03997 0, 0, 0, 224, 0, 0, 0, 0, 0, 225,
03998 0, 0, 0, 226, 227, 228, 229, 230, 231, 232,
03999 0, 233, 234, 850, 0, 0, 235, 236, 237, 238,
04000 0, 0, 239, 0, 240, 241, 242, 0, 0, 0,
04001 0, 0, 0, 0, 0, 0, 0, 243, 244, 0,
04002 0, 245, 0, 0, 246, 247, 248, 0, 0, 249,
04003 0, 250, 251, 0, 0, 252, 0, 0, 253, 0,
04004 254, 0, 255, 256, 0, 0, 257, 0, 0, 258,
04005 259, 0, 260, 261, 0, 0, 0, 262, 0, 0,
04006 0, 0, 263, 0, 0, 0, 0, 264, 0, 265,
04007 0, 0, 266, 0, 0, 0, 0, 267, 268, 0,
04008 0, 0, 0, 269, 0, 0, 0, 270, 0, 0,
04009 125, 0, 126, 127, 128, 0, 0, 0, 0, 129,
04010 0, 0, 0, 130, 131, 132, 1040, 133, 0, 0,
04011 397, 0, 134, 0, 135, 136, 0, 137, 0, 0,
04012 0, 138, 0, 0, 0, 139, 0, 0, 140, 0,
04013 141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
04014 149, 150, 0, 151, 152, 0, 153, 0, 0, 0,
04015 0, 154, 0, 0, 0, 0, 155, 156, 157, 0,
04016 0, 158, 0, 0, 0, 0, 159, 160, 0, 0,
04017 0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
04018 163, 0, 0, 164, 165, 166, 0, 0, 167, 0,
04019 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
04020 0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
04021 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
04022 0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
04023 0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
04024 0, 0, 0, 421, 0, 0, 0, 189, 0, 0,
04025 0, 190, 0, 0, 191, 0, 0, 0, 192, 0,
04026 0, 0, 0, 0, 193, 194, 0, 195, 0, 0,
04027 0, 0, 196, 197, 198, 199, 0, 0, 200, 0,
04028 201, 0, 202, 0, 203, 204, 205, 206, 0, 0,
04029 207, 208, 209, 0, 0, 210, 0, 0, 0, 211,
04030 212, 0, 213, 214, 215, 216, 0, 0, 0, 0,
04031 0, 0, 0, 0, 217, 0, 0, 218, 0, 219,
04032 220, 221, 222, 0, 0, 0, 0, 0, 223, 0,
04033 0, 0, 0, 224, 0, 0, 0, 0, 0, 225,
04034 0, 0, 0, 226, 227, 228, 229, 230, 231, 232,
04035 0, 233, 234, 0, 0, 0, 235, 236, 237, 238,
04036 0, 0, 239, 0, 240, 241, 242, 0, 0, 0,
04037 0, 0, 0, 0, 0, 0, 0, 243, 244, 0,
04038 0, 245, 0, 0, 246, 247, 248, 0, 0, 249,
04039 0, 250, 251, 0, 0, 252, 0, 0, 253, 0,
04040 254, 0, 255, 256, 0, 0, 257, 0, 0, 258,
04041 259, 0, 260, 261, 0, 0, 0, 262, 0, 0,
04042 0, 0, 263, 0, 0, 0, 0, 264, 0, 265,
04043 0, 125, 266, 126, 127, 128, 0, 267, 268, 0,
04044 129, 0, 0, 269, 130, 131, 132, 270, 133, 0,
04045 0, 0, 0, 134, 0, 135, 136, 0, 137, 0,
04046 0, 0, 138, 0, 0, 0, 139, 0, 0, 140,
04047 282, 141, 142, 0, 143, 144, 0, 145, 146, 147,
04048 148, 149, 150, 0, 151, 152, 0, 153, 0, 0,
04049 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
04050 0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
04051 0, 0, 0, 0, 0, 0, 0, 161, 162, 0,
04052 0, 163, 0, 0, 164, 165, 166, 0, 0, 167,
04053 0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
04054 174, 0, 0, 175, 0, 0, 176, 177, 178, 0,
04055 179, 0, 0, 0, 180, 181, 0, 182, 0, 183,
04056 0, 0, 184, 0, 0, 0, 0, 0, 185, 86,
04057 186, 0, 88, 0, 0, 187, 188, 0, 0, 0,
04058 0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
04059 0, 0, 190, 0, 0, 191, 0, 0, 0, 192,
04060 0, 0, 0, 0, 0, 193, 194, 0, 195, 0,
04061 0, 0, 0, 196, 197, 198, 199, 0, 0, 200,
04062 0, 201, 0, 202, 0, 203, 204, 205, 206, 0,
04063 0, 207, 208, 209, 0, 0, 210, 0, 0, 0,
04064 211, 212, 0, 213, 214, 215, 216, 0, 0, 0,
04065 0, 0, 0, 0, 0, 217, 0, 0, 218, 0,
04066 219, 220, 221, 222, 0, 0, 0, 0, 0, 223,
04067 0, 0, 0, 0, 224, 0, 0, 0, 0, 0,
04068 225, 0, 0, 0, 226, 227, 228, 229, 230, 231,
04069 232, 0, 233, 234, 0, 0, 0, 235, 236, 237,
04070 238, 0, 0, 239, 0, 240, 241, 242, 0, 0,
04071 0, 0, 0, 0, 0, 0, 0, 0, 243, 244,
04072 0, 0, 245, 0, 0, 246, 247, 248, 0, 0,
04073 249, 0, 250, 251, 0, 0, 252, 0, 0, 253,
04074 0, 254, 0, 255, 256, 0, 0, 257, 0, 0,
04075 258, 259, 0, 260, 261, 0, 0, 0, 262, 0,
04076 0, 0, 0, 263, 0, 0, 0, 0, 264, 0,
04077 265, 0, 125, 266, 126, 127, 128, 0, 267, 268,
04078 0, 129, 0, 0, 269, 130, 131, 132, 270, 133,
04079 0, 0, 0, 0, 134, 0, 135, 136, 0, 137,
04080 0, 0, 0, 138, 0, 0, 1307, 139, 0, 0,
04081 140, 1308, 141, 142, 0, 143, 144, 0, 145, 146,
04082 147, 148, 149, 150, 0, 151, 152, 0, 153, 0,
04083 0, 0, 0, 154, 0, 0, 0, 0, 155, 156,
04084 157, 0, 0, 158, 0, 0, 0, 0, 159, 160,
04085 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
04086 0, 0, 163, 0, 0, 164, 165, 166, 0, 0,
04087 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
04088 173, 174, 0, 0, 281, 0, 0, 176, 177, 178,
04089 0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
04090 183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
04091 86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
04092 0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
04093 0, 0, 0, 190, 0, 0, 191, 0, 0, 0,
04094 192, 0, 0, 0, 0, 0, 193, 194, 0, 195,
04095 0, 0, 0, 0, 196, 197, 198, 199, 0, 0,
04096 200, 0, 201, 0, 202, 0, 203, 204, 205, 206,
04097 0, 0, 207, 208, 209, 0, 0, 210, 0, 0,
04098 0, 211, 212, 0, 213, 214, 215, 216, 0, 0,
04099 0, 0, 0, 0, 0, 0, 217, 0, 0, 218,
04100 0, 219, 220, 221, 222, 0, 0, 0, 0, 0,
04101 223, 0, 0, 0, 0, 224, 0, 0, 0, 0,
04102 0, 225, 0, 0, 0, 226, 227, 228, 229, 230,
04103 231, 232, 0, 233, 234, 0, 0, 0, 235, 236,
04104 237, 238, 0, 0, 239, 0, 240, 241, 242, 0,
04105 0, 0, 0, 0, 0, 0, 0, 0, 0, 243,
04106 244, 0, 0, 245, 0, 0, 246, 247, 248, 0,
04107 0, 249, 0, 250, 251, 0, 0, 252, 0, 0,
04108 253, 0, 254, 0, 255, 256, 0, 0, 257, 0,
04109 0, 258, 259, 0, 260, 261, 0, 0, 0, 262,
04110 0, 0, 0, 0, 263, 0, 0, 0, 0, 264,
04111 0, 265, 0, 125, 266, 126, 127, 128, 0, 267,
04112 268, 0, 129, 0, 0, 269, 130, 131, 132, 270,
04113 133, 0, 0, 0, 0, 134, 0, 135, 136, 0,
04114 137, 0, 0, 0, 138, 0, 0, 0, 139, 0,
04115 0, 140, 282, 141, 142, 0, 143, 144, 0, 145,
04116 146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
04117 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
04118 156, 157, 0, 0, 158, 0, 0, 0, 0, 159,
04119 160, 0, 0, 0, 0, 0, 0, 0, 0, 161,
04120 162, 0, 0, 163, 0, 0, 164, 165, 166, 0,
04121 0, 167, 0, 168, 169, 0, 170, 171, 0, 172,
04122 0, 173, 174, 0, 0, 175, 0, 0, 176, 177,
04123 178, 0, 179, 0, 0, 0, 180, 181, 0, 182,
04124 0, 183, 0, 0, 184, 0, 0, 0, 0, 0,
04125 185, 86, 186, 0, 88, 0, 0, 187, 188, 0,
04126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04127 189, 0, 0, 0, 190, 0, 0, 191, 0, 0,
04128 0, 192, 0, 0, 0, 0, 0, 193, 194, 0,
04129 195, 0, 0, 0, 0, 196, 197, 198, 199, 0,
04130 0, 200, 0, 201, 0, 202, 0, 203, 204, 205,
04131 206, 0, 0, 207, 208, 209, 0, 0, 210, 0,
04132 0, 0, 211, 212, 0, 213, 214, 215, 216, 0,
04133 0, 0, 0, 0, 0, 0, 0, 217, 0, 0,
04134 218, 0, 219, 220, 221, 222, 0, 0, 0, 0,
04135 0, 223, 0, 0, 0, 0, 224, 0, 0, 0,
04136 0, 0, 225, 0, 0, 0, 226, 227, 228, 229,
04137 230, 231, 232, 0, 233, 234, 0, 0, 0, 235,
04138 236, 237, 238, 0, 0, 239, 0, 240, 241, 242,
04139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04140 243, 244, 0, 0, 245, 0, 0, 246, 247, 248,
04141 0, 0, 249, 0, 250, 251, 0, 0, 252, 0,
04142 0, 253, 0, 254, 0, 255, 256, 0, 0, 257,
04143 0, 0, 258, 259, 0, 260, 261, 0, 0, 0,
04144 262, 0, 0, 0, 0, 263, 0, 0, 0, 0,
04145 264, 0, 265, 0, 125, 266, 126, 127, 128, 0,
04146 267, 268, 0, 129, 0, 0, 269, 130, 131, 132,
04147 270, 133, 0, 0, 0, 0, 134, 0, 135, 136,
04148 0, 137, 0, 0, 0, 138, 0, 0, 0, 139,
04149 0, 0, 140, 282, 141, 142, 0, 143, 144, 0,
04150 145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
04151 153, 0, 0, 0, 0, 154, 0, 0, 0, 0,
04152 155, 156, 157, 0, 0, 158, 0, 0, 0, 0,
04153 159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
04154 161, 162, 0, 0, 163, 0, 0, 164, 165, 166,
04155 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
04156 172, 0, 173, 174, 0, 0, 175, 0, 0, 176,
04157 177, 178, 0, 179, 0, 0, 0, 180, 181, 0,
04158 182, 0, 183, 0, 0, 184, 0, 0, 0, 0,
04159 0, 185, 86, 186, 0, 88, 0, 0, 187, 188,
04160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04161 0, 189, 0, 0, 0, 190, 0, 0, 191, 0,
04162 0, 0, 192, 0, 0, 0, 0, 0, 193, 194,
04163 0, 195, 0, 0, 0, 0, 196, 197, 198, 199,
04164 0, 0, 200, 0, 201, 0, 202, 0, 203, 204,
04165 205, 206, 0, 0, 207, 208, 209, 0, 0, 210,
04166 0, 0, 0, 211, 212, 0, 213, 214, 215, 216,
04167 0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
04168 0, 218, 0, 219, 220, 221, 222, 0, 0, 0,
04169 0, 0, 223, 0, 0, 0, 0, 224, 0, 0,
04170 0, 0, 0, 225, 0, 0, 0, 226, 227, 228,
04171 229, 230, 231, 232, 0, 233, 234, 0, 0, 0,
04172 235, 236, 237, 238, 0, 0, 239, 0, 240, 241,
04173 242, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04174 0, 243, 244, 0, 0, 245, 0, 0, 246, 247,
04175 248, 0, 0, 249, 0, 250, 251, 0, 0, 252,
04176 0, 0, 253, 0, 254, 0, 255, 256, 0, 0,
04177 257, 0, 0, 258, 259, 0, 260, 261, 0, 0,
04178 0, 262, 0, 0, 0, 0, 263, 0, 0, 0,
04179 0, 264, 0, 265, 0, 125, 266, 126, 127, 128,
04180 0, 267, 268, 0, 129, 0, 0, 269, 130, 131,
04181 132, 270, 133, 0, 0, 0, 0, 134, 0, 135,
04182 136, 0, 137, 0, 0, 0, 138, 0, 0, 0,
04183 139, 0, 0, 140, 397, 141, 142, 0, 143, 144,
04184 0, 145, 146, 147, 148, 149, 150, 0, 151, 152,
04185 0, 153, 0, 0, 0, 0, 154, 0, 0, 0,
04186 0, 155, 156, 157, 0, 0, 158, 0, 0, 0,
04187 0, 159, 160, 0, 0, 0, 0, 0, 0, 0,
04188 0, 161, 162, 0, 0, 163, 0, 0, 164, 165,
04189 166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
04190 0, 172, 0, 173, 174, 0, 0, 175, 0, 0,
04191 176, 177, 178, 0, 179, 0, 0, 0, 180, 181,
04192 0, 182, 0, 183, 0, 0, 184, 0, 0, 0,
04193 0, 0, 185, 86, 186, 0, 88, 0, 0, 187,
04194 188, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04195 0, 0, 189, 0, 0, 0, 190, 0, 0, 191,
04196 0, 0, 0, 192, 0, 0, 0, 0, 0, 193,
04197 194, 0, 195, 0, 0, 0, 0, 196, 197, 198,
04198 199, 0, 0, 200, 0, 201, 0, 202, 0, 203,
04199 204, 205, 206, 0, 0, 207, 208, 209, 0, 0,
04200 210, 0, 0, 0, 211, 212, 0, 213, 214, 215,
04201 216, 0, 0, 0, 0, 0, 0, 0, 0, 217,
04202 0, 0, 218, 0, 219, 220, 221, 222, 0, 0,
04203 0, 0, 0, 223, 0, 0, 0, 0, 224, 0,
04204 0, 0, 0, 0, 225, 0, 0, 0, 226, 227,
04205 228, 229, 230, 231, 232, 0, 233, 234, 0, 0,
04206 0, 235, 236, 237, 238, 0, 0, 239, 0, 240,
04207 241, 242, 0, 0, 0, 0, 0, 0, 0, 0,
04208 0, 0, 243, 244, 0, 0, 245, 0, 0, 246,
04209 247, 248, 0, 0, 249, 0, 250, 251, 0, 0,
04210 252, 0, 0, 253, 0, 254, 0, 255, 256, 0,
04211 0, 257, 0, 0, 258, 259, 0, 260, 261, 0,
04212 0, 0, 262, 0, 0, 0, 0, 263, 0, 0,
04213 0, 0, 264, 0, 265, 0, 125, 266, 126, 127,
04214 128, 0, 267, 268, 0, 129, 0, 0, 269, 130,
04215 131, 132, 270, 133, 0, 0, 0, 0, 134, 0,
04216 135, 136, 0, 137, 0, 0, 0, 138, 0, 0,
04217 0, 139, 0, 0, 140, 1308, 141, 142, 0, 143,
04218 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
04219 152, 0, 153, 0, 0, 0, 0, 154, 0, 0,
04220 0, 0, 155, 156, 157, 0, 0, 158, 0, 0,
04221 0, 0, 159, 160, 0, 0, 0, 0, 0, 0,
04222 0, 0, 161, 162, 0, 0, 163, 0, 0, 164,
04223 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
04224 171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
04225 0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
04226 181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
04227 0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
04228 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
04229 0, 0, 0, 189, 0, 0, 0, 190, 0, 0,
04230 191, 0, 0, 0, 192, 0, 0, 0, 0, 0,
04231 193, 194, 0, 195, 0, 0, 0, 0, 196, 197,
04232 198, 199, 0, 0, 200, 0, 201, 0, 202, 0,
04233 203, 204, 205, 206, 0, 0, 207, 208, 209, 0,
04234 0, 210, 0, 0, 0, 211, 212, 0, 213, 214,
04235 215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
04236 217, 0, 0, 218, 0, 219, 220, 221, 222, 0,
04237 0, 0, 0, 0, 223, 0, 0, 0, 0, 224,
04238 0, 0, 0, 0, 0, 225, 0, 0, 0, 226,
04239 227, 228, 229, 230, 231, 232, 0, 233, 234, 0,
04240 0, 0, 235, 236, 237, 238, 0, 0, 239, 0,
04241 240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
04242 0, 0, 0, 243, 244, 0, 0, 245, 0, 0,
04243 246, 247, 248, 0, 0, 249, 0, 250, 251, 0,
04244 0, 252, 0, 0, 253, 0, 254, 0, 255, 256,
04245 0, 0, 257, 0, 0, 258, 259, 0, 260, 261,
04246 0, 0, 0, 262, 0, 0, 0, 0, 263, 0,
04247 0, 0, 0, 264, 0, 265, 0, 125, 266, 126,
04248 127, 128, 0, 267, 268, 0, 129, 0, 0, 269,
04249 130, 131, 132, 270, 133, 0, 0, 0, 0, 134,
04250 0, 135, 136, 0, 137, 1250, 0, 0, 138, 0,
04251 0, 0, 139, 0, 0, 140, 0, 141, 142, 0,
04252 143, 144, 0, 145, 146, 147, 148, 149, 150, 0,
04253 151, 152, 0, 153, 0, 0, 0, 0, 154, 0,
04254 0, 0, 0, 155, 156, 157, 0, 0, 158, 0,
04255 0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
04256 0, 0, 0, 161, 162, 0, 0, 163, 0, 0,
04257 164, 165, 166, 0, 0, 167, 0, 168, 169, 0,
04258 170, 171, 0, 172, 0, 173, 174, 0, 0, 175,
04259 0, 0, 176, 177, 178, 0, 179, 0, 0, 0,
04260 180, 181, 0, 182, 0, 183, 0, 0, 184, 0,
04261 0, 0, 0, 0, 185, 86, 186, 0, 88, 0,
04262 0, 187, 188, 0, 0, 0, 0, 0, 0, 0,
04263 0, 0, 0, 0, 189, 0, 0, 0, 190, 0,
04264 0, 191, 0, 0, 0, 192, 0, 0, 0, 0,
04265 0, 193, 194, 0, 195, 0, 0, 0, 0, 196,
04266 197, 198, 199, 0, 0, 200, 0, 201, 0, 202,
04267 0, 203, 204, 205, 206, 0, 0, 207, 208, 209,
04268 0, 0, 210, 0, 0, 0, 211, 212, 0, 213,
04269 214, 215, 216, 0, 0, 0, 0, 0, 0, 0,
04270 0, 217, 0, 0, 218, 0, 219, 220, 221, 222,
04271 0, 0, 0, 0, 0, 223, 0, 0, 0, 0,
04272 224, 0, 0, 0, 0, 0, 225, 0, 0, 0,
04273 226, 227, 228, 229, 230, 231, 232, 0, 233, 234,
04274 0, 0, 0, 235, 236, 237, 238, 0, 0, 239,
04275 0, 240, 241, 242, 0, 0, 0, 0, 0, 0,
04276 0, 0, 0, 0, 243, 244, 0, 0, 245, 0,
04277 0, 246, 247, 248, 0, 0, 249, 0, 250, 251,
04278 0, 0, 252, 0, 0, 253, 0, 254, 0, 255,
04279 256, 0, 0, 257, 0, 0, 258, 259, 0, 260,
04280 261, 0, 0, 0, 262, 0, 0, 0, 0, 263,
04281 0, 0, 0, 0, 264, 0, 265, 0, 125, 266,
04282 126, 127, 128, 0, 267, 268, 0, 129, 0, 0,
04283 269, 130, 131, 132, 270, 133, 0, 0, 0, 668,
04284 134, 0, 135, 136, 0, 137, 1586, 0, 0, 138,
04285 0, 0, 0, 139, 0, 0, 140, 0, 141, 142,
04286 0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
04287 0, 151, 152, 0, 153, 0, 0, 0, 0, 154,
04288 0, 0, 0, 0, 155, 156, 157, 0, 0, 158,
04289 0, 0, 0, 0, 159, 160, 0, 0, 0, 0,
04290 0, 0, 0, 0, 161, 162, 0, 0, 163, 0,
04291 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
04292 0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
04293 175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
04294 0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
04295 0, 669, 0, 0, 0, 185, 86, 186, 0, 88,
04296 0, 0, 187, 188, 0, 0, 0, 0, 0, 0,
04297 0, 0, 0, 0, 0, 189, 0, 0, 0, 190,
04298 0, 0, 191, 0, 0, 0, 192, 0, 0, 0,
04299 0, 0, 193, 194, 0, 195, 0, 0, 0, 0,
04300 196, 197, 198, 199, 0, 0, 200, 0, 201, 0,
04301 202, 0, 203, 204, 205, 206, 0, 0, 207, 208,
04302 209, 0, 0, 210, 0, 0, 0, 211, 212, 0,
04303 213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
04304 0, 0, 217, 0, 0, 218, 0, 219, 220, 221,
04305 222, 0, 0, 0, 0, 0, 223, 0, 0, 0,
04306 0, 224, 0, 0, 0, 0, 0, 225, 0, 0,
04307 0, 226, 227, 228, 229, 230, 231, 232, 0, 233,
04308 234, 0, 0, 0, 235, 236, 237, 238, 0, 0,
04309 239, 0, 240, 241, 242, 0, 0, 0, 0, 0,
04310 0, 0, 0, 0, 0, 243, 244, 0, 0, 245,
04311 0, 0, 246, 247, 248, 0, 0, 249, 0, 250,
04312 251, 0, 0, 252, 0, 375, 253, 0, 254, 0,
04313 255, 256, 0, 0, 257, 0, 0, 258, 259, 0,
04314 260, 261, 0, 0, 0, 262, 0, 0, 0, 0,
04315 263, 0, 0, 0, 0, 264, 0, 265, 0, 125,
04316 266, 126, 127, 128, 0, 267, 268, 0, 129, 1246,
04317 0, 269, 130, 131, 132, 270, 133, 0, 0, 0,
04318 0, 134, 0, 135, 136, 0, 137, 0, 0, 0,
04319 138, 0, 0, 0, 139, 0, 0, 140, 0, 141,
04320 142, 0, 143, 144, 0, 145, 146, 147, 148, 149,
04321 150, 0, 151, 152, 0, 153, 0, 0, 0, 0,
04322 154, 0, 0, 0, 0, 155, 156, 157, 0, 0,
04323 158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
04324 0, 0, 0, 0, 0, 161, 162, 0, 0, 163,
04325 0, 0, 164, 165, 166, 0, 0, 167, 0, 168,
04326 169, 0, 170, 171, 0, 172, 0, 173, 174, 0,
04327 0, 175, 0, 0, 176, 177, 178, 0, 179, 0,
04328 0, 0, 180, 181, 0, 182, 0, 183, 0, 0,
04329 184, 0, 0, 0, 0, 0, 185, 86, 186, 0,
04330 88, 0, 0, 187, 188, 0, 0, 0, 0, 0,
04331 0, 0, 0, 0, 0, 0, 189, 0, 0, 0,
04332 190, 0, 0, 191, 0, 0, 0, 192, 0, 0,
04333 0, 0, 0, 193, 194, 0, 195, 0, 0, 0,
04334 0, 196, 197, 198, 199, 0, 0, 200, 0, 201,
04335 0, 202, 0, 203, 204, 205, 206, 0, 0, 207,
04336 208, 209, 0, 0, 210, 0, 0, 0, 211, 212,
04337 0, 213, 214, 215, 216, 0, 0, 0, 0, 0,
04338 0, 0, 0, 217, 0, 0, 218, 0, 219, 220,
04339 221, 222, 0, 0, 0, 0, 0, 223, 0, 0,
04340 0, 0, 224, 0, 0, 0, 0, 0, 225, 0,
04341 0, 0, 226, 227, 228, 229, 230, 231, 232, 0,
04342 233, 234, 0, 0, 0, 235, 236, 237, 238, 0,
04343 0, 239, 0, 240, 241, 242, 0, 0, 0, 0,
04344 0, 0, 0, 0, 0, 0, 243, 244, 0, 0,
04345 245, 0, 0, 246, 247, 248, 0, 0, 249, 0,
04346 250, 251, 0, 0, 252, 0, 91, 253, 0, 254,
04347 0, 255, 256, 0, 0, 257, 0, 0, 258, 259,
04348 0, 260, 261, 0, 0, 0, 262, 0, 0, 0,
04349 0, 263, 0, 0, 0, 0, 264, 0, 265, 0,
04350 125, 266, 126, 127, 128, 0, 267, 268, 0, 129,
04351 0, 0, 269, 130, 131, 132, 270, 133, 0, 0,
04352 0, 0, 134, 0, 135, 136, 0, 137, 0, 0,
04353 0, 138, 0, 0, 0, 139, 0, 0, 140, 0,
04354 141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
04355 149, 150, 0, 151, 152, 0, 153, 0, 0, 0,
04356 0, 154, 0, 0, 0, 0, 155, 156, 157, 0,
04357 0, 158, 0, 0, 0, 0, 159, 160, 0, 0,
04358 0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
04359 163, 0, 0, 164, 165, 166, 0, 0, 167, 0,
04360 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
04361 0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
04362 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
04363 0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
04364 0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
04365 0, 0, 0, 0, 0, 0, 0, 189, 0, 0,
04366 0, 190, 0, 0, 191, 0, 0, 0, 192, 0,
04367 0, 0, 0, 0, 193, 194, 0, 195, 0, 0,
04368 0, 0, 196, 197, 198, 199, 0, 0, 200, 0,
04369 201, 0, 202, 0, 203, 204, 205, 206, 0, 0,
04370 207, 208, 209, 0, 0, 210, 0, 0, 0, 211,
04371 212, 0, 213, 214, 215, 216, 0, 0, 0, 0,
04372 0, 0, 0, 0, 217, 0, 0, 218, 0, 219,
04373 220, 221, 222, 0, 0, 0, 0, 0, 223, 0,
04374 0, 0, 0, 224, 0, 0, 0, 0, 0, 225,
04375 0, 0, 0, 226, 227, 228, 229, 230, 231, 232,
04376 0, 233, 234, 0, 0, 0, 235, 236, 237, 238,
04377 0, 0, 239, 0, 240, 241, 242, 0, 0, 0,
04378 0, 0, 0, 0, 0, 0, 0, 243, 244, 0,
04379 0, 245, 0, 0, 246, 247, 248, 0, 0, 249,
04380 0, 250, 251, 0, 0, 252, 0, 91, 253, 0,
04381 254, 0, 255, 256, 0, 0, 257, 0, 0, 258,
04382 259, 0, 260, 261, 0, 0, 0, 262, 0, 0,
04383 0, 0, 263, 0, 0, 0, 0, 264, 0, 265,
04384 0, 125, 266, 126, 127, 128, 0, 267, 268, 0,
04385 129, 0, 0, 269, 130, 131, 132, 270, 133, 0,
04386 0, 0, 0, 134, 0, 135, 136, 0, 137, 0,
04387 0, 0, 138, 0, 0, 0, 139, 0, 0, 140,
04388 0, 141, 142, 0, 143, 144, 0, 145, 146, 147,
04389 148, 149, 150, 0, 151, 152, 0, 153, 0, 0,
04390 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
04391 0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
04392 0, 0, 0, 0, 0, 0, 0, 161, 162, 0,
04393 0, 163, 0, 0, 164, 165, 166, 0, 0, 167,
04394 0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
04395 174, 0, 0, 175, 0, 0, 176, 177, 178, 0,
04396 179, 0, 0, 0, 180, 181, 0, 182, 0, 183,
04397 0, 0, 184, 0, 0, 0, 0, 0, 185, 86,
04398 186, 0, 88, 0, 0, 187, 188, 0, 0, 0,
04399 0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
04400 0, 0, 190, 0, 0, 191, 0, 0, 0, 192,
04401 0, 0, 0, 0, 0, 193, 194, 0, 195, 0,
04402 0, 0, 0, 196, 197, 198, 199, 0, 0, 200,
04403 0, 201, 0, 202, 0, 203, 204, 205, 206, 0,
04404 0, 207, 208, 209, 0, 0, 210, 0, 0, 0,
04405 211, 212, 0, 213, 214, 215, 216, 0, 0, 0,
04406 0, 0, 0, 0, 0, 217, 0, 0, 218, 2064,
04407 219, 220, 221, 222, 0, 0, 0, 0, 0, 223,
04408 0, 0, 0, 0, 224, 0, 0, 0, 0, 0,
04409 225, 0, 0, 0, 226, 227, 228, 229, 230, 231,
04410 232, 0, 233, 234, 0, 0, 0, 235, 236, 237,
04411 238, 0, 0, 239, 0, 240, 241, 242, 0, 0,
04412 0, 0, 0, 0, 0, 0, 0, 0, 243, 244,
04413 0, 0, 245, 0, 0, 246, 247, 248, 0, 0,
04414 249, 0, 250, 251, 0, 0, 252, 0, 0, 253,
04415 0, 254, 0, 255, 256, 0, 0, 257, 0, 0,
04416 258, 259, 0, 260, 261, 0, 0, 0, 262, 0,
04417 0, 0, 0, 263, 0, 0, 0, 0, 264, 0,
04418 265, 0, 125, 266, 126, 127, 128, 0, 267, 268,
04419 0, 129, 0, 0, 269, 130, 131, 132, 270, 133,
04420 0, 0, 0, 0, 134, 0, 135, 136, 0, 137,
04421 0, 0, 0, 138, 0, 0, 0, 139, 0, 0,
04422 140, 0, 141, 142, 0, 143, 144, 0, 145, 146,
04423 147, 148, 149, 150, 0, 151, 152, 0, 153, 0,
04424 0, 0, 0, 154, 0, 0, 0, 0, 155, 156,
04425 157, 0, 0, 158, 0, 0, 0, 0, 159, 160,
04426 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
04427 0, 0, 163, 0, 0, 164, 165, 166, 0, 0,
04428 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
04429 173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
04430 0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
04431 183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
04432 86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
04433 0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
04434 0, 0, 0, 190, 0, 0, 191, 0, 0, 0,
04435 192, 0, 0, 0, 0, 0, 193, 194, 0, 195,
04436 0, 0, 0, 0, 196, 197, 198, 199, 0, 0,
04437 200, 0, 201, 0, 202, 0, 203, 204, 205, 206,
04438 0, 0, 207, 208, 209, 0, 0, 210, 0, 0,
04439 0, 211, 212, 0, 213, 214, 215, 216, 0, 0,
04440 0, 0, 0, 0, 0, 0, 217, 0, 0, 218,
04441 0, 219, 220, 221, 222, 0, 0, 0, 0, 0,
04442 223, 0, 0, 0, 0, 224, 0, 0, 0, 0,
04443 0, 225, 0, 0, 0, 226, 227, 228, 229, 230,
04444 231, 232, 0, 233, 234, 0, 0, 0, 235, 236,
04445 237, 238, 0, 0, 239, 0, 240, 241, 242, 0,
04446 0, 0, 0, 0, 0, 0, 0, 0, 0, 243,
04447 244, 0, 0, 245, 0, 0, 246, 247, 248, 0,
04448 0, 249, 0, 250, 251, 0, 0, 252, 0, 0,
04449 253, 0, 254, 0, 255, 256, 0, 0, 257, 0,
04450 0, 258, 259, 0, 260, 261, 0, 0, 0, 262,
04451 0, 0, 0, 0, 263, 0, 0, 0, 0, 264,
04452 0, 265, 0, 0, 266, 0, 0, 0, 0, 267,
04453 268, 0, 0, 0, 0, 269, 0, 0, 0, 270
04454 };
04455
04456 static const yytype_int16 yycheck[] =
04457 {
04458 12, 51, 93, 330, 428, 12, 613, 914, 1053, 21,
04459 905, 334, 534, 897, 1089, 319, 1218, 29, 1000, 410,
04460 511, 512, 109, 587, 1046, 996, 910, 872, 854, 107,
04461 527, 595, 359, 1187, 121, 666, 1418, 1397, 457, 51,
04462 1483, 446, 903, 1117, 1279, 12, 1552, 374, 14, 525,
04463 1531, 63, 457, 376, 12, 12, 46, 384, 385, 12,
04464 1214, 12, 74, 1034, 651, 1594, 1630, 654, 12, 81,
04465 12, 658, 659, 298, 124, 865, 683, 50, 101, 110,
04466 93, 93, 12, 474, 14, 12, 93, 12, 392, 393,
04467 394, 1632, 86, 12, 570, 107, 12, 109, 69, 12,
04468 12, 12, 845, 106, 12, 82, 118, 1621, 124, 121,
04469 12, 118, 124, 46, 1068, 1069, 103, 1631, 1120, 1633,
04470 85, 25, 112, 1286, 111, 863, 43, 230, 476, 29,
04471 39, 147, 523, 223, 142, 1237, 144, 145, 124, 46,
04472 214, 12, 267, 118, 85, 122, 12, 1706, 1468, 130,
04473 132, 51, 97, 15, 176, 7, 12, 1686, 1717, 1040,
04474 137, 147, 12, 63, 57, 173, 1717, 1707, 12, 174,
04475 561, 12, 182, 278, 74, 118, 129, 142, 1062, 9,
04476 145, 81, 292, 12, 197, 661, 275, 12, 1083, 126,
04477 1085, 96, 165, 12, 20, 329, 178, 129, 150, 12,
04478 12, 211, 12, 1098, 51, 182, 129, 1091, 1092, 109,
04479 356, 1413, 209, 357, 166, 1099, 12, 18, 66, 12,
04480 305, 121, 71, 308, 124, 87, 1110, 159, 333, 316,
04481 1465, 290, 12, 137, 211, 222, 346, 383, 260, 1474,
04482 1101, 31, 12, 180, 70, 46, 380, 228, 245, 50,
04483 300, 310, 175, 101, 379, 6, 381, 12, 1701, 10,
04484 1642, 666, 92, 129, 1823, 12, 224, 224, 120, 210,
04485 282, 224, 1823, 12, 363, 267, 379, 289, 286, 291,
04486 224, 226, 224, 1603, 85, 297, 12, 12, 300, 1115,
04487 272, 303, 304, 383, 224, 599, 12, 224, 279, 224,
04488 209, 126, 889, 311, 316, 224, 107, 315, 224, 383,
04489 614, 224, 224, 224, 12, 325, 224, 1055, 119, 1421,
04490 351, 337, 224, 310, 821, 12, 329, 244, 1771, 12,
04491 353, 12, 1495, 1217, 421, 683, 1338, 308, 12, 43,
04492 334, 142, 1223, 236, 145, 135, 311, 322, 325, 354,
04493 1793, 337, 318, 224, 1556, 12, 1263, 12, 224, 1888,
04494 373, 374, 375, 376, 1599, 338, 1847, 318, 224, 274,
04495 420, 1255, 12, 1913, 224, 1939, 366, 385, 854, 322,
04496 224, 12, 282, 224, 396, 397, 12, 379, 1463, 289,
04497 1344, 291, 359, 1899, 1220, 224, 1937, 297, 12, 224,
04498 300, 359, 359, 303, 304, 224, 359, 311, 420, 421,
04499 1305, 224, 224, 12, 224, 359, 316, 359, 643, 1209,
04500 1984, 125, 380, 380, 1938, 383, 383, 477, 224, 359,
04501 383, 224, 359, 366, 359, 1509, 380, 1511, 488, 383,
04502 359, 932, 12, 359, 224, 1306, 359, 359, 359, 250,
04503 1014, 359, 943, 380, 224, 380, 383, 359, 383, 366,
04504 261, 380, 474, 475, 383, 477, 382, 380, 1211, 224,
04505 383, 383, 383, 1080, 965, 383, 488, 224, 1065, 326,
04506 899, 383, 12, 495, 1866, 224, 1967, 1968, 359, 1970,
04507 502, 12, 583, 359, 899, 147, 396, 397, 224, 224,
04508 12, 1023, 1024, 359, 1985, 1112, 1113, 1950, 224, 359,
04509 311, 1337, 383, 525, 380, 359, 1013, 1877, 359, 1962,
04510 420, 421, 826, 1020, 1155, 38, 224, 383, 232, 2010,
04511 359, 2012, 2013, 383, 359, 12, 653, 224, 1692, 383,
04512 359, 224, 383, 224, 1422, 147, 359, 359, 626, 359,
04513 224, 12, 1430, 12, 383, 380, 69, 12, 570, 1035,
04514 12, 12, 263, 359, 383, 12, 359, 224, 380, 224,
04515 383, 583, 202, 383, 474, 475, 583, 477, 14, 359,
04516 1628, 82, 383, 1337, 224, 215, 43, 383, 488, 359,
04517 383, 641, 679, 224, 644, 495, 1072, 249, 224, 1429,
04518 9, 613, 502, 383, 359, 617, 656, 1452, 1579, 34,
04519 224, 12, 359, 383, 626, 221, 311, 129, 12, 12,
04520 359, 122, 1046, 12, 1646, 224, 330, 69, 383, 641,
04521 1675, 267, 644, 359, 359, 9, 383, 687, 645, 1203,
04522 652, 380, 320, 359, 656, 14, 29, 291, 308, 661,
04523 12, 12, 1559, 175, 224, 380, 1283, 383, 12, 12,
04524 12, 359, 12, 12, 380, 12, 147, 679, 125, 12,
04525 106, 683, 359, 685, 12, 687, 359, 12, 359, 1286,
04526 63, 182, 380, 92, 379, 359, 1313, 1294, 118, 1515,
04527 1738, 1673, 129, 380, 224, 64, 267, 380, 0, 380,
04528 213, 223, 359, 224, 359, 218, 380, 1591, 338, 1200,
04529 211, 147, 224, 1017, 313, 12, 12, 617, 92, 359,
04530 157, 142, 9, 380, 145, 380, 142, 118, 359, 145,
04531 1623, 267, 12, 359, 634, 1628, 1566, 106, 12, 106,
04532 380, 641, 1910, 379, 644, 359, 442, 224, 1224, 380,
04533 1795, 1953, 652, 267, 380, 124, 656, 126, 12, 876,
04534 359, 1515, 458, 224, 133, 224, 380, 136, 49, 224,
04535 9, 213, 224, 224, 891, 232, 218, 224, 147, 679,
04536 210, 1688, 146, 152, 209, 685, 223, 687, 157, 359,
04537 802, 1666, 1667, 267, 163, 308, 309, 93, 848, 849,
04538 1678, 22, 171, 308, 1682, 92, 175, 329, 379, 1977,
04539 380, 180, 85, 249, 267, 1619, 1620, 562, 563, 210,
04540 1895, 1896, 1298, 224, 325, 1347, 1630, 252, 1632, 359,
04541 224, 224, 129, 202, 250, 224, 848, 849, 359, 93,
04542 1362, 1363, 854, 379, 125, 1738, 215, 359, 1678, 274,
04543 380, 495, 1682, 92, 223, 129, 1378, 129, 502, 380,
04544 872, 313, 224, 224, 146, 379, 878, 1619, 1620, 150,
04545 224, 224, 224, 330, 224, 224, 1704, 224, 1630, 1370,
04546 1632, 224, 359, 150, 9, 166, 224, 256, 1495, 224,
04547 311, 903, 322, 166, 1071, 311, 1073, 9, 359, 911,
04548 359, 197, 802, 380, 359, 379, 355, 359, 359, 175,
04549 1714, 1715, 359, 1404, 297, 142, 1007, 144, 145, 380,
04550 303, 380, 1726, 1435, 1436, 380, 379, 224, 297, 380,
04551 1734, 322, 1736, 380, 207, 18, 1412, 210, 159, 1999,
04552 331, 2001, 215, 197, 1748, 355, 380, 1751, 848, 849,
04553 224, 232, 82, 174, 854, 1785, 1786, 223, 359, 232,
04554 329, 384, 1714, 1715, 46, 359, 359, 92, 337, 338,
04555 359, 1428, 1063, 372, 1726, 311, 1804, 1805, 878, 380,
04556 92, 380, 1734, 308, 1736, 354, 380, 380, 2033, 1873,
04557 207, 380, 122, 53, 54, 1007, 1748, 359, 359, 1751,
04558 1007, 330, 85, 85, 133, 359, 359, 359, 384, 359,
04559 359, 380, 359, 382, 383, 22, 359, 1029, 380, 380,
04560 115, 359, 243, 1035, 359, 85, 380, 380, 380, 1273,
04561 380, 380, 93, 380, 163, 1279, 209, 380, 1282, 99,
04562 1284, 25, 380, 379, 1056, 380, 1058, 1291, 1292, 1056,
04563 1945, 1063, 182, 1297, 1231, 163, 1063, 330, 64, 286,
04564 1072, 121, 359, 171, 1114, 55, 38, 1982, 1080, 292,
04565 355, 367, 368, 369, 370, 371, 372, 373, 374, 375,
04566 376, 211, 383, 166, 166, 359, 93, 379, 315, 1101,
04567 1997, 46, 311, 320, 223, 1107, 372, 69, 82, 55,
04568 1112, 1113, 1114, 1115, 380, 1117, 379, 384, 1120, 1716,
04569 1567, 1568, 373, 367, 368, 369, 370, 371, 372, 373,
04570 374, 375, 376, 142, 207, 207, 145, 210, 210, 1029,
04571 85, 43, 379, 1937, 1610, 1939, 197, 49, 122, 379,
04572 1531, 379, 18, 1447, 2059, 2060, 152, 59, 256, 232,
04573 232, 380, 159, 137, 383, 379, 1056, 163, 1058, 109,
04574 285, 286, 287, 288, 379, 171, 46, 174, 380, 75,
04575 46, 383, 297, 2, 50, 4, 82, 379, 150, 132,
04576 1984, 131, 242, 1987, 379, 1937, 1236, 1939, 271, 18,
04577 197, 380, 379, 379, 383, 325, 202, 379, 182, 142,
04578 207, 144, 145, 380, 379, 85, 383, 1107, 379, 85,
04579 160, 166, 1224, 125, 1114, 1115, 122, 1229, 379, 169,
04580 380, 1465, 1646, 383, 1236, 178, 210, 211, 379, 239,
04581 1474, 107, 1984, 379, 1246, 1987, 243, 247, 150, 1246,
04582 379, 213, 379, 119, 379, 64, 218, 330, 330, 263,
04583 256, 1301, 207, 203, 166, 210, 85, 379, 379, 118,
04584 270, 1273, 142, 216, 379, 145, 142, 1279, 132, 145,
04585 1282, 329, 1284, 379, 1286, 379, 182, 232, 1285, 1291,
04586 1292, 380, 1294, 24, 383, 1297, 1298, 28, 1295, 1301,
04587 379, 297, 1342, 122, 1306, 1307, 1308, 1773, 174, 379,
04588 41, 1313, 208, 379, 210, 211, 1313, 368, 369, 370,
04589 371, 372, 373, 374, 375, 376, 379, 181, 175, 272,
04590 232, 85, 64, 379, 1224, 380, 1338, 311, 383, 1229,
04591 1342, 72, 379, 152, 75, 1622, 1236, 309, 1625, 85,
04592 1627, 325, 83, 286, 163, 85, 1246, 379, 207, 379,
04593 64, 210, 171, 380, 380, 1599, 383, 383, 379, 379,
04594 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
04595 250, 379, 315, 1273, 250, 330, 382, 292, 380, 1279,
04596 104, 383, 1282, 202, 1284, 261, 1398, 371, 372, 305,
04597 267, 1291, 1292, 348, 1406, 380, 215, 1297, 383, 1406,
04598 1412, 1301, 166, 379, 18, 311, 1729, 1307, 1308, 315,
04599 152, 379, 379, 363, 364, 365, 379, 158, 330, 325,
04600 166, 163, 18, 25, 379, 379, 166, 379, 292, 171,
04601 379, 311, 1444, 379, 1757, 311, 50, 256, 152, 379,
04602 1452, 305, 1342, 207, 308, 379, 210, 379, 1839, 163,
04603 46, 215, 1502, 1465, 50, 93, 1847, 171, 379, 379,
04604 202, 207, 1474, 322, 210, 342, 343, 207, 232, 1860,
04605 210, 85, 331, 75, 379, 379, 1952, 379, 297, 142,
04606 82, 144, 145, 1495, 1807, 1808, 232, 1499, 202, 85,
04607 1502, 1582, 232, 107, 1506, 379, 93, 1509, 1398, 1511,
04608 1512, 215, 379, 379, 379, 119, 1406, 379, 379, 1836,
04609 173, 107, 1835, 379, 256, 1838, 118, 292, 14, 58,
04610 122, 159, 142, 119, 144, 145, 380, 380, 142, 383,
04611 383, 145, 380, 85, 1082, 137, 1084, 278, 1929, 274,
04612 1931, 1089, 256, 383, 1444, 1639, 142, 1095, 380, 145,
04613 267, 383, 39, 173, 245, 297, 115, 274, 380, 197,
04614 380, 383, 150, 383, 1576, 1465, 330, 215, 64, 380,
04615 1582, 254, 383, 314, 1474, 1582, 1967, 1968, 380, 1970,
04616 182, 383, 380, 297, 330, 383, 2062, 1599, 380, 350,
04617 330, 383, 333, 380, 1985, 1607, 383, 321, 1610, 1499,
04618 197, 380, 1502, 239, 2080, 1932, 1506, 380, 210, 211,
04619 106, 2087, 1512, 142, 380, 144, 145, 383, 380, 2010,
04620 353, 2012, 2013, 286, 348, 342, 343, 92, 380, 379,
04621 126, 383, 9, 380, 358, 1647, 250, 133, 151, 384,
04622 136, 380, 380, 1737, 173, 379, 383, 261, 311, 1743,
04623 318, 1745, 315, 383, 250, 383, 152, 373, 311, 280,
04624 46, 157, 379, 180, 354, 261, 286, 163, 380, 380,
04625 373, 395, 380, 380, 129, 171, 1576, 372, 380, 175,
04626 380, 380, 380, 380, 180, 329, 275, 383, 380, 383,
04627 12, 311, 1704, 380, 380, 315, 376, 311, 1710, 1599,
04628 379, 379, 379, 376, 1716, 380, 202, 1607, 384, 311,
04629 311, 385, 379, 315, 384, 311, 380, 383, 32, 215,
04630 322, 383, 385, 325, 223, 215, 380, 223, 1778, 367,
04631 368, 369, 370, 371, 372, 373, 374, 375, 376, 104,
04632 380, 156, 156, 380, 383, 380, 1753, 1647, 380, 380,
04633 384, 384, 380, 1765, 384, 380, 383, 286, 380, 93,
04634 256, 1773, 157, 129, 161, 385, 1778, 49, 318, 371,
04635 372, 164, 369, 370, 371, 372, 373, 374, 375, 376,
04636 504, 306, 311, 164, 306, 509, 315, 32, 46, 513,
04637 514, 383, 1804, 1805, 338, 215, 520, 521, 522, 175,
04638 524, 297, 526, 98, 1704, 379, 530, 531, 532, 533,
04639 1710, 379, 536, 158, 538, 539, 158, 541, 542, 1729,
04640 544, 383, 380, 547, 548, 549, 550, 551, 552, 380,
04641 384, 555, 556, 329, 558, 380, 560, 380, 93, 380,
04642 564, 565, 338, 10, 11, 383, 267, 1757, 383, 573,
04643 574, 334, 159, 384, 21, 172, 1868, 581, 354, 380,
04644 584, 585, 586, 197, 166, 1765, 166, 14, 48, 384,
04645 380, 14, 211, 211, 1886, 380, 43, 269, 1778, 157,
04646 380, 383, 62, 63, 380, 52, 382, 383, 163, 163,
04647 70, 133, 225, 385, 276, 383, 63, 166, 166, 1809,
04648 1810, 383, 379, 1915, 1804, 1805, 166, 380, 380, 380,
04649 634, 380, 163, 163, 215, 32, 136, 383, 194, 86,
04650 87, 88, 646, 239, 85, 379, 85, 379, 379, 96,
04651 110, 379, 82, 379, 50, 379, 334, 1944, 380, 106,
04652 1952, 384, 197, 48, 211, 308, 163, 114, 1858, 1859,
04653 163, 379, 132, 379, 184, 211, 123, 12, 210, 23,
04654 166, 166, 142, 27, 28, 145, 334, 211, 1868, 149,
04655 150, 379, 122, 211, 211, 211, 85, 41, 702, 379,
04656 338, 380, 338, 379, 164, 2076, 1886, 1999, 155, 2001,
04657 176, 2003, 142, 215, 208, 145, 380, 380, 178, 343,
04658 167, 362, 380, 211, 383, 380, 338, 338, 72, 32,
04659 177, 75, 32, 103, 32, 1915, 380, 379, 126, 83,
04660 379, 76, 77, 78, 79, 80, 32, 32, 752, 32,
04661 4, 95, 182, 367, 368, 369, 370, 371, 372, 373,
04662 374, 375, 376, 244, 108, 2057, 2058, 215, 147, 215,
04663 2062, 32, 32, 379, 234, 379, 86, 121, 782, 783,
04664 784, 211, 334, 211, 2076, 274, 379, 1643, 2080, 2076,
04665 380, 2083, 383, 1115, 1112, 2087, 1101, 683, 245, 246,
04666 1512, 1307, 249, 138, 139, 140, 141, 1081, 1310, 1107,
04667 257, 1607, 272, 1277, 158, 1138, 263, 821, 1609, 1999,
04668 267, 2001, 1744, 2003, 1726, 1849, 1626, 274, 1762, 833,
04669 277, 835, 367, 368, 369, 370, 371, 372, 373, 374,
04670 375, 376, 1734, 1708, 291, 305, 1716, 1947, 308, 309,
04671 1976, 311, 1121, 1868, 189, 190, 191, 192, 1306, 848,
04672 1047, 277, 998, 198, 473, 276, 437, 862, 212, 1406,
04673 931, 1676, 1211, 1432, 997, 1964, 323, 2057, 2058, 2083,
04674 1898, 311, 2058, 515, 1674, 332, 1021, 334, 1454, 224,
04675 337, 351, 563, 1052, 316, 325, 1695, 241, 305, 1610,
04676 235, 940, 421, 2083, 696, 1219, 1072, 1412, 853, 2080,
04677 1952, 349, 501, 1954, 918, 1904, 1996, 921, 1974, 923,
04678 924, 2087, 1224, 634, 928, 81, 1313, 271, 867, 264,
04679 265, 1452, 379, 1254, 1700, 110, 427, -1, 942, -1,
04680 -1, 945, 946, 947, 948, -1, 950, 80, -1, 5,
04681 -1, -1, -1, 957, 10, -1, 960, -1, 962, 963,
04682 964, -1, 18, -1, -1, 969, 970, 971, 312, -1,
04683 314, 315, 976, 977, 978, -1, 980, -1, 982, -1,
04684 984, -1, 986, -1, 40, -1, -1, 991, -1, -1,
04685 -1, -1, -1, -1, 50, 128, -1, 341, -1, -1,
04686 344, 345, 5, -1, 1008, 61, -1, 10, 141, -1,
04687 -1, -1, -1, -1, -1, 18, 1020, 352, -1, -1,
04688 -1, 1025, -1, -1, 359, 360, 361, -1, -1, 85,
04689 -1, -1, -1, -1, 90, 91, -1, 40, -1, -1,
04690 96, -1, -1, -1, -1, -1, 102, 50, -1, -1,
04691 106, 107, -1, -1, -1, -1, 189, -1, 61, 192,
04692 -1, -1, -1, 119, -1, 198, -1, -1, 124, -1,
04693 -1, -1, 1076, -1, -1, -1, -1, -1, -1, -1,
04694 -1, -1, 85, -1, -1, -1, 142, 90, -1, 145,
04695 -1, -1, 148, 96, -1, -1, -1, -1, -1, 102,
04696 -1, -1, 235, -1, 107, -1, -1, -1, 76, 77,
04697 78, 79, 80, -1, -1, -1, 119, -1, -1, 1123,
04698 -1, 124, -1, -1, 1128, -1, -1, -1, 1132, -1,
04699 -1, -1, 265, -1, -1, -1, -1, -1, -1, 142,
04700 196, -1, 145, 515, -1, -1, -1, 1151, 1152, -1,
04701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04702 -1, -1, -1, -1, -1, 537, 1170, 223, 540, -1,
04703 138, 139, 140, 141, 1178, -1, 1180, -1, 1182, -1,
04704 -1, 553, 554, -1, -1, 557, -1, -1, -1, -1,
04705 246, -1, -1, 196, 250, -1, -1, -1, -1, 571,
04706 572, -1, -1, -1, -1, 261, -1, -1, -1, -1,
04707 -1, -1, -1, -1, 1218, 546, -1, -1, -1, 352,
04708 223, 189, 190, 191, 192, -1, -1, -1, 361, -1,
04709 198, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04710 -1, -1, -1, 246, -1, -1, -1, 250, -1, 1253,
04711 -1, -1, -1, -1, -1, 311, -1, -1, 261, -1,
04712 -1, -1, -1, 1267, -1, 596, 597, 235, -1, 600,
04713 -1, 602, 603, 604, 605, 606, 607, 608, 609, 610,
04714 611, 612, -1, -1, -1, -1, -1, -1, -1, -1,
04715 -1, -1, -1, -1, -1, -1, 264, 265, -1, -1,
04716 -1, -1, -1, -1, -1, -1, -1, -1, 311, -1,
04717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04718 -1, -1, -1, -1, -1, -1, -1, 699, -1, -1,
04719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04720 -1, -1, -1, -1, -1, -1, 1350, -1, -1, -1,
04721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04722 -1, -1, -1, 1367, 1368, -1, -1, -1, -1, -1,
04723 -1, 1375, -1, -1, -1, -1, 1380, -1, -1, 1383,
04724 1384, 1385, 754, -1, 352, -1, 758, -1, -1, -1,
04725 -1, -1, 360, 361, -1, -1, -1, -1, -1, -1,
04726 -1, -1, 774, -1, -1, -1, -1, -1, -1, 1413,
04727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04730 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1453,
04731 -1, -1, -1, -1, -1, -1, 1460, -1, -1, -1,
04732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04735 -1, -1, -1, 824, -1, -1, 827, -1, -1, -1,
04736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04741 -1, -1, 1556, -1, -1, -1, -1, -1, -1, -1,
04742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04745 1594, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04751 -1, -1, -1, -1, 1658, -1, -1, -1, -1, -1,
04752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04754 -1, -1, 1686, -1, -1, -1, -1, -1, -1, -1,
04755 -1, -1, -1, -1, -1, -1, 1700, -1, -1, -1,
04756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04758 -1, -1, -1, -1, -1, -1, 4, -1, 6, 7,
04759 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
04760 18, 19, -1, 21, -1, -1, 24, 25, 26, -1,
04761 28, 29, 30, 31, -1, -1, -1, 35, 36, 37,
04762 38, 39, -1, 41, 42, -1, 44, 45, -1, 47,
04763 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
04764 58, -1, 60, 61, 62, 1789, 1790, 65, 66, 67,
04765 1794, 69, 70, 71, 72, 73, 74, 75, -1, -1,
04766 -1, -1, 80, 81, 82, -1, -1, 85, -1, -1,
04767 -1, -1, 90, 91, -1, -1, 94, -1, -1, 97,
04768 98, 99, -1, -1, 102, -1, 104, 105, -1, 107,
04769 108, -1, 110, -1, 112, 113, 114, 115, 116, 117,
04770 118, 119, 120, 121, 122, 123, -1, -1, -1, 127,
04771 128, -1, 130, -1, 132, -1, 134, 135, -1, 137,
04772 -1, -1, -1, 141, 142, 143, -1, 145, 146, -1,
04773 148, 149, -1, -1, -1, -1, -1, 155, 156, -1,
04774 -1, -1, -1, 161, 1888, -1, -1, 165, -1, 167,
04775 168, -1, 170, 171, 172, -1, -1, -1, -1, -1,
04776 178, 179, -1, 181, 182, -1, -1, 185, 186, 187,
04777 188, 189, -1, -1, 192, 193, 194, -1, 196, 197,
04778 198, 199, 200, 201, -1, -1, 204, 205, 206, 207,
04779 208, 209, 210, 211, -1, 213, 214, -1, 216, 217,
04780 218, 219, -1, -1, -1, -1, -1, -1, -1, 1953,
04781 228, 229, 1956, 231, 1958, 233, 234, 235, 236, -1,
04782 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247,
04783 248, 249, -1, -1, -1, 253, -1, -1, 256, 257,
04784 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
04785 -1, -1, 270, 271, 272, 273, -1, -1, 276, -1,
04786 278, 279, 280, -1, -1, -1, -1, -1, -1, -1,
04787 -1, -1, -1, 291, 292, 293, 294, 295, -1, -1,
04788 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
04789 -1, 309, -1, 311, 312, -1, 314, 315, 316, 317,
04790 -1, 319, 320, 321, 322, 323, 324, 325, 326, 327,
04791 -1, -1, -1, 331, -1, -1, -1, -1, 336, -1,
04792 -1, 339, 340, 341, 342, 343, -1, -1, 346, 347,
04793 -1, 349, 350, 351, 352, -1, -1, -1, -1, 357,
04794 -1, -1, -1, 361, -1, -1, -1, -1, -1, -1,
04795 -1, -1, -1, 371, 372, -1, -1, -1, -1, 377,
04796 -1, 379, -1, 381, -1, -1, 384, 385, 4, -1,
04797 6, 7, 8, 9, -1, -1, -1, 13, -1, -1,
04798 -1, 17, 18, 19, -1, 21, -1, -1, 24, 25,
04799 26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
04800 36, 37, 38, 39, -1, 41, 42, -1, 44, 45,
04801 -1, 47, 48, -1, 50, 51, 52, 53, 54, 55,
04802 -1, 57, 58, -1, 60, 61, 62, -1, -1, 65,
04803 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
04804 -1, -1, -1, -1, 80, 81, 82, -1, -1, 85,
04805 -1, -1, -1, -1, 90, 91, -1, -1, 94, -1,
04806 -1, 97, 98, 99, -1, -1, 102, -1, 104, 105,
04807 -1, 107, 108, -1, 110, -1, 112, 113, 114, 115,
04808 116, 117, 118, 119, 120, 121, 122, 123, -1, -1,
04809 -1, 127, 128, -1, 130, -1, 132, -1, 134, 135,
04810 -1, 137, -1, -1, -1, 141, 142, 143, -1, 145,
04811 146, -1, 148, 149, -1, -1, -1, -1, -1, 155,
04812 156, -1, -1, -1, -1, 161, -1, -1, -1, 165,
04813 -1, 167, 168, -1, -1, 171, 172, -1, -1, -1,
04814 -1, -1, 178, 179, -1, 181, 182, -1, -1, 185,
04815 186, 187, 188, 189, -1, -1, 192, 193, 194, -1,
04816 196, 197, 198, 199, 200, 201, -1, -1, 204, 205,
04817 206, 207, 208, 209, 210, 211, -1, 213, 214, 215,
04818 216, 217, 218, 219, -1, -1, -1, -1, -1, -1,
04819 -1, -1, 228, 229, -1, 231, -1, 233, 234, 235,
04820 236, -1, -1, -1, -1, -1, 242, -1, -1, -1,
04821 -1, 247, 248, 249, -1, -1, -1, 253, -1, -1,
04822 256, 257, 258, 259, 260, 261, 262, 263, -1, 265,
04823 266, -1, -1, -1, 270, 271, 272, 273, -1, -1,
04824 276, -1, 278, 279, 280, -1, -1, -1, -1, -1,
04825 -1, -1, -1, -1, -1, 291, 292, 293, 294, 295,
04826 -1, -1, 298, 299, 300, 301, 302, 303, 304, 305,
04827 306, -1, -1, 309, -1, 311, 312, -1, 314, 315,
04828 316, 317, -1, -1, 320, 321, 322, 323, 324, 325,
04829 326, 327, -1, -1, -1, 331, -1, -1, -1, -1,
04830 336, -1, -1, 339, 340, 341, 342, 343, -1, -1,
04831 346, 347, -1, 349, 350, 351, 352, -1, -1, -1,
04832 -1, 357, -1, -1, -1, 361, -1, -1, -1, -1,
04833 -1, -1, -1, -1, -1, 371, 372, -1, -1, -1,
04834 -1, 377, -1, 379, -1, 381, -1, -1, 384, 385,
04835 4, -1, 6, 7, 8, -1, -1, -1, -1, 13,
04836 -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
04837 24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
04838 -1, 35, 36, 37, 38, 39, -1, 41, 42, -1,
04839 44, 45, -1, 47, 48, -1, 50, 51, 52, 53,
04840 54, 55, -1, 57, 58, -1, 60, 61, 62, -1,
04841 -1, 65, 66, 67, -1, 69, 70, 71, 72, 73,
04842 74, 75, -1, -1, -1, -1, 80, 81, 82, -1,
04843 -1, 85, -1, -1, -1, -1, 90, 91, -1, -1,
04844 94, -1, -1, 97, 98, 99, -1, -1, 102, -1,
04845 104, 105, -1, 107, 108, -1, 110, -1, 112, 113,
04846 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
04847 -1, -1, -1, 127, 128, -1, 130, -1, 132, -1,
04848 134, 135, -1, 137, -1, -1, -1, 141, 142, 143,
04849 -1, 145, 146, -1, 148, 149, -1, -1, -1, -1,
04850 -1, 155, 156, -1, -1, -1, -1, 161, -1, -1,
04851 -1, 165, -1, 167, 168, -1, -1, 171, 172, -1,
04852 -1, -1, -1, -1, 178, 179, -1, 181, 182, -1,
04853 -1, 185, 186, 187, 188, 189, -1, -1, 192, 193,
04854 194, -1, 196, 197, 198, 199, 200, 201, -1, -1,
04855 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
04856 214, -1, 216, 217, 218, 219, -1, -1, -1, -1,
04857 -1, -1, -1, -1, 228, 229, -1, 231, -1, 233,
04858 234, 235, 236, -1, -1, -1, -1, -1, 242, -1,
04859 -1, -1, -1, 247, 248, 249, -1, -1, -1, 253,
04860 -1, -1, 256, 257, 258, 259, 260, 261, 262, 263,
04861 -1, 265, 266, -1, -1, -1, 270, 271, 272, 273,
04862 -1, -1, 276, -1, 278, 279, 280, -1, -1, -1,
04863 -1, -1, -1, -1, -1, -1, -1, 291, 292, 293,
04864 294, 295, -1, -1, 298, 299, 300, 301, 302, 303,
04865 304, 305, 306, -1, -1, 309, -1, 311, 312, -1,
04866 314, 315, 316, 317, -1, -1, 320, 321, 322, 323,
04867 324, 325, 326, 327, -1, -1, -1, 331, -1, -1,
04868 -1, -1, 336, -1, -1, 339, 340, 341, 342, 343,
04869 -1, -1, 346, 347, -1, 349, 350, 351, 352, -1,
04870 -1, -1, -1, 357, -1, -1, -1, 361, -1, -1,
04871 -1, -1, -1, -1, -1, -1, -1, 371, 372, -1,
04872 -1, -1, -1, 377, -1, 379, 380, 381, -1, -1,
04873 384, 385, 4, -1, 6, 7, 8, -1, -1, -1,
04874 -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
04875 -1, -1, 24, 25, 26, -1, 28, 29, -1, 31,
04876 -1, -1, -1, 35, 36, 37, 38, 39, -1, 41,
04877 42, -1, 44, 45, -1, 47, 48, -1, 50, 51,
04878 52, 53, 54, 55, -1, 57, 58, -1, 60, 61,
04879 62, -1, -1, 65, 66, 67, -1, 69, 70, 71,
04880 72, 73, 74, 75, -1, -1, -1, -1, 80, 81,
04881 82, -1, -1, 85, -1, -1, -1, -1, 90, 91,
04882 -1, -1, 94, -1, -1, 97, 98, 99, -1, -1,
04883 102, -1, 104, 105, -1, 107, 108, -1, 110, -1,
04884 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
04885 122, 123, -1, -1, -1, 127, 128, 129, 130, -1,
04886 132, -1, 134, 135, -1, 137, -1, -1, -1, 141,
04887 142, 143, -1, 145, 146, -1, 148, 149, -1, -1,
04888 -1, -1, -1, 155, 156, -1, -1, -1, -1, 161,
04889 -1, -1, -1, 165, -1, 167, 168, -1, -1, 171,
04890 172, -1, -1, -1, -1, -1, 178, 179, -1, 181,
04891 182, -1, -1, 185, 186, 187, 188, 189, -1, -1,
04892 192, 193, 194, -1, 196, 197, 198, 199, 200, 201,
04893 -1, -1, 204, 205, 206, 207, 208, 209, 210, 211,
04894 -1, 213, 214, -1, 216, 217, 218, 219, -1, -1,
04895 -1, -1, -1, -1, -1, -1, 228, 229, -1, 231,
04896 -1, 233, 234, 235, 236, -1, -1, -1, -1, -1,
04897 242, -1, -1, -1, -1, 247, 248, 249, -1, -1,
04898 -1, 253, -1, -1, 256, 257, 258, 259, 260, 261,
04899 262, 263, -1, 265, 266, -1, -1, -1, 270, 271,
04900 272, 273, -1, -1, 276, -1, 278, 279, 280, -1,
04901 -1, -1, -1, -1, -1, -1, -1, -1, -1, 291,
04902 292, 293, 294, 295, -1, -1, 298, 299, 300, 301,
04903 302, 303, 304, 305, 306, -1, -1, 309, -1, 311,
04904 312, -1, 314, 315, 316, 317, -1, -1, 320, 321,
04905 322, 323, 324, 325, 326, 327, -1, -1, -1, 331,
04906 -1, -1, -1, -1, 336, -1, -1, 339, 340, 341,
04907 342, 343, -1, -1, 346, 347, -1, 349, 350, 351,
04908 352, -1, -1, -1, -1, 357, -1, -1, -1, 361,
04909 -1, -1, -1, -1, -1, -1, -1, -1, -1, 371,
04910 372, -1, -1, -1, -1, 377, -1, 379, -1, 381,
04911 -1, -1, 384, 385, 4, -1, 6, 7, 8, -1,
04912 -1, -1, -1, 13, -1, -1, -1, 17, 18, 19,
04913 -1, 21, -1, -1, 24, 25, 26, -1, 28, 29,
04914 -1, 31, -1, -1, -1, 35, 36, 37, 38, 39,
04915 -1, 41, 42, -1, 44, 45, -1, 47, 48, -1,
04916 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
04917 60, 61, 62, -1, -1, 65, 66, 67, -1, 69,
04918 70, 71, 72, 73, 74, 75, -1, -1, -1, -1,
04919 80, 81, 82, -1, -1, 85, -1, -1, -1, -1,
04920 90, 91, -1, -1, 94, -1, -1, 97, 98, 99,
04921 -1, -1, 102, -1, 104, 105, -1, 107, 108, -1,
04922 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
04923 120, 121, 122, 123, -1, -1, -1, 127, 128, 129,
04924 130, -1, 132, -1, 134, 135, -1, 137, -1, -1,
04925 -1, 141, 142, 143, -1, 145, 146, -1, 148, 149,
04926 -1, -1, -1, -1, -1, 155, 156, -1, -1, -1,
04927 -1, 161, -1, -1, -1, 165, -1, 167, 168, -1,
04928 -1, 171, 172, -1, -1, -1, -1, -1, 178, 179,
04929 -1, 181, 182, -1, -1, 185, 186, 187, 188, 189,
04930 -1, -1, 192, 193, 194, -1, 196, 197, 198, 199,
04931 200, 201, -1, -1, 204, 205, 206, 207, 208, 209,
04932 210, 211, -1, 213, 214, -1, 216, 217, 218, 219,
04933 -1, -1, -1, -1, -1, -1, -1, -1, 228, 229,
04934 -1, 231, -1, 233, 234, 235, 236, -1, -1, -1,
04935 -1, -1, 242, -1, -1, -1, -1, 247, 248, 249,
04936 -1, -1, -1, 253, -1, -1, 256, 257, 258, 259,
04937 260, 261, 262, 263, -1, 265, 266, -1, -1, -1,
04938 270, 271, 272, 273, -1, -1, 276, -1, 278, 279,
04939 280, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04940 -1, 291, 292, 293, 294, 295, -1, -1, 298, 299,
04941 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
04942 -1, 311, 312, -1, 314, 315, 316, 317, -1, -1,
04943 320, 321, 322, 323, 324, 325, 326, 327, -1, -1,
04944 -1, 331, -1, -1, -1, -1, 336, -1, -1, 339,
04945 340, 341, 342, 343, -1, -1, 346, 347, -1, 349,
04946 350, 351, 352, -1, -1, -1, -1, 357, -1, -1,
04947 -1, 361, -1, -1, -1, -1, -1, -1, -1, -1,
04948 -1, 371, 372, -1, -1, -1, -1, 377, -1, 379,
04949 -1, 381, -1, -1, 384, 385, 4, -1, 6, 7,
04950 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
04951 18, 19, -1, 21, -1, -1, 24, 25, 26, -1,
04952 28, 29, -1, 31, -1, -1, -1, 35, 36, 37,
04953 38, 39, -1, 41, 42, -1, 44, 45, -1, 47,
04954 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
04955 58, -1, 60, 61, 62, -1, -1, 65, 66, 67,
04956 -1, 69, 70, 71, 72, 73, 74, 75, -1, -1,
04957 -1, -1, 80, 81, 82, -1, -1, 85, -1, -1,
04958 -1, -1, 90, 91, -1, -1, 94, -1, -1, 97,
04959 98, 99, -1, -1, 102, -1, 104, 105, -1, 107,
04960 108, -1, 110, -1, 112, 113, 114, 115, 116, 117,
04961 118, 119, 120, 121, 122, 123, -1, -1, -1, 127,
04962 128, 129, 130, -1, 132, -1, 134, 135, -1, 137,
04963 -1, -1, -1, 141, 142, 143, -1, 145, 146, -1,
04964 148, 149, -1, -1, -1, -1, -1, 155, 156, -1,
04965 -1, -1, -1, 161, -1, -1, -1, 165, -1, 167,
04966 168, -1, -1, 171, 172, -1, -1, -1, -1, -1,
04967 178, 179, -1, 181, 182, -1, -1, 185, 186, 187,
04968 188, 189, -1, -1, 192, 193, 194, -1, 196, 197,
04969 198, 199, 200, 201, -1, -1, 204, 205, 206, 207,
04970 208, 209, 210, 211, -1, 213, 214, -1, 216, 217,
04971 218, 219, -1, -1, -1, -1, -1, -1, -1, -1,
04972 228, 229, -1, 231, -1, 233, 234, 235, 236, -1,
04973 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247,
04974 248, 249, -1, -1, -1, 253, -1, -1, 256, 257,
04975 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
04976 -1, -1, 270, 271, 272, 273, -1, -1, 276, -1,
04977 278, 279, 280, -1, -1, -1, -1, -1, -1, -1,
04978 -1, -1, -1, 291, 292, 293, 294, 295, -1, -1,
04979 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
04980 -1, 309, -1, 311, 312, -1, 314, 315, 316, 317,
04981 -1, -1, 320, 321, 322, 323, 324, 325, 326, 327,
04982 -1, -1, -1, 331, -1, -1, -1, -1, 336, -1,
04983 -1, 339, 340, 341, 342, 343, -1, -1, 346, 347,
04984 -1, 349, 350, 351, 352, -1, -1, -1, -1, 357,
04985 -1, -1, -1, 361, -1, -1, -1, -1, -1, -1,
04986 -1, -1, -1, 371, 372, -1, -1, -1, -1, 377,
04987 -1, 379, -1, 381, -1, -1, 384, 385, 4, -1,
04988 6, 7, 8, -1, -1, -1, -1, 13, -1, -1,
04989 -1, 17, 18, 19, -1, 21, -1, -1, 24, 25,
04990 26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
04991 36, 37, 38, 39, -1, 41, 42, -1, 44, 45,
04992 -1, 47, 48, -1, 50, 51, 52, 53, 54, 55,
04993 -1, 57, 58, -1, 60, 61, 62, -1, -1, 65,
04994 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
04995 -1, -1, -1, -1, 80, 81, 82, -1, -1, 85,
04996 -1, -1, -1, -1, 90, 91, -1, -1, 94, -1,
04997 -1, 97, 98, 99, -1, -1, 102, -1, 104, 105,
04998 -1, 107, 108, -1, 110, -1, 112, 113, 114, 115,
04999 116, 117, 118, 119, 120, 121, 122, 123, -1, -1,
05000 -1, 127, 128, -1, 130, -1, 132, -1, 134, 135,
05001 -1, 137, -1, -1, -1, 141, 142, 143, -1, 145,
05002 146, -1, 148, 149, -1, -1, -1, -1, -1, 155,
05003 156, -1, -1, -1, -1, 161, -1, -1, -1, 165,
05004 -1, 167, 168, -1, -1, 171, 172, -1, -1, -1,
05005 -1, -1, 178, 179, -1, 181, 182, -1, -1, 185,
05006 186, 187, 188, 189, -1, -1, 192, 193, 194, -1,
05007 196, 197, 198, 199, 200, 201, -1, -1, 204, 205,
05008 206, 207, 208, 209, 210, 211, -1, 213, 214, -1,
05009 216, 217, 218, 219, -1, -1, -1, -1, -1, -1,
05010 -1, -1, 228, 229, -1, 231, -1, 233, 234, 235,
05011 236, -1, -1, -1, -1, -1, 242, -1, -1, -1,
05012 -1, 247, 248, 249, -1, -1, -1, 253, -1, -1,
05013 256, 257, 258, 259, 260, 261, 262, 263, -1, 265,
05014 266, -1, -1, -1, 270, 271, 272, 273, -1, -1,
05015 276, -1, 278, 279, 280, -1, -1, -1, -1, -1,
05016 -1, -1, -1, -1, -1, 291, 292, 293, 294, 295,
05017 -1, -1, 298, 299, 300, 301, 302, 303, 304, 305,
05018 306, -1, -1, 309, -1, 311, 312, -1, 314, 315,
05019 316, 317, -1, -1, 320, 321, 322, 323, 324, 325,
05020 326, 327, -1, -1, -1, 331, -1, -1, -1, -1,
05021 336, -1, -1, 339, 340, 341, 342, 343, -1, -1,
05022 346, 347, -1, 349, 350, 351, 352, -1, -1, -1,
05023 -1, 357, -1, -1, -1, 361, -1, -1, -1, -1,
05024 -1, -1, -1, -1, -1, 371, 372, -1, -1, -1,
05025 -1, 377, -1, 379, -1, 381, -1, -1, 384, 385,
05026 4, -1, 6, 7, 8, -1, -1, -1, -1, 13,
05027 -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
05028 24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
05029 -1, 35, 36, 37, 38, 39, -1, 41, 42, -1,
05030 44, 45, -1, 47, 48, -1, 50, 51, 52, 53,
05031 54, 55, -1, 57, 58, -1, 60, 61, 62, -1,
05032 -1, 65, 66, 67, -1, 69, 70, 71, 72, 73,
05033 74, 75, -1, -1, -1, -1, 80, 81, 82, -1,
05034 -1, 85, -1, -1, -1, -1, 90, 91, -1, -1,
05035 94, -1, -1, 97, 98, 99, -1, -1, 102, -1,
05036 104, 105, -1, 107, 108, -1, 110, -1, 112, 113,
05037 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
05038 -1, -1, -1, 127, 128, -1, 130, -1, 132, -1,
05039 134, 135, -1, 137, -1, -1, -1, 141, 142, 143,
05040 -1, 145, 146, -1, 148, 149, -1, -1, -1, -1,
05041 -1, 155, 156, -1, -1, -1, -1, 161, -1, -1,
05042 -1, 165, -1, 167, 168, -1, -1, 171, 172, -1,
05043 -1, -1, -1, -1, 178, 179, -1, 181, 182, -1,
05044 -1, 185, 186, 187, 188, 189, -1, -1, 192, 193,
05045 194, -1, 196, 197, 198, 199, 200, 201, -1, -1,
05046 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
05047 214, -1, 216, 217, 218, 219, -1, -1, -1, -1,
05048 -1, -1, -1, -1, 228, 229, -1, 231, -1, 233,
05049 234, 235, 236, -1, -1, -1, -1, -1, 242, -1,
05050 -1, -1, -1, 247, 248, 249, -1, -1, -1, 253,
05051 -1, -1, 256, 257, 258, 259, 260, 261, 262, 263,
05052 -1, 265, 266, -1, -1, -1, 270, 271, 272, 273,
05053 -1, -1, 276, -1, 278, 279, 280, -1, -1, -1,
05054 -1, -1, -1, -1, -1, -1, -1, 291, 292, 293,
05055 294, 295, -1, -1, 298, 299, 300, 301, 302, 303,
05056 304, 305, 306, -1, -1, 309, -1, 311, 312, -1,
05057 314, 315, 316, 317, -1, -1, 320, 321, 322, 323,
05058 324, 325, 326, 327, -1, -1, -1, 331, -1, -1,
05059 -1, -1, 336, -1, -1, 339, 340, 341, 342, 343,
05060 -1, -1, 346, 347, -1, 349, 350, 351, 352, -1,
05061 -1, -1, -1, 357, -1, -1, -1, 361, -1, -1,
05062 -1, -1, -1, -1, -1, -1, -1, 371, 372, -1,
05063 -1, -1, -1, 377, -1, 379, -1, 381, -1, -1,
05064 384, 385, 4, -1, 6, 7, 8, 9, -1, -1,
05065 -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
05066 -1, -1, 24, 25, 26, -1, 28, 29, -1, 31,
05067 -1, -1, -1, 35, 36, 37, 38, 39, -1, 41,
05068 42, -1, 44, 45, -1, 47, 48, -1, 50, 51,
05069 52, 53, 54, 55, -1, 57, 58, -1, 60, 61,
05070 62, -1, -1, 65, 66, 67, -1, 69, 70, 71,
05071 72, 73, 74, 75, -1, -1, -1, -1, 80, 81,
05072 82, -1, -1, 85, -1, -1, -1, -1, 90, 91,
05073 -1, -1, 94, -1, -1, 97, 98, 99, -1, -1,
05074 102, -1, 104, 105, -1, 107, 108, -1, 110, -1,
05075 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
05076 122, 123, -1, -1, -1, 127, 128, -1, 130, -1,
05077 132, -1, 134, 135, -1, 137, -1, -1, -1, 141,
05078 142, 143, -1, 145, 146, -1, 148, 149, -1, -1,
05079 -1, -1, -1, 155, 156, -1, -1, -1, -1, 161,
05080 -1, -1, -1, 165, -1, 167, 168, -1, -1, 171,
05081 172, -1, -1, -1, -1, -1, 178, 179, -1, 181,
05082 182, -1, -1, 185, 186, 187, 188, 189, -1, -1,
05083 192, 193, 194, -1, 196, 197, 198, 199, 200, 201,
05084 -1, -1, 204, 205, 206, -1, 208, 209, 210, 211,
05085 -1, 213, 214, -1, 216, 217, 218, 219, -1, -1,
05086 -1, -1, -1, -1, -1, -1, 228, 229, -1, 231,
05087 -1, 233, 234, 235, 236, -1, -1, -1, -1, -1,
05088 242, -1, -1, -1, -1, 247, 248, 249, -1, -1,
05089 -1, 253, -1, -1, 256, 257, 258, 259, 260, 261,
05090 262, 263, -1, 265, 266, -1, -1, -1, 270, 271,
05091 272, 273, -1, -1, 276, -1, 278, 279, 280, -1,
05092 -1, -1, -1, -1, -1, -1, -1, -1, -1, 291,
05093 292, 293, 294, 295, -1, -1, 298, 299, 300, 301,
05094 302, 303, 304, 305, 306, -1, -1, 309, -1, 311,
05095 312, -1, 314, 315, 316, 317, -1, -1, 320, 321,
05096 322, 323, 324, 325, 326, 327, -1, -1, -1, 331,
05097 -1, -1, -1, -1, 336, -1, -1, 339, 340, 341,
05098 342, 343, -1, -1, 346, 347, -1, 349, 350, 351,
05099 352, -1, -1, -1, -1, 357, -1, -1, -1, 361,
05100 -1, -1, -1, -1, -1, -1, -1, -1, -1, 371,
05101 372, -1, -1, -1, -1, 377, -1, 379, -1, 381,
05102 -1, -1, 384, 385, 4, -1, 6, 7, 8, -1,
05103 -1, -1, -1, 13, -1, -1, -1, 17, 18, 19,
05104 -1, 21, -1, -1, 24, 25, 26, -1, 28, 29,
05105 -1, 31, -1, -1, -1, 35, 36, 37, 38, 39,
05106 -1, 41, 42, -1, 44, 45, -1, 47, 48, -1,
05107 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
05108 60, 61, 62, -1, -1, 65, 66, 67, -1, 69,
05109 70, 71, 72, 73, 74, 75, -1, -1, -1, -1,
05110 80, 81, 82, -1, -1, 85, -1, -1, -1, -1,
05111 90, 91, -1, -1, 94, -1, -1, 97, 98, 99,
05112 -1, -1, 102, -1, 104, 105, -1, 107, 108, -1,
05113 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
05114 120, 121, 122, 123, -1, -1, -1, 127, 128, -1,
05115 130, -1, 132, -1, 134, 135, -1, 137, -1, -1,
05116 -1, 141, 142, 143, -1, 145, 146, -1, 148, 149,
05117 -1, -1, -1, -1, -1, 155, 156, -1, -1, -1,
05118 -1, 161, -1, -1, -1, 165, -1, 167, 168, -1,
05119 -1, 171, 172, -1, -1, -1, -1, -1, 178, 179,
05120 -1, 181, 182, -1, -1, 185, 186, 187, 188, 189,
05121 -1, -1, 192, 193, 194, -1, 196, 197, 198, 199,
05122 200, 201, -1, -1, 204, 205, 206, 207, 208, 209,
05123 210, 211, -1, 213, 214, -1, 216, 217, 218, 219,
05124 -1, -1, -1, -1, -1, -1, -1, -1, 228, 229,
05125 -1, 231, -1, 233, 234, 235, 236, -1, -1, -1,
05126 -1, -1, 242, -1, -1, -1, -1, 247, 248, 249,
05127 -1, -1, -1, 253, -1, -1, 256, 257, 258, 259,
05128 260, 261, 262, 263, -1, 265, 266, -1, -1, -1,
05129 270, 271, 272, 273, -1, -1, 276, -1, 278, 279,
05130 280, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05131 -1, 291, 292, 293, 294, 295, -1, -1, 298, 299,
05132 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
05133 -1, 311, 312, -1, 314, 315, 316, 317, -1, -1,
05134 320, 321, 322, 323, 324, 325, 326, 327, -1, -1,
05135 -1, 331, -1, -1, -1, -1, 336, -1, -1, 339,
05136 340, 341, 342, 343, -1, -1, 346, 347, -1, 349,
05137 350, 351, 352, -1, -1, -1, -1, 357, -1, -1,
05138 -1, 361, -1, -1, -1, -1, -1, -1, -1, -1,
05139 -1, 371, 372, -1, -1, -1, -1, 377, -1, 379,
05140 -1, 381, -1, -1, 384, 385, 4, -1, 6, 7,
05141 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
05142 18, 19, -1, 21, -1, -1, 24, 25, 26, -1,
05143 28, 29, -1, 31, -1, -1, -1, 35, 36, 37,
05144 38, 39, -1, 41, 42, -1, 44, 45, -1, 47,
05145 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
05146 58, -1, 60, 61, 62, -1, -1, 65, 66, 67,
05147 -1, 69, 70, 71, 72, 73, 74, 75, -1, -1,
05148 -1, -1, 80, 81, 82, -1, -1, 85, -1, -1,
05149 -1, -1, 90, 91, -1, -1, 94, -1, -1, 97,
05150 98, 99, -1, -1, 102, -1, 104, 105, -1, 107,
05151 108, -1, 110, -1, 112, 113, 114, 115, 116, 117,
05152 118, 119, 120, 121, 122, 123, -1, -1, -1, 127,
05153 128, -1, 130, -1, 132, -1, 134, 135, -1, 137,
05154 -1, -1, -1, 141, 142, 143, -1, 145, 146, -1,
05155 148, 149, -1, -1, -1, -1, -1, 155, 156, -1,
05156 -1, -1, -1, 161, -1, -1, -1, 165, -1, 167,
05157 168, -1, -1, 171, 172, -1, -1, -1, -1, -1,
05158 178, 179, -1, 181, 182, -1, -1, 185, 186, 187,
05159 188, 189, -1, -1, 192, 193, 194, -1, 196, 197,
05160 198, 199, 200, 201, -1, -1, 204, 205, 206, 207,
05161 208, 209, 210, 211, -1, 213, 214, -1, 216, 217,
05162 218, 219, -1, -1, -1, -1, -1, -1, -1, -1,
05163 228, 229, -1, 231, -1, 233, 234, 235, 236, -1,
05164 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247,
05165 248, 249, -1, -1, -1, 253, -1, -1, 256, 257,
05166 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
05167 -1, -1, 270, 271, 272, 273, -1, -1, 276, -1,
05168 278, 279, 280, -1, -1, -1, -1, -1, -1, -1,
05169 -1, -1, -1, 291, 292, 293, 294, 295, -1, -1,
05170 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
05171 -1, 309, -1, 311, 312, -1, 314, 315, 316, 317,
05172 -1, -1, 320, 321, 322, 323, 324, 325, 326, 327,
05173 -1, -1, -1, 331, -1, -1, -1, -1, 336, -1,
05174 -1, 339, 340, 341, 342, 343, -1, -1, 346, 347,
05175 -1, 349, 350, 351, 352, -1, -1, -1, -1, 357,
05176 -1, -1, -1, 361, -1, -1, -1, -1, -1, -1,
05177 -1, -1, -1, 371, 372, -1, -1, -1, -1, 377,
05178 -1, 379, -1, 381, -1, -1, 384, 385, 4, -1,
05179 6, 7, 8, -1, -1, -1, -1, 13, -1, -1,
05180 -1, 17, 18, 19, -1, 21, -1, -1, 24, 25,
05181 26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
05182 36, 37, 38, 39, -1, 41, 42, -1, 44, 45,
05183 -1, 47, 48, -1, 50, 51, 52, 53, 54, 55,
05184 -1, 57, 58, -1, 60, 61, 62, -1, -1, 65,
05185 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
05186 -1, -1, -1, -1, 80, 81, 82, -1, -1, 85,
05187 -1, -1, -1, -1, 90, 91, -1, -1, 94, -1,
05188 -1, 97, 98, 99, -1, -1, 102, -1, 104, 105,
05189 -1, 107, 108, -1, 110, -1, 112, 113, 114, 115,
05190 116, 117, 118, 119, 120, 121, 122, 123, -1, -1,
05191 -1, 127, 128, -1, 130, -1, 132, -1, 134, 135,
05192 -1, 137, -1, -1, -1, 141, 142, 143, -1, 145,
05193 146, -1, 148, 149, -1, -1, -1, -1, -1, 155,
05194 156, -1, -1, -1, -1, 161, -1, -1, -1, 165,
05195 -1, 167, 168, -1, -1, 171, 172, -1, -1, -1,
05196 -1, -1, 178, 179, -1, 181, 182, -1, -1, 185,
05197 186, 187, 188, 189, -1, -1, 192, 193, 194, -1,
05198 196, 197, 198, 199, 200, 201, -1, -1, 204, 205,
05199 206, 207, 208, 209, 210, 211, -1, 213, 214, -1,
05200 216, 217, 218, 219, -1, -1, -1, -1, -1, -1,
05201 -1, -1, 228, 229, -1, 231, -1, 233, 234, 235,
05202 236, -1, -1, -1, -1, -1, 242, -1, -1, -1,
05203 -1, 247, 248, 249, -1, -1, -1, 253, -1, -1,
05204 256, 257, 258, 259, 260, 261, 262, 263, -1, 265,
05205 266, -1, -1, -1, 270, 271, 272, 273, -1, -1,
05206 276, -1, 278, 279, 280, -1, -1, -1, -1, -1,
05207 -1, -1, -1, -1, -1, 291, 292, 293, 294, 295,
05208 -1, -1, 298, 299, 300, 301, 302, 303, 304, 305,
05209 306, -1, -1, 309, -1, 311, 312, -1, 314, 315,
05210 316, 317, -1, -1, 320, 321, 322, 323, 324, 325,
05211 326, 327, -1, -1, -1, 331, -1, -1, -1, -1,
05212 336, -1, -1, 339, 340, 341, 342, 343, -1, -1,
05213 346, 347, -1, 349, 350, 351, 352, -1, -1, -1,
05214 -1, 357, -1, -1, -1, 361, -1, -1, -1, -1,
05215 -1, -1, -1, -1, -1, 371, 372, -1, -1, -1,
05216 -1, 377, -1, 379, -1, 381, -1, -1, 384, 385,
05217 4, -1, 6, 7, 8, -1, -1, -1, -1, 13,
05218 -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
05219 24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
05220 -1, 35, 36, 37, 38, 39, -1, 41, 42, -1,
05221 44, 45, -1, 47, 48, -1, 50, 51, 52, 53,
05222 54, 55, -1, 57, 58, -1, 60, 61, 62, -1,
05223 -1, 65, 66, 67, -1, 69, 70, 71, 72, 73,
05224 74, 75, -1, -1, -1, -1, 80, 81, 82, -1,
05225 -1, 85, -1, -1, -1, -1, 90, 91, -1, -1,
05226 94, -1, -1, 97, 98, 99, -1, -1, 102, -1,
05227 104, 105, -1, 107, 108, -1, 110, -1, 112, 113,
05228 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
05229 -1, -1, -1, 127, 128, -1, 130, -1, 132, -1,
05230 134, 135, -1, 137, -1, -1, -1, 141, 142, 143,
05231 -1, 145, 146, -1, 148, 149, -1, -1, -1, -1,
05232 -1, 155, 156, -1, -1, -1, -1, 161, -1, -1,
05233 -1, 165, -1, 167, 168, -1, -1, 171, 172, -1,
05234 -1, -1, -1, -1, 178, 179, -1, 181, 182, -1,
05235 -1, 185, 186, 187, 188, 189, -1, -1, 192, 193,
05236 194, -1, 196, 197, 198, 199, 200, 201, -1, -1,
05237 204, 205, 206, -1, 208, 209, 210, 211, -1, 213,
05238 214, -1, 216, 217, 218, 219, -1, -1, -1, -1,
05239 -1, -1, -1, -1, 228, 229, -1, 231, -1, 233,
05240 234, 235, 236, -1, -1, -1, -1, -1, 242, -1,
05241 -1, -1, -1, 247, 248, 249, -1, -1, -1, 253,
05242 -1, -1, 256, 257, 258, 259, 260, 261, 262, 263,
05243 -1, 265, 266, -1, -1, -1, 270, 271, 272, 273,
05244 -1, -1, 276, -1, 278, 279, 280, -1, -1, -1,
05245 -1, -1, -1, -1, -1, -1, -1, 291, 292, 293,
05246 294, 295, -1, -1, 298, 299, 300, 301, 302, 303,
05247 304, 305, 306, -1, -1, 309, -1, 311, 312, -1,
05248 314, 315, 316, 317, -1, -1, 320, 321, 322, 323,
05249 324, 325, 326, 327, -1, -1, -1, 331, -1, -1,
05250 -1, -1, 336, -1, -1, 339, 340, 341, 342, 343,
05251 -1, -1, 346, 347, -1, 349, 350, 351, 352, -1,
05252 -1, -1, -1, 357, -1, -1, -1, 361, -1, -1,
05253 -1, -1, -1, -1, -1, -1, -1, 371, 372, -1,
05254 -1, -1, -1, 377, -1, 379, -1, 381, -1, -1,
05255 384, 385, 4, -1, 6, 7, 8, -1, -1, -1,
05256 -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
05257 -1, -1, 24, 25, 26, -1, 28, 29, -1, 31,
05258 -1, -1, -1, 35, 36, 37, 38, 39, -1, 41,
05259 42, -1, 44, 45, -1, 47, 48, -1, 50, 51,
05260 52, 53, 54, 55, -1, 57, 58, -1, 60, 61,
05261 62, -1, -1, 65, 66, 67, -1, 69, 70, 71,
05262 72, 73, 74, 75, -1, -1, -1, -1, 80, 81,
05263 82, -1, -1, 85, -1, -1, -1, -1, 90, 91,
05264 -1, -1, 94, -1, -1, 97, 98, 99, -1, -1,
05265 102, -1, 104, 105, -1, 107, 108, -1, 110, -1,
05266 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
05267 122, 123, -1, -1, -1, 127, 128, -1, 130, -1,
05268 132, -1, 134, 135, -1, 137, -1, -1, -1, 141,
05269 142, 143, -1, 145, 146, -1, 148, 149, -1, -1,
05270 -1, -1, -1, 155, 156, -1, -1, -1, -1, 161,
05271 -1, -1, -1, 165, -1, 167, 168, -1, -1, 171,
05272 172, -1, -1, -1, -1, -1, 178, 179, -1, 181,
05273 182, -1, -1, 185, 186, 187, 188, 189, -1, -1,
05274 192, 193, 194, -1, 196, 197, 198, 199, 200, 201,
05275 -1, -1, 204, 205, 206, -1, 208, 209, 210, 211,
05276 -1, 213, 214, -1, 216, 217, 218, 219, -1, -1,
05277 -1, -1, -1, -1, -1, -1, 228, 229, -1, 231,
05278 -1, 233, 234, 235, 236, -1, -1, -1, -1, -1,
05279 242, -1, -1, -1, -1, 247, 248, 249, -1, -1,
05280 -1, 253, -1, -1, 256, 257, 258, 259, 260, 261,
05281 262, 263, -1, 265, 266, -1, -1, -1, 270, 271,
05282 272, 273, -1, -1, 276, -1, 278, 279, 280, -1,
05283 -1, -1, -1, -1, -1, -1, -1, -1, -1, 291,
05284 292, 293, 294, 295, -1, -1, 298, 299, 300, 301,
05285 302, 303, 304, 305, 306, -1, -1, 309, -1, 311,
05286 312, -1, 314, 315, 316, 317, -1, -1, 320, 321,
05287 322, 323, 324, 325, 326, 327, -1, -1, -1, 331,
05288 -1, -1, -1, -1, 336, -1, -1, 339, 340, 341,
05289 342, 343, -1, -1, 346, 347, -1, 349, 350, 351,
05290 352, -1, -1, -1, -1, 357, -1, -1, -1, 361,
05291 -1, -1, -1, -1, -1, -1, -1, -1, -1, 371,
05292 372, -1, -1, -1, -1, 377, -1, 379, -1, 381,
05293 -1, -1, 384, 385, 4, -1, 6, 7, 8, -1,
05294 -1, -1, -1, 13, -1, -1, -1, 17, 18, 19,
05295 -1, 21, -1, -1, 24, 25, 26, -1, 28, 29,
05296 -1, 31, -1, -1, -1, 35, 36, 37, 38, 39,
05297 -1, 41, 42, -1, 44, 45, -1, 47, 48, -1,
05298 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
05299 60, 61, 62, -1, -1, 65, 66, 67, -1, 69,
05300 70, 71, 72, 73, 74, 75, -1, -1, -1, -1,
05301 80, 81, 82, -1, -1, 85, -1, -1, -1, -1,
05302 90, 91, -1, -1, 94, -1, -1, 97, 98, 99,
05303 -1, -1, 102, -1, 104, 105, -1, 107, 108, -1,
05304 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
05305 120, 121, 122, 123, -1, -1, -1, 127, 128, -1,
05306 130, -1, 132, -1, 134, 135, -1, 137, -1, -1,
05307 -1, 141, 142, 143, -1, 145, 146, -1, 148, 149,
05308 -1, -1, -1, -1, -1, 155, 156, -1, -1, -1,
05309 -1, 161, -1, -1, -1, 165, -1, 167, 168, -1,
05310 -1, 171, 172, -1, -1, -1, -1, -1, 178, 179,
05311 -1, 181, 182, -1, -1, 185, 186, 187, 188, 189,
05312 -1, -1, 192, 193, 194, -1, 196, 197, 198, 199,
05313 200, 201, -1, -1, 204, 205, 206, -1, 208, 209,
05314 210, 211, -1, 213, 214, -1, 216, 217, 218, 219,
05315 -1, -1, -1, -1, -1, -1, -1, -1, 228, 229,
05316 -1, 231, -1, 233, 234, 235, 236, -1, -1, -1,
05317 -1, -1, 242, -1, -1, -1, -1, 247, 248, 249,
05318 -1, -1, -1, 253, -1, -1, 256, 257, 258, 259,
05319 260, 261, 262, 263, -1, 265, 266, -1, -1, -1,
05320 270, 271, 272, 273, -1, -1, 276, -1, 278, 279,
05321 280, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05322 -1, 291, 292, 293, 294, 295, -1, -1, 298, 299,
05323 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
05324 -1, 311, 312, -1, 314, 315, 316, 317, -1, -1,
05325 320, 321, 322, 323, 324, 325, 326, 327, -1, -1,
05326 -1, 331, -1, -1, -1, -1, 336, -1, -1, 339,
05327 340, 341, 342, 343, -1, -1, 346, 347, -1, 349,
05328 350, 351, 352, -1, -1, -1, -1, 357, -1, -1,
05329 -1, 361, -1, -1, -1, -1, -1, -1, -1, -1,
05330 -1, 371, 372, -1, -1, -1, -1, 377, -1, 379,
05331 -1, 381, -1, -1, 384, 385, 4, -1, 6, 7,
05332 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
05333 18, 19, -1, 21, -1, -1, -1, -1, 26, -1,
05334 28, 29, -1, 31, -1, -1, -1, 35, -1, -1,
05335 -1, 39, -1, -1, 42, -1, 44, 45, -1, 47,
05336 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
05337 58, -1, 60, -1, -1, -1, -1, 65, -1, -1,
05338 -1, -1, 70, 71, 72, -1, -1, 75, -1, -1,
05339 -1, -1, 80, 81, -1, -1, -1, -1, -1, -1,
05340 -1, -1, 90, 91, -1, -1, 94, -1, -1, 97,
05341 98, 99, -1, -1, 102, -1, 104, 105, -1, 107,
05342 108, -1, 110, -1, 112, 113, -1, -1, 116, -1,
05343 -1, 119, 120, 121, -1, 123, -1, -1, -1, 127,
05344 128, -1, 130, -1, 132, -1, -1, 135, -1, -1,
05345 -1, -1, -1, 141, 142, 143, -1, 145, -1, -1,
05346 148, 149, -1, -1, -1, -1, -1, -1, -1, -1,
05347 -1, -1, -1, 161, -1, -1, -1, 165, -1, -1,
05348 168, -1, -1, -1, 172, -1, -1, -1, -1, -1,
05349 178, 179, -1, 181, -1, -1, -1, -1, 186, 187,
05350 188, 189, -1, -1, 192, -1, 194, -1, 196, -1,
05351 198, 199, 200, 201, -1, -1, 204, 205, 206, -1,
05352 -1, 209, -1, -1, -1, 213, 214, -1, 216, 217,
05353 218, 219, -1, -1, -1, -1, -1, -1, -1, -1,
05354 228, -1, -1, 231, -1, 233, 234, 235, 236, -1,
05355 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247,
05356 -1, -1, -1, -1, -1, 253, -1, -1, -1, 257,
05357 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
05358 -1, -1, 270, 271, 272, 273, -1, -1, 276, -1,
05359 278, 279, 280, -1, -1, -1, -1, -1, -1, -1,
05360 -1, -1, -1, 291, 292, -1, -1, 295, -1, -1,
05361 298, 299, 300, -1, -1, 303, -1, 305, 306, -1,
05362 -1, 309, -1, -1, 312, -1, 314, -1, 316, 317,
05363 -1, -1, 320, -1, -1, 323, 324, -1, 326, 327,
05364 -1, -1, -1, 331, -1, -1, -1, -1, 336, -1,
05365 -1, -1, -1, 341, -1, 343, -1, -1, 346, -1,
05366 -1, -1, -1, 351, 352, -1, -1, -1, -1, 357,
05367 -1, -1, -1, 361, -1, -1, 4, -1, 6, 7,
05368 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
05369 18, 19, 380, 21, -1, -1, 384, 385, 26, -1,
05370 28, 29, -1, 31, -1, -1, -1, 35, -1, -1,
05371 -1, 39, -1, -1, 42, -1, 44, 45, -1, 47,
05372 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
05373 58, -1, 60, -1, -1, -1, -1, 65, -1, -1,
05374 -1, -1, 70, 71, 72, -1, -1, 75, -1, -1,
05375 -1, -1, 80, 81, -1, -1, -1, -1, -1, -1,
05376 -1, -1, 90, 91, -1, -1, 94, -1, -1, 97,
05377 98, 99, -1, -1, 102, -1, 104, 105, -1, 107,
05378 108, -1, 110, -1, 112, 113, -1, -1, 116, -1,
05379 -1, 119, 120, 121, -1, 123, -1, -1, -1, 127,
05380 128, -1, 130, -1, 132, -1, -1, 135, -1, -1,
05381 -1, -1, -1, 141, 142, 143, -1, 145, -1, -1,
05382 148, 149, -1, -1, -1, -1, -1, -1, -1, -1,
05383 -1, -1, -1, 161, -1, -1, -1, 165, -1, -1,
05384 168, -1, -1, -1, 172, -1, -1, -1, -1, -1,
05385 178, 179, -1, 181, -1, -1, -1, -1, 186, 187,
05386 188, 189, -1, -1, 192, -1, 194, -1, 196, -1,
05387 198, 199, 200, 201, -1, -1, 204, 205, 206, -1,
05388 -1, 209, -1, -1, -1, 213, 214, -1, 216, 217,
05389 218, 219, -1, -1, -1, -1, -1, -1, -1, -1,
05390 228, -1, -1, 231, -1, 233, 234, 235, 236, -1,
05391 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247,
05392 -1, -1, -1, -1, -1, 253, -1, -1, -1, 257,
05393 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
05394 -1, -1, 270, 271, 272, 273, -1, -1, 276, -1,
05395 278, 279, 280, -1, -1, -1, -1, -1, -1, -1,
05396 -1, -1, -1, 291, 292, -1, -1, 295, -1, -1,
05397 298, 299, 300, -1, -1, 303, -1, 305, 306, -1,
05398 -1, 309, -1, -1, 312, -1, 314, -1, 316, 317,
05399 -1, -1, 320, -1, -1, 323, 324, -1, 326, 327,
05400 -1, -1, -1, 331, -1, -1, -1, -1, 336, -1,
05401 -1, -1, -1, 341, -1, 343, -1, -1, 346, -1,
05402 -1, -1, -1, 351, 352, -1, -1, -1, 4, 357,
05403 6, 7, 8, 361, -1, -1, -1, 13, -1, -1,
05404 -1, 17, 18, 19, -1, 21, -1, -1, -1, -1,
05405 26, -1, 28, 29, -1, 31, 384, 385, -1, 35,
05406 -1, -1, -1, 39, -1, -1, 42, -1, 44, 45,
05407 -1, 47, 48, -1, 50, 51, 52, 53, 54, 55,
05408 -1, 57, 58, 59, 60, -1, -1, -1, -1, 65,
05409 -1, -1, -1, -1, 70, 71, 72, -1, -1, 75,
05410 -1, -1, -1, -1, 80, 81, -1, -1, -1, -1,
05411 -1, -1, -1, -1, 90, 91, -1, -1, 94, -1,
05412 -1, 97, 98, 99, -1, -1, 102, -1, 104, 105,
05413 -1, 107, 108, -1, 110, -1, 112, 113, -1, -1,
05414 116, -1, -1, 119, 120, 121, -1, 123, -1, -1,
05415 -1, 127, 128, -1, 130, -1, 132, -1, -1, 135,
05416 -1, -1, -1, -1, -1, 141, 142, 143, -1, 145,
05417 -1, -1, 148, 149, 150, -1, -1, -1, -1, -1,
05418 -1, -1, -1, -1, -1, 161, -1, -1, -1, 165,
05419 166, -1, 168, -1, -1, -1, 172, -1, 174, -1,
05420 -1, -1, 178, 179, -1, 181, -1, -1, -1, -1,
05421 186, 187, 188, 189, -1, -1, 192, -1, 194, -1,
05422 196, -1, 198, 199, 200, 201, -1, -1, 204, 205,
05423 206, -1, -1, 209, -1, -1, -1, 213, 214, -1,
05424 216, 217, 218, 219, -1, -1, -1, -1, -1, -1,
05425 -1, -1, 228, -1, -1, 231, -1, 233, 234, 235,
05426 236, -1, -1, -1, -1, -1, 242, -1, -1, -1,
05427 -1, 247, -1, -1, -1, -1, -1, 253, -1, -1,
05428 -1, 257, 258, 259, 260, 261, 262, 263, -1, 265,
05429 266, 267, -1, -1, 270, 271, 272, 273, -1, -1,
05430 276, -1, 278, 279, 280, -1, -1, -1, -1, -1,
05431 -1, -1, -1, -1, -1, 291, 292, -1, -1, 295,
05432 -1, -1, 298, 299, 300, -1, -1, 303, -1, 305,
05433 306, -1, -1, 309, -1, -1, 312, -1, 314, -1,
05434 316, 317, -1, -1, 320, -1, -1, 323, 324, -1,
05435 326, 327, -1, -1, -1, 331, -1, -1, -1, -1,
05436 336, -1, -1, -1, -1, 341, -1, 343, -1, 4,
05437 346, 6, 7, 8, -1, 351, 352, -1, 13, -1,
05438 -1, 357, 17, 18, 19, 361, 21, -1, -1, -1,
05439 -1, 26, -1, 28, 29, -1, 31, -1, -1, -1,
05440 35, -1, -1, -1, 39, -1, -1, 42, 384, 44,
05441 45, -1, 47, 48, -1, 50, 51, 52, 53, 54,
05442 55, -1, 57, 58, 59, 60, -1, -1, -1, -1,
05443 65, -1, -1, -1, -1, 70, 71, 72, -1, -1,
05444 75, -1, -1, -1, -1, 80, 81, -1, -1, -1,
05445 -1, -1, -1, -1, -1, 90, 91, -1, -1, 94,
05446 -1, -1, 97, 98, 99, -1, -1, 102, -1, 104,
05447 105, -1, 107, 108, -1, 110, -1, 112, 113, -1,
05448 -1, 116, -1, -1, 119, 120, 121, -1, 123, -1,
05449 -1, -1, 127, 128, -1, 130, -1, 132, -1, -1,
05450 135, -1, -1, -1, -1, -1, 141, 142, 143, -1,
05451 145, -1, -1, 148, 149, 150, -1, -1, -1, -1,
05452 -1, -1, -1, -1, -1, -1, 161, -1, -1, -1,
05453 165, 166, -1, 168, -1, -1, -1, 172, -1, -1,
05454 -1, -1, -1, 178, 179, -1, 181, -1, -1, -1,
05455 -1, 186, 187, 188, 189, -1, -1, 192, -1, 194,
05456 -1, 196, -1, 198, 199, 200, 201, -1, -1, 204,
05457 205, 206, -1, -1, 209, -1, -1, -1, 213, 214,
05458 -1, 216, 217, 218, 219, -1, -1, -1, -1, -1,
05459 -1, -1, -1, 228, -1, -1, 231, -1, 233, 234,
05460 235, 236, -1, -1, -1, -1, -1, 242, -1, -1,
05461 -1, -1, 247, -1, -1, -1, -1, -1, 253, -1,
05462 -1, -1, 257, 258, 259, 260, 261, 262, 263, -1,
05463 265, 266, -1, -1, -1, 270, 271, 272, 273, -1,
05464 -1, 276, -1, 278, 279, 280, -1, -1, -1, -1,
05465 -1, -1, -1, -1, -1, -1, 291, 292, -1, -1,
05466 295, -1, -1, 298, 299, 300, -1, -1, 303, -1,
05467 305, 306, -1, -1, 309, -1, -1, 312, -1, 314,
05468 -1, 316, 317, -1, -1, 320, -1, -1, 323, 324,
05469 -1, 326, 327, -1, -1, -1, 331, -1, -1, -1,
05470 -1, 336, -1, -1, -1, -1, 341, -1, 343, -1,
05471 4, 346, 6, 7, 8, -1, 351, 352, -1, 13,
05472 -1, -1, 357, 17, 18, 19, 361, 21, -1, -1,
05473 -1, -1, 26, -1, 28, 29, -1, 31, -1, -1,
05474 -1, 35, -1, -1, -1, 39, -1, -1, 42, 384,
05475 44, 45, -1, 47, 48, -1, 50, 51, 52, 53,
05476 54, 55, -1, 57, 58, -1, 60, -1, -1, -1,
05477 -1, 65, -1, -1, -1, -1, 70, 71, 72, -1,
05478 -1, 75, -1, -1, -1, -1, 80, 81, -1, -1,
05479 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
05480 94, -1, -1, 97, 98, 99, -1, -1, 102, -1,
05481 104, 105, -1, 107, 108, -1, 110, -1, 112, 113,
05482 -1, -1, 116, -1, -1, 119, 120, 121, -1, 123,
05483 -1, -1, -1, 127, 128, -1, 130, -1, 132, -1,
05484 -1, 135, -1, -1, -1, -1, -1, 141, 142, 143,
05485 -1, 145, -1, -1, 148, 149, -1, -1, -1, -1,
05486 -1, -1, -1, -1, -1, -1, -1, 161, -1, -1,
05487 -1, 165, -1, -1, 168, -1, -1, -1, 172, -1,
05488 -1, -1, -1, -1, 178, 179, -1, 181, -1, -1,
05489 -1, -1, 186, 187, 188, 189, -1, -1, 192, -1,
05490 194, -1, 196, -1, 198, 199, 200, 201, -1, -1,
05491 204, 205, 206, -1, -1, 209, -1, -1, -1, 213,
05492 214, -1, 216, 217, 218, 219, -1, -1, -1, -1,
05493 -1, -1, -1, -1, 228, -1, -1, 231, -1, 233,
05494 234, 235, 236, -1, -1, -1, -1, -1, 242, -1,
05495 -1, -1, -1, 247, -1, -1, -1, -1, -1, 253,
05496 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
05497 -1, 265, 266, 267, -1, -1, 270, 271, 272, 273,
05498 -1, -1, 276, -1, 278, 279, 280, -1, -1, -1,
05499 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1,
05500 -1, 295, -1, -1, 298, 299, 300, -1, -1, 303,
05501 -1, 305, 306, -1, -1, 309, -1, -1, 312, -1,
05502 314, -1, 316, 317, -1, -1, 320, -1, -1, 323,
05503 324, -1, 326, 327, -1, -1, -1, 331, -1, -1,
05504 -1, -1, 336, -1, -1, -1, -1, 341, -1, 343,
05505 -1, -1, 346, -1, -1, -1, -1, 351, 352, -1,
05506 -1, -1, -1, 357, -1, -1, -1, 361, -1, -1,
05507 4, -1, 6, 7, 8, -1, -1, -1, -1, 13,
05508 -1, -1, -1, 17, 18, 19, 380, 21, -1, -1,
05509 384, -1, 26, -1, 28, 29, -1, 31, -1, -1,
05510 -1, 35, -1, -1, -1, 39, -1, -1, 42, -1,
05511 44, 45, -1, 47, 48, -1, 50, 51, 52, 53,
05512 54, 55, -1, 57, 58, -1, 60, -1, -1, -1,
05513 -1, 65, -1, -1, -1, -1, 70, 71, 72, -1,
05514 -1, 75, -1, -1, -1, -1, 80, 81, -1, -1,
05515 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
05516 94, -1, -1, 97, 98, 99, -1, -1, 102, -1,
05517 104, 105, -1, 107, 108, -1, 110, -1, 112, 113,
05518 -1, -1, 116, -1, -1, 119, 120, 121, -1, 123,
05519 -1, -1, -1, 127, 128, -1, 130, -1, 132, -1,
05520 -1, 135, -1, -1, -1, -1, -1, 141, 142, 143,
05521 -1, 145, -1, -1, 148, 149, -1, -1, -1, -1,
05522 -1, -1, -1, 157, -1, -1, -1, 161, -1, -1,
05523 -1, 165, -1, -1, 168, -1, -1, -1, 172, -1,
05524 -1, -1, -1, -1, 178, 179, -1, 181, -1, -1,
05525 -1, -1, 186, 187, 188, 189, -1, -1, 192, -1,
05526 194, -1, 196, -1, 198, 199, 200, 201, -1, -1,
05527 204, 205, 206, -1, -1, 209, -1, -1, -1, 213,
05528 214, -1, 216, 217, 218, 219, -1, -1, -1, -1,
05529 -1, -1, -1, -1, 228, -1, -1, 231, -1, 233,
05530 234, 235, 236, -1, -1, -1, -1, -1, 242, -1,
05531 -1, -1, -1, 247, -1, -1, -1, -1, -1, 253,
05532 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
05533 -1, 265, 266, -1, -1, -1, 270, 271, 272, 273,
05534 -1, -1, 276, -1, 278, 279, 280, -1, -1, -1,
05535 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1,
05536 -1, 295, -1, -1, 298, 299, 300, -1, -1, 303,
05537 -1, 305, 306, -1, -1, 309, -1, -1, 312, -1,
05538 314, -1, 316, 317, -1, -1, 320, -1, -1, 323,
05539 324, -1, 326, 327, -1, -1, -1, 331, -1, -1,
05540 -1, -1, 336, -1, -1, -1, -1, 341, -1, 343,
05541 -1, 4, 346, 6, 7, 8, -1, 351, 352, -1,
05542 13, -1, -1, 357, 17, 18, 19, 361, 21, -1,
05543 -1, -1, -1, 26, -1, 28, 29, -1, 31, -1,
05544 -1, -1, 35, -1, -1, -1, 39, -1, -1, 42,
05545 384, 44, 45, -1, 47, 48, -1, 50, 51, 52,
05546 53, 54, 55, -1, 57, 58, -1, 60, -1, -1,
05547 -1, -1, 65, -1, -1, -1, -1, 70, 71, 72,
05548 -1, -1, 75, -1, -1, -1, -1, 80, 81, -1,
05549 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
05550 -1, 94, -1, -1, 97, 98, 99, -1, -1, 102,
05551 -1, 104, 105, -1, 107, 108, -1, 110, -1, 112,
05552 113, -1, -1, 116, -1, -1, 119, 120, 121, -1,
05553 123, -1, -1, -1, 127, 128, -1, 130, -1, 132,
05554 -1, -1, 135, -1, -1, -1, -1, -1, 141, 142,
05555 143, -1, 145, -1, -1, 148, 149, -1, -1, -1,
05556 -1, -1, -1, -1, -1, -1, -1, -1, 161, -1,
05557 -1, -1, 165, -1, -1, 168, -1, -1, -1, 172,
05558 -1, -1, -1, -1, -1, 178, 179, -1, 181, -1,
05559 -1, -1, -1, 186, 187, 188, 189, -1, -1, 192,
05560 -1, 194, -1, 196, -1, 198, 199, 200, 201, -1,
05561 -1, 204, 205, 206, -1, -1, 209, -1, -1, -1,
05562 213, 214, -1, 216, 217, 218, 219, -1, -1, -1,
05563 -1, -1, -1, -1, -1, 228, -1, -1, 231, -1,
05564 233, 234, 235, 236, -1, -1, -1, -1, -1, 242,
05565 -1, -1, -1, -1, 247, -1, -1, -1, -1, -1,
05566 253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
05567 263, -1, 265, 266, -1, -1, -1, 270, 271, 272,
05568 273, -1, -1, 276, -1, 278, 279, 280, -1, -1,
05569 -1, -1, -1, -1, -1, -1, -1, -1, 291, 292,
05570 -1, -1, 295, -1, -1, 298, 299, 300, -1, -1,
05571 303, -1, 305, 306, -1, -1, 309, -1, -1, 312,
05572 -1, 314, -1, 316, 317, -1, -1, 320, -1, -1,
05573 323, 324, -1, 326, 327, -1, -1, -1, 331, -1,
05574 -1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
05575 343, -1, 4, 346, 6, 7, 8, -1, 351, 352,
05576 -1, 13, -1, -1, 357, 17, 18, 19, 361, 21,
05577 -1, -1, -1, -1, 26, -1, 28, 29, -1, 31,
05578 -1, -1, -1, 35, -1, -1, 379, 39, -1, -1,
05579 42, 384, 44, 45, -1, 47, 48, -1, 50, 51,
05580 52, 53, 54, 55, -1, 57, 58, -1, 60, -1,
05581 -1, -1, -1, 65, -1, -1, -1, -1, 70, 71,
05582 72, -1, -1, 75, -1, -1, -1, -1, 80, 81,
05583 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
05584 -1, -1, 94, -1, -1, 97, 98, 99, -1, -1,
05585 102, -1, 104, 105, -1, 107, 108, -1, 110, -1,
05586 112, 113, -1, -1, 116, -1, -1, 119, 120, 121,
05587 -1, 123, -1, -1, -1, 127, 128, -1, 130, -1,
05588 132, -1, -1, 135, -1, -1, -1, -1, -1, 141,
05589 142, 143, -1, 145, -1, -1, 148, 149, -1, -1,
05590 -1, -1, -1, -1, -1, -1, -1, -1, -1, 161,
05591 -1, -1, -1, 165, -1, -1, 168, -1, -1, -1,
05592 172, -1, -1, -1, -1, -1, 178, 179, -1, 181,
05593 -1, -1, -1, -1, 186, 187, 188, 189, -1, -1,
05594 192, -1, 194, -1, 196, -1, 198, 199, 200, 201,
05595 -1, -1, 204, 205, 206, -1, -1, 209, -1, -1,
05596 -1, 213, 214, -1, 216, 217, 218, 219, -1, -1,
05597 -1, -1, -1, -1, -1, -1, 228, -1, -1, 231,
05598 -1, 233, 234, 235, 236, -1, -1, -1, -1, -1,
05599 242, -1, -1, -1, -1, 247, -1, -1, -1, -1,
05600 -1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
05601 262, 263, -1, 265, 266, -1, -1, -1, 270, 271,
05602 272, 273, -1, -1, 276, -1, 278, 279, 280, -1,
05603 -1, -1, -1, -1, -1, -1, -1, -1, -1, 291,
05604 292, -1, -1, 295, -1, -1, 298, 299, 300, -1,
05605 -1, 303, -1, 305, 306, -1, -1, 309, -1, -1,
05606 312, -1, 314, -1, 316, 317, -1, -1, 320, -1,
05607 -1, 323, 324, -1, 326, 327, -1, -1, -1, 331,
05608 -1, -1, -1, -1, 336, -1, -1, -1, -1, 341,
05609 -1, 343, -1, 4, 346, 6, 7, 8, -1, 351,
05610 352, -1, 13, -1, -1, 357, 17, 18, 19, 361,
05611 21, -1, -1, -1, -1, 26, -1, 28, 29, -1,
05612 31, -1, -1, -1, 35, -1, -1, -1, 39, -1,
05613 -1, 42, 384, 44, 45, -1, 47, 48, -1, 50,
05614 51, 52, 53, 54, 55, -1, 57, 58, -1, 60,
05615 -1, -1, -1, -1, 65, -1, -1, -1, -1, 70,
05616 71, 72, -1, -1, 75, -1, -1, -1, -1, 80,
05617 81, -1, -1, -1, -1, -1, -1, -1, -1, 90,
05618 91, -1, -1, 94, -1, -1, 97, 98, 99, -1,
05619 -1, 102, -1, 104, 105, -1, 107, 108, -1, 110,
05620 -1, 112, 113, -1, -1, 116, -1, -1, 119, 120,
05621 121, -1, 123, -1, -1, -1, 127, 128, -1, 130,
05622 -1, 132, -1, -1, 135, -1, -1, -1, -1, -1,
05623 141, 142, 143, -1, 145, -1, -1, 148, 149, -1,
05624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05625 161, -1, -1, -1, 165, -1, -1, 168, -1, -1,
05626 -1, 172, -1, -1, -1, -1, -1, 178, 179, -1,
05627 181, -1, -1, -1, -1, 186, 187, 188, 189, -1,
05628 -1, 192, -1, 194, -1, 196, -1, 198, 199, 200,
05629 201, -1, -1, 204, 205, 206, -1, -1, 209, -1,
05630 -1, -1, 213, 214, -1, 216, 217, 218, 219, -1,
05631 -1, -1, -1, -1, -1, -1, -1, 228, -1, -1,
05632 231, -1, 233, 234, 235, 236, -1, -1, -1, -1,
05633 -1, 242, -1, -1, -1, -1, 247, -1, -1, -1,
05634 -1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
05635 261, 262, 263, -1, 265, 266, -1, -1, -1, 270,
05636 271, 272, 273, -1, -1, 276, -1, 278, 279, 280,
05637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05638 291, 292, -1, -1, 295, -1, -1, 298, 299, 300,
05639 -1, -1, 303, -1, 305, 306, -1, -1, 309, -1,
05640 -1, 312, -1, 314, -1, 316, 317, -1, -1, 320,
05641 -1, -1, 323, 324, -1, 326, 327, -1, -1, -1,
05642 331, -1, -1, -1, -1, 336, -1, -1, -1, -1,
05643 341, -1, 343, -1, 4, 346, 6, 7, 8, -1,
05644 351, 352, -1, 13, -1, -1, 357, 17, 18, 19,
05645 361, 21, -1, -1, -1, -1, 26, -1, 28, 29,
05646 -1, 31, -1, -1, -1, 35, -1, -1, -1, 39,
05647 -1, -1, 42, 384, 44, 45, -1, 47, 48, -1,
05648 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
05649 60, -1, -1, -1, -1, 65, -1, -1, -1, -1,
05650 70, 71, 72, -1, -1, 75, -1, -1, -1, -1,
05651 80, 81, -1, -1, -1, -1, -1, -1, -1, -1,
05652 90, 91, -1, -1, 94, -1, -1, 97, 98, 99,
05653 -1, -1, 102, -1, 104, 105, -1, 107, 108, -1,
05654 110, -1, 112, 113, -1, -1, 116, -1, -1, 119,
05655 120, 121, -1, 123, -1, -1, -1, 127, 128, -1,
05656 130, -1, 132, -1, -1, 135, -1, -1, -1, -1,
05657 -1, 141, 142, 143, -1, 145, -1, -1, 148, 149,
05658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05659 -1, 161, -1, -1, -1, 165, -1, -1, 168, -1,
05660 -1, -1, 172, -1, -1, -1, -1, -1, 178, 179,
05661 -1, 181, -1, -1, -1, -1, 186, 187, 188, 189,
05662 -1, -1, 192, -1, 194, -1, 196, -1, 198, 199,
05663 200, 201, -1, -1, 204, 205, 206, -1, -1, 209,
05664 -1, -1, -1, 213, 214, -1, 216, 217, 218, 219,
05665 -1, -1, -1, -1, -1, -1, -1, -1, 228, -1,
05666 -1, 231, -1, 233, 234, 235, 236, -1, -1, -1,
05667 -1, -1, 242, -1, -1, -1, -1, 247, -1, -1,
05668 -1, -1, -1, 253, -1, -1, -1, 257, 258, 259,
05669 260, 261, 262, 263, -1, 265, 266, -1, -1, -1,
05670 270, 271, 272, 273, -1, -1, 276, -1, 278, 279,
05671 280, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05672 -1, 291, 292, -1, -1, 295, -1, -1, 298, 299,
05673 300, -1, -1, 303, -1, 305, 306, -1, -1, 309,
05674 -1, -1, 312, -1, 314, -1, 316, 317, -1, -1,
05675 320, -1, -1, 323, 324, -1, 326, 327, -1, -1,
05676 -1, 331, -1, -1, -1, -1, 336, -1, -1, -1,
05677 -1, 341, -1, 343, -1, 4, 346, 6, 7, 8,
05678 -1, 351, 352, -1, 13, -1, -1, 357, 17, 18,
05679 19, 361, 21, -1, -1, -1, -1, 26, -1, 28,
05680 29, -1, 31, -1, -1, -1, 35, -1, -1, -1,
05681 39, -1, -1, 42, 384, 44, 45, -1, 47, 48,
05682 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
05683 -1, 60, -1, -1, -1, -1, 65, -1, -1, -1,
05684 -1, 70, 71, 72, -1, -1, 75, -1, -1, -1,
05685 -1, 80, 81, -1, -1, -1, -1, -1, -1, -1,
05686 -1, 90, 91, -1, -1, 94, -1, -1, 97, 98,
05687 99, -1, -1, 102, -1, 104, 105, -1, 107, 108,
05688 -1, 110, -1, 112, 113, -1, -1, 116, -1, -1,
05689 119, 120, 121, -1, 123, -1, -1, -1, 127, 128,
05690 -1, 130, -1, 132, -1, -1, 135, -1, -1, -1,
05691 -1, -1, 141, 142, 143, -1, 145, -1, -1, 148,
05692 149, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05693 -1, -1, 161, -1, -1, -1, 165, -1, -1, 168,
05694 -1, -1, -1, 172, -1, -1, -1, -1, -1, 178,
05695 179, -1, 181, -1, -1, -1, -1, 186, 187, 188,
05696 189, -1, -1, 192, -1, 194, -1, 196, -1, 198,
05697 199, 200, 201, -1, -1, 204, 205, 206, -1, -1,
05698 209, -1, -1, -1, 213, 214, -1, 216, 217, 218,
05699 219, -1, -1, -1, -1, -1, -1, -1, -1, 228,
05700 -1, -1, 231, -1, 233, 234, 235, 236, -1, -1,
05701 -1, -1, -1, 242, -1, -1, -1, -1, 247, -1,
05702 -1, -1, -1, -1, 253, -1, -1, -1, 257, 258,
05703 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
05704 -1, 270, 271, 272, 273, -1, -1, 276, -1, 278,
05705 279, 280, -1, -1, -1, -1, -1, -1, -1, -1,
05706 -1, -1, 291, 292, -1, -1, 295, -1, -1, 298,
05707 299, 300, -1, -1, 303, -1, 305, 306, -1, -1,
05708 309, -1, -1, 312, -1, 314, -1, 316, 317, -1,
05709 -1, 320, -1, -1, 323, 324, -1, 326, 327, -1,
05710 -1, -1, 331, -1, -1, -1, -1, 336, -1, -1,
05711 -1, -1, 341, -1, 343, -1, 4, 346, 6, 7,
05712 8, -1, 351, 352, -1, 13, -1, -1, 357, 17,
05713 18, 19, 361, 21, -1, -1, -1, -1, 26, -1,
05714 28, 29, -1, 31, -1, -1, -1, 35, -1, -1,
05715 -1, 39, -1, -1, 42, 384, 44, 45, -1, 47,
05716 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
05717 58, -1, 60, -1, -1, -1, -1, 65, -1, -1,
05718 -1, -1, 70, 71, 72, -1, -1, 75, -1, -1,
05719 -1, -1, 80, 81, -1, -1, -1, -1, -1, -1,
05720 -1, -1, 90, 91, -1, -1, 94, -1, -1, 97,
05721 98, 99, -1, -1, 102, -1, 104, 105, -1, 107,
05722 108, -1, 110, -1, 112, 113, -1, -1, 116, -1,
05723 -1, 119, 120, 121, -1, 123, -1, -1, -1, 127,
05724 128, -1, 130, -1, 132, -1, -1, 135, -1, -1,
05725 -1, -1, -1, 141, 142, 143, -1, 145, -1, -1,
05726 148, 149, -1, -1, -1, -1, -1, -1, -1, -1,
05727 -1, -1, -1, 161, -1, -1, -1, 165, -1, -1,
05728 168, -1, -1, -1, 172, -1, -1, -1, -1, -1,
05729 178, 179, -1, 181, -1, -1, -1, -1, 186, 187,
05730 188, 189, -1, -1, 192, -1, 194, -1, 196, -1,
05731 198, 199, 200, 201, -1, -1, 204, 205, 206, -1,
05732 -1, 209, -1, -1, -1, 213, 214, -1, 216, 217,
05733 218, 219, -1, -1, -1, -1, -1, -1, -1, -1,
05734 228, -1, -1, 231, -1, 233, 234, 235, 236, -1,
05735 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247,
05736 -1, -1, -1, -1, -1, 253, -1, -1, -1, 257,
05737 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
05738 -1, -1, 270, 271, 272, 273, -1, -1, 276, -1,
05739 278, 279, 280, -1, -1, -1, -1, -1, -1, -1,
05740 -1, -1, -1, 291, 292, -1, -1, 295, -1, -1,
05741 298, 299, 300, -1, -1, 303, -1, 305, 306, -1,
05742 -1, 309, -1, -1, 312, -1, 314, -1, 316, 317,
05743 -1, -1, 320, -1, -1, 323, 324, -1, 326, 327,
05744 -1, -1, -1, 331, -1, -1, -1, -1, 336, -1,
05745 -1, -1, -1, 341, -1, 343, -1, 4, 346, 6,
05746 7, 8, -1, 351, 352, -1, 13, -1, -1, 357,
05747 17, 18, 19, 361, 21, -1, -1, -1, -1, 26,
05748 -1, 28, 29, -1, 31, 373, -1, -1, 35, -1,
05749 -1, -1, 39, -1, -1, 42, -1, 44, 45, -1,
05750 47, 48, -1, 50, 51, 52, 53, 54, 55, -1,
05751 57, 58, -1, 60, -1, -1, -1, -1, 65, -1,
05752 -1, -1, -1, 70, 71, 72, -1, -1, 75, -1,
05753 -1, -1, -1, 80, 81, -1, -1, -1, -1, -1,
05754 -1, -1, -1, 90, 91, -1, -1, 94, -1, -1,
05755 97, 98, 99, -1, -1, 102, -1, 104, 105, -1,
05756 107, 108, -1, 110, -1, 112, 113, -1, -1, 116,
05757 -1, -1, 119, 120, 121, -1, 123, -1, -1, -1,
05758 127, 128, -1, 130, -1, 132, -1, -1, 135, -1,
05759 -1, -1, -1, -1, 141, 142, 143, -1, 145, -1,
05760 -1, 148, 149, -1, -1, -1, -1, -1, -1, -1,
05761 -1, -1, -1, -1, 161, -1, -1, -1, 165, -1,
05762 -1, 168, -1, -1, -1, 172, -1, -1, -1, -1,
05763 -1, 178, 179, -1, 181, -1, -1, -1, -1, 186,
05764 187, 188, 189, -1, -1, 192, -1, 194, -1, 196,
05765 -1, 198, 199, 200, 201, -1, -1, 204, 205, 206,
05766 -1, -1, 209, -1, -1, -1, 213, 214, -1, 216,
05767 217, 218, 219, -1, -1, -1, -1, -1, -1, -1,
05768 -1, 228, -1, -1, 231, -1, 233, 234, 235, 236,
05769 -1, -1, -1, -1, -1, 242, -1, -1, -1, -1,
05770 247, -1, -1, -1, -1, -1, 253, -1, -1, -1,
05771 257, 258, 259, 260, 261, 262, 263, -1, 265, 266,
05772 -1, -1, -1, 270, 271, 272, 273, -1, -1, 276,
05773 -1, 278, 279, 280, -1, -1, -1, -1, -1, -1,
05774 -1, -1, -1, -1, 291, 292, -1, -1, 295, -1,
05775 -1, 298, 299, 300, -1, -1, 303, -1, 305, 306,
05776 -1, -1, 309, -1, -1, 312, -1, 314, -1, 316,
05777 317, -1, -1, 320, -1, -1, 323, 324, -1, 326,
05778 327, -1, -1, -1, 331, -1, -1, -1, -1, 336,
05779 -1, -1, -1, -1, 341, -1, 343, -1, 4, 346,
05780 6, 7, 8, -1, 351, 352, -1, 13, -1, -1,
05781 357, 17, 18, 19, 361, 21, -1, -1, -1, 25,
05782 26, -1, 28, 29, -1, 31, 373, -1, -1, 35,
05783 -1, -1, -1, 39, -1, -1, 42, -1, 44, 45,
05784 -1, 47, 48, -1, 50, 51, 52, 53, 54, 55,
05785 -1, 57, 58, -1, 60, -1, -1, -1, -1, 65,
05786 -1, -1, -1, -1, 70, 71, 72, -1, -1, 75,
05787 -1, -1, -1, -1, 80, 81, -1, -1, -1, -1,
05788 -1, -1, -1, -1, 90, 91, -1, -1, 94, -1,
05789 -1, 97, 98, 99, -1, -1, 102, -1, 104, 105,
05790 -1, 107, 108, -1, 110, -1, 112, 113, -1, -1,
05791 116, -1, -1, 119, 120, 121, -1, 123, -1, -1,
05792 -1, 127, 128, -1, 130, -1, 132, -1, -1, 135,
05793 -1, 137, -1, -1, -1, 141, 142, 143, -1, 145,
05794 -1, -1, 148, 149, -1, -1, -1, -1, -1, -1,
05795 -1, -1, -1, -1, -1, 161, -1, -1, -1, 165,
05796 -1, -1, 168, -1, -1, -1, 172, -1, -1, -1,
05797 -1, -1, 178, 179, -1, 181, -1, -1, -1, -1,
05798 186, 187, 188, 189, -1, -1, 192, -1, 194, -1,
05799 196, -1, 198, 199, 200, 201, -1, -1, 204, 205,
05800 206, -1, -1, 209, -1, -1, -1, 213, 214, -1,
05801 216, 217, 218, 219, -1, -1, -1, -1, -1, -1,
05802 -1, -1, 228, -1, -1, 231, -1, 233, 234, 235,
05803 236, -1, -1, -1, -1, -1, 242, -1, -1, -1,
05804 -1, 247, -1, -1, -1, -1, -1, 253, -1, -1,
05805 -1, 257, 258, 259, 260, 261, 262, 263, -1, 265,
05806 266, -1, -1, -1, 270, 271, 272, 273, -1, -1,
05807 276, -1, 278, 279, 280, -1, -1, -1, -1, -1,
05808 -1, -1, -1, -1, -1, 291, 292, -1, -1, 295,
05809 -1, -1, 298, 299, 300, -1, -1, 303, -1, 305,
05810 306, -1, -1, 309, -1, 311, 312, -1, 314, -1,
05811 316, 317, -1, -1, 320, -1, -1, 323, 324, -1,
05812 326, 327, -1, -1, -1, 331, -1, -1, -1, -1,
05813 336, -1, -1, -1, -1, 341, -1, 343, -1, 4,
05814 346, 6, 7, 8, -1, 351, 352, -1, 13, 14,
05815 -1, 357, 17, 18, 19, 361, 21, -1, -1, -1,
05816 -1, 26, -1, 28, 29, -1, 31, -1, -1, -1,
05817 35, -1, -1, -1, 39, -1, -1, 42, -1, 44,
05818 45, -1, 47, 48, -1, 50, 51, 52, 53, 54,
05819 55, -1, 57, 58, -1, 60, -1, -1, -1, -1,
05820 65, -1, -1, -1, -1, 70, 71, 72, -1, -1,
05821 75, -1, -1, -1, -1, 80, 81, -1, -1, -1,
05822 -1, -1, -1, -1, -1, 90, 91, -1, -1, 94,
05823 -1, -1, 97, 98, 99, -1, -1, 102, -1, 104,
05824 105, -1, 107, 108, -1, 110, -1, 112, 113, -1,
05825 -1, 116, -1, -1, 119, 120, 121, -1, 123, -1,
05826 -1, -1, 127, 128, -1, 130, -1, 132, -1, -1,
05827 135, -1, -1, -1, -1, -1, 141, 142, 143, -1,
05828 145, -1, -1, 148, 149, -1, -1, -1, -1, -1,
05829 -1, -1, -1, -1, -1, -1, 161, -1, -1, -1,
05830 165, -1, -1, 168, -1, -1, -1, 172, -1, -1,
05831 -1, -1, -1, 178, 179, -1, 181, -1, -1, -1,
05832 -1, 186, 187, 188, 189, -1, -1, 192, -1, 194,
05833 -1, 196, -1, 198, 199, 200, 201, -1, -1, 204,
05834 205, 206, -1, -1, 209, -1, -1, -1, 213, 214,
05835 -1, 216, 217, 218, 219, -1, -1, -1, -1, -1,
05836 -1, -1, -1, 228, -1, -1, 231, -1, 233, 234,
05837 235, 236, -1, -1, -1, -1, -1, 242, -1, -1,
05838 -1, -1, 247, -1, -1, -1, -1, -1, 253, -1,
05839 -1, -1, 257, 258, 259, 260, 261, 262, 263, -1,
05840 265, 266, -1, -1, -1, 270, 271, 272, 273, -1,
05841 -1, 276, -1, 278, 279, 280, -1, -1, -1, -1,
05842 -1, -1, -1, -1, -1, -1, 291, 292, -1, -1,
05843 295, -1, -1, 298, 299, 300, -1, -1, 303, -1,
05844 305, 306, -1, -1, 309, -1, 311, 312, -1, 314,
05845 -1, 316, 317, -1, -1, 320, -1, -1, 323, 324,
05846 -1, 326, 327, -1, -1, -1, 331, -1, -1, -1,
05847 -1, 336, -1, -1, -1, -1, 341, -1, 343, -1,
05848 4, 346, 6, 7, 8, -1, 351, 352, -1, 13,
05849 -1, -1, 357, 17, 18, 19, 361, 21, -1, -1,
05850 -1, -1, 26, -1, 28, 29, -1, 31, -1, -1,
05851 -1, 35, -1, -1, -1, 39, -1, -1, 42, -1,
05852 44, 45, -1, 47, 48, -1, 50, 51, 52, 53,
05853 54, 55, -1, 57, 58, -1, 60, -1, -1, -1,
05854 -1, 65, -1, -1, -1, -1, 70, 71, 72, -1,
05855 -1, 75, -1, -1, -1, -1, 80, 81, -1, -1,
05856 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
05857 94, -1, -1, 97, 98, 99, -1, -1, 102, -1,
05858 104, 105, -1, 107, 108, -1, 110, -1, 112, 113,
05859 -1, -1, 116, -1, -1, 119, 120, 121, -1, 123,
05860 -1, -1, -1, 127, 128, -1, 130, -1, 132, -1,
05861 -1, 135, -1, -1, -1, -1, -1, 141, 142, 143,
05862 -1, 145, -1, -1, 148, 149, -1, -1, -1, -1,
05863 -1, -1, -1, -1, -1, -1, -1, 161, -1, -1,
05864 -1, 165, -1, -1, 168, -1, -1, -1, 172, -1,
05865 -1, -1, -1, -1, 178, 179, -1, 181, -1, -1,
05866 -1, -1, 186, 187, 188, 189, -1, -1, 192, -1,
05867 194, -1, 196, -1, 198, 199, 200, 201, -1, -1,
05868 204, 205, 206, -1, -1, 209, -1, -1, -1, 213,
05869 214, -1, 216, 217, 218, 219, -1, -1, -1, -1,
05870 -1, -1, -1, -1, 228, -1, -1, 231, -1, 233,
05871 234, 235, 236, -1, -1, -1, -1, -1, 242, -1,
05872 -1, -1, -1, 247, -1, -1, -1, -1, -1, 253,
05873 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
05874 -1, 265, 266, -1, -1, -1, 270, 271, 272, 273,
05875 -1, -1, 276, -1, 278, 279, 280, -1, -1, -1,
05876 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1,
05877 -1, 295, -1, -1, 298, 299, 300, -1, -1, 303,
05878 -1, 305, 306, -1, -1, 309, -1, 311, 312, -1,
05879 314, -1, 316, 317, -1, -1, 320, -1, -1, 323,
05880 324, -1, 326, 327, -1, -1, -1, 331, -1, -1,
05881 -1, -1, 336, -1, -1, -1, -1, 341, -1, 343,
05882 -1, 4, 346, 6, 7, 8, -1, 351, 352, -1,
05883 13, -1, -1, 357, 17, 18, 19, 361, 21, -1,
05884 -1, -1, -1, 26, -1, 28, 29, -1, 31, -1,
05885 -1, -1, 35, -1, -1, -1, 39, -1, -1, 42,
05886 -1, 44, 45, -1, 47, 48, -1, 50, 51, 52,
05887 53, 54, 55, -1, 57, 58, -1, 60, -1, -1,
05888 -1, -1, 65, -1, -1, -1, -1, 70, 71, 72,
05889 -1, -1, 75, -1, -1, -1, -1, 80, 81, -1,
05890 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
05891 -1, 94, -1, -1, 97, 98, 99, -1, -1, 102,
05892 -1, 104, 105, -1, 107, 108, -1, 110, -1, 112,
05893 113, -1, -1, 116, -1, -1, 119, 120, 121, -1,
05894 123, -1, -1, -1, 127, 128, -1, 130, -1, 132,
05895 -1, -1, 135, -1, -1, -1, -1, -1, 141, 142,
05896 143, -1, 145, -1, -1, 148, 149, -1, -1, -1,
05897 -1, -1, -1, -1, -1, -1, -1, -1, 161, -1,
05898 -1, -1, 165, -1, -1, 168, -1, -1, -1, 172,
05899 -1, -1, -1, -1, -1, 178, 179, -1, 181, -1,
05900 -1, -1, -1, 186, 187, 188, 189, -1, -1, 192,
05901 -1, 194, -1, 196, -1, 198, 199, 200, 201, -1,
05902 -1, 204, 205, 206, -1, -1, 209, -1, -1, -1,
05903 213, 214, -1, 216, 217, 218, 219, -1, -1, -1,
05904 -1, -1, -1, -1, -1, 228, -1, -1, 231, 232,
05905 233, 234, 235, 236, -1, -1, -1, -1, -1, 242,
05906 -1, -1, -1, -1, 247, -1, -1, -1, -1, -1,
05907 253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
05908 263, -1, 265, 266, -1, -1, -1, 270, 271, 272,
05909 273, -1, -1, 276, -1, 278, 279, 280, -1, -1,
05910 -1, -1, -1, -1, -1, -1, -1, -1, 291, 292,
05911 -1, -1, 295, -1, -1, 298, 299, 300, -1, -1,
05912 303, -1, 305, 306, -1, -1, 309, -1, -1, 312,
05913 -1, 314, -1, 316, 317, -1, -1, 320, -1, -1,
05914 323, 324, -1, 326, 327, -1, -1, -1, 331, -1,
05915 -1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
05916 343, -1, 4, 346, 6, 7, 8, -1, 351, 352,
05917 -1, 13, -1, -1, 357, 17, 18, 19, 361, 21,
05918 -1, -1, -1, -1, 26, -1, 28, 29, -1, 31,
05919 -1, -1, -1, 35, -1, -1, -1, 39, -1, -1,
05920 42, -1, 44, 45, -1, 47, 48, -1, 50, 51,
05921 52, 53, 54, 55, -1, 57, 58, -1, 60, -1,
05922 -1, -1, -1, 65, -1, -1, -1, -1, 70, 71,
05923 72, -1, -1, 75, -1, -1, -1, -1, 80, 81,
05924 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
05925 -1, -1, 94, -1, -1, 97, 98, 99, -1, -1,
05926 102, -1, 104, 105, -1, 107, 108, -1, 110, -1,
05927 112, 113, -1, -1, 116, -1, -1, 119, 120, 121,
05928 -1, 123, -1, -1, -1, 127, 128, -1, 130, -1,
05929 132, -1, -1, 135, -1, -1, -1, -1, -1, 141,
05930 142, 143, -1, 145, -1, -1, 148, 149, -1, -1,
05931 -1, -1, -1, -1, -1, -1, -1, -1, -1, 161,
05932 -1, -1, -1, 165, -1, -1, 168, -1, -1, -1,
05933 172, -1, -1, -1, -1, -1, 178, 179, -1, 181,
05934 -1, -1, -1, -1, 186, 187, 188, 189, -1, -1,
05935 192, -1, 194, -1, 196, -1, 198, 199, 200, 201,
05936 -1, -1, 204, 205, 206, -1, -1, 209, -1, -1,
05937 -1, 213, 214, -1, 216, 217, 218, 219, -1, -1,
05938 -1, -1, -1, -1, -1, -1, 228, -1, -1, 231,
05939 -1, 233, 234, 235, 236, -1, -1, -1, -1, -1,
05940 242, -1, -1, -1, -1, 247, -1, -1, -1, -1,
05941 -1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
05942 262, 263, -1, 265, 266, -1, -1, -1, 270, 271,
05943 272, 273, -1, -1, 276, -1, 278, 279, 280, -1,
05944 -1, -1, -1, -1, -1, -1, -1, -1, -1, 291,
05945 292, -1, -1, 295, -1, -1, 298, 299, 300, -1,
05946 -1, 303, -1, 305, 306, -1, -1, 309, -1, -1,
05947 312, -1, 314, -1, 316, 317, -1, -1, 320, -1,
05948 -1, 323, 324, -1, 326, 327, -1, -1, -1, 331,
05949 -1, -1, -1, -1, 336, -1, -1, -1, -1, 341,
05950 -1, 343, -1, -1, 346, -1, -1, -1, -1, 351,
05951 352, -1, -1, -1, -1, 357, -1, -1, -1, 361
05952 };
05953
05954
05955
05956 static const yytype_uint16 yystos[] =
05957 {
05958 0, 10, 11, 21, 43, 52, 63, 86, 87, 88,
05959 96, 106, 114, 123, 155, 167, 177, 245, 246, 249,
05960 257, 263, 267, 274, 277, 291, 323, 332, 334, 337,
05961 379, 387, 388, 389, 390, 483, 498, 500, 502, 504,
05962 508, 509, 645, 651, 656, 659, 682, 688, 691, 693,
05963 699, 702, 705, 711, 713, 714, 762, 781, 783, 789,
05964 790, 791, 792, 69, 213, 218, 487, 305, 308, 780,
05965 784, 780, 357, 785, 38, 69, 309, 407, 487, 147,
05966 690, 38, 69, 309, 487, 650, 142, 144, 145, 173,
05967 286, 311, 315, 385, 652, 752, 753, 759, 775, 776,
05968 706, 657, 57, 236, 712, 71, 719, 263, 780, 660,
05969 785, 752, 793, 512, 514, 515, 221, 764, 694, 320,
05970 308, 692, 782, 147, 495, 4, 6, 7, 8, 13,
05971 17, 18, 19, 21, 26, 28, 29, 31, 35, 39,
05972 42, 44, 45, 47, 48, 50, 51, 52, 53, 54,
05973 55, 57, 58, 60, 65, 70, 71, 72, 75, 80,
05974 81, 90, 91, 94, 97, 98, 99, 102, 104, 105,
05975 107, 108, 110, 112, 113, 116, 119, 120, 121, 123,
05976 127, 128, 130, 132, 135, 141, 143, 148, 149, 161,
05977 165, 168, 172, 178, 179, 181, 186, 187, 188, 189,
05978 192, 194, 196, 198, 199, 200, 201, 204, 205, 206,
05979 209, 213, 214, 216, 217, 218, 219, 228, 231, 233,
05980 234, 235, 236, 242, 247, 253, 257, 258, 259, 260,
05981 261, 262, 263, 265, 266, 270, 271, 272, 273, 276,
05982 278, 279, 280, 291, 292, 295, 298, 299, 300, 303,
05983 305, 306, 309, 312, 314, 316, 317, 320, 323, 324,
05984 326, 327, 331, 336, 341, 343, 346, 351, 352, 357,
05985 361, 750, 752, 756, 760, 761, 267, 379, 510, 0,
05986 106, 116, 384, 703, 749, 750, 756, 750, 495, 501,
05987 785, 503, 12, 786, 751, 756, 146, 408, 308, 392,
05988 129, 751, 146, 649, 150, 780, 775, 355, 653, 132,
05989 181, 292, 305, 707, 708, 780, 495, 6, 19, 24,
05990 25, 36, 37, 38, 41, 45, 47, 61, 62, 66,
05991 67, 69, 73, 74, 75, 80, 82, 85, 114, 115,
05992 117, 118, 122, 134, 137, 141, 146, 155, 156, 167,
05993 171, 182, 185, 189, 192, 193, 197, 198, 207, 208,
05994 210, 211, 229, 235, 248, 249, 256, 262, 265, 293,
05995 294, 299, 301, 302, 304, 311, 315, 316, 317, 321,
05996 322, 323, 325, 336, 339, 340, 341, 342, 347, 349,
05997 350, 361, 371, 372, 377, 379, 381, 384, 385, 531,
05998 532, 533, 534, 537, 538, 539, 540, 541, 546, 550,
05999 735, 738, 742, 746, 747, 752, 754, 756, 715, 793,
06000 505, 157, 648, 662, 663, 749, 318, 786, 513, 9,
06001 92, 285, 286, 287, 288, 297, 519, 520, 521, 522,
06002 523, 763, 48, 62, 63, 70, 110, 132, 149, 150,
06003 164, 178, 234, 272, 305, 308, 309, 351, 469, 695,
06004 752, 753, 758, 770, 355, 499, 648, 780, 749, 514,
06005 510, 380, 756, 701, 700, 384, 485, 308, 647, 648,
06006 647, 39, 209, 209, 245, 787, 207, 750, 408, 330,
06007 470, 749, 115, 750, 756, 649, 209, 55, 654, 292,
06008 355, 383, 709, 662, 379, 379, 537, 531, 560, 379,
06009 379, 379, 379, 379, 379, 379, 379, 530, 530, 379,
06010 379, 379, 379, 735, 379, 379, 379, 379, 379, 379,
06011 379, 379, 379, 379, 531, 712, 379, 379, 379, 379,
06012 379, 379, 379, 531, 379, 530, 379, 379, 379, 379,
06013 379, 379, 379, 379, 379, 379, 379, 379, 379, 530,
06014 379, 735, 379, 379, 379, 379, 379, 530, 530, 379,
06015 379, 379, 379, 379, 379, 537, 537, 537, 531, 805,
06016 806, 756, 756, 551, 12, 224, 359, 109, 131, 160,
06017 169, 203, 363, 364, 365, 535, 22, 93, 159, 174,
06018 197, 207, 243, 367, 368, 369, 370, 371, 372, 373,
06019 374, 375, 376, 46, 366, 754, 379, 384, 55, 720,
06020 506, 507, 749, 663, 661, 263, 788, 787, 329, 794,
06021 795, 373, 525, 526, 527, 523, 765, 766, 767, 129,
06022 159, 697, 379, 69, 308, 174, 354, 698, 175, 629,
06023 631, 696, 697, 292, 305, 629, 697, 292, 292, 346,
06024 58, 274, 380, 795, 797, 798, 799, 508, 25, 137,
06025 704, 736, 754, 756, 756, 85, 415, 457, 749, 383,
06026 39, 245, 115, 393, 749, 150, 689, 215, 647, 254,
06027 350, 655, 239, 708, 647, 710, 658, 531, 9, 92,
06028 556, 612, 353, 562, 531, 380, 531, 559, 559, 531,
06029 531, 92, 556, 612, 380, 380, 531, 531, 531, 531,
06030 746, 531, 805, 76, 77, 78, 79, 80, 138, 139,
06031 140, 141, 189, 190, 191, 192, 198, 235, 264, 265,
06032 352, 360, 361, 607, 609, 92, 553, 531, 531, 531,
06033 531, 607, 379, 531, 92, 556, 531, 531, 92, 556,
06034 531, 531, 531, 534, 531, 531, 531, 531, 531, 531,
06035 556, 556, 531, 531, 92, 556, 531, 531, 128, 608,
06036 609, 608, 30, 170, 319, 531, 531, 380, 380, 746,
06037 556, 556, 531, 531, 380, 383, 380, 267, 379, 802,
06038 803, 531, 384, 385, 552, 775, 531, 531, 531, 533,
06039 118, 207, 210, 322, 331, 9, 13, 533, 536, 534,
06040 534, 379, 537, 534, 22, 159, 174, 243, 534, 534,
06041 534, 534, 534, 156, 534, 156, 534, 534, 534, 534,
06042 534, 752, 753, 757, 537, 542, 756, 151, 383, 318,
06043 267, 274, 342, 343, 379, 401, 664, 667, 793, 9,
06044 92, 801, 383, 516, 531, 744, 756, 383, 132, 178,
06045 216, 272, 768, 769, 772, 773, 749, 373, 408, 749,
06046 753, 531, 182, 211, 325, 632, 633, 698, 756, 696,
06047 698, 749, 698, 698, 280, 684, 685, 746, 223, 625,
06048 631, 800, 46, 484, 648, 250, 404, 405, 406, 415,
06049 757, 391, 756, 354, 613, 749, 180, 664, 383, 556,
06050 380, 557, 531, 101, 353, 561, 14, 380, 383, 380,
06051 380, 383, 547, 380, 373, 383, 383, 380, 380, 380,
06052 380, 380, 129, 549, 380, 383, 383, 383, 372, 531,
06053 383, 556, 380, 380, 380, 556, 380, 383, 380, 380,
06054 159, 380, 383, 383, 383, 383, 380, 380, 380, 383,
06055 129, 383, 556, 380, 380, 380, 383, 383, 129, 531,
06056 129, 531, 129, 531, 129, 380, 383, 380, 380, 380,
06057 380, 383, 380, 559, 581, 582, 583, 267, 379, 511,
06058 329, 807, 382, 756, 132, 178, 272, 771, 275, 118,
06059 210, 322, 331, 379, 12, 531, 805, 112, 617, 534,
06060 379, 537, 534, 531, 531, 527, 543, 544, 545, 384,
06061 311, 755, 507, 749, 402, 665, 379, 670, 675, 670,
06062 380, 401, 666, 743, 744, 746, 668, 796, 526, 129,
06063 157, 517, 518, 624, 625, 641, 528, 528, 384, 766,
06064 320, 776, 777, 385, 774, 696, 380, 756, 214, 383,
06065 698, 696, 383, 683, 275, 363, 673, 32, 629, 673,
06066 674, 5, 10, 18, 40, 50, 61, 90, 91, 96,
06067 102, 107, 119, 124, 148, 196, 223, 246, 250, 261,
06068 410, 412, 413, 414, 457, 486, 488, 489, 490, 621,
06069 757, 674, 383, 673, 174, 379, 394, 399, 409, 411,
06070 412, 471, 472, 614, 624, 646, 215, 680, 156, 531,
06071 380, 531, 313, 531, 531, 104, 24, 28, 41, 72,
06072 75, 83, 158, 278, 314, 333, 558, 531, 558, 559,
06073 380, 156, 156, 655, 531, 559, 531, 531, 531, 531,
06074 380, 531, 380, 380, 531, 531, 531, 531, 531, 559,
06075 156, 531, 531, 531, 380, 531, 531, 531, 129, 531,
06076 129, 531, 129, 531, 531, 531, 380, 519, 582, 511,
06077 380, 801, 384, 384, 384, 775, 531, 805, 533, 380,
06078 383, 380, 537, 12, 531, 805, 617, 607, 607, 531,
06079 380, 383, 756, 716, 519, 671, 672, 746, 676, 383,
06080 379, 667, 380, 380, 383, 794, 509, 267, 379, 381,
06081 563, 564, 565, 566, 567, 576, 577, 591, 642, 126,
06082 180, 524, 641, 630, 631, 518, 14, 529, 753, 756,
06083 373, 756, 161, 673, 385, 775, 698, 110, 351, 633,
06084 633, 613, 685, 613, 85, 531, 679, 626, 85, 455,
06085 456, 757, 49, 59, 150, 166, 422, 425, 426, 465,
06086 467, 494, 494, 674, 494, 674, 318, 164, 306, 125,
06087 232, 467, 494, 164, 673, 673, 306, 494, 32, 14,
06088 318, 497, 674, 673, 410, 46, 383, 379, 384, 421,
06089 427, 748, 756, 673, 118, 322, 405, 82, 122, 182,
06090 211, 325, 636, 757, 749, 399, 400, 401, 419, 420,
06091 421, 422, 409, 14, 147, 249, 396, 722, 383, 411,
06092 338, 475, 215, 531, 175, 634, 98, 531, 380, 531,
06093 313, 379, 436, 436, 379, 434, 435, 158, 158, 380,
06094 380, 548, 531, 531, 380, 555, 625, 383, 383, 380,
06095 383, 380, 380, 380, 380, 383, 380, 380, 531, 380,
06096 126, 380, 380, 383, 383, 383, 380, 531, 380, 531,
06097 380, 531, 380, 380, 380, 525, 380, 804, 384, 481,
06098 380, 559, 533, 380, 383, 380, 528, 545, 147, 249,
06099 721, 525, 383, 673, 677, 678, 679, 675, 669, 667,
06100 743, 590, 756, 64, 152, 163, 171, 202, 256, 297,
06101 575, 613, 383, 749, 590, 97, 226, 637, 638, 643,
06102 334, 159, 753, 756, 384, 172, 9, 24, 85, 215,
06103 531, 779, 771, 673, 624, 531, 627, 745, 480, 748,
06104 43, 125, 232, 330, 424, 466, 423, 424, 480, 748,
06105 636, 748, 753, 456, 166, 166, 748, 748, 757, 753,
06106 748, 622, 623, 746, 749, 118, 322, 53, 54, 85,
06107 99, 121, 242, 416, 417, 674, 490, 419, 756, 7,
06108 120, 496, 244, 423, 459, 428, 384, 636, 758, 380,
06109 380, 380, 383, 14, 14, 379, 400, 411, 31, 135,
06110 477, 749, 633, 681, 607, 531, 211, 211, 380, 607,
06111 607, 269, 554, 531, 531, 559, 531, 607, 531, 531,
06112 531, 531, 380, 380, 380, 584, 802, 756, 380, 559,
06113 529, 157, 403, 672, 679, 380, 383, 797, 578, 585,
06114 590, 563, 163, 163, 225, 592, 163, 171, 256, 592,
06115 576, 563, 133, 618, 565, 14, 610, 611, 587, 588,
06116 755, 755, 385, 639, 640, 276, 373, 239, 247, 270,
06117 778, 777, 531, 634, 383, 15, 87, 628, 531, 166,
06118 166, 467, 468, 480, 472, 96, 274, 491, 480, 492,
06119 383, 628, 456, 380, 756, 749, 23, 27, 28, 41,
06120 72, 75, 83, 95, 108, 121, 158, 212, 241, 271,
06121 312, 314, 315, 341, 344, 345, 429, 431, 432, 433,
06122 756, 409, 395, 409, 420, 400, 397, 379, 166, 380,
06123 380, 380, 383, 380, 380, 736, 380, 380, 383, 380,
06124 380, 380, 380, 380, 380, 380, 418, 518, 630, 380,
06125 717, 418, 679, 329, 380, 624, 586, 382, 163, 576,
06126 592, 592, 163, 215, 215, 338, 32, 136, 615, 756,
06127 601, 602, 519, 644, 775, 383, 194, 51, 326, 239,
06128 673, 745, 480, 472, 379, 85, 85, 427, 429, 623,
06129 379, 460, 379, 438, 443, 444, 46, 85, 207, 210,
06130 232, 330, 348, 441, 442, 445, 446, 447, 458, 85,
06131 215, 441, 442, 451, 452, 453, 443, 434, 230, 379,
06132 435, 440, 430, 434, 438, 434, 440, 445, 443, 379,
06133 451, 443, 379, 50, 454, 379, 18, 85, 271, 441,
06134 442, 448, 449, 450, 448, 384, 797, 396, 380, 794,
06135 478, 479, 756, 334, 211, 531, 524, 524, 308, 801,
06136 611, 630, 566, 563, 576, 163, 163, 563, 576, 569,
06137 568, 570, 619, 745, 616, 624, 599, 600, 525, 48,
06138 723, 640, 779, 628, 379, 379, 478, 75, 315, 371,
06139 372, 737, 738, 496, 454, 461, 756, 184, 462, 211,
06140 278, 333, 437, 85, 441, 442, 85, 441, 442, 455,
06141 737, 210, 166, 447, 166, 75, 208, 210, 315, 735,
06142 741, 742, 334, 453, 448, 440, 211, 379, 448, 437,
06143 448, 211, 211, 753, 211, 25, 137, 210, 371, 372,
06144 735, 739, 742, 85, 450, 756, 398, 380, 383, 628,
06145 379, 686, 687, 746, 380, 380, 749, 579, 215, 572,
06146 576, 576, 215, 574, 531, 531, 379, 356, 383, 620,
06147 628, 531, 630, 124, 147, 337, 594, 595, 598, 589,
06148 103, 111, 222, 310, 724, 725, 176, 726, 478, 478,
06149 380, 742, 742, 493, 380, 383, 130, 228, 279, 215,
06150 463, 380, 362, 439, 737, 118, 210, 322, 740, 735,
06151 530, 735, 208, 380, 482, 736, 439, 380, 380, 380,
06152 742, 742, 343, 797, 50, 165, 473, 474, 475, 476,
06153 479, 211, 383, 673, 718, 802, 571, 338, 573, 338,
06154 606, 756, 745, 467, 467, 595, 418, 32, 32, 103,
06155 32, 725, 290, 310, 727, 728, 380, 380, 473, 496,
06156 756, 86, 334, 530, 380, 383, 451, 443, 445, 753,
06157 674, 476, 628, 380, 687, 679, 723, 580, 531, 379,
06158 531, 379, 380, 383, 628, 126, 593, 593, 736, 736,
06159 32, 736, 32, 32, 728, 459, 473, 34, 209, 252,
06160 274, 464, 464, 445, 736, 82, 122, 137, 182, 211,
06161 325, 635, 726, 624, 606, 606, 756, 133, 163, 223,
06162 597, 596, 736, 736, 736, 4, 85, 210, 215, 215,
06163 147, 729, 630, 380, 380, 32, 32, 379, 379, 334,
06164 86, 211, 379, 731, 232, 603, 604, 605, 756, 605,
06165 464, 464, 176, 260, 730, 380, 385, 732, 733, 746,
06166 274, 734, 380, 383, 380, 775, 380, 383, 686, 604,
06167 733
06168 };
06169
06170 #define yyerrok (yyerrstatus = 0)
06171 #define yyclearin (yychar = YYEMPTY)
06172 #define YYEMPTY (-2)
06173 #define YYEOF 0
06174
06175 #define YYACCEPT goto yyacceptlab
06176 #define YYABORT goto yyabortlab
06177 #define YYERROR goto yyerrorlab
06178
06179
06180
06181
06182
06183
06184 #define YYFAIL goto yyerrlab
06185
06186 #define YYRECOVERING() (!!yyerrstatus)
06187
06188 #define YYBACKUP(Token, Value) \
06189 do \
06190 if (yychar == YYEMPTY && yylen == 1) \
06191 { \
06192 yychar = (Token); \
06193 yylval = (Value); \
06194 yytoken = YYTRANSLATE (yychar); \
06195 YYPOPSTACK (1); \
06196 goto yybackup; \
06197 } \
06198 else \
06199 { \
06200 yyerror (session, YY_("syntax error: cannot back up")); \
06201 YYERROR; \
06202 } \
06203 while (YYID (0))
06204
06205
06206 #define YYTERROR 1
06207 #define YYERRCODE 256
06208
06209
06210
06211
06212
06213
06214 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
06215 #ifndef YYLLOC_DEFAULT
06216 # define YYLLOC_DEFAULT(Current, Rhs, N) \
06217 do \
06218 if (YYID (N)) \
06219 { \
06220 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
06221 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
06222 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
06223 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
06224 } \
06225 else \
06226 { \
06227 (Current).first_line = (Current).last_line = \
06228 YYRHSLOC (Rhs, 0).last_line; \
06229 (Current).first_column = (Current).last_column = \
06230 YYRHSLOC (Rhs, 0).last_column; \
06231 } \
06232 while (YYID (0))
06233 #endif
06234
06235
06236
06237
06238
06239
06240 #ifndef YY_LOCATION_PRINT
06241 # if YYLTYPE_IS_TRIVIAL
06242 # define YY_LOCATION_PRINT(File, Loc) \
06243 fprintf (File, "%d.%d-%d.%d", \
06244 (Loc).first_line, (Loc).first_column, \
06245 (Loc).last_line, (Loc).last_column)
06246 # else
06247 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
06248 # endif
06249 #endif
06250
06251
06252
06253
06254 #ifdef YYLEX_PARAM
06255 # define YYLEX yylex (&yylval, YYLEX_PARAM)
06256 #else
06257 # define YYLEX yylex (&yylval, session)
06258 #endif
06259
06260
06261 #if YYDEBUG
06262
06263 # ifndef YYFPRINTF
06264 # include <stdio.h>
06265 # define YYFPRINTF fprintf
06266 # endif
06267
06268 # define YYDPRINTF(Args) \
06269 do { \
06270 if (yydebug) \
06271 YYFPRINTF Args; \
06272 } while (YYID (0))
06273
06274 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
06275 do { \
06276 if (yydebug) \
06277 { \
06278 YYFPRINTF (stderr, "%s ", Title); \
06279 yy_symbol_print (stderr, \
06280 Type, Value, session); \
06281 YYFPRINTF (stderr, "\n"); \
06282 } \
06283 } while (YYID (0))
06284
06285
06286
06287
06288
06289
06290
06291 #if (defined __STDC__ || defined __C99__FUNC__ \
06292 || defined __cplusplus || defined _MSC_VER)
06293 static void
06294 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06295 #else
06296 static void
06297 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session)
06298 FILE *yyoutput;
06299 int yytype;
06300 YYSTYPE const * const yyvaluep;
06301 drizzled::Session *session;
06302 #endif
06303 {
06304 if (!yyvaluep)
06305 return;
06306 YYUSE (session);
06307 # ifdef YYPRINT
06308 if (yytype < YYNTOKENS)
06309 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
06310 # else
06311 YYUSE (yyoutput);
06312 # endif
06313 switch (yytype)
06314 {
06315 default:
06316 break;
06317 }
06318 }
06319
06320
06321
06322
06323
06324
06325 #if (defined __STDC__ || defined __C99__FUNC__ \
06326 || defined __cplusplus || defined _MSC_VER)
06327 static void
06328 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06329 #else
06330 static void
06331 yy_symbol_print (yyoutput, yytype, yyvaluep, session)
06332 FILE *yyoutput;
06333 int yytype;
06334 YYSTYPE const * const yyvaluep;
06335 drizzled::Session *session;
06336 #endif
06337 {
06338 if (yytype < YYNTOKENS)
06339 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
06340 else
06341 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
06342
06343 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session);
06344 YYFPRINTF (yyoutput, ")");
06345 }
06346
06347
06348
06349
06350
06351
06352 #if (defined __STDC__ || defined __C99__FUNC__ \
06353 || defined __cplusplus || defined _MSC_VER)
06354 static void
06355 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
06356 #else
06357 static void
06358 yy_stack_print (yybottom, yytop)
06359 yytype_int16 *yybottom;
06360 yytype_int16 *yytop;
06361 #endif
06362 {
06363 YYFPRINTF (stderr, "Stack now");
06364 for (; yybottom <= yytop; yybottom++)
06365 {
06366 int yybot = *yybottom;
06367 YYFPRINTF (stderr, " %d", yybot);
06368 }
06369 YYFPRINTF (stderr, "\n");
06370 }
06371
06372 # define YY_STACK_PRINT(Bottom, Top) \
06373 do { \
06374 if (yydebug) \
06375 yy_stack_print ((Bottom), (Top)); \
06376 } while (YYID (0))
06377
06378
06379
06380
06381
06382
06383 #if (defined __STDC__ || defined __C99__FUNC__ \
06384 || defined __cplusplus || defined _MSC_VER)
06385 static void
06386 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, drizzled::Session *session)
06387 #else
06388 static void
06389 yy_reduce_print (yyvsp, yyrule, session)
06390 YYSTYPE *yyvsp;
06391 int yyrule;
06392 drizzled::Session *session;
06393 #endif
06394 {
06395 int yynrhs = yyr2[yyrule];
06396 int yyi;
06397 unsigned long int yylno = yyrline[yyrule];
06398 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
06399 yyrule - 1, yylno);
06400
06401 for (yyi = 0; yyi < yynrhs; yyi++)
06402 {
06403 YYFPRINTF (stderr, " $%d = ", yyi + 1);
06404 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
06405 &(yyvsp[(yyi + 1) - (yynrhs)])
06406 , session);
06407 YYFPRINTF (stderr, "\n");
06408 }
06409 }
06410
06411 # define YY_REDUCE_PRINT(Rule) \
06412 do { \
06413 if (yydebug) \
06414 yy_reduce_print (yyvsp, Rule, session); \
06415 } while (YYID (0))
06416
06417
06418
06419 int yydebug;
06420 #else
06421 # define YYDPRINTF(Args)
06422 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
06423 # define YY_STACK_PRINT(Bottom, Top)
06424 # define YY_REDUCE_PRINT(Rule)
06425 #endif
06426
06427
06428
06429 #ifndef YYINITDEPTH
06430 # define YYINITDEPTH 200
06431 #endif
06432
06433
06434
06435
06436
06437
06438
06439
06440 #ifndef YYMAXDEPTH
06441 # define YYMAXDEPTH 10000
06442 #endif
06443
06444
06445
06446 #if YYERROR_VERBOSE
06447
06448 # ifndef yystrlen
06449 # if defined __GLIBC__ && defined _STRING_H
06450 # define yystrlen strlen
06451 # else
06452
06453 #if (defined __STDC__ || defined __C99__FUNC__ \
06454 || defined __cplusplus || defined _MSC_VER)
06455 static YYSIZE_T
06456 yystrlen (const char *yystr)
06457 #else
06458 static YYSIZE_T
06459 yystrlen (yystr)
06460 const char *yystr;
06461 #endif
06462 {
06463 YYSIZE_T yylen;
06464 for (yylen = 0; yystr[yylen]; yylen++)
06465 continue;
06466 return yylen;
06467 }
06468 # endif
06469 # endif
06470
06471 # ifndef yystpcpy
06472 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
06473 # define yystpcpy stpcpy
06474 # else
06475
06476
06477 #if (defined __STDC__ || defined __C99__FUNC__ \
06478 || defined __cplusplus || defined _MSC_VER)
06479 static char *
06480 yystpcpy (char *yydest, const char *yysrc)
06481 #else
06482 static char *
06483 yystpcpy (yydest, yysrc)
06484 char *yydest;
06485 const char *yysrc;
06486 #endif
06487 {
06488 char *yyd = yydest;
06489 const char *yys = yysrc;
06490
06491 while ((*yyd++ = *yys++) != '\0')
06492 continue;
06493
06494 return yyd - 1;
06495 }
06496 # endif
06497 # endif
06498
06499 # ifndef yytnamerr
06500
06501
06502
06503
06504
06505
06506
06507 static YYSIZE_T
06508 yytnamerr (char *yyres, const char *yystr)
06509 {
06510 if (*yystr == '"')
06511 {
06512 YYSIZE_T yyn = 0;
06513 char const *yyp = yystr;
06514
06515 for (;;)
06516 switch (*++yyp)
06517 {
06518 case '\'':
06519 case ',':
06520 goto do_not_strip_quotes;
06521
06522 case '\\':
06523 if (*++yyp != '\\')
06524 goto do_not_strip_quotes;
06525
06526 default:
06527 if (yyres)
06528 yyres[yyn] = *yyp;
06529 yyn++;
06530 break;
06531
06532 case '"':
06533 if (yyres)
06534 yyres[yyn] = '\0';
06535 return yyn;
06536 }
06537 do_not_strip_quotes: ;
06538 }
06539
06540 if (! yyres)
06541 return yystrlen (yystr);
06542
06543 return yystpcpy (yyres, yystr) - yyres;
06544 }
06545 # endif
06546
06547
06548
06549
06550
06551
06552
06553
06554 static YYSIZE_T
06555 yysyntax_error (char *yyresult, int yystate, int yychar)
06556 {
06557 int yyn = yypact[yystate];
06558
06559 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
06560 return 0;
06561 else
06562 {
06563 int yytype = YYTRANSLATE (yychar);
06564 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
06565 YYSIZE_T yysize = yysize0;
06566 YYSIZE_T yysize1;
06567 int yysize_overflow = 0;
06568 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
06569 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
06570 int yyx;
06571
06572 # if 0
06573
06574
06575 YY_("syntax error, unexpected %s");
06576 YY_("syntax error, unexpected %s, expecting %s");
06577 YY_("syntax error, unexpected %s, expecting %s or %s");
06578 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
06579 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
06580 # endif
06581 char *yyfmt;
06582 char const *yyf;
06583 static char const yyunexpected[] = "syntax error, unexpected %s";
06584 static char const yyexpecting[] = ", expecting %s";
06585 static char const yyor[] = " or %s";
06586 char yyformat[sizeof yyunexpected
06587 + sizeof yyexpecting - 1
06588 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
06589 * (sizeof yyor - 1))];
06590 char const *yyprefix = yyexpecting;
06591
06592
06593
06594 int yyxbegin = yyn < 0 ? -yyn : 0;
06595
06596
06597 int yychecklim = YYLAST - yyn + 1;
06598 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
06599 int yycount = 1;
06600
06601 yyarg[0] = yytname[yytype];
06602 yyfmt = yystpcpy (yyformat, yyunexpected);
06603
06604 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
06605 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
06606 {
06607 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
06608 {
06609 yycount = 1;
06610 yysize = yysize0;
06611 yyformat[sizeof yyunexpected - 1] = '\0';
06612 break;
06613 }
06614 yyarg[yycount++] = yytname[yyx];
06615 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
06616 yysize_overflow |= (yysize1 < yysize);
06617 yysize = yysize1;
06618 yyfmt = yystpcpy (yyfmt, yyprefix);
06619 yyprefix = yyor;
06620 }
06621
06622 yyf = YY_(yyformat);
06623 yysize1 = yysize + yystrlen (yyf);
06624 yysize_overflow |= (yysize1 < yysize);
06625 yysize = yysize1;
06626
06627 if (yysize_overflow)
06628 return YYSIZE_MAXIMUM;
06629
06630 if (yyresult)
06631 {
06632
06633
06634
06635 char *yyp = yyresult;
06636 int yyi = 0;
06637 while ((*yyp = *yyf) != '\0')
06638 {
06639 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
06640 {
06641 yyp += yytnamerr (yyp, yyarg[yyi++]);
06642 yyf += 2;
06643 }
06644 else
06645 {
06646 yyp++;
06647 yyf++;
06648 }
06649 }
06650 }
06651 return yysize;
06652 }
06653 }
06654 #endif
06655
06656
06657
06658
06659
06660
06661
06662 #if (defined __STDC__ || defined __C99__FUNC__ \
06663 || defined __cplusplus || defined _MSC_VER)
06664 static void
06665 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, drizzled::Session *session)
06666 #else
06667 static void
06668 yydestruct (yymsg, yytype, yyvaluep, session)
06669 const char *yymsg;
06670 int yytype;
06671 YYSTYPE *yyvaluep;
06672 drizzled::Session *session;
06673 #endif
06674 {
06675 YYUSE (yyvaluep);
06676 YYUSE (session);
06677
06678 if (!yymsg)
06679 yymsg = "Deleting";
06680 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
06681
06682 switch (yytype)
06683 {
06684
06685 default:
06686 break;
06687 }
06688 }
06689
06690
06691 #ifdef YYPARSE_PARAM
06692 #if defined __STDC__ || defined __cplusplus
06693 int yyparse (void *YYPARSE_PARAM);
06694 #else
06695 int yyparse ();
06696 #endif
06697 #else
06698 #if defined __STDC__ || defined __cplusplus
06699 int yyparse (drizzled::Session *session);
06700 #else
06701 int yyparse ();
06702 #endif
06703 #endif
06704
06705
06706
06707
06708
06709
06710
06711
06712
06713 #ifdef YYPARSE_PARAM
06714 #if (defined __STDC__ || defined __C99__FUNC__ \
06715 || defined __cplusplus || defined _MSC_VER)
06716 int
06717 yyparse (void *YYPARSE_PARAM)
06718 #else
06719 int
06720 yyparse (YYPARSE_PARAM)
06721 void *YYPARSE_PARAM;
06722 #endif
06723 #else
06724 #if (defined __STDC__ || defined __C99__FUNC__ \
06725 || defined __cplusplus || defined _MSC_VER)
06726 int
06727 yyparse (drizzled::Session *session)
06728 #else
06729 int
06730 yyparse (session)
06731 drizzled::Session *session;
06732 #endif
06733 #endif
06734 {
06735
06736 int yychar;
06737
06738
06739 YYSTYPE yylval;
06740
06741
06742 int yynerrs;
06743
06744 int yystate;
06745
06746 int yyerrstatus;
06747
06748
06749
06750
06751
06752
06753
06754
06755
06756 yytype_int16 yyssa[YYINITDEPTH];
06757 yytype_int16 *yyss;
06758 yytype_int16 *yyssp;
06759
06760
06761 YYSTYPE yyvsa[YYINITDEPTH];
06762 YYSTYPE *yyvs;
06763 YYSTYPE *yyvsp;
06764
06765 YYSIZE_T yystacksize;
06766
06767 int yyn;
06768 int yyresult;
06769
06770 int yytoken;
06771
06772
06773 YYSTYPE yyval;
06774
06775 #if YYERROR_VERBOSE
06776
06777 char yymsgbuf[128];
06778 char *yymsg = yymsgbuf;
06779 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
06780 #endif
06781
06782 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
06783
06784
06785
06786 int yylen = 0;
06787
06788 yytoken = 0;
06789 yyss = yyssa;
06790 yyvs = yyvsa;
06791 yystacksize = YYINITDEPTH;
06792
06793 YYDPRINTF ((stderr, "Starting parse\n"));
06794
06795 yystate = 0;
06796 yyerrstatus = 0;
06797 yynerrs = 0;
06798 yychar = YYEMPTY;
06799
06800
06801
06802
06803
06804 yyssp = yyss;
06805 yyvsp = yyvs;
06806
06807 goto yysetstate;
06808
06809
06810
06811
06812 yynewstate:
06813
06814
06815 yyssp++;
06816
06817 yysetstate:
06818 *yyssp = yystate;
06819
06820 if (yyss + yystacksize - 1 <= yyssp)
06821 {
06822
06823 YYSIZE_T yysize = yyssp - yyss + 1;
06824
06825 #ifdef yyoverflow
06826 {
06827
06828
06829
06830 YYSTYPE *yyvs1 = yyvs;
06831 yytype_int16 *yyss1 = yyss;
06832
06833
06834
06835
06836
06837 yyoverflow (YY_("memory exhausted"),
06838 &yyss1, yysize * sizeof (*yyssp),
06839 &yyvs1, yysize * sizeof (*yyvsp),
06840 &yystacksize);
06841
06842 yyss = yyss1;
06843 yyvs = yyvs1;
06844 }
06845 #else
06846 # ifndef YYSTACK_RELOCATE
06847 goto yyexhaustedlab;
06848 # else
06849
06850 if (YYMAXDEPTH <= yystacksize)
06851 goto yyexhaustedlab;
06852 yystacksize *= 2;
06853 if (YYMAXDEPTH < yystacksize)
06854 yystacksize = YYMAXDEPTH;
06855
06856 {
06857 yytype_int16 *yyss1 = yyss;
06858 union yyalloc *yyptr =
06859 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
06860 if (! yyptr)
06861 goto yyexhaustedlab;
06862 YYSTACK_RELOCATE (yyss_alloc, yyss);
06863 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
06864 # undef YYSTACK_RELOCATE
06865 if (yyss1 != yyssa)
06866 YYSTACK_FREE (yyss1);
06867 }
06868 # endif
06869 #endif
06870
06871 yyssp = yyss + yysize - 1;
06872 yyvsp = yyvs + yysize - 1;
06873
06874 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
06875 (unsigned long int) yystacksize));
06876
06877 if (yyss + yystacksize - 1 <= yyssp)
06878 YYABORT;
06879 }
06880
06881 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
06882
06883 if (yystate == YYFINAL)
06884 YYACCEPT;
06885
06886 goto yybackup;
06887
06888
06889
06890
06891 yybackup:
06892
06893
06894
06895
06896
06897 yyn = yypact[yystate];
06898 if (yyn == YYPACT_NINF)
06899 goto yydefault;
06900
06901
06902
06903
06904 if (yychar == YYEMPTY)
06905 {
06906 YYDPRINTF ((stderr, "Reading a token: "));
06907 yychar = YYLEX;
06908 }
06909
06910 if (yychar <= YYEOF)
06911 {
06912 yychar = yytoken = YYEOF;
06913 YYDPRINTF ((stderr, "Now at end of input.\n"));
06914 }
06915 else
06916 {
06917 yytoken = YYTRANSLATE (yychar);
06918 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
06919 }
06920
06921
06922
06923 yyn += yytoken;
06924 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
06925 goto yydefault;
06926 yyn = yytable[yyn];
06927 if (yyn <= 0)
06928 {
06929 if (yyn == 0 || yyn == YYTABLE_NINF)
06930 goto yyerrlab;
06931 yyn = -yyn;
06932 goto yyreduce;
06933 }
06934
06935
06936
06937 if (yyerrstatus)
06938 yyerrstatus--;
06939
06940
06941 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
06942
06943
06944 yychar = YYEMPTY;
06945
06946 yystate = yyn;
06947 *++yyvsp = yylval;
06948
06949 goto yynewstate;
06950
06951
06952
06953
06954
06955 yydefault:
06956 yyn = yydefact[yystate];
06957 if (yyn == 0)
06958 goto yyerrlab;
06959 goto yyreduce;
06960
06961
06962
06963
06964
06965 yyreduce:
06966
06967 yylen = yyr2[yyn];
06968
06969
06970
06971
06972
06973
06974
06975
06976
06977 yyval = yyvsp[1-yylen];
06978
06979
06980 YY_REDUCE_PRINT (yyn);
06981 switch (yyn)
06982 {
06983 case 2:
06984
06985
06986 #line 799 "drizzled/sql_yacc.yy"
06987 {
06988 if (!(YYSession->lex().select_lex.options & OPTION_FOUND_COMMENT))
06989 {
06990 my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
06991 DRIZZLE_YYABORT;
06992 }
06993 else
06994 {
06995 YYSession->lex().statement= new statement::EmptyQuery(YYSession);
06996 }
06997 }
06998 break;
06999
07000 case 3:
07001
07002
07003 #line 810 "drizzled/sql_yacc.yy"
07004 {}
07005 break;
07006
07007 case 32:
07008
07009
07010 #line 852 "drizzled/sql_yacc.yy"
07011 {
07012 Lex.statement= new statement::catalog::Create(YYSession, (yyvsp[(3) - (3)].lex_str));
07013 }
07014 break;
07015
07016 case 33:
07017
07018
07019 #line 856 "drizzled/sql_yacc.yy"
07020 {
07021 Lex.statement= new statement::CreateTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].num));
07022
07023 if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL,
07024 TL_OPTION_UPDATING,
07025 TL_WRITE))
07026 DRIZZLE_YYABORT;
07027 Lex.col_list.clear();
07028 }
07029 break;
07030
07031 case 34:
07032
07033
07034 #line 866 "drizzled/sql_yacc.yy"
07035 {
07036 Lex.current_select= &Lex.select_lex;
07037 }
07038 break;
07039
07040 case 35:
07041
07042
07043 #line 870 "drizzled/sql_yacc.yy"
07044 {
07045 Lex.statement= new statement::CreateIndex(YYSession, (yyvsp[(2) - (2)].build_method));
07046 }
07047 break;
07048
07049 case 36:
07050
07051
07052 #line 874 "drizzled/sql_yacc.yy"
07053 {
07054 if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(9) - (13)].table),
07055 NULL,
07056 TL_OPTION_UPDATING))
07057 DRIZZLE_YYABORT;
07058
07059 parser::buildKey(&Lex, (yyvsp[(4) - (13)].key_type), (yyvsp[(6) - (13)].lex_str));
07060 }
07061 break;
07062
07063 case 37:
07064
07065
07066 #line 883 "drizzled/sql_yacc.yy"
07067 {
07068 Lex.statement= new statement::CreateSchema(YYSession);
07069 }
07070 break;
07071
07072 case 38:
07073
07074
07075 #line 887 "drizzled/sql_yacc.yy"
07076 {
07077 Lex.name= (yyvsp[(4) - (6)].lex_str);
07078 }
07079 break;
07080
07081 case 39:
07082
07083
07084 #line 894 "drizzled/sql_yacc.yy"
07085 { }
07086 break;
07087
07088 case 40:
07089
07090
07091 #line 896 "drizzled/sql_yacc.yy"
07092 {
07093 Lex.current_select->set_braces(1);
07094 }
07095 break;
07096
07097 case 41:
07098
07099
07100 #line 899 "drizzled/sql_yacc.yy"
07101 {}
07102 break;
07103
07104 case 42:
07105
07106
07107 #line 901 "drizzled/sql_yacc.yy"
07108 { }
07109 break;
07110
07111 case 43:
07112
07113
07114 #line 903 "drizzled/sql_yacc.yy"
07115 { }
07116 break;
07117
07118 case 44:
07119
07120
07121 #line 905 "drizzled/sql_yacc.yy"
07122 { }
07123 break;
07124
07125 case 45:
07126
07127
07128 #line 909 "drizzled/sql_yacc.yy"
07129 {}
07130 break;
07131
07132 case 46:
07133
07134
07135 #line 911 "drizzled/sql_yacc.yy"
07136 {
07137 Lex.current_select->set_braces(0);
07138 }
07139 break;
07140
07141 case 47:
07142
07143
07144 #line 914 "drizzled/sql_yacc.yy"
07145 {}
07146 break;
07147
07148 case 48:
07149
07150
07151 #line 916 "drizzled/sql_yacc.yy"
07152 {
07153 Lex.current_select->set_braces(1);
07154 }
07155 break;
07156
07157 case 49:
07158
07159
07160 #line 919 "drizzled/sql_yacc.yy"
07161 {}
07162 break;
07163
07164 case 50:
07165
07166
07167 #line 924 "drizzled/sql_yacc.yy"
07168 {
07169 ((statement::CreateTable *)(YYSession->lex().statement))->is_create_table_like= true;
07170
07171 if (not YYSession->lex().select_lex.add_table_to_list(YYSession, (yyvsp[(2) - (2)].table), NULL, 0, TL_READ))
07172 DRIZZLE_YYABORT;
07173 }
07174 break;
07175
07176 case 51:
07177
07178
07179 #line 934 "drizzled/sql_yacc.yy"
07180 {
07181 }
07182 break;
07183
07184 case 52:
07185
07186
07187 #line 943 "drizzled/sql_yacc.yy"
07188 {
07189 Lex.lock_option= TL_READ;
07190 if (Lex.sql_command == SQLCOM_INSERT)
07191 {
07192 delete Lex.statement;
07193 Lex.statement= new statement::InsertSelect(YYSession);
07194 }
07195 else if (Lex.sql_command == SQLCOM_REPLACE)
07196 {
07197 delete Lex.statement;
07198 Lex.statement= new statement::ReplaceSelect(YYSession);
07199 }
07200
07201
07202
07203
07204 Lex.current_select->table_list.save_and_clear(&Lex.save_list);
07205 init_select(&Lex);
07206 Lex.current_select->parsing_place= SELECT_LIST;
07207 }
07208 break;
07209
07210 case 53:
07211
07212
07213 #line 964 "drizzled/sql_yacc.yy"
07214 {
07215 Lex.current_select->parsing_place= NO_MATTER;
07216 }
07217 break;
07218
07219 case 54:
07220
07221
07222 #line 968 "drizzled/sql_yacc.yy"
07223 {
07224
07225
07226
07227
07228 Lex.current_select->table_list.push_front(&Lex.save_list);
07229 }
07230 break;
07231
07232 case 55:
07233
07234
07235 #line 978 "drizzled/sql_yacc.yy"
07236 {}
07237 break;
07238
07239 case 56:
07240
07241
07242 #line 979 "drizzled/sql_yacc.yy"
07243 {}
07244 break;
07245
07246 case 57:
07247
07248
07249 #line 980 "drizzled/sql_yacc.yy"
07250 {}
07251 break;
07252
07253 case 60:
07254
07255
07256 #line 990 "drizzled/sql_yacc.yy"
07257 {
07258 statement::CreateSchema *statement= (statement::CreateSchema *)Lex.statement;
07259 statement->schema_message.mutable_engine()->add_options()->set_name((yyvsp[(1) - (1)].lex_str).str);
07260 }
07261 break;
07262
07263 case 61:
07264
07265
07266 #line 995 "drizzled/sql_yacc.yy"
07267 {
07268 parser::buildReplicationOption(&Lex, true);
07269 }
07270 break;
07271
07272 case 62:
07273
07274
07275 #line 999 "drizzled/sql_yacc.yy"
07276 {
07277 parser::buildReplicationOption(&Lex, false);
07278 }
07279 break;
07280
07281 case 63:
07282
07283
07284 #line 1003 "drizzled/sql_yacc.yy"
07285 {
07286 parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str));
07287 }
07288 break;
07289
07290 case 64:
07291
07292
07293 #line 1007 "drizzled/sql_yacc.yy"
07294 {
07295 parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].ulonglong_number));
07296 }
07297 break;
07298
07299 case 65:
07300
07301
07302 #line 1013 "drizzled/sql_yacc.yy"
07303 { (yyval.num)= false; }
07304 break;
07305
07306 case 66:
07307
07308
07309 #line 1014 "drizzled/sql_yacc.yy"
07310 { (yyval.num)= true; }
07311 break;
07312
07313 case 67:
07314
07315
07316 #line 1018 "drizzled/sql_yacc.yy"
07317 { (yyval.boolean)= false; }
07318 break;
07319
07320 case 68:
07321
07322
07323 #line 1019 "drizzled/sql_yacc.yy"
07324 { (yyval.boolean)= true; YYSession->lex().setExists(); }
07325 break;
07326
07327 case 77:
07328
07329
07330 #line 1042 "drizzled/sql_yacc.yy"
07331 {
07332 Lex.table()->mutable_engine()->set_name((yyvsp[(3) - (3)].lex_str).str);
07333 }
07334 break;
07335
07336 case 78:
07337
07338
07339 #line 1046 "drizzled/sql_yacc.yy"
07340 {
07341 Lex.table()->mutable_options()->set_comment((yyvsp[(3) - (3)].lex_str).str);
07342 }
07343 break;
07344
07345 case 79:
07346
07347
07348 #line 1050 "drizzled/sql_yacc.yy"
07349 {
07350 Lex.table()->mutable_options()->set_auto_increment_value((yyvsp[(3) - (3)].ulonglong_number));
07351 }
07352 break;
07353
07354 case 80:
07355
07356
07357 #line 1054 "drizzled/sql_yacc.yy"
07358 {
07359 message::set_is_replicated(*Lex.table(), true);
07360 }
07361 break;
07362
07363 case 81:
07364
07365
07366 #line 1058 "drizzled/sql_yacc.yy"
07367 {
07368 message::set_is_replicated(*Lex.table(), false);
07369 }
07370 break;
07371
07372 case 82:
07373
07374
07375 #line 1062 "drizzled/sql_yacc.yy"
07376 {
07377 parser::buildEngineOption(&Lex, "ROW_FORMAT", (yyvsp[(3) - (3)].lex_str));
07378 }
07379 break;
07380
07381 case 83:
07382
07383
07384 #line 1066 "drizzled/sql_yacc.yy"
07385 {
07386 parser::buildEngineOption(&Lex, "FILE", (yyvsp[(3) - (3)].lex_str));
07387 }
07388 break;
07389
07390 case 84:
07391
07392
07393 #line 1070 "drizzled/sql_yacc.yy"
07394 {
07395 parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str));
07396 }
07397 break;
07398
07399 case 85:
07400
07401
07402 #line 1074 "drizzled/sql_yacc.yy"
07403 {
07404 parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].ulonglong_number));
07405 }
07406 break;
07407
07408 case 87:
07409
07410
07411 #line 1082 "drizzled/sql_yacc.yy"
07412 {
07413 if (not parser::buildCollation(&Lex, (yyvsp[(4) - (4)].charset)))
07414 {
07415 DRIZZLE_YYABORT;
07416 }
07417 }
07418 break;
07419
07420 case 88:
07421
07422
07423 #line 1092 "drizzled/sql_yacc.yy"
07424 {
07425 ((statement::CreateSchema *)Lex.statement)->schema_message.set_collation((yyvsp[(4) - (4)].charset)->name);
07426 }
07427 break;
07428
07429 case 89:
07430
07431
07432 #line 1098 "drizzled/sql_yacc.yy"
07433 {}
07434 break;
07435
07436 case 90:
07437
07438
07439 #line 1099 "drizzled/sql_yacc.yy"
07440 {}
07441 break;
07442
07443 case 91:
07444
07445
07446 #line 1100 "drizzled/sql_yacc.yy"
07447 {}
07448 break;
07449
07450 case 92:
07451
07452
07453 #line 1101 "drizzled/sql_yacc.yy"
07454 {}
07455 break;
07456
07457 case 93:
07458
07459
07460 #line 1102 "drizzled/sql_yacc.yy"
07461 {}
07462 break;
07463
07464 case 94:
07465
07466
07467 #line 1103 "drizzled/sql_yacc.yy"
07468 {}
07469 break;
07470
07471 case 95:
07472
07473
07474 #line 1108 "drizzled/sql_yacc.yy"
07475 {
07476 (yyval.lex_str).str= YYSession->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
07477 (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
07478 }
07479 break;
07480
07481 case 96:
07482
07483
07484 #line 1115 "drizzled/sql_yacc.yy"
07485 {}
07486 break;
07487
07488 case 103:
07489
07490
07491 #line 1132 "drizzled/sql_yacc.yy"
07492 {
07493 Lex.col_list.clear();
07494 }
07495 break;
07496
07497 case 104:
07498
07499
07500 #line 1139 "drizzled/sql_yacc.yy"
07501 {
07502 parser::buildKey(&Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].lex_str));
07503 }
07504 break;
07505
07506 case 105:
07507
07508
07509 #line 1144 "drizzled/sql_yacc.yy"
07510 {
07511 parser::buildKey(&Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].lex_str).str ? (yyvsp[(3) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str));
07512 }
07513 break;
07514
07515 case 106:
07516
07517
07518 #line 1148 "drizzled/sql_yacc.yy"
07519 {
07520 parser::buildForeignKey(&Lex, (yyvsp[(1) - (8)].lex_str).str ? (yyvsp[(1) - (8)].lex_str) : (yyvsp[(4) - (8)].lex_str), (yyvsp[(8) - (8)].table));
07521 }
07522 break;
07523
07524 case 107:
07525
07526
07527 #line 1152 "drizzled/sql_yacc.yy"
07528 {
07529 Lex.col_list.clear();
07530 }
07531 break;
07532
07533 case 108:
07534
07535
07536 #line 1156 "drizzled/sql_yacc.yy"
07537 {
07538 Lex.col_list.clear();
07539 }
07540 break;
07541
07542 case 112:
07543
07544
07545 #line 1171 "drizzled/sql_yacc.yy"
07546 { (yyval.lex_str)= null_lex_str; }
07547 break;
07548
07549 case 113:
07550
07551
07552 #line 1172 "drizzled/sql_yacc.yy"
07553 { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
07554 break;
07555
07556 case 114:
07557
07558
07559 #line 1176 "drizzled/sql_yacc.yy"
07560 { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
07561 break;
07562
07563 case 115:
07564
07565
07566 #line 1181 "drizzled/sql_yacc.yy"
07567 {
07568 parser::buildCreateFieldIdent(&Lex);
07569 }
07570 break;
07571
07572 case 116:
07573
07574
07575 #line 1185 "drizzled/sql_yacc.yy"
07576 {
07577 statement::CreateTable *statement= (statement::CreateTable *)Lex.statement;
07578
07579 if (Lex.field())
07580 {
07581 Lex.field()->set_name((yyvsp[(1) - (4)].lex_str).str);
07582 }
07583
07584 if (add_field_to_list(Lex.session, &(yyvsp[(1) - (4)].lex_str), (enum enum_field_types) (yyvsp[(3) - (4)].field_val),
07585 Lex.length, Lex.dec, Lex.type,
07586 statement->column_format,
07587 statement->default_value, statement->on_update_value,
07588 &statement->comment,
07589 statement->change, &Lex.interval_list, Lex.charset))
07590 DRIZZLE_YYABORT;
07591
07592 Lex.setField(NULL);
07593 }
07594 break;
07595
07596 case 117:
07597
07598
07599 #line 1207 "drizzled/sql_yacc.yy"
07600 {
07601 (yyval.field_val)=parser::buildTimestampColumn(&Lex, NULL);
07602 }
07603 break;
07604
07605 case 118:
07606
07607
07608 #line 1211 "drizzled/sql_yacc.yy"
07609 {
07610 (yyval.field_val)=parser::buildTimestampColumn(&Lex, (yyvsp[(3) - (5)].lex_str).str);
07611 }
07612 break;
07613
07614 case 119:
07615
07616
07617 #line 1215 "drizzled/sql_yacc.yy"
07618 {
07619 (yyval.field_val)=DRIZZLE_TYPE_DATETIME;
07620
07621 if (Lex.field())
07622 Lex.field()->set_type(message::Table::Field::DATETIME);
07623 }
07624 break;
07625
07626 case 120:
07627
07628
07629 #line 1222 "drizzled/sql_yacc.yy"
07630 {
07631 (yyval.field_val)= (yyvsp[(1) - (2)].field_val);
07632 }
07633 break;
07634
07635 case 121:
07636
07637
07638 #line 1226 "drizzled/sql_yacc.yy"
07639 {
07640 (yyval.field_val)= parser::buildVarcharColumn(&Lex, "1");
07641 }
07642 break;
07643
07644 case 122:
07645
07646
07647 #line 1230 "drizzled/sql_yacc.yy"
07648 {
07649 (yyval.field_val)= parser::buildVarcharColumn(&Lex, (yyvsp[(3) - (5)].lex_str).str);
07650 }
07651 break;
07652
07653 case 123:
07654
07655
07656 #line 1234 "drizzled/sql_yacc.yy"
07657 {
07658 (yyval.field_val)=DRIZZLE_TYPE_BLOB;
07659 Lex.length=(char*) 0;
07660
07661 if (Lex.field())
07662 Lex.field()->set_type(message::Table::Field::BLOB);
07663 }
07664 break;
07665
07666 case 124:
07667
07668
07669 #line 1242 "drizzled/sql_yacc.yy"
07670 {
07671 Lex.interval_list.clear();
07672 }
07673 break;
07674
07675 case 125:
07676
07677
07678 #line 1246 "drizzled/sql_yacc.yy"
07679 {
07680 (yyval.field_val)=DRIZZLE_TYPE_ENUM;
07681
07682 if (Lex.field())
07683 Lex.field()->set_type(message::Table::Field::ENUM);
07684 }
07685 break;
07686
07687 case 126:
07688
07689
07690 #line 1253 "drizzled/sql_yacc.yy"
07691 {
07692 (yyval.field_val)= parser::buildVarbinaryColumn(&Lex, (yyvsp[(3) - (5)].lex_str).str);
07693 }
07694 break;
07695
07696 case 127:
07697
07698
07699 #line 1257 "drizzled/sql_yacc.yy"
07700 {
07701 assert ((yyvsp[(1) - (2)].field_val) == DRIZZLE_TYPE_DOUBLE);
07702 (yyval.field_val)= parser::buildDoubleColumn(&Lex);
07703 }
07704 break;
07705
07706 case 128:
07707
07708
07709 #line 1262 "drizzled/sql_yacc.yy"
07710 {
07711 (yyval.field_val)=DRIZZLE_TYPE_DATE;
07712
07713 if (Lex.field())
07714 Lex.field()->set_type(message::Table::Field::DATE);
07715 }
07716 break;
07717
07718 case 129:
07719
07720
07721 #line 1269 "drizzled/sql_yacc.yy"
07722 {
07723 (yyval.field_val)=DRIZZLE_TYPE_TIME;
07724
07725 if (Lex.field())
07726 Lex.field()->set_type(message::Table::Field::TIME);
07727 }
07728 break;
07729
07730 case 130:
07731
07732
07733 #line 1276 "drizzled/sql_yacc.yy"
07734 {
07735 (yyval.field_val)= parser::buildBlobColumn(&Lex);
07736 }
07737 break;
07738
07739 case 131:
07740
07741
07742 #line 1280 "drizzled/sql_yacc.yy"
07743 {
07744 (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07745 }
07746 break;
07747
07748 case 132:
07749
07750
07751 #line 1284 "drizzled/sql_yacc.yy"
07752 {
07753 (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07754 }
07755 break;
07756
07757 case 133:
07758
07759
07760 #line 1288 "drizzled/sql_yacc.yy"
07761 {
07762 (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07763 }
07764 break;
07765
07766 case 134:
07767
07768
07769 #line 1292 "drizzled/sql_yacc.yy"
07770 {
07771 (yyval.field_val)= parser::buildUuidColumn(&Lex);
07772 }
07773 break;
07774
07775 case 135:
07776
07777
07778 #line 1296 "drizzled/sql_yacc.yy"
07779 {
07780 (yyval.field_val)= parser::buildBooleanColumn(&Lex);
07781 }
07782 break;
07783
07784 case 136:
07785
07786
07787 #line 1300 "drizzled/sql_yacc.yy"
07788 {
07789 (yyval.field_val)= parser::buildSerialColumn(&Lex);
07790 }
07791 break;
07792
07793 case 137:
07794
07795
07796 #line 1307 "drizzled/sql_yacc.yy"
07797 { }
07798 break;
07799
07800 case 138:
07801
07802
07803 #line 1309 "drizzled/sql_yacc.yy"
07804 { }
07805 break;
07806
07807 case 139:
07808
07809
07810 #line 1311 "drizzled/sql_yacc.yy"
07811 { }
07812 break;
07813
07814 case 140:
07815
07816
07817 #line 1316 "drizzled/sql_yacc.yy"
07818 {
07819 (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07820 }
07821 break;
07822
07823 case 141:
07824
07825
07826 #line 1320 "drizzled/sql_yacc.yy"
07827 {
07828 (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONGLONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07829 }
07830 break;
07831
07832 case 142:
07833
07834
07835 #line 1327 "drizzled/sql_yacc.yy"
07836 {
07837 (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
07838 }
07839 break;
07840
07841 case 143:
07842
07843
07844 #line 1331 "drizzled/sql_yacc.yy"
07845 {
07846 (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
07847 }
07848 break;
07849
07850 case 144:
07851
07852
07853 #line 1335 "drizzled/sql_yacc.yy"
07854 {
07855 (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
07856 }
07857 break;
07858
07859 case 145:
07860
07861
07862 #line 1342 "drizzled/sql_yacc.yy"
07863 { Lex.dec=Lex.length= (char*)0; }
07864 break;
07865
07866 case 146:
07867
07868
07869 #line 1344 "drizzled/sql_yacc.yy"
07870 { Lex.length=(yyvsp[(2) - (3)].lex_str).str; Lex.dec= (char*)0; }
07871 break;
07872
07873 case 147:
07874
07875
07876 #line 1346 "drizzled/sql_yacc.yy"
07877 {}
07878 break;
07879
07880 case 148:
07881
07882
07883 #line 1351 "drizzled/sql_yacc.yy"
07884 {
07885 Lex.length= (yyvsp[(2) - (5)].lex_str).str;
07886 Lex.dec= (yyvsp[(4) - (5)].lex_str).str;
07887 }
07888 break;
07889
07890 case 149:
07891
07892
07893 #line 1358 "drizzled/sql_yacc.yy"
07894 { Lex.length=(char*) 0; }
07895 break;
07896
07897 case 150:
07898
07899
07900 #line 1359 "drizzled/sql_yacc.yy"
07901 { Lex.length= (yyvsp[(2) - (3)].lex_str).str; }
07902 break;
07903
07904 case 151:
07905
07906
07907 #line 1363 "drizzled/sql_yacc.yy"
07908 { (yyval.boolean)= false; }
07909 break;
07910
07911 case 152:
07912
07913
07914 #line 1364 "drizzled/sql_yacc.yy"
07915 { (yyval.boolean)= false; }
07916 break;
07917
07918 case 153:
07919
07920
07921 #line 1365 "drizzled/sql_yacc.yy"
07922 { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
07923 break;
07924
07925 case 154:
07926
07927
07928 #line 1369 "drizzled/sql_yacc.yy"
07929 { }
07930 break;
07931
07932 case 155:
07933
07934
07935 #line 1370 "drizzled/sql_yacc.yy"
07936 { }
07937 break;
07938
07939 case 156:
07940
07941
07942 #line 1374 "drizzled/sql_yacc.yy"
07943 { (yyval.boolean)= false; }
07944 break;
07945
07946 case 157:
07947
07948
07949 #line 1375 "drizzled/sql_yacc.yy"
07950 { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
07951 break;
07952
07953 case 158:
07954
07955
07956 #line 1380 "drizzled/sql_yacc.yy"
07957 { Lex.dec=Lex.length= (char*)0; }
07958 break;
07959
07960 case 159:
07961
07962
07963 #line 1382 "drizzled/sql_yacc.yy"
07964 { Lex.length=Lex.dec= (char*)0; }
07965 break;
07966
07967 case 160:
07968
07969
07970 #line 1384 "drizzled/sql_yacc.yy"
07971 {}
07972 break;
07973
07974 case 161:
07975
07976
07977 #line 1389 "drizzled/sql_yacc.yy"
07978 {
07979 Lex.type&= ~ NOT_NULL_FLAG;
07980 }
07981 break;
07982
07983 case 162:
07984
07985
07986 #line 1393 "drizzled/sql_yacc.yy"
07987 {
07988 Lex.type|= NOT_NULL_FLAG;
07989
07990 if (Lex.field())
07991 {
07992 Lex.field()->mutable_constraints()->set_is_notnull(true);
07993 }
07994 }
07995 break;
07996
07997 case 163:
07998
07999
08000 #line 1405 "drizzled/sql_yacc.yy"
08001 {
08002 parser::buildPrimaryOnColumn(&Lex);
08003 }
08004 break;
08005
08006 case 164:
08007
08008
08009 #line 1409 "drizzled/sql_yacc.yy"
08010 {
08011 parser::buildKeyOnColumn(&Lex);
08012 }
08013 break;
08014
08015 case 165:
08016
08017
08018 #line 1413 "drizzled/sql_yacc.yy"
08019 {
08020 parser::buildKeyOnColumn(&Lex);
08021 }
08022 break;
08023
08024 case 166:
08025
08026
08027 #line 1419 "drizzled/sql_yacc.yy"
08028 {}
08029 break;
08030
08031 case 167:
08032
08033
08034 #line 1421 "drizzled/sql_yacc.yy"
08035 { }
08036 break;
08037
08038 case 168:
08039
08040
08041 #line 1423 "drizzled/sql_yacc.yy"
08042 {
08043 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08044
08045 statement->default_value= (yyvsp[(3) - (3)].item);
08046 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08047 }
08048 break;
08049
08050 case 169:
08051
08052
08053 #line 1430 "drizzled/sql_yacc.yy"
08054 { }
08055 break;
08056
08057 case 170:
08058
08059
08060 #line 1434 "drizzled/sql_yacc.yy"
08061 { }
08062 break;
08063
08064 case 171:
08065
08066
08067 #line 1436 "drizzled/sql_yacc.yy"
08068 { }
08069 break;
08070
08071 case 172:
08072
08073
08074 #line 1438 "drizzled/sql_yacc.yy"
08075 {
08076 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08077
08078 statement->default_value= (yyvsp[(3) - (3)].item);
08079 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08080 }
08081 break;
08082
08083 case 173:
08084
08085
08086 #line 1445 "drizzled/sql_yacc.yy"
08087 { }
08088 break;
08089
08090 case 174:
08091
08092
08093 #line 1449 "drizzled/sql_yacc.yy"
08094 {}
08095 break;
08096
08097 case 175:
08098
08099
08100 #line 1450 "drizzled/sql_yacc.yy"
08101 {}
08102 break;
08103
08104 case 176:
08105
08106
08107 #line 1454 "drizzled/sql_yacc.yy"
08108 {}
08109 break;
08110
08111 case 178:
08112
08113
08114 #line 1460 "drizzled/sql_yacc.yy"
08115 { }
08116 break;
08117
08118 case 179:
08119
08120
08121 #line 1462 "drizzled/sql_yacc.yy"
08122 {
08123 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08124
08125 statement->default_value=(yyvsp[(2) - (2)].item);
08126 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08127 }
08128 break;
08129
08130 case 180:
08131
08132
08133 #line 1469 "drizzled/sql_yacc.yy"
08134 {
08135 if (Lex.charset && !my_charset_same(Lex.charset,(yyvsp[(2) - (2)].charset)))
08136 {
08137 my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
08138 (yyvsp[(2) - (2)].charset)->name,Lex.charset->csname);
08139 DRIZZLE_YYABORT;
08140 }
08141 else
08142 {
08143 Lex.charset=(yyvsp[(2) - (2)].charset);
08144 }
08145 }
08146 break;
08147
08148 case 181:
08149
08150
08151 #line 1482 "drizzled/sql_yacc.yy"
08152 { }
08153 break;
08154
08155 case 182:
08156
08157
08158 #line 1486 "drizzled/sql_yacc.yy"
08159 {}
08160 break;
08161
08162 case 183:
08163
08164
08165 #line 1487 "drizzled/sql_yacc.yy"
08166 {}
08167 break;
08168
08169 case 184:
08170
08171
08172 #line 1491 "drizzled/sql_yacc.yy"
08173 {}
08174 break;
08175
08176 case 186:
08177
08178
08179 #line 1497 "drizzled/sql_yacc.yy"
08180 { }
08181 break;
08182
08183 case 187:
08184
08185
08186 #line 1499 "drizzled/sql_yacc.yy"
08187 {
08188 parser::buildAutoOnColumn(&Lex);
08189 }
08190 break;
08191
08192 case 188:
08193
08194
08195 #line 1503 "drizzled/sql_yacc.yy"
08196 {
08197 (void)parser::buildSerialColumn(&Lex);
08198 }
08199 break;
08200
08201 case 189:
08202
08203
08204 #line 1507 "drizzled/sql_yacc.yy"
08205 {
08206 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08207
08208 statement->default_value=(yyvsp[(2) - (2)].item);
08209 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08210 }
08211 break;
08212
08213 case 190:
08214
08215
08216 #line 1514 "drizzled/sql_yacc.yy"
08217 { }
08218 break;
08219
08220 case 191:
08221
08222
08223 #line 1518 "drizzled/sql_yacc.yy"
08224 {}
08225 break;
08226
08227 case 192:
08228
08229
08230 #line 1519 "drizzled/sql_yacc.yy"
08231 {}
08232 break;
08233
08234 case 193:
08235
08236
08237 #line 1523 "drizzled/sql_yacc.yy"
08238 {}
08239 break;
08240
08241 case 195:
08242
08243
08244 #line 1529 "drizzled/sql_yacc.yy"
08245 { }
08246 break;
08247
08248 case 196:
08249
08250
08251 #line 1531 "drizzled/sql_yacc.yy"
08252 {
08253 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08254
08255 statement->default_value= new Item_func_now_local();
08256 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08257 }
08258 break;
08259
08260 case 197:
08261
08262
08263 #line 1538 "drizzled/sql_yacc.yy"
08264 {
08265 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08266
08267 statement->default_value=(yyvsp[(2) - (2)].item);
08268 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08269 }
08270 break;
08271
08272 case 198:
08273
08274
08275 #line 1545 "drizzled/sql_yacc.yy"
08276 {
08277 ((statement::AlterTable *)Lex.statement)->on_update_value= new Item_func_now_local();
08278 }
08279 break;
08280
08281 case 199:
08282
08283
08284 #line 1549 "drizzled/sql_yacc.yy"
08285 { }
08286 break;
08287
08288 case 200:
08289
08290
08291 #line 1553 "drizzled/sql_yacc.yy"
08292 { }
08293 break;
08294
08295 case 201:
08296
08297
08298 #line 1555 "drizzled/sql_yacc.yy"
08299 {
08300 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08301 statement->comment= (yyvsp[(2) - (2)].lex_str);
08302
08303 if (Lex.field())
08304 Lex.field()->set_comment((yyvsp[(2) - (2)].lex_str).str);
08305 }
08306 break;
08307
08308 case 202:
08309
08310
08311 #line 1566 "drizzled/sql_yacc.yy"
08312 {
08313 if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
08314 {
08315 my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
08316 DRIZZLE_YYABORT;
08317 }
08318 }
08319 break;
08320
08321 case 203:
08322
08323
08324 #line 1576 "drizzled/sql_yacc.yy"
08325 { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
08326 break;
08327
08328 case 204:
08329
08330
08331 #line 1577 "drizzled/sql_yacc.yy"
08332 { (yyval.charset)=NULL; }
08333 break;
08334
08335 case 205:
08336
08337
08338 #line 1581 "drizzled/sql_yacc.yy"
08339 {}
08340 break;
08341
08342 case 206:
08343
08344
08345 #line 1582 "drizzled/sql_yacc.yy"
08346 {}
08347 break;
08348
08349 case 209:
08350
08351
08352 #line 1592 "drizzled/sql_yacc.yy"
08353 {
08354 (yyval.table)=(yyvsp[(2) - (5)].table);
08355 }
08356 break;
08357
08358 case 210:
08359
08360
08361 #line 1599 "drizzled/sql_yacc.yy"
08362 { Lex.ref_list.clear(); }
08363 break;
08364
08365 case 212:
08366
08367
08368 #line 1605 "drizzled/sql_yacc.yy"
08369 { Lex.ref_list.push_back(new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0)); }
08370 break;
08371
08372 case 213:
08373
08374
08375 #line 1607 "drizzled/sql_yacc.yy"
08376 {
08377 Lex.ref_list.clear();
08378 Lex.ref_list.push_back(new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0));
08379 }
08380 break;
08381
08382 case 214:
08383
08384
08385 #line 1615 "drizzled/sql_yacc.yy"
08386 { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_UNDEFINED; }
08387 break;
08388
08389 case 215:
08390
08391
08392 #line 1617 "drizzled/sql_yacc.yy"
08393 { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_FULL; }
08394 break;
08395
08396 case 216:
08397
08398
08399 #line 1619 "drizzled/sql_yacc.yy"
08400 { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_PARTIAL; }
08401 break;
08402
08403 case 217:
08404
08405
08406 #line 1621 "drizzled/sql_yacc.yy"
08407 { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_SIMPLE; }
08408 break;
08409
08410 case 218:
08411
08412
08413 #line 1626 "drizzled/sql_yacc.yy"
08414 {
08415 ((statement::CreateTable *)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08416 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08417 }
08418 break;
08419
08420 case 219:
08421
08422
08423 #line 1631 "drizzled/sql_yacc.yy"
08424 {
08425 ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
08426 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08427 }
08428 break;
08429
08430 case 220:
08431
08432
08433 #line 1636 "drizzled/sql_yacc.yy"
08434 {
08435 ((statement::CreateTable *)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08436 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (3)].m_fk_option);
08437 }
08438 break;
08439
08440 case 221:
08441
08442
08443 #line 1642 "drizzled/sql_yacc.yy"
08444 {
08445 ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
08446 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(6) - (6)].m_fk_option);
08447 }
08448 break;
08449
08450 case 222:
08451
08452
08453 #line 1648 "drizzled/sql_yacc.yy"
08454 {
08455 ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
08456 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (6)].m_fk_option);
08457 }
08458 break;
08459
08460 case 223:
08461
08462
08463 #line 1655 "drizzled/sql_yacc.yy"
08464 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_RESTRICT; }
08465 break;
08466
08467 case 224:
08468
08469
08470 #line 1656 "drizzled/sql_yacc.yy"
08471 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_CASCADE; }
08472 break;
08473
08474 case 225:
08475
08476
08477 #line 1657 "drizzled/sql_yacc.yy"
08478 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_NULL; }
08479 break;
08480
08481 case 226:
08482
08483
08484 #line 1658 "drizzled/sql_yacc.yy"
08485 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_NO_ACTION; }
08486 break;
08487
08488 case 227:
08489
08490
08491 #line 1659 "drizzled/sql_yacc.yy"
08492 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_DEFAULT; }
08493 break;
08494
08495 case 228:
08496
08497
08498 #line 1663 "drizzled/sql_yacc.yy"
08499 { (yyval.key_type)= Key::MULTIPLE; }
08500 break;
08501
08502 case 229:
08503
08504
08505 #line 1667 "drizzled/sql_yacc.yy"
08506 { (yyval.key_type)= Key::PRIMARY; }
08507 break;
08508
08509 case 230:
08510
08511
08512 #line 1668 "drizzled/sql_yacc.yy"
08513 { (yyval.key_type)= Key::UNIQUE; }
08514 break;
08515
08516 case 231:
08517
08518
08519 #line 1672 "drizzled/sql_yacc.yy"
08520 {}
08521 break;
08522
08523 case 232:
08524
08525
08526 #line 1673 "drizzled/sql_yacc.yy"
08527 {}
08528 break;
08529
08530 case 233:
08531
08532
08533 #line 1677 "drizzled/sql_yacc.yy"
08534 {}
08535 break;
08536
08537 case 235:
08538
08539
08540 #line 1682 "drizzled/sql_yacc.yy"
08541 {}
08542 break;
08543
08544 case 236:
08545
08546
08547 #line 1683 "drizzled/sql_yacc.yy"
08548 {}
08549 break;
08550
08551 case 237:
08552
08553
08554 #line 1684 "drizzled/sql_yacc.yy"
08555 {}
08556 break;
08557
08558 case 238:
08559
08560
08561 #line 1688 "drizzled/sql_yacc.yy"
08562 { (yyval.key_type)= Key::MULTIPLE; }
08563 break;
08564
08565 case 239:
08566
08567
08568 #line 1689 "drizzled/sql_yacc.yy"
08569 { (yyval.key_type)= Key::UNIQUE; }
08570 break;
08571
08572 case 240:
08573
08574
08575 #line 1693 "drizzled/sql_yacc.yy"
08576 {
08577 ((statement::CreateTable *)Lex.statement)->key_create_info= default_key_create_info;
08578 }
08579 break;
08580
08581 case 243:
08582
08583
08584 #line 1710 "drizzled/sql_yacc.yy"
08585 {}
08586 break;
08587
08588 case 247:
08589
08590
08591 #line 1720 "drizzled/sql_yacc.yy"
08592 { ((statement::CreateTable *)Lex.statement)->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
08593 break;
08594
08595 case 249:
08596
08597
08598 #line 1726 "drizzled/sql_yacc.yy"
08599 { ((statement::CreateTable *)Lex.statement)->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
08600 break;
08601
08602 case 250:
08603
08604
08605 #line 1728 "drizzled/sql_yacc.yy"
08606 { ((statement::CreateTable *)Lex.statement)->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
08607 break;
08608
08609 case 251:
08610
08611
08612 #line 1732 "drizzled/sql_yacc.yy"
08613 { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
08614 break;
08615
08616 case 252:
08617
08618
08619 #line 1733 "drizzled/sql_yacc.yy"
08620 { (yyval.key_alg)= HA_KEY_ALG_HASH; }
08621 break;
08622
08623 case 253:
08624
08625
08626 #line 1737 "drizzled/sql_yacc.yy"
08627 { Lex.col_list.push_back((yyvsp[(3) - (4)].key_part)); }
08628 break;
08629
08630 case 254:
08631
08632
08633 #line 1738 "drizzled/sql_yacc.yy"
08634 { Lex.col_list.push_back((yyvsp[(1) - (2)].key_part)); }
08635 break;
08636
08637 case 255:
08638
08639
08640 #line 1742 "drizzled/sql_yacc.yy"
08641 { (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0); }
08642 break;
08643
08644 case 256:
08645
08646
08647 #line 1744 "drizzled/sql_yacc.yy"
08648 {
08649 int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
08650 if (!key_part_len)
08651 {
08652 my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).str);
08653 }
08654 (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (4)].lex_str), (uint) key_part_len);
08655 }
08656 break;
08657
08658 case 257:
08659
08660
08661 #line 1755 "drizzled/sql_yacc.yy"
08662 { (yyval.lex_str)= null_lex_str; }
08663 break;
08664
08665 case 258:
08666
08667
08668 #line 1756 "drizzled/sql_yacc.yy"
08669 { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
08670 break;
08671
08672 case 259:
08673
08674
08675 #line 1760 "drizzled/sql_yacc.yy"
08676 { (yyval.lex_str)= null_lex_str; }
08677 break;
08678
08679 case 260:
08680
08681
08682 #line 1761 "drizzled/sql_yacc.yy"
08683 { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
08684 break;
08685
08686 case 261:
08687
08688
08689 #line 1765 "drizzled/sql_yacc.yy"
08690 { Lex.interval_list.push_back((yyvsp[(1) - (1)].string)); }
08691 break;
08692
08693 case 262:
08694
08695
08696 #line 1766 "drizzled/sql_yacc.yy"
08697 { Lex.interval_list.push_back((yyvsp[(3) - (3)].string)); }
08698 break;
08699
08700 case 263:
08701
08702
08703 #line 1774 "drizzled/sql_yacc.yy"
08704 {
08705 statement::AlterTable *statement= new statement::AlterTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].build_method));
08706 Lex.statement= statement;
08707 Lex.duplicates= DUP_ERROR;
08708 if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL, TL_OPTION_UPDATING))
08709 {
08710 DRIZZLE_YYABORT;
08711 }
08712
08713 Lex.col_list.clear();
08714 Lex.select_lex.init_order();
08715 Lex.select_lex.db= const_cast<char *>(((TableList*) Lex.select_lex.table_list.first)->getSchemaName());
08716 }
08717 break;
08718
08719 case 264:
08720
08721
08722 #line 1788 "drizzled/sql_yacc.yy"
08723 {}
08724 break;
08725
08726 case 265:
08727
08728
08729 #line 1790 "drizzled/sql_yacc.yy"
08730 {
08731 Lex.statement= new statement::AlterSchema(YYSession);
08732 }
08733 break;
08734
08735 case 266:
08736
08737
08738 #line 1794 "drizzled/sql_yacc.yy"
08739 {
08740 Lex.name= (yyvsp[(3) - (5)].lex_str);
08741 if (Lex.name.str == NULL && Lex.copy_db_to(&Lex.name.str, &Lex.name.length))
08742 DRIZZLE_YYABORT;
08743 }
08744 break;
08745
08746 case 268:
08747
08748
08749 #line 1804 "drizzled/sql_yacc.yy"
08750 {
08751 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08752 statement->alter_info.tablespace_op= DISCARD_TABLESPACE;
08753 }
08754 break;
08755
08756 case 269:
08757
08758
08759 #line 1809 "drizzled/sql_yacc.yy"
08760 {
08761 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08762 statement->alter_info.tablespace_op= IMPORT_TABLESPACE;
08763 }
08764 break;
08765
08766 case 271:
08767
08768
08769 #line 1818 "drizzled/sql_yacc.yy"
08770 {
08771 (yyval.build_method)= HA_BUILD_DEFAULT;
08772 }
08773 break;
08774
08775 case 272:
08776
08777
08778 #line 1822 "drizzled/sql_yacc.yy"
08779 {
08780 (yyval.build_method)= HA_BUILD_ONLINE;
08781 }
08782 break;
08783
08784 case 273:
08785
08786
08787 #line 1826 "drizzled/sql_yacc.yy"
08788 {
08789 (yyval.build_method)= HA_BUILD_OFFLINE;
08790 }
08791 break;
08792
08793 case 276:
08794
08795
08796 #line 1838 "drizzled/sql_yacc.yy"
08797 {
08798 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08799
08800 statement->change=0;
08801 statement->alter_info.flags.set(ALTER_ADD_COLUMN);
08802 }
08803 break;
08804
08805 case 277:
08806
08807
08808 #line 1847 "drizzled/sql_yacc.yy"
08809 { }
08810 break;
08811
08812 case 278:
08813
08814
08815 #line 1849 "drizzled/sql_yacc.yy"
08816 {
08817 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08818
08819 statement->alter_info.flags.set(ALTER_ADD_INDEX);
08820 }
08821 break;
08822
08823 case 279:
08824
08825
08826 #line 1855 "drizzled/sql_yacc.yy"
08827 {
08828 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08829
08830 statement->alter_info.flags.set(ALTER_ADD_COLUMN);
08831 statement->alter_info.flags.set(ALTER_ADD_INDEX);
08832 }
08833 break;
08834
08835 case 280:
08836
08837
08838 #line 1862 "drizzled/sql_yacc.yy"
08839 {
08840 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08841 statement->change= (yyvsp[(3) - (3)].lex_str).str;
08842 statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
08843 }
08844 break;
08845
08846 case 282:
08847
08848
08849 #line 1869 "drizzled/sql_yacc.yy"
08850 {
08851 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08852 Lex.length= Lex.dec=0;
08853 Lex.type= 0;
08854 statement->default_value= statement->on_update_value= 0;
08855 statement->comment= null_lex_str;
08856 Lex.charset= NULL;
08857 statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
08858 statement->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
08859
08860 Lex.setField(NULL);
08861 }
08862 break;
08863
08864 case 283:
08865
08866
08867 #line 1882 "drizzled/sql_yacc.yy"
08868 {
08869 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08870
08871 if (add_field_to_list(Lex.session,&(yyvsp[(3) - (6)].lex_str),
08872 (enum enum_field_types) (yyvsp[(5) - (6)].field_val),
08873 Lex.length, Lex.dec, Lex.type,
08874 statement->column_format,
08875 statement->default_value,
08876 statement->on_update_value,
08877 &statement->comment,
08878 (yyvsp[(3) - (6)].lex_str).str, &Lex.interval_list, Lex.charset))
08879 DRIZZLE_YYABORT;
08880 }
08881 break;
08882
08883 case 285:
08884
08885
08886 #line 1897 "drizzled/sql_yacc.yy"
08887 {
08888 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08889
08890 statement->alter_info.drop_list.push_back(AlterDrop(AlterDrop::COLUMN, (yyvsp[(3) - (3)].lex_str).str));
08891 statement->alter_info.flags.set(ALTER_DROP_COLUMN);
08892 }
08893 break;
08894
08895 case 286:
08896
08897
08898 #line 1904 "drizzled/sql_yacc.yy"
08899 {
08900 parser::buildAddAlterDropIndex(&Lex, (yyvsp[(4) - (4)].lex_str).str, true);
08901 }
08902 break;
08903
08904 case 287:
08905
08906
08907 #line 1908 "drizzled/sql_yacc.yy"
08908 {
08909 parser::buildAddAlterDropIndex(&Lex, "PRIMARY");
08910 }
08911 break;
08912
08913 case 288:
08914
08915
08916 #line 1912 "drizzled/sql_yacc.yy"
08917 {
08918 parser::buildAddAlterDropIndex(&Lex, (yyvsp[(3) - (3)].lex_str).str);
08919 }
08920 break;
08921
08922 case 289:
08923
08924
08925 #line 1916 "drizzled/sql_yacc.yy"
08926 {
08927 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08928
08929 statement->alter_info.keys_onoff= DISABLE;
08930 statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
08931 }
08932 break;
08933
08934 case 290:
08935
08936
08937 #line 1923 "drizzled/sql_yacc.yy"
08938 {
08939 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08940
08941 statement->alter_info.keys_onoff= ENABLE;
08942 statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
08943 }
08944 break;
08945
08946 case 291:
08947
08948
08949 #line 1930 "drizzled/sql_yacc.yy"
08950 {
08951 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08952
08953 statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item)));
08954 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08955 }
08956 break;
08957
08958 case 292:
08959
08960
08961 #line 1937 "drizzled/sql_yacc.yy"
08962 {
08963 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08964
08965 statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (5)].lex_str).str, (Item*) 0));
08966 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08967 }
08968 break;
08969
08970 case 293:
08971
08972
08973 #line 1944 "drizzled/sql_yacc.yy"
08974 {
08975 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08976 size_t dummy;
08977
08978 Lex.select_lex.db=(yyvsp[(3) - (3)].table)->db.str;
08979 if (Lex.select_lex.db == NULL &&
08980 Lex.copy_db_to(&Lex.select_lex.db, &dummy))
08981 {
08982 DRIZZLE_YYABORT;
08983 }
08984
08985 if (check_table_name((yyvsp[(3) - (3)].table)->table.str,(yyvsp[(3) - (3)].table)->table.length))
08986 {
08987 my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.str);
08988 DRIZZLE_YYABORT;
08989 }
08990
08991 Lex.name= (yyvsp[(3) - (3)].table)->table;
08992 statement->alter_info.flags.set(ALTER_RENAME);
08993 }
08994 break;
08995
08996 case 294:
08997
08998
08999 #line 1965 "drizzled/sql_yacc.yy"
09000 {
09001 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09002
09003 statement->create_info().table_charset=
09004 statement->create_info().default_table_charset= (yyvsp[(3) - (3)].charset);
09005 statement->create_info().used_fields|= (HA_CREATE_USED_CHARSET |
09006 HA_CREATE_USED_DEFAULT_CHARSET);
09007 statement->alter_info.flags.set(ALTER_CONVERT);
09008 }
09009 break;
09010
09011 case 295:
09012
09013
09014 #line 1975 "drizzled/sql_yacc.yy"
09015 {
09016 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09017
09018 statement->alter_info.flags.set(ALTER_OPTIONS);
09019 }
09020 break;
09021
09022 case 296:
09023
09024
09025 #line 1981 "drizzled/sql_yacc.yy"
09026 {
09027 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09028
09029 statement->alter_info.flags.set(ALTER_FORCE);
09030 }
09031 break;
09032
09033 case 297:
09034
09035
09036 #line 1987 "drizzled/sql_yacc.yy"
09037 {
09038 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09039
09040 statement->alter_info.flags.set(ALTER_ORDER);
09041 }
09042 break;
09043
09044 case 298:
09045
09046
09047 #line 1995 "drizzled/sql_yacc.yy"
09048 {}
09049 break;
09050
09051 case 299:
09052
09053
09054 #line 1996 "drizzled/sql_yacc.yy"
09055 {}
09056 break;
09057
09058 case 300:
09059
09060
09061 #line 2000 "drizzled/sql_yacc.yy"
09062 { Lex.ignore= 0;}
09063 break;
09064
09065 case 301:
09066
09067
09068 #line 2001 "drizzled/sql_yacc.yy"
09069 { Lex.ignore= 1;}
09070 break;
09071
09072 case 302:
09073
09074
09075 #line 2005 "drizzled/sql_yacc.yy"
09076 {}
09077 break;
09078
09079 case 303:
09080
09081
09082 #line 2007 "drizzled/sql_yacc.yy"
09083 {
09084 parser::storeAlterColumnPosition(&Lex, (yyvsp[(2) - (2)].lex_str).str);
09085 }
09086 break;
09087
09088 case 304:
09089
09090
09091 #line 2011 "drizzled/sql_yacc.yy"
09092 {
09093 parser::storeAlterColumnPosition(&Lex, first_keyword);
09094 }
09095 break;
09096
09097 case 305:
09098
09099
09100 #line 2017 "drizzled/sql_yacc.yy"
09101 {}
09102 break;
09103
09104 case 306:
09105
09106
09107 #line 2018 "drizzled/sql_yacc.yy"
09108 {}
09109 break;
09110
09111 case 307:
09112
09113
09114 #line 2019 "drizzled/sql_yacc.yy"
09115 {}
09116 break;
09117
09118 case 308:
09119
09120
09121 #line 2024 "drizzled/sql_yacc.yy"
09122 {
09123 Lex.statement= new statement::StartTransaction(YYSession, (start_transaction_option_t)(yyvsp[(3) - (3)].num));
09124 }
09125 break;
09126
09127 case 309:
09128
09129
09130 #line 2030 "drizzled/sql_yacc.yy"
09131 { (yyval.num) = START_TRANS_NO_OPTIONS; }
09132 break;
09133
09134 case 310:
09135
09136
09137 #line 2032 "drizzled/sql_yacc.yy"
09138 {
09139 (yyval.num)= START_TRANS_OPT_WITH_CONS_SNAPSHOT;
09140 }
09141 break;
09142
09143 case 311:
09144
09145
09146 #line 2039 "drizzled/sql_yacc.yy"
09147 {
09148 Lex.statement= new statement::Analyze(YYSession);
09149 }
09150 break;
09151
09152 case 312:
09153
09154
09155 #line 2043 "drizzled/sql_yacc.yy"
09156 {}
09157 break;
09158
09159 case 313:
09160
09161
09162 #line 2048 "drizzled/sql_yacc.yy"
09163 {
09164 Lex.statement= new statement::Check(YYSession);
09165 }
09166 break;
09167
09168 case 314:
09169
09170
09171 #line 2052 "drizzled/sql_yacc.yy"
09172 {}
09173 break;
09174
09175 case 315:
09176
09177
09178 #line 2057 "drizzled/sql_yacc.yy"
09179 {
09180 Lex.statement= new statement::RenameTable(YYSession);
09181 }
09182 break;
09183
09184 case 316:
09185
09186
09187 #line 2061 "drizzled/sql_yacc.yy"
09188 {}
09189 break;
09190
09191 case 319:
09192
09193
09194 #line 2071 "drizzled/sql_yacc.yy"
09195 {
09196 Select_Lex *sl= Lex.current_select;
09197 if (!sl->add_table_to_list(Lex.session, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
09198 TL_IGNORE) ||
09199 !sl->add_table_to_list(Lex.session, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
09200 TL_IGNORE))
09201 DRIZZLE_YYABORT;
09202 }
09203 break;
09204
09205 case 320:
09206
09207
09208 #line 2088 "drizzled/sql_yacc.yy"
09209 {
09210 Lex.statement= new statement::Select(YYSession);
09211 }
09212 break;
09213
09214 case 323:
09215
09216
09217 #line 2101 "drizzled/sql_yacc.yy"
09218 {
09219 if (parser::setup_select_in_parentheses(YYSession, &Lex))
09220 DRIZZLE_YYABORT;
09221 }
09222 break;
09223
09224 case 325:
09225
09226
09227 #line 2111 "drizzled/sql_yacc.yy"
09228 {
09229 if (parser::setup_select_in_parentheses(YYSession, &Lex))
09230 DRIZZLE_YYABORT;
09231 }
09232 break;
09233
09234 case 327:
09235
09236
09237 #line 2120 "drizzled/sql_yacc.yy"
09238 {
09239 Select_Lex * sel= Lex.current_select;
09240 if (Lex.current_select->set_braces(0))
09241 {
09242 parser::my_parse_error(YYSession->m_lip);
09243 DRIZZLE_YYABORT;
09244 }
09245 if (sel->linkage == UNION_TYPE &&
09246 sel->master_unit()->first_select()->braces)
09247 {
09248 parser::my_parse_error(YYSession->m_lip);
09249 DRIZZLE_YYABORT;
09250 }
09251 }
09252 break;
09253
09254 case 329:
09255
09256
09257 #line 2138 "drizzled/sql_yacc.yy"
09258 {
09259 Select_Lex *sel= Lex.current_select;
09260 if (sel->linkage != UNION_TYPE)
09261 init_select(&Lex);
09262 Lex.current_select->parsing_place= SELECT_LIST;
09263 }
09264 break;
09265
09266 case 330:
09267
09268
09269 #line 2145 "drizzled/sql_yacc.yy"
09270 {
09271 Lex.current_select->parsing_place= NO_MATTER;
09272 }
09273 break;
09274
09275 case 332:
09276
09277
09278 #line 2152 "drizzled/sql_yacc.yy"
09279 {}
09280 break;
09281
09282 case 337:
09283
09284
09285 #line 2162 "drizzled/sql_yacc.yy"
09286 {
09287 Lex.current_select->context.table_list=
09288 Lex.current_select->context.first_name_resolution_table=
09289 reinterpret_cast<TableList *>(Lex.current_select->table_list.first);
09290 }
09291 break;
09292
09293 case 339:
09294
09295
09296 #line 2172 "drizzled/sql_yacc.yy"
09297 { }
09298 break;
09299
09300 case 342:
09301
09302
09303 #line 2182 "drizzled/sql_yacc.yy"
09304 {
09305 Lex.current_select->options|= SELECT_DISTINCT;
09306
09307 if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09308 {
09309 my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09310 DRIZZLE_YYABORT;
09311 }
09312 }
09313 break;
09314
09315 case 343:
09316
09317
09318 #line 2192 "drizzled/sql_yacc.yy"
09319 {
09320 Lex.current_select->options|= SELECT_ALL;
09321
09322 if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09323 {
09324 my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09325 DRIZZLE_YYABORT;
09326 }
09327 }
09328 break;
09329
09330 case 344:
09331
09332
09333 #line 2205 "drizzled/sql_yacc.yy"
09334 {
09335 Lex.current_select->options|= SELECT_SMALL_RESULT;
09336
09337 if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09338 {
09339 my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09340 DRIZZLE_YYABORT;
09341 }
09342 }
09343 break;
09344
09345 case 345:
09346
09347
09348 #line 2215 "drizzled/sql_yacc.yy"
09349 {
09350 Lex.current_select->options|= SELECT_BIG_RESULT;
09351
09352 if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09353 {
09354 my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09355 DRIZZLE_YYABORT;
09356 }
09357 }
09358 break;
09359
09360 case 346:
09361
09362
09363 #line 2228 "drizzled/sql_yacc.yy"
09364 { Lex.current_select->options|= SELECT_STRAIGHT_JOIN; }
09365 break;
09366
09367 case 347:
09368
09369
09370 #line 2230 "drizzled/sql_yacc.yy"
09371 {
09372 if (check_simple_select(YYSession))
09373 DRIZZLE_YYABORT;
09374 Lex.current_select->options|= OPTION_BUFFER_RESULT;
09375 }
09376 break;
09377
09378 case 348:
09379
09380
09381 #line 2236 "drizzled/sql_yacc.yy"
09382 { }
09383 break;
09384
09385 case 349:
09386
09387
09388 #line 2238 "drizzled/sql_yacc.yy"
09389 { }
09390 break;
09391
09392 case 350:
09393
09394
09395 #line 2240 "drizzled/sql_yacc.yy"
09396 {
09397 if (check_simple_select(YYSession))
09398 DRIZZLE_YYABORT;
09399 Lex.current_select->options|= OPTION_FOUND_ROWS;
09400 }
09401 break;
09402
09403 case 352:
09404
09405
09406 #line 2250 "drizzled/sql_yacc.yy"
09407 {
09408 Lex.current_select->set_lock_for_tables(TL_WRITE);
09409 }
09410 break;
09411
09412 case 353:
09413
09414
09415 #line 2254 "drizzled/sql_yacc.yy"
09416 {
09417 Lex.current_select->
09418 set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
09419 }
09420 break;
09421
09422 case 356:
09423
09424
09425 #line 2264 "drizzled/sql_yacc.yy"
09426 {
09427 if (YYSession->add_item_to_list( new Item_field(&YYSession->lex().current_select->context, NULL, NULL, "*")))
09428 DRIZZLE_YYABORT;
09429
09430 (YYSession->lex().current_select->with_wild)++;
09431 }
09432 break;
09433
09434 case 357:
09435
09436
09437 #line 2274 "drizzled/sql_yacc.yy"
09438 {
09439 if (YYSession->add_item_to_list((yyvsp[(2) - (3)].item)))
09440 DRIZZLE_YYABORT;
09441 }
09442 break;
09443
09444 case 358:
09445
09446
09447 #line 2279 "drizzled/sql_yacc.yy"
09448 {
09449 assert((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));
09450
09451 if (YYSession->add_item_to_list((yyvsp[(2) - (4)].item)))
09452 DRIZZLE_YYABORT;
09453
09454 if ((yyvsp[(4) - (4)].lex_str).str)
09455 {
09456 (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
09457 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
09458 }
09459 else if (!(yyvsp[(2) - (4)].item)->name)
09460 {
09461 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
09462 }
09463 }
09464 break;
09465
09466 case 359:
09467
09468
09469 #line 2298 "drizzled/sql_yacc.yy"
09470 {
09471 Lex_input_stream *lip= YYSession->m_lip;
09472 (yyval.simple_string)= (char*) lip->get_cpp_tok_start();
09473 }
09474 break;
09475
09476 case 360:
09477
09478
09479 #line 2305 "drizzled/sql_yacc.yy"
09480 {
09481 Lex_input_stream *lip= YYSession->m_lip;
09482 (yyval.simple_string)= (char*) lip->get_cpp_tok_end();
09483 }
09484 break;
09485
09486 case 361:
09487
09488
09489 #line 2312 "drizzled/sql_yacc.yy"
09490 { (yyval.lex_str)=null_lex_str;}
09491 break;
09492
09493 case 362:
09494
09495
09496 #line 2313 "drizzled/sql_yacc.yy"
09497 { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09498 break;
09499
09500 case 363:
09501
09502
09503 #line 2314 "drizzled/sql_yacc.yy"
09504 { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09505 break;
09506
09507 case 364:
09508
09509
09510 #line 2315 "drizzled/sql_yacc.yy"
09511 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09512 break;
09513
09514 case 365:
09515
09516
09517 #line 2316 "drizzled/sql_yacc.yy"
09518 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09519 break;
09520
09521 case 366:
09522
09523
09524 #line 2320 "drizzled/sql_yacc.yy"
09525 {}
09526 break;
09527
09528 case 367:
09529
09530
09531 #line 2321 "drizzled/sql_yacc.yy"
09532 {}
09533 break;
09534
09535 case 368:
09536
09537
09538 #line 2327 "drizzled/sql_yacc.yy"
09539 {
09540
09541
09542
09543
09544
09545
09546
09547
09548
09549 Item_cond_or *item1;
09550 Item_cond_or *item3;
09551 if (is_cond_or((yyvsp[(1) - (3)].item)))
09552 {
09553 item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
09554 if (is_cond_or((yyvsp[(3) - (3)].item)))
09555 {
09556 item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09557
09558
09559
09560 item3->add_at_head(item1->argument_list());
09561 (yyval.item) = (yyvsp[(3) - (3)].item);
09562 }
09563 else
09564 {
09565
09566
09567
09568 item1->add((yyvsp[(3) - (3)].item));
09569 (yyval.item) = (yyvsp[(1) - (3)].item);
09570 }
09571 }
09572 else if (is_cond_or((yyvsp[(3) - (3)].item)))
09573 {
09574 item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09575
09576
09577
09578 item3->add_at_head((yyvsp[(1) - (3)].item));
09579 (yyval.item) = (yyvsp[(3) - (3)].item);
09580 }
09581 else
09582 {
09583
09584 (yyval.item) = new (YYSession->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09585 }
09586 }
09587 break;
09588
09589 case 369:
09590
09591
09592 #line 2376 "drizzled/sql_yacc.yy"
09593 {
09594
09595 (yyval.item) = new (YYSession->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09596 }
09597 break;
09598
09599 case 370:
09600
09601
09602 #line 2381 "drizzled/sql_yacc.yy"
09603 {
09604
09605 Item_cond_and *item1;
09606 Item_cond_and *item3;
09607 if (is_cond_and((yyvsp[(1) - (3)].item)))
09608 {
09609 item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
09610 if (is_cond_and((yyvsp[(3) - (3)].item)))
09611 {
09612 item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09613
09614
09615
09616 item3->add_at_head(item1->argument_list());
09617 (yyval.item) = (yyvsp[(3) - (3)].item);
09618 }
09619 else
09620 {
09621
09622
09623
09624 item1->add((yyvsp[(3) - (3)].item));
09625 (yyval.item) = (yyvsp[(1) - (3)].item);
09626 }
09627 }
09628 else if (is_cond_and((yyvsp[(3) - (3)].item)))
09629 {
09630 item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09631
09632
09633
09634 item3->add_at_head((yyvsp[(1) - (3)].item));
09635 (yyval.item) = (yyvsp[(3) - (3)].item);
09636 }
09637 else
09638 {
09639
09640 (yyval.item) = new (YYSession->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09641 }
09642 }
09643 break;
09644
09645 case 371:
09646
09647
09648 #line 2422 "drizzled/sql_yacc.yy"
09649 { (yyval.item)= negate_expression(YYSession, (yyvsp[(2) - (2)].item)); }
09650 break;
09651
09652 case 372:
09653
09654
09655 #line 2424 "drizzled/sql_yacc.yy"
09656 {
09657 (yyval.item)= new (YYSession->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
09658 }
09659 break;
09660
09661 case 373:
09662
09663
09664 #line 2428 "drizzled/sql_yacc.yy"
09665 {
09666 (yyval.item)= new (YYSession->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
09667 }
09668 break;
09669
09670 case 374:
09671
09672
09673 #line 2432 "drizzled/sql_yacc.yy"
09674 {
09675 (yyval.item)= new (YYSession->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
09676 }
09677 break;
09678
09679 case 375:
09680
09681
09682 #line 2436 "drizzled/sql_yacc.yy"
09683 {
09684 (yyval.item)= new (YYSession->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
09685 }
09686 break;
09687
09688 case 376:
09689
09690
09691 #line 2440 "drizzled/sql_yacc.yy"
09692 {
09693 (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09694 }
09695 break;
09696
09697 case 377:
09698
09699
09700 #line 2444 "drizzled/sql_yacc.yy"
09701 {
09702 (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09703 }
09704 break;
09705
09706 case 379:
09707
09708
09709 #line 2452 "drizzled/sql_yacc.yy"
09710 {
09711 (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09712 }
09713 break;
09714
09715 case 380:
09716
09717
09718 #line 2456 "drizzled/sql_yacc.yy"
09719 {
09720 (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09721 }
09722 break;
09723
09724 case 381:
09725
09726
09727 #line 2460 "drizzled/sql_yacc.yy"
09728 {
09729 (yyval.item)= new Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09730 }
09731 break;
09732
09733 case 382:
09734
09735
09736 #line 2464 "drizzled/sql_yacc.yy"
09737 {
09738 (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09739 }
09740 break;
09741
09742 case 383:
09743
09744
09745 #line 2468 "drizzled/sql_yacc.yy"
09746 {
09747 (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
09748 }
09749 break;
09750
09751 case 385:
09752
09753
09754 #line 2476 "drizzled/sql_yacc.yy"
09755 {
09756 (yyval.item)= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
09757 }
09758 break;
09759
09760 case 386:
09761
09762
09763 #line 2480 "drizzled/sql_yacc.yy"
09764 {
09765 Item *item= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
09766 (yyval.item)= negate_expression(YYSession, item);
09767 }
09768 break;
09769
09770 case 387:
09771
09772
09773 #line 2485 "drizzled/sql_yacc.yy"
09774 {
09775 (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
09776 }
09777 break;
09778
09779 case 388:
09780
09781
09782 #line 2489 "drizzled/sql_yacc.yy"
09783 {
09784 (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
09785 (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
09786 (yyval.item)= new (YYSession->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
09787 }
09788 break;
09789
09790 case 389:
09791
09792
09793 #line 2495 "drizzled/sql_yacc.yy"
09794 {
09795 (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
09796 }
09797 break;
09798
09799 case 390:
09800
09801
09802 #line 2499 "drizzled/sql_yacc.yy"
09803 {
09804 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
09805 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
09806 Item_func_in *item = new (YYSession->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
09807 item->negate();
09808 (yyval.item)= item;
09809 }
09810 break;
09811
09812 case 391:
09813
09814
09815 #line 2507 "drizzled/sql_yacc.yy"
09816 {
09817 (yyval.item)= new Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
09818 }
09819 break;
09820
09821 case 392:
09822
09823
09824 #line 2511 "drizzled/sql_yacc.yy"
09825 {
09826 Item_func_between *item= new Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
09827 item->negate();
09828 (yyval.item)= item;
09829 }
09830 break;
09831
09832 case 393:
09833
09834
09835 #line 2517 "drizzled/sql_yacc.yy"
09836 {
09837 (yyval.item)= new Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex.escape_used);
09838 }
09839 break;
09840
09841 case 394:
09842
09843
09844 #line 2521 "drizzled/sql_yacc.yy"
09845 {
09846 (yyval.item)= new Item_func_not(new Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item), Lex.escape_used));
09847 }
09848 break;
09849
09850 case 395:
09851
09852
09853 #line 2525 "drizzled/sql_yacc.yy"
09854 {
09855 List<Item> *args= new (YYSession->mem_root) List<Item>;
09856 args->push_back((yyvsp[(1) - (3)].item));
09857 args->push_back((yyvsp[(3) - (3)].item));
09858 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
09859 {
09860 DRIZZLE_YYABORT;
09861 }
09862 }
09863 break;
09864
09865 case 396:
09866
09867
09868 #line 2535 "drizzled/sql_yacc.yy"
09869 {
09870 List<Item> *args= new (YYSession->mem_root) List<Item>;
09871 args->push_back((yyvsp[(1) - (4)].item));
09872 args->push_back((yyvsp[(4) - (4)].item));
09873 args->push_back(new (YYSession->mem_root) Item_int(1));
09874 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
09875 {
09876 DRIZZLE_YYABORT;
09877 }
09878 }
09879 break;
09880
09881 case 398:
09882
09883
09884 #line 2550 "drizzled/sql_yacc.yy"
09885 {
09886 (yyval.item)= new function::bit::Or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09887 }
09888 break;
09889
09890 case 399:
09891
09892
09893 #line 2554 "drizzled/sql_yacc.yy"
09894 {
09895 (yyval.item)= new function::bit::And((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09896 }
09897 break;
09898
09899 case 400:
09900
09901
09902 #line 2558 "drizzled/sql_yacc.yy"
09903 {
09904 (yyval.item)= new function::bit::ShiftRight((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09905 }
09906 break;
09907
09908 case 401:
09909
09910
09911 #line 2562 "drizzled/sql_yacc.yy"
09912 {
09913 (yyval.item)= new function::bit::ShiftLeft((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09914 }
09915 break;
09916
09917 case 402:
09918
09919
09920 #line 2566 "drizzled/sql_yacc.yy"
09921 {
09922 (yyval.item)= new Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09923 }
09924 break;
09925
09926 case 403:
09927
09928
09929 #line 2570 "drizzled/sql_yacc.yy"
09930 {
09931 (yyval.item)= new Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09932 }
09933 break;
09934
09935 case 404:
09936
09937
09938 #line 2574 "drizzled/sql_yacc.yy"
09939 {
09940 (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
09941 }
09942 break;
09943
09944 case 405:
09945
09946
09947 #line 2578 "drizzled/sql_yacc.yy"
09948 {
09949 (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
09950 }
09951 break;
09952
09953 case 406:
09954
09955
09956 #line 2582 "drizzled/sql_yacc.yy"
09957 {
09958 (yyval.item)= new Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09959 }
09960 break;
09961
09962 case 407:
09963
09964
09965 #line 2586 "drizzled/sql_yacc.yy"
09966 {
09967 (yyval.item)= new Item_func_div(YYSession,(yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09968 }
09969 break;
09970
09971 case 408:
09972
09973
09974 #line 2590 "drizzled/sql_yacc.yy"
09975 {
09976 (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09977 }
09978 break;
09979
09980 case 409:
09981
09982
09983 #line 2594 "drizzled/sql_yacc.yy"
09984 {
09985 (yyval.item)= new Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09986 }
09987 break;
09988
09989 case 410:
09990
09991
09992 #line 2598 "drizzled/sql_yacc.yy"
09993 {
09994 (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09995 }
09996 break;
09997
09998 case 411:
09999
10000
10001 #line 2602 "drizzled/sql_yacc.yy"
10002 {
10003 (yyval.item)= new (YYSession->mem_root) function::bit::Xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10004 }
10005 break;
10006
10007 case 413:
10008
10009
10010 #line 2609 "drizzled/sql_yacc.yy"
10011 { (yyval.boolfunc2creator) = &comp_eq_creator; }
10012 break;
10013
10014 case 414:
10015
10016
10017 #line 2610 "drizzled/sql_yacc.yy"
10018 { (yyval.boolfunc2creator) = &comp_ge_creator; }
10019 break;
10020
10021 case 415:
10022
10023
10024 #line 2611 "drizzled/sql_yacc.yy"
10025 { (yyval.boolfunc2creator) = &comp_gt_creator; }
10026 break;
10027
10028 case 416:
10029
10030
10031 #line 2612 "drizzled/sql_yacc.yy"
10032 { (yyval.boolfunc2creator) = &comp_le_creator; }
10033 break;
10034
10035 case 417:
10036
10037
10038 #line 2613 "drizzled/sql_yacc.yy"
10039 { (yyval.boolfunc2creator) = &comp_lt_creator; }
10040 break;
10041
10042 case 418:
10043
10044
10045 #line 2614 "drizzled/sql_yacc.yy"
10046 { (yyval.boolfunc2creator) = &comp_ne_creator; }
10047 break;
10048
10049 case 419:
10050
10051
10052 #line 2618 "drizzled/sql_yacc.yy"
10053 { (yyval.num) = 1; }
10054 break;
10055
10056 case 420:
10057
10058
10059 #line 2619 "drizzled/sql_yacc.yy"
10060 { (yyval.num) = 0; }
10061 break;
10062
10063 case 426:
10064
10065
10066 #line 2629 "drizzled/sql_yacc.yy"
10067 {
10068 Item *i1= new (YYSession->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
10069 (yyvsp[(3) - (3)].lex_str).length,
10070 YYSession->charset());
10071 (yyval.item)= new (YYSession->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
10072 }
10073 break;
10074
10075 case 429:
10076
10077
10078 #line 2638 "drizzled/sql_yacc.yy"
10079 {
10080 Lex.setSumExprUsed();
10081 }
10082 break;
10083
10084 case 430:
10085
10086
10087 #line 2642 "drizzled/sql_yacc.yy"
10088 {
10089 (yyval.item)= new (YYSession->mem_root) Item_func_concat(*YYSession, (yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10090 }
10091 break;
10092
10093 case 431:
10094
10095
10096 #line 2645 "drizzled/sql_yacc.yy"
10097 { (yyval.item)= (yyvsp[(2) - (2)].item); }
10098 break;
10099
10100 case 432:
10101
10102
10103 #line 2647 "drizzled/sql_yacc.yy"
10104 {
10105 (yyval.item)= new (YYSession->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
10106 }
10107 break;
10108
10109 case 433:
10110
10111
10112 #line 2651 "drizzled/sql_yacc.yy"
10113 {
10114 (yyval.item)= new (YYSession->mem_root) function::bit::Neg((yyvsp[(2) - (2)].item));
10115 }
10116 break;
10117
10118 case 434:
10119
10120
10121 #line 2655 "drizzled/sql_yacc.yy"
10122 {
10123 (yyval.item)= new (YYSession->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
10124 }
10125 break;
10126
10127 case 435:
10128
10129
10130 #line 2658 "drizzled/sql_yacc.yy"
10131 { (yyval.item)= (yyvsp[(2) - (3)].item); }
10132 break;
10133
10134 case 436:
10135
10136
10137 #line 2660 "drizzled/sql_yacc.yy"
10138 {
10139 (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
10140 (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
10141 }
10142 break;
10143
10144 case 437:
10145
10146
10147 #line 2665 "drizzled/sql_yacc.yy"
10148 {
10149 (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
10150 (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
10151 }
10152 break;
10153
10154 case 438:
10155
10156
10157 #line 2670 "drizzled/sql_yacc.yy"
10158 {
10159 (yyval.item)= new (YYSession->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
10160 }
10161 break;
10162
10163 case 439:
10164
10165
10166 #line 2673 "drizzled/sql_yacc.yy"
10167 { (yyval.item)= (yyvsp[(3) - (4)].item); }
10168 break;
10169
10170 case 440:
10171
10172
10173 #line 2675 "drizzled/sql_yacc.yy"
10174 {
10175 (yyval.item)= create_func_cast(YYSession, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
10176 &my_charset_bin);
10177 }
10178 break;
10179
10180 case 441:
10181
10182
10183 #line 2680 "drizzled/sql_yacc.yy"
10184 {
10185 (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10186 Lex.charset);
10187 if (!(yyval.item))
10188 DRIZZLE_YYABORT;
10189 }
10190 break;
10191
10192 case 442:
10193
10194
10195 #line 2687 "drizzled/sql_yacc.yy"
10196 { (yyval.item)= new (YYSession->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) ); }
10197 break;
10198
10199 case 443:
10200
10201
10202 #line 2689 "drizzled/sql_yacc.yy"
10203 {
10204 (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10205 Lex.charset);
10206 if (!(yyval.item))
10207 DRIZZLE_YYABORT;
10208 }
10209 break;
10210
10211 case 444:
10212
10213
10214 #line 2696 "drizzled/sql_yacc.yy"
10215 {
10216 (yyval.item)= new (YYSession->mem_root) Item_default_value(Lex.current_context(),
10217 (yyvsp[(3) - (4)].item));
10218 }
10219 break;
10220
10221 case 445:
10222
10223
10224 #line 2701 "drizzled/sql_yacc.yy"
10225 {
10226 (yyval.item)= new (YYSession->mem_root) Item_insert_value(Lex.current_context(),
10227 (yyvsp[(3) - (4)].item));
10228 }
10229 break;
10230
10231 case 446:
10232
10233
10234 #line 2707 "drizzled/sql_yacc.yy"
10235 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0); }
10236 break;
10237
10238 case 447:
10239
10240
10241 #line 2718 "drizzled/sql_yacc.yy"
10242 { (yyval.item)= new (YYSession->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list)); }
10243 break;
10244
10245 case 448:
10246
10247
10248 #line 2720 "drizzled/sql_yacc.yy"
10249 {
10250 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10251 {
10252 DRIZZLE_YYABORT;
10253 }
10254 Lex.setCacheable(false);
10255 }
10256 break;
10257
10258 case 449:
10259
10260
10261 #line 2728 "drizzled/sql_yacc.yy"
10262 { (yyval.item)= new (YYSession->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item)); }
10263 break;
10264
10265 case 450:
10266
10267
10268 #line 2730 "drizzled/sql_yacc.yy"
10269 { (yyval.item)= new (YYSession->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item)); }
10270 break;
10271
10272 case 451:
10273
10274
10275 #line 2732 "drizzled/sql_yacc.yy"
10276 { (yyval.item)= new (YYSession->mem_root) Item_func_hour((yyvsp[(3) - (4)].item)); }
10277 break;
10278
10279 case 452:
10280
10281
10282 #line 2734 "drizzled/sql_yacc.yy"
10283 { (yyval.item)= new (YYSession->mem_root) Item_func_insert(*YYSession, (yyvsp[(3) - (10)].item), (yyvsp[(5) - (10)].item), (yyvsp[(7) - (10)].item), (yyvsp[(9) - (10)].item)); }
10284 break;
10285
10286 case 453:
10287
10288
10289 #line 2736 "drizzled/sql_yacc.yy"
10290 {
10291 List<Item> *list= new (YYSession->mem_root) List<Item>;
10292 list->push_front((yyvsp[(5) - (6)].item));
10293 list->push_front((yyvsp[(3) - (6)].item));
10294 Item_row *item= new (YYSession->mem_root) Item_row(*list);
10295 (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10296 }
10297 break;
10298
10299 case 454:
10300
10301
10302 #line 2744 "drizzled/sql_yacc.yy"
10303 {
10304 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
10305 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
10306 Item_row *item= new (YYSession->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
10307 (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10308 }
10309 break;
10310
10311 case 455:
10312
10313
10314 #line 2751 "drizzled/sql_yacc.yy"
10315 { (yyval.item)= new (YYSession->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10316 break;
10317
10318 case 456:
10319
10320
10321 #line 2753 "drizzled/sql_yacc.yy"
10322 { (yyval.item)= new (YYSession->mem_root) Item_func_minute((yyvsp[(3) - (4)].item)); }
10323 break;
10324
10325 case 457:
10326
10327
10328 #line 2755 "drizzled/sql_yacc.yy"
10329 { (yyval.item)= new (YYSession->mem_root) Item_func_month((yyvsp[(3) - (4)].item)); }
10330 break;
10331
10332 case 458:
10333
10334
10335 #line 2757 "drizzled/sql_yacc.yy"
10336 { (yyval.item)= new (YYSession->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10337 break;
10338
10339 case 459:
10340
10341
10342 #line 2759 "drizzled/sql_yacc.yy"
10343 { (yyval.item)= new (YYSession->mem_root) Item_func_second((yyvsp[(3) - (4)].item)); }
10344 break;
10345
10346 case 460:
10347
10348
10349 #line 2761 "drizzled/sql_yacc.yy"
10350 { (yyval.item)= new (YYSession->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item)); }
10351 break;
10352
10353 case 461:
10354
10355
10356 #line 2763 "drizzled/sql_yacc.yy"
10357 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(3) - (4)].item)); }
10358 break;
10359
10360 case 462:
10361
10362
10363 #line 2765 "drizzled/sql_yacc.yy"
10364 { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10365 break;
10366
10367 case 463:
10368
10369
10370 #line 2767 "drizzled/sql_yacc.yy"
10371 { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10372 break;
10373
10374 case 464:
10375
10376
10377 #line 2769 "drizzled/sql_yacc.yy"
10378 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10379 break;
10380
10381 case 465:
10382
10383
10384 #line 2771 "drizzled/sql_yacc.yy"
10385 { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item)); }
10386 break;
10387
10388 case 466:
10389
10390
10391 #line 2773 "drizzled/sql_yacc.yy"
10392 { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item)); }
10393 break;
10394
10395 case 467:
10396
10397
10398 #line 2775 "drizzled/sql_yacc.yy"
10399 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item)); }
10400 break;
10401
10402 case 468:
10403
10404
10405 #line 2777 "drizzled/sql_yacc.yy"
10406 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10407 break;
10408
10409 case 469:
10410
10411
10412 #line 2779 "drizzled/sql_yacc.yy"
10413 {
10414 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10415 {
10416 DRIZZLE_YYABORT;
10417 }
10418 Lex.setCacheable(false);
10419 }
10420 break;
10421
10422 case 470:
10423
10424
10425 #line 2787 "drizzled/sql_yacc.yy"
10426 { (yyval.item)= new (YYSession->mem_root) Item_func_year((yyvsp[(3) - (4)].item)); }
10427 break;
10428
10429 case 471:
10430
10431
10432 #line 2803 "drizzled/sql_yacc.yy"
10433 {
10434 (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10435 INTERVAL_DAY, 0);
10436 }
10437 break;
10438
10439 case 472:
10440
10441
10442 #line 2808 "drizzled/sql_yacc.yy"
10443 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0); }
10444 break;
10445
10446 case 473:
10447
10448
10449 #line 2810 "drizzled/sql_yacc.yy"
10450 {
10451 (yyval.item)= new (YYSession->mem_root) Item_func_curdate_local();
10452 Lex.setCacheable(false);
10453 }
10454 break;
10455
10456 case 474:
10457
10458
10459 #line 2815 "drizzled/sql_yacc.yy"
10460 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0); }
10461 break;
10462
10463 case 475:
10464
10465
10466 #line 2817 "drizzled/sql_yacc.yy"
10467 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1); }
10468 break;
10469
10470 case 476:
10471
10472
10473 #line 2819 "drizzled/sql_yacc.yy"
10474 { (yyval.item)=new (YYSession->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item)); }
10475 break;
10476
10477 case 477:
10478
10479
10480 #line 2821 "drizzled/sql_yacc.yy"
10481 {
10482 (yyval.item)= new (YYSession->mem_root) Item_func_now_local();
10483 Lex.setCacheable(false);
10484 }
10485 break;
10486
10487 case 478:
10488
10489
10490 #line 2826 "drizzled/sql_yacc.yy"
10491 {
10492 (yyval.item)= new (YYSession->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
10493 Lex.setCacheable(false);
10494 }
10495 break;
10496
10497 case 479:
10498
10499
10500 #line 2831 "drizzled/sql_yacc.yy"
10501 { (yyval.item) = new (YYSession->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10502 break;
10503
10504 case 480:
10505
10506
10507 #line 2833 "drizzled/sql_yacc.yy"
10508 {
10509 (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10510 INTERVAL_DAY, 1);
10511 }
10512 break;
10513
10514 case 481:
10515
10516
10517 #line 2838 "drizzled/sql_yacc.yy"
10518 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1); }
10519 break;
10520
10521 case 482:
10522
10523
10524 #line 2840 "drizzled/sql_yacc.yy"
10525 {
10526 List<Item> *args= new (YYSession->mem_root) List<Item>;
10527 args->push_back((yyvsp[(3) - (8)].item));
10528 args->push_back((yyvsp[(5) - (8)].item));
10529 args->push_back((yyvsp[(7) - (8)].item));
10530 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10531 {
10532 DRIZZLE_YYABORT;
10533 }
10534 }
10535 break;
10536
10537 case 483:
10538
10539
10540 #line 2851 "drizzled/sql_yacc.yy"
10541 {
10542 List<Item> *args= new (YYSession->mem_root) List<Item>;
10543 args->push_back((yyvsp[(3) - (6)].item));
10544 args->push_back((yyvsp[(5) - (6)].item));
10545 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10546 {
10547 DRIZZLE_YYABORT;
10548 }
10549 }
10550 break;
10551
10552 case 484:
10553
10554
10555 #line 2861 "drizzled/sql_yacc.yy"
10556 {
10557 List<Item> *args= new (YYSession->mem_root) List<Item>;
10558 args->push_back((yyvsp[(3) - (8)].item));
10559 args->push_back((yyvsp[(5) - (8)].item));
10560 args->push_back((yyvsp[(7) - (8)].item));
10561 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10562 {
10563 DRIZZLE_YYABORT;
10564 }
10565 }
10566 break;
10567
10568 case 485:
10569
10570
10571 #line 2872 "drizzled/sql_yacc.yy"
10572 {
10573 List<Item> *args= new (YYSession->mem_root) List<Item>;
10574 args->push_back((yyvsp[(3) - (6)].item));
10575 args->push_back((yyvsp[(5) - (6)].item));
10576 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10577 {
10578 DRIZZLE_YYABORT;
10579 }
10580 }
10581 break;
10582
10583 case 486:
10584
10585
10586 #line 2882 "drizzled/sql_yacc.yy"
10587 {
10588 (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local();
10589 Lex.setCacheable(false);
10590 }
10591 break;
10592
10593 case 487:
10594
10595
10596 #line 2887 "drizzled/sql_yacc.yy"
10597 {
10598 (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
10599 Lex.setCacheable(false);
10600 }
10601 break;
10602
10603 case 488:
10604
10605
10606 #line 2892 "drizzled/sql_yacc.yy"
10607 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0); }
10608 break;
10609
10610 case 489:
10611
10612
10613 #line 2894 "drizzled/sql_yacc.yy"
10614 { (yyval.item)= new (YYSession->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st)); }
10615 break;
10616
10617 case 490:
10618
10619
10620 #line 2896 "drizzled/sql_yacc.yy"
10621 {
10622 (yyval.item)= new (YYSession->mem_root) Item_func_curdate_utc();
10623 Lex.setCacheable(false);
10624 }
10625 break;
10626
10627 case 491:
10628
10629
10630 #line 2901 "drizzled/sql_yacc.yy"
10631 {
10632 (yyval.item)= new (YYSession->mem_root) Item_func_now_utc();
10633 Lex.setCacheable(false);
10634 }
10635 break;
10636
10637 case 492:
10638
10639
10640 #line 2914 "drizzled/sql_yacc.yy"
10641 { (yyval.item)= new (YYSession->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list)); }
10642 break;
10643
10644 case 493:
10645
10646
10647 #line 2916 "drizzled/sql_yacc.yy"
10648 { (yyval.item)= new (YYSession->mem_root) Item_func_collation((yyvsp[(3) - (4)].item)); }
10649 break;
10650
10651 case 494:
10652
10653
10654 #line 2918 "drizzled/sql_yacc.yy"
10655 {
10656 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "database", NULL)))
10657 {
10658 DRIZZLE_YYABORT;
10659 }
10660 Lex.setCacheable(false);
10661 }
10662 break;
10663
10664 case 495:
10665
10666
10667 #line 2926 "drizzled/sql_yacc.yy"
10668 {
10669 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "catalog", NULL)))
10670 {
10671 DRIZZLE_YYABORT;
10672 }
10673 Lex.setCacheable(false);
10674 }
10675 break;
10676
10677 case 496:
10678
10679
10680 #line 2934 "drizzled/sql_yacc.yy"
10681 {
10682 List<Item> *args= new (YYSession->mem_root) List<Item>;
10683 args->push_back((yyvsp[(3) - (5)].item));
10684
10685 if ((yyvsp[(5) - (5)].boolean))
10686 {
10687 args->push_back(new (YYSession->mem_root) Item_int(1));
10688 }
10689
10690 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "execute", args)))
10691 {
10692 DRIZZLE_YYABORT;
10693 }
10694 }
10695 break;
10696
10697 case 497:
10698
10699
10700 #line 2949 "drizzled/sql_yacc.yy"
10701 { (yyval.item)= new (YYSession->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item)); }
10702 break;
10703
10704 case 498:
10705
10706
10707 #line 2951 "drizzled/sql_yacc.yy"
10708 {
10709 List<Item> *args= new (YYSession->mem_root) List<Item>;
10710 args->push_back((yyvsp[(4) - (5)].item));
10711
10712 if ((yyvsp[(2) - (5)].num))
10713 {
10714 args->push_back(new (YYSession->mem_root) Item_uint(1));
10715 }
10716
10717 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "kill", args)))
10718 {
10719 DRIZZLE_YYABORT;
10720 }
10721 }
10722 break;
10723
10724 case 499:
10725
10726
10727 #line 2966 "drizzled/sql_yacc.yy"
10728 { (yyval.item)= new (YYSession->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item)); }
10729 break;
10730
10731 case 500:
10732
10733
10734 #line 2968 "drizzled/sql_yacc.yy"
10735 { (yyval.item) = new (YYSession->mem_root) Item_func_mod( (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10736 break;
10737
10738 case 501:
10739
10740
10741 #line 2970 "drizzled/sql_yacc.yy"
10742 { (yyval.item) = new (YYSession->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item)); }
10743 break;
10744
10745 case 502:
10746
10747
10748 #line 2972 "drizzled/sql_yacc.yy"
10749 { (yyval.item)= new (YYSession->mem_root) Item_func_repeat(*YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10750 break;
10751
10752 case 503:
10753
10754
10755 #line 2974 "drizzled/sql_yacc.yy"
10756 { (yyval.item)= new (YYSession->mem_root) Item_func_replace(*YYSession, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].item)); }
10757 break;
10758
10759 case 504:
10760
10761
10762 #line 2976 "drizzled/sql_yacc.yy"
10763 { (yyval.item)= new (YYSession->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1); }
10764 break;
10765
10766 case 505:
10767
10768
10769 #line 2978 "drizzled/sql_yacc.yy"
10770 {
10771 List<Item> *args= new (YYSession->mem_root) List<Item>;
10772 args->push_back((yyvsp[(3) - (4)].item));
10773 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10774 {
10775 DRIZZLE_YYABORT;
10776 }
10777 }
10778 break;
10779
10780 case 506:
10781
10782
10783 #line 2987 "drizzled/sql_yacc.yy"
10784 {
10785 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "uuid", NULL)))
10786 {
10787 DRIZZLE_YYABORT;
10788 }
10789 Lex.setCacheable(false);
10790 }
10791 break;
10792
10793 case 507:
10794
10795
10796 #line 2995 "drizzled/sql_yacc.yy"
10797 {
10798 List<Item> *args= new (YYSession->mem_root) List<Item>;
10799 args->push_back((yyvsp[(3) - (6)].item));
10800 args->push_back((yyvsp[(5) - (6)].item));
10801 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10802 {
10803 DRIZZLE_YYABORT;
10804 }
10805 }
10806 break;
10807
10808 case 508:
10809
10810
10811 #line 3016 "drizzled/sql_yacc.yy"
10812 {
10813 const plugin::Function *udf= plugin::Function::get(std::string((yyvsp[(1) - (2)].lex_str).str, (yyvsp[(1) - (2)].lex_str).length));
10814
10815
10816 (yyval.udf)= udf;
10817 }
10818 break;
10819
10820 case 509:
10821
10822
10823 #line 3023 "drizzled/sql_yacc.yy"
10824 {
10825 Create_func *builder;
10826 Item *item= NULL;
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837 builder= find_native_function_builder((yyvsp[(1) - (5)].lex_str));
10838 if (builder)
10839 {
10840 item= builder->create(YYSession, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
10841 }
10842 else
10843 {
10844
10845 const plugin::Function *udf= (yyvsp[(3) - (5)].udf);
10846 if (udf)
10847 {
10848 item= Create_udf_func::s_singleton.create(YYSession, udf, (yyvsp[(4) - (5)].item_list));
10849 } else {
10850
10851 my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "FUNCTION", (yyvsp[(1) - (5)].lex_str).str);
10852 }
10853 }
10854
10855 if (! ((yyval.item)= item))
10856 {
10857 DRIZZLE_YYABORT;
10858 }
10859 Lex.setCacheable(false);
10860 }
10861 break;
10862
10863 case 510:
10864
10865
10866 #line 3063 "drizzled/sql_yacc.yy"
10867 { (yyval.item_list)= NULL; }
10868 break;
10869
10870 case 511:
10871
10872
10873 #line 3064 "drizzled/sql_yacc.yy"
10874 { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
10875 break;
10876
10877 case 512:
10878
10879
10880 #line 3069 "drizzled/sql_yacc.yy"
10881 {
10882 (yyval.item_list)= new (YYSession->mem_root) List<Item>;
10883 (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
10884 }
10885 break;
10886
10887 case 513:
10888
10889
10890 #line 3074 "drizzled/sql_yacc.yy"
10891 {
10892 (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
10893 (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
10894 }
10895 break;
10896
10897 case 514:
10898
10899
10900 #line 3082 "drizzled/sql_yacc.yy"
10901 {
10902
10903
10904
10905
10906
10907
10908 if ((yyvsp[(4) - (4)].lex_str).str)
10909 {
10910 (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
10911 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
10912 }
10913 else
10914 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
10915 (yyval.item)= (yyvsp[(2) - (4)].item);
10916 }
10917 break;
10918
10919 case 515:
10920
10921
10922 #line 3102 "drizzled/sql_yacc.yy"
10923 { (yyval.item)=new Item_sum_avg((yyvsp[(3) - (4)].item)); }
10924 break;
10925
10926 case 516:
10927
10928
10929 #line 3104 "drizzled/sql_yacc.yy"
10930 { (yyval.item)=new Item_sum_avg_distinct((yyvsp[(4) - (5)].item)); }
10931 break;
10932
10933 case 517:
10934
10935
10936 #line 3106 "drizzled/sql_yacc.yy"
10937 { (yyval.item)=new Item_sum_count(new Item_int((int32_t) 0L,1)); }
10938 break;
10939
10940 case 518:
10941
10942
10943 #line 3108 "drizzled/sql_yacc.yy"
10944 { (yyval.item)=new Item_sum_count((yyvsp[(3) - (4)].item)); }
10945 break;
10946
10947 case 519:
10948
10949
10950 #line 3110 "drizzled/sql_yacc.yy"
10951 { Lex.current_select->in_sum_expr++; }
10952 break;
10953
10954 case 520:
10955
10956
10957 #line 3112 "drizzled/sql_yacc.yy"
10958 { Lex.current_select->in_sum_expr--; }
10959 break;
10960
10961 case 521:
10962
10963
10964 #line 3114 "drizzled/sql_yacc.yy"
10965 { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list)); }
10966 break;
10967
10968 case 522:
10969
10970
10971 #line 3116 "drizzled/sql_yacc.yy"
10972 { (yyval.item)=new Item_sum_min((yyvsp[(3) - (4)].item)); }
10973 break;
10974
10975 case 523:
10976
10977
10978 #line 3123 "drizzled/sql_yacc.yy"
10979 { (yyval.item)=new Item_sum_min((yyvsp[(4) - (5)].item)); }
10980 break;
10981
10982 case 524:
10983
10984
10985 #line 3125 "drizzled/sql_yacc.yy"
10986 { (yyval.item)=new Item_sum_max((yyvsp[(3) - (4)].item)); }
10987 break;
10988
10989 case 525:
10990
10991
10992 #line 3127 "drizzled/sql_yacc.yy"
10993 { (yyval.item)=new Item_sum_max((yyvsp[(4) - (5)].item)); }
10994 break;
10995
10996 case 526:
10997
10998
10999 #line 3129 "drizzled/sql_yacc.yy"
11000 { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 0); }
11001 break;
11002
11003 case 527:
11004
11005
11006 #line 3131 "drizzled/sql_yacc.yy"
11007 { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 0); }
11008 break;
11009
11010 case 528:
11011
11012
11013 #line 3133 "drizzled/sql_yacc.yy"
11014 { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 1); }
11015 break;
11016
11017 case 529:
11018
11019
11020 #line 3135 "drizzled/sql_yacc.yy"
11021 { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 1); }
11022 break;
11023
11024 case 530:
11025
11026
11027 #line 3137 "drizzled/sql_yacc.yy"
11028 { (yyval.item)=new Item_sum_sum((yyvsp[(3) - (4)].item)); }
11029 break;
11030
11031 case 531:
11032
11033
11034 #line 3139 "drizzled/sql_yacc.yy"
11035 { (yyval.item)=new Item_sum_sum_distinct((yyvsp[(4) - (5)].item)); }
11036 break;
11037
11038 case 532:
11039
11040
11041 #line 3141 "drizzled/sql_yacc.yy"
11042 { Lex.current_select->in_sum_expr++; }
11043 break;
11044
11045 case 533:
11046
11047
11048 #line 3145 "drizzled/sql_yacc.yy"
11049 {
11050 Select_Lex *sel= Lex.current_select;
11051 sel->in_sum_expr--;
11052 (yyval.item)=new Item_func_group_concat(Lex.current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
11053 sel->gorder_list, (yyvsp[(7) - (8)].string));
11054 (yyvsp[(5) - (8)].item_list)->clear();
11055 }
11056 break;
11057
11058 case 534:
11059
11060
11061 #line 3156 "drizzled/sql_yacc.yy"
11062 { }
11063 break;
11064
11065 case 535:
11066
11067
11068 #line 3158 "drizzled/sql_yacc.yy"
11069 {
11070 (yyval.item)= (yyvsp[(3) - (3)].item);
11071 }
11072 break;
11073
11074 case 536:
11075
11076
11077 #line 3165 "drizzled/sql_yacc.yy"
11078 {
11079 (yyval.item)= new Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
11080 Lex.setCacheable(false);
11081 }
11082 break;
11083
11084 case 537:
11085
11086
11087 #line 3170 "drizzled/sql_yacc.yy"
11088 {
11089 (yyval.item)= new Item_func_get_user_var(*YYSession, (yyvsp[(1) - (1)].lex_str));
11090 Lex.setCacheable(false);
11091 }
11092 break;
11093
11094 case 538:
11095
11096
11097 #line 3175 "drizzled/sql_yacc.yy"
11098 {
11099
11100 if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && parser::check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
11101 {
11102 parser::my_parse_error(YYSession->m_lip);
11103 DRIZZLE_YYABORT;
11104 }
11105 if (!((yyval.item)= get_system_var(YYSession, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
11106 DRIZZLE_YYABORT;
11107 }
11108 break;
11109
11110 case 539:
11111
11112
11113 #line 3188 "drizzled/sql_yacc.yy"
11114 { (yyval.num) = false; }
11115 break;
11116
11117 case 540:
11118
11119
11120 #line 3189 "drizzled/sql_yacc.yy"
11121 { (yyval.num) = true; }
11122 break;
11123
11124 case 541:
11125
11126
11127 #line 3194 "drizzled/sql_yacc.yy"
11128 {
11129 (yyval.string)= new (YYSession->mem_root) String(",", 1, &my_charset_utf8_general_ci);
11130 }
11131 break;
11132
11133 case 542:
11134
11135
11136 #line 3197 "drizzled/sql_yacc.yy"
11137 { (yyval.string) = (yyvsp[(2) - (2)].string); }
11138 break;
11139
11140 case 543:
11141
11142
11143 #line 3202 "drizzled/sql_yacc.yy"
11144 {
11145 Lex.current_select->gorder_list = NULL;
11146 }
11147 break;
11148
11149 case 544:
11150
11151
11152 #line 3206 "drizzled/sql_yacc.yy"
11153 {
11154 Select_Lex *select= Lex.current_select;
11155 select->gorder_list=
11156 (SQL_LIST*) memory::sql_memdup((char*) &select->order_list,
11157 sizeof(st_sql_list));
11158 select->order_list.clear();
11159 }
11160 break;
11161
11162 case 545:
11163
11164
11165 #line 3217 "drizzled/sql_yacc.yy"
11166 {
11167 if (Lex.current_select->inc_in_sum_expr())
11168 {
11169 parser::my_parse_error(YYSession->m_lip);
11170 DRIZZLE_YYABORT;
11171 }
11172 }
11173 break;
11174
11175 case 546:
11176
11177
11178 #line 3225 "drizzled/sql_yacc.yy"
11179 {
11180 Lex.current_select->in_sum_expr--;
11181 (yyval.item)= (yyvsp[(3) - (3)].item);
11182 }
11183 break;
11184
11185 case 547:
11186
11187
11188 #line 3233 "drizzled/sql_yacc.yy"
11189 { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11190 break;
11191
11192 case 548:
11193
11194
11195 #line 3235 "drizzled/sql_yacc.yy"
11196 { (yyval.cast_type)=ITEM_CAST_BOOLEAN; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11197 break;
11198
11199 case 549:
11200
11201
11202 #line 3237 "drizzled/sql_yacc.yy"
11203 { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11204 break;
11205
11206 case 550:
11207
11208
11209 #line 3239 "drizzled/sql_yacc.yy"
11210 { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11211 break;
11212
11213 case 551:
11214
11215
11216 #line 3241 "drizzled/sql_yacc.yy"
11217 { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11218 break;
11219
11220 case 552:
11221
11222
11223 #line 3243 "drizzled/sql_yacc.yy"
11224 { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11225 break;
11226
11227 case 553:
11228
11229
11230 #line 3245 "drizzled/sql_yacc.yy"
11231 { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11232 break;
11233
11234 case 554:
11235
11236
11237 #line 3247 "drizzled/sql_yacc.yy"
11238 { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.dec= 0; }
11239 break;
11240
11241 case 555:
11242
11243
11244 #line 3249 "drizzled/sql_yacc.yy"
11245 { (yyval.cast_type)=ITEM_CAST_DATE; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11246 break;
11247
11248 case 556:
11249
11250
11251 #line 3251 "drizzled/sql_yacc.yy"
11252 { (yyval.cast_type)=ITEM_CAST_TIME; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11253 break;
11254
11255 case 557:
11256
11257
11258 #line 3253 "drizzled/sql_yacc.yy"
11259 { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11260 break;
11261
11262 case 558:
11263
11264
11265 #line 3255 "drizzled/sql_yacc.yy"
11266 { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex.charset= NULL; }
11267 break;
11268
11269 case 559:
11270
11271
11272 #line 3260 "drizzled/sql_yacc.yy"
11273 {
11274 (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11275 (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11276 }
11277 break;
11278
11279 case 560:
11280
11281
11282 #line 3265 "drizzled/sql_yacc.yy"
11283 {
11284 (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11285 (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11286 }
11287 break;
11288
11289 case 561:
11290
11291
11292 #line 3272 "drizzled/sql_yacc.yy"
11293 { (yyval.item)= NULL; }
11294 break;
11295
11296 case 562:
11297
11298
11299 #line 3273 "drizzled/sql_yacc.yy"
11300 { (yyval.item)= (yyvsp[(1) - (1)].item); }
11301 break;
11302
11303 case 563:
11304
11305
11306 #line 3277 "drizzled/sql_yacc.yy"
11307 { (yyval.item)= NULL; }
11308 break;
11309
11310 case 564:
11311
11312
11313 #line 3278 "drizzled/sql_yacc.yy"
11314 { (yyval.item)= (yyvsp[(2) - (2)].item); }
11315 break;
11316
11317 case 565:
11318
11319
11320 #line 3283 "drizzled/sql_yacc.yy"
11321 {
11322 (yyval.item_list)= new List<Item>;
11323 (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
11324 (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
11325 }
11326 break;
11327
11328 case 566:
11329
11330
11331 #line 3289 "drizzled/sql_yacc.yy"
11332 {
11333 (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
11334 (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
11335 (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
11336 }
11337 break;
11338
11339 case 567:
11340
11341
11342 #line 3299 "drizzled/sql_yacc.yy"
11343 { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11344 break;
11345
11346 case 568:
11347
11348
11349 #line 3301 "drizzled/sql_yacc.yy"
11350 {
11351 if (!((yyval.table_list)= Lex.current_select->nest_last_join(Lex.session)))
11352 DRIZZLE_YYABORT;
11353 }
11354 break;
11355
11356 case 569:
11357
11358
11359 #line 3308 "drizzled/sql_yacc.yy"
11360 { DRIZZLE_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
11361 break;
11362
11363 case 570:
11364
11365
11366 #line 3319 "drizzled/sql_yacc.yy"
11367 { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11368 break;
11369
11370 case 571:
11371
11372
11373 #line 3320 "drizzled/sql_yacc.yy"
11374 { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
11375 break;
11376
11377 case 572:
11378
11379
11380 #line 3326 "drizzled/sql_yacc.yy"
11381 { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11382 break;
11383
11384 case 573:
11385
11386
11387 #line 3328 "drizzled/sql_yacc.yy"
11388 {
11389 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11390 }
11391 break;
11392
11393 case 574:
11394
11395
11396 #line 3348 "drizzled/sql_yacc.yy"
11397 {
11398 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11399 Lex.is_cross= false;
11400 }
11401 break;
11402
11403 case 575:
11404
11405
11406 #line 3353 "drizzled/sql_yacc.yy"
11407 {
11408 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1;
11409 }
11410 break;
11411
11412 case 576:
11413
11414
11415 #line 3358 "drizzled/sql_yacc.yy"
11416 {
11417 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11418 DRIZZLE_YYABORT_UNLESS( not Lex.is_cross );
11419
11420 if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
11421 DRIZZLE_YYABORT;
11422 Lex.current_select->parsing_place= IN_ON;
11423 }
11424 break;
11425
11426 case 577:
11427
11428
11429 #line 3367 "drizzled/sql_yacc.yy"
11430 {
11431 add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11432 Lex.pop_context();
11433 Lex.current_select->parsing_place= NO_MATTER;
11434 }
11435 break;
11436
11437 case 578:
11438
11439
11440 #line 3374 "drizzled/sql_yacc.yy"
11441 {
11442 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11443
11444 if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
11445 DRIZZLE_YYABORT;
11446 Lex.current_select->parsing_place= IN_ON;
11447 }
11448 break;
11449
11450 case 579:
11451
11452
11453 #line 3382 "drizzled/sql_yacc.yy"
11454 {
11455 (yyvsp[(3) - (6)].table_list)->straight=1;
11456 add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11457 Lex.pop_context();
11458 Lex.current_select->parsing_place= NO_MATTER;
11459 }
11460 break;
11461
11462 case 580:
11463
11464
11465 #line 3390 "drizzled/sql_yacc.yy"
11466 {
11467 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11468 }
11469 break;
11470
11471 case 581:
11472
11473
11474 #line 3394 "drizzled/sql_yacc.yy"
11475 { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Lex.current_select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
11476 break;
11477
11478 case 582:
11479
11480
11481 #line 3396 "drizzled/sql_yacc.yy"
11482 {
11483 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
11484 add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Lex.current_select);
11485 }
11486 break;
11487
11488 case 583:
11489
11490
11491 #line 3404 "drizzled/sql_yacc.yy"
11492 {
11493 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11494
11495 if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
11496 DRIZZLE_YYABORT;
11497 Lex.current_select->parsing_place= IN_ON;
11498 }
11499 break;
11500
11501 case 584:
11502
11503
11504 #line 3412 "drizzled/sql_yacc.yy"
11505 {
11506 add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
11507 Lex.pop_context();
11508 (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11509 (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
11510 Lex.current_select->parsing_place= NO_MATTER;
11511 }
11512 break;
11513
11514 case 585:
11515
11516
11517 #line 3420 "drizzled/sql_yacc.yy"
11518 {
11519 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11520 }
11521 break;
11522
11523 case 586:
11524
11525
11526 #line 3424 "drizzled/sql_yacc.yy"
11527 {
11528 add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11529 (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11530 (yyval.table_list)=(yyvsp[(5) - (10)].table_list);
11531 }
11532 break;
11533
11534 case 587:
11535
11536
11537 #line 3430 "drizzled/sql_yacc.yy"
11538 {
11539 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11540 add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Lex.current_select);
11541 (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11542 (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
11543 }
11544 break;
11545
11546 case 588:
11547
11548
11549 #line 3440 "drizzled/sql_yacc.yy"
11550 {
11551 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11552
11553 if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
11554 DRIZZLE_YYABORT;
11555 Lex.current_select->parsing_place= IN_ON;
11556 }
11557 break;
11558
11559 case 589:
11560
11561
11562 #line 3448 "drizzled/sql_yacc.yy"
11563 {
11564 if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11565 DRIZZLE_YYABORT;
11566 add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
11567 Lex.pop_context();
11568 Lex.current_select->parsing_place= NO_MATTER;
11569 }
11570 break;
11571
11572 case 590:
11573
11574
11575 #line 3456 "drizzled/sql_yacc.yy"
11576 {
11577 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11578 }
11579 break;
11580
11581 case 591:
11582
11583
11584 #line 3460 "drizzled/sql_yacc.yy"
11585 {
11586 if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11587 DRIZZLE_YYABORT;
11588 add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11589 }
11590 break;
11591
11592 case 592:
11593
11594
11595 #line 3466 "drizzled/sql_yacc.yy"
11596 {
11597 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11598 add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Lex.current_select);
11599 if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11600 DRIZZLE_YYABORT;
11601 }
11602 break;
11603
11604 case 593:
11605
11606
11607 #line 3475 "drizzled/sql_yacc.yy"
11608 {}
11609 break;
11610
11611 case 594:
11612
11613
11614 #line 3476 "drizzled/sql_yacc.yy"
11615 {}
11616 break;
11617
11618 case 595:
11619
11620
11621 #line 3478 "drizzled/sql_yacc.yy"
11622 {
11623 Lex.is_cross= true;
11624 Lex.current_select->is_cross= true;
11625 }
11626 break;
11627
11628 case 596:
11629
11630
11631 #line 3493 "drizzled/sql_yacc.yy"
11632 {
11633 }
11634 break;
11635
11636 case 597:
11637
11638
11639 #line 3496 "drizzled/sql_yacc.yy"
11640 {
11641 if (!((yyval.table_list)= Lex.current_select->add_table_to_list(YYSession, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
11642 0,
11643 Lex.lock_option,
11644 Lex.current_select->pop_index_hints())))
11645 DRIZZLE_YYABORT;
11646 Lex.current_select->add_joined_table((yyval.table_list));
11647 }
11648 break;
11649
11650 case 598:
11651
11652
11653 #line 3505 "drizzled/sql_yacc.yy"
11654 {
11655 Select_Lex *sel= Lex.current_select;
11656 if ((yyvsp[(1) - (3)].num))
11657 {
11658 if (sel->set_braces(1))
11659 {
11660 parser::my_parse_error(YYSession->m_lip);
11661 DRIZZLE_YYABORT;
11662 }
11663
11664 if (sel->master_unit()->fake_select_lex)
11665 sel->master_unit()->global_parameters=
11666 sel->master_unit()->fake_select_lex;
11667 }
11668 if ((yyvsp[(2) - (3)].select_lex)->init_nested_join(Lex.session))
11669 DRIZZLE_YYABORT;
11670 (yyval.table_list)= 0;
11671
11672
11673 }
11674 break;
11675
11676 case 599:
11677
11678
11679 #line 3544 "drizzled/sql_yacc.yy"
11680 {
11681
11682
11683 if (!((yyvsp[(3) - (5)].table_list) || (yyvsp[(5) - (5)].lex_str_ptr)) && (yyvsp[(2) - (5)].select_lex)->embedding &&
11684 !(yyvsp[(2) - (5)].select_lex)->embedding->getNestedJoin()->join_list.size())
11685 {
11686
11687
11688
11689
11690 (yyval.table_list)= 0;
11691 }
11692 else if (!(yyvsp[(3) - (5)].table_list))
11693 {
11694
11695
11696
11697 Select_Lex *sel= Lex.current_select;
11698 Select_Lex_Unit *unit= sel->master_unit();
11699 Lex.current_select= sel= unit->outer_select();
11700 if (!((yyval.table_list)= sel->add_table_to_list(Lex.session,
11701 new Table_ident(unit), (yyvsp[(5) - (5)].lex_str_ptr), 0,
11702 TL_READ)))
11703
11704 DRIZZLE_YYABORT;
11705 sel->add_joined_table((yyval.table_list));
11706 Lex.pop_context();
11707 }
11708 else if (((yyvsp[(3) - (5)].table_list)->select_lex && (yyvsp[(3) - (5)].table_list)->select_lex->master_unit()->is_union()) || (yyvsp[(5) - (5)].lex_str_ptr))
11709 {
11710
11711 parser::my_parse_error(YYSession->m_lip);
11712 DRIZZLE_YYABORT;
11713 }
11714 else
11715 (yyval.table_list)= (yyvsp[(3) - (5)].table_list);
11716 }
11717 break;
11718
11719 case 601:
11720
11721
11722 #line 3588 "drizzled/sql_yacc.yy"
11723 {
11724 if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
11725 DRIZZLE_YYABORT;
11726 }
11727 break;
11728
11729 case 602:
11730
11731
11732 #line 3593 "drizzled/sql_yacc.yy"
11733 {
11734
11735
11736
11737
11738 Lex.pop_context();
11739 }
11740 break;
11741
11742 case 604:
11743
11744
11745 #line 3606 "drizzled/sql_yacc.yy"
11746 {
11747 Select_Lex * sel= Lex.current_select;
11748 if (Lex.current_select->set_braces(0))
11749 {
11750 parser::my_parse_error(YYSession->m_lip);
11751 DRIZZLE_YYABORT;
11752 }
11753 if (sel->linkage == UNION_TYPE &&
11754 sel->master_unit()->first_select()->braces)
11755 {
11756 parser::my_parse_error(YYSession->m_lip);
11757 DRIZZLE_YYABORT;
11758 }
11759 }
11760 break;
11761
11762 case 605:
11763
11764
11765 #line 3624 "drizzled/sql_yacc.yy"
11766 {
11767 Select_Lex *sel= Lex.current_select;
11768 if (sel->linkage != UNION_TYPE)
11769 init_select(&Lex);
11770 Lex.current_select->parsing_place= SELECT_LIST;
11771 }
11772 break;
11773
11774 case 606:
11775
11776
11777 #line 3631 "drizzled/sql_yacc.yy"
11778 {
11779 Lex.current_select->parsing_place= NO_MATTER;
11780 }
11781 break;
11782
11783 case 608:
11784
11785
11786 #line 3640 "drizzled/sql_yacc.yy"
11787 {
11788 if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(Lex.session))
11789 DRIZZLE_YYABORT;
11790 }
11791 break;
11792
11793 case 609:
11794
11795
11796 #line 3645 "drizzled/sql_yacc.yy"
11797 {
11798
11799
11800
11801 if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join(Lex.session)) && (yyvsp[(3) - (3)].table_list))
11802 DRIZZLE_YYABORT;
11803
11804 if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
11805 {
11806 parser::my_parse_error(YYSession->m_lip);
11807 DRIZZLE_YYABORT;
11808 }
11809 }
11810 break;
11811
11812 case 610:
11813
11814
11815 #line 3661 "drizzled/sql_yacc.yy"
11816 {
11817 Lex.derived_tables|= DERIVED_SUBQUERY;
11818 if (not Lex.expr_allows_subselect)
11819 {
11820 parser::my_parse_error(YYSession->m_lip);
11821 DRIZZLE_YYABORT;
11822 }
11823 if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE || new_select(&Lex, 1))
11824 DRIZZLE_YYABORT;
11825 init_select(&Lex);
11826 Lex.current_select->linkage= DERIVED_TABLE_TYPE;
11827 Lex.current_select->parsing_place= SELECT_LIST;
11828 }
11829 break;
11830
11831 case 611:
11832
11833
11834 #line 3675 "drizzled/sql_yacc.yy"
11835 {
11836 Lex.current_select->parsing_place= NO_MATTER;
11837 }
11838 break;
11839
11840 case 613:
11841
11842
11843 #line 3682 "drizzled/sql_yacc.yy"
11844 { (yyval.select_lex)= Lex.current_select; }
11845 break;
11846
11847 case 614:
11848
11849
11850 #line 3687 "drizzled/sql_yacc.yy"
11851 {
11852 Select_Lex *sel= Lex.current_select;
11853 TableList *embedding;
11854 if (!sel->embedding || sel->end_nested_join(Lex.session))
11855 {
11856
11857 parser::my_parse_error(YYSession->m_lip);
11858 DRIZZLE_YYABORT;
11859 }
11860 embedding= Lex.current_select->embedding;
11861 (yyval.num)= embedding &&
11862 !embedding->getNestedJoin()->join_list.size();
11863
11864 }
11865 break;
11866
11867 case 615:
11868
11869
11870 #line 3704 "drizzled/sql_yacc.yy"
11871 {}
11872 break;
11873
11874 case 616:
11875
11876
11877 #line 3705 "drizzled/sql_yacc.yy"
11878 {}
11879 break;
11880
11881 case 617:
11882
11883
11884 #line 3710 "drizzled/sql_yacc.yy"
11885 {
11886 (yyval.num)= INDEX_HINT_MASK_ALL;
11887 }
11888 break;
11889
11890 case 618:
11891
11892
11893 #line 3713 "drizzled/sql_yacc.yy"
11894 { (yyval.num)= INDEX_HINT_MASK_JOIN; }
11895 break;
11896
11897 case 619:
11898
11899
11900 #line 3714 "drizzled/sql_yacc.yy"
11901 { (yyval.num)= INDEX_HINT_MASK_ORDER; }
11902 break;
11903
11904 case 620:
11905
11906
11907 #line 3715 "drizzled/sql_yacc.yy"
11908 { (yyval.num)= INDEX_HINT_MASK_GROUP; }
11909 break;
11910
11911 case 621:
11912
11913
11914 #line 3719 "drizzled/sql_yacc.yy"
11915 { (yyval.index_hint)= INDEX_HINT_FORCE; }
11916 break;
11917
11918 case 622:
11919
11920
11921 #line 3720 "drizzled/sql_yacc.yy"
11922 { (yyval.index_hint)= INDEX_HINT_IGNORE; }
11923 break;
11924
11925 case 623:
11926
11927
11928 #line 3725 "drizzled/sql_yacc.yy"
11929 {
11930 Lex.current_select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
11931 }
11932 break;
11933
11934 case 625:
11935
11936
11937 #line 3730 "drizzled/sql_yacc.yy"
11938 {
11939 Lex.current_select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
11940 }
11941 break;
11942
11943 case 630:
11944
11945
11946 #line 3743 "drizzled/sql_yacc.yy"
11947 { Lex.current_select->alloc_index_hints(YYSession); }
11948 break;
11949
11950 case 632:
11951
11952
11953 #line 3747 "drizzled/sql_yacc.yy"
11954 { Lex.current_select->clear_index_hints(); }
11955 break;
11956
11957 case 634:
11958
11959
11960 #line 3752 "drizzled/sql_yacc.yy"
11961 { Lex.current_select->add_index_hint(YYSession, NULL, 0); }
11962 break;
11963
11964 case 635:
11965
11966
11967 #line 3753 "drizzled/sql_yacc.yy"
11968 {}
11969 break;
11970
11971 case 636:
11972
11973
11974 #line 3758 "drizzled/sql_yacc.yy"
11975 { Lex.current_select->add_index_hint(YYSession, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
11976 break;
11977
11978 case 637:
11979
11980
11981 #line 3760 "drizzled/sql_yacc.yy"
11982 { Lex.current_select->add_index_hint(YYSession, (char *)"PRIMARY", 7); }
11983 break;
11984
11985 case 640:
11986
11987
11988 #line 3770 "drizzled/sql_yacc.yy"
11989 {
11990 if (!((yyval.string_list)= new List<String>))
11991 DRIZZLE_YYABORT;
11992 (yyval.string_list)->push_back(new (YYSession->mem_root)
11993 String((const char *) (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
11994 system_charset_info));
11995 }
11996 break;
11997
11998 case 641:
11999
12000
12001 #line 3778 "drizzled/sql_yacc.yy"
12002 {
12003 (yyvsp[(1) - (3)].string_list)->push_back(new (YYSession->mem_root)
12004 String((const char *) (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length,
12005 system_charset_info));
12006 (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
12007 }
12008 break;
12009
12010 case 642:
12011
12012
12013 #line 3787 "drizzled/sql_yacc.yy"
12014 {}
12015 break;
12016
12017 case 643:
12018
12019
12020 #line 3788 "drizzled/sql_yacc.yy"
12021 { (yyval.interval)=INTERVAL_DAY_HOUR; }
12022 break;
12023
12024 case 644:
12025
12026
12027 #line 3789 "drizzled/sql_yacc.yy"
12028 { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
12029 break;
12030
12031 case 645:
12032
12033
12034 #line 3790 "drizzled/sql_yacc.yy"
12035 { (yyval.interval)=INTERVAL_DAY_MINUTE; }
12036 break;
12037
12038 case 646:
12039
12040
12041 #line 3791 "drizzled/sql_yacc.yy"
12042 { (yyval.interval)=INTERVAL_DAY_SECOND; }
12043 break;
12044
12045 case 647:
12046
12047
12048 #line 3792 "drizzled/sql_yacc.yy"
12049 { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
12050 break;
12051
12052 case 648:
12053
12054
12055 #line 3793 "drizzled/sql_yacc.yy"
12056 { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
12057 break;
12058
12059 case 649:
12060
12061
12062 #line 3794 "drizzled/sql_yacc.yy"
12063 { (yyval.interval)=INTERVAL_HOUR_SECOND; }
12064 break;
12065
12066 case 650:
12067
12068
12069 #line 3795 "drizzled/sql_yacc.yy"
12070 { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
12071 break;
12072
12073 case 651:
12074
12075
12076 #line 3796 "drizzled/sql_yacc.yy"
12077 { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
12078 break;
12079
12080 case 652:
12081
12082
12083 #line 3797 "drizzled/sql_yacc.yy"
12084 { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
12085 break;
12086
12087 case 653:
12088
12089
12090 #line 3798 "drizzled/sql_yacc.yy"
12091 { (yyval.interval)=INTERVAL_YEAR_MONTH; }
12092 break;
12093
12094 case 654:
12095
12096
12097 #line 3802 "drizzled/sql_yacc.yy"
12098 {}
12099 break;
12100
12101 case 655:
12102
12103
12104 #line 3803 "drizzled/sql_yacc.yy"
12105 {
12106 (yyval.interval_time_st)=INTERVAL_MICROSECOND;
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119 }
12120 break;
12121
12122 case 656:
12123
12124
12125 #line 3821 "drizzled/sql_yacc.yy"
12126 { (yyval.interval_time_st)=INTERVAL_DAY; }
12127 break;
12128
12129 case 657:
12130
12131
12132 #line 3822 "drizzled/sql_yacc.yy"
12133 { (yyval.interval_time_st)=INTERVAL_WEEK; }
12134 break;
12135
12136 case 658:
12137
12138
12139 #line 3823 "drizzled/sql_yacc.yy"
12140 { (yyval.interval_time_st)=INTERVAL_HOUR; }
12141 break;
12142
12143 case 659:
12144
12145
12146 #line 3824 "drizzled/sql_yacc.yy"
12147 { (yyval.interval_time_st)=INTERVAL_MINUTE; }
12148 break;
12149
12150 case 660:
12151
12152
12153 #line 3825 "drizzled/sql_yacc.yy"
12154 { (yyval.interval_time_st)=INTERVAL_MONTH; }
12155 break;
12156
12157 case 661:
12158
12159
12160 #line 3826 "drizzled/sql_yacc.yy"
12161 { (yyval.interval_time_st)=INTERVAL_QUARTER; }
12162 break;
12163
12164 case 662:
12165
12166
12167 #line 3827 "drizzled/sql_yacc.yy"
12168 { (yyval.interval_time_st)=INTERVAL_SECOND; }
12169 break;
12170
12171 case 663:
12172
12173
12174 #line 3828 "drizzled/sql_yacc.yy"
12175 { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
12176 break;
12177
12178 case 664:
12179
12180
12181 #line 3829 "drizzled/sql_yacc.yy"
12182 { (yyval.interval_time_st)=INTERVAL_YEAR; }
12183 break;
12184
12185 case 667:
12186
12187
12188 #line 3838 "drizzled/sql_yacc.yy"
12189 { (yyval.lex_str_ptr)=0; }
12190 break;
12191
12192 case 668:
12193
12194
12195 #line 3840 "drizzled/sql_yacc.yy"
12196 {
12197 (yyval.lex_str_ptr)= (drizzled::LEX_STRING*) memory::sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(drizzled::LEX_STRING));
12198 }
12199 break;
12200
12201 case 671:
12202
12203
12204 #line 3851 "drizzled/sql_yacc.yy"
12205 { Lex.current_select->where= 0; }
12206 break;
12207
12208 case 672:
12209
12210
12211 #line 3853 "drizzled/sql_yacc.yy"
12212 {
12213 Lex.current_select->parsing_place= IN_WHERE;
12214 }
12215 break;
12216
12217 case 673:
12218
12219
12220 #line 3857 "drizzled/sql_yacc.yy"
12221 {
12222 Select_Lex *select= Lex.current_select;
12223 select->where= (yyvsp[(3) - (3)].item);
12224 select->parsing_place= NO_MATTER;
12225 if ((yyvsp[(3) - (3)].item))
12226 (yyvsp[(3) - (3)].item)->top_level_item();
12227 }
12228 break;
12229
12230 case 675:
12231
12232
12233 #line 3869 "drizzled/sql_yacc.yy"
12234 {
12235 Lex.current_select->parsing_place= IN_HAVING;
12236 }
12237 break;
12238
12239 case 676:
12240
12241
12242 #line 3873 "drizzled/sql_yacc.yy"
12243 {
12244 Select_Lex *sel= Lex.current_select;
12245 sel->having= (yyvsp[(3) - (3)].item);
12246 sel->parsing_place= NO_MATTER;
12247 if ((yyvsp[(3) - (3)].item))
12248 (yyvsp[(3) - (3)].item)->top_level_item();
12249 }
12250 break;
12251
12252 case 677:
12253
12254
12255 #line 3884 "drizzled/sql_yacc.yy"
12256 {
12257 Lex.escape_used= true;
12258 (yyval.item)= (yyvsp[(2) - (2)].item);
12259 }
12260 break;
12261
12262 case 678:
12263
12264
12265 #line 3889 "drizzled/sql_yacc.yy"
12266 {
12267 Lex.escape_used= false;
12268 (yyval.item)= new Item_string("\\", 1, &my_charset_utf8_general_ci);
12269 }
12270 break;
12271
12272 case 681:
12273
12274
12275 #line 3906 "drizzled/sql_yacc.yy"
12276 { if (YYSession->add_group_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) DRIZZLE_YYABORT; }
12277 break;
12278
12279 case 682:
12280
12281
12282 #line 3908 "drizzled/sql_yacc.yy"
12283 { if (YYSession->add_group_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) DRIZZLE_YYABORT; }
12284 break;
12285
12286 case 683:
12287
12288
12289 #line 3912 "drizzled/sql_yacc.yy"
12290 {}
12291 break;
12292
12293 case 684:
12294
12295
12296 #line 3914 "drizzled/sql_yacc.yy"
12297 {
12298
12299
12300
12301
12302
12303
12304
12305 if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE)
12306 {
12307 my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
12308 "global union parameters");
12309 DRIZZLE_YYABORT;
12310 }
12311 Lex.current_select->olap= ROLLUP_TYPE;
12312 }
12313 break;
12314
12315 case 688:
12316
12317
12318 #line 3947 "drizzled/sql_yacc.yy"
12319 {
12320 bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
12321 if (YYSession->add_order_to_list((yyvsp[(1) - (2)].item), ascending))
12322 DRIZZLE_YYABORT;
12323 }
12324 break;
12325
12326 case 691:
12327
12328
12329 #line 3965 "drizzled/sql_yacc.yy"
12330 {
12331 if (not parser::buildOrderBy(&Lex))
12332 DRIZZLE_YYABORT;
12333 }
12334 break;
12335
12336 case 693:
12337
12338
12339 #line 3974 "drizzled/sql_yacc.yy"
12340 {
12341 if (YYSession->add_order_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num)))
12342 DRIZZLE_YYABORT;
12343 }
12344 break;
12345
12346 case 694:
12347
12348
12349 #line 3979 "drizzled/sql_yacc.yy"
12350 {
12351 if (YYSession->add_order_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num)))
12352 DRIZZLE_YYABORT;
12353 }
12354 break;
12355
12356 case 695:
12357
12358
12359 #line 3986 "drizzled/sql_yacc.yy"
12360 { (yyval.num) = 1; }
12361 break;
12362
12363 case 696:
12364
12365
12366 #line 3987 "drizzled/sql_yacc.yy"
12367 { (yyval.num) =1; }
12368 break;
12369
12370 case 697:
12371
12372
12373 #line 3988 "drizzled/sql_yacc.yy"
12374 { (yyval.num) =0; }
12375 break;
12376
12377 case 698:
12378
12379
12380 #line 3993 "drizzled/sql_yacc.yy"
12381 {
12382 Select_Lex *sel= Lex.current_select;
12383 sel->offset_limit= 0;
12384 sel->select_limit= 0;
12385 }
12386 break;
12387
12388 case 699:
12389
12390
12391 #line 3998 "drizzled/sql_yacc.yy"
12392 {}
12393 break;
12394
12395 case 700:
12396
12397
12398 #line 4002 "drizzled/sql_yacc.yy"
12399 {}
12400 break;
12401
12402 case 701:
12403
12404
12405 #line 4003 "drizzled/sql_yacc.yy"
12406 {}
12407 break;
12408
12409 case 702:
12410
12411
12412 #line 4007 "drizzled/sql_yacc.yy"
12413 {}
12414 break;
12415
12416 case 703:
12417
12418
12419 #line 4012 "drizzled/sql_yacc.yy"
12420 {
12421 Select_Lex *sel= Lex.current_select;
12422 sel->select_limit= (yyvsp[(1) - (1)].item);
12423 sel->offset_limit= 0;
12424 sel->explicit_limit= 1;
12425 }
12426 break;
12427
12428 case 704:
12429
12430
12431 #line 4019 "drizzled/sql_yacc.yy"
12432 {
12433 Select_Lex *sel= Lex.current_select;
12434 sel->select_limit= (yyvsp[(3) - (3)].item);
12435 sel->offset_limit= (yyvsp[(1) - (3)].item);
12436 sel->explicit_limit= 1;
12437 }
12438 break;
12439
12440 case 705:
12441
12442
12443 #line 4026 "drizzled/sql_yacc.yy"
12444 {
12445 Select_Lex *sel= Lex.current_select;
12446 sel->select_limit= (yyvsp[(1) - (3)].item);
12447 sel->offset_limit= (yyvsp[(3) - (3)].item);
12448 sel->explicit_limit= 1;
12449 }
12450 break;
12451
12452 case 706:
12453
12454
12455 #line 4035 "drizzled/sql_yacc.yy"
12456 { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
12457 break;
12458
12459 case 707:
12460
12461
12462 #line 4036 "drizzled/sql_yacc.yy"
12463 { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
12464 break;
12465
12466 case 708:
12467
12468
12469 #line 4037 "drizzled/sql_yacc.yy"
12470 { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
12471 break;
12472
12473 case 709:
12474
12475
12476 #line 4042 "drizzled/sql_yacc.yy"
12477 {
12478 Lex.current_select->select_limit= 0;
12479 }
12480 break;
12481
12482 case 710:
12483
12484
12485 #line 4046 "drizzled/sql_yacc.yy"
12486 {
12487 Select_Lex *sel= Lex.current_select;
12488 sel->select_limit= (yyvsp[(2) - (2)].item);
12489 sel->explicit_limit= 1;
12490 }
12491 break;
12492
12493 case 711:
12494
12495
12496 #line 4054 "drizzled/sql_yacc.yy"
12497 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12498 break;
12499
12500 case 712:
12501
12502
12503 #line 4055 "drizzled/sql_yacc.yy"
12504 { (yyval.ulong_num)= (unsigned long) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
12505 break;
12506
12507 case 713:
12508
12509
12510 #line 4056 "drizzled/sql_yacc.yy"
12511 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12512 break;
12513
12514 case 714:
12515
12516
12517 #line 4057 "drizzled/sql_yacc.yy"
12518 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12519 break;
12520
12521 case 715:
12522
12523
12524 #line 4058 "drizzled/sql_yacc.yy"
12525 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12526 break;
12527
12528 case 716:
12529
12530
12531 #line 4059 "drizzled/sql_yacc.yy"
12532 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12533 break;
12534
12535 case 717:
12536
12537
12538 #line 4063 "drizzled/sql_yacc.yy"
12539 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12540 break;
12541
12542 case 718:
12543
12544
12545 #line 4064 "drizzled/sql_yacc.yy"
12546 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12547 break;
12548
12549 case 719:
12550
12551
12552 #line 4065 "drizzled/sql_yacc.yy"
12553 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12554 break;
12555
12556 case 720:
12557
12558
12559 #line 4066 "drizzled/sql_yacc.yy"
12560 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12561 break;
12562
12563 case 721:
12564
12565
12566 #line 4067 "drizzled/sql_yacc.yy"
12567 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12568 break;
12569
12570 case 722:
12571
12572
12573 #line 4071 "drizzled/sql_yacc.yy"
12574 {
12575 if (not Lex.describe && (not (Lex.result= new select_dumpvar())))
12576 DRIZZLE_YYABORT;
12577 }
12578 break;
12579
12580 case 723:
12581
12582
12583 #line 4076 "drizzled/sql_yacc.yy"
12584 {}
12585 break;
12586
12587 case 725:
12588
12589
12590 #line 4081 "drizzled/sql_yacc.yy"
12591 {}
12592 break;
12593
12594 case 726:
12595
12596
12597 #line 4086 "drizzled/sql_yacc.yy"
12598 {
12599 if (Lex.result)
12600 {
12601 ((select_dumpvar *)Lex.result)->var_list.push_back( new var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0));
12602 }
12603 else
12604 {
12605
12606
12607
12608
12609 assert(Lex.describe);
12610 }
12611 }
12612 break;
12613
12614 case 727:
12615
12616
12617 #line 4104 "drizzled/sql_yacc.yy"
12618 { }
12619 break;
12620
12621 case 729:
12622
12623
12624 #line 4110 "drizzled/sql_yacc.yy"
12625 {
12626 Lex.setCacheable(false);
12627 if (!(Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).str, 0)) ||
12628 !(Lex.result= new select_export(Lex.exchange)))
12629 DRIZZLE_YYABORT;
12630 }
12631 break;
12632
12633 case 731:
12634
12635
12636 #line 4118 "drizzled/sql_yacc.yy"
12637 {
12638 if (not Lex.describe)
12639 {
12640 Lex.setCacheable(false);
12641 if (not (Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).str,1)))
12642 DRIZZLE_YYABORT;
12643 if (not (Lex.result= new select_dump(Lex.exchange)))
12644 DRIZZLE_YYABORT;
12645 }
12646 }
12647 break;
12648
12649 case 732:
12650
12651
12652 #line 4129 "drizzled/sql_yacc.yy"
12653 {Lex.setCacheable(false);}
12654 break;
12655
12656 case 733:
12657
12658
12659 #line 4138 "drizzled/sql_yacc.yy"
12660 {
12661 Lex.statement= new statement::catalog::Drop(YYSession, (yyvsp[(3) - (3)].lex_str));
12662 }
12663 break;
12664
12665 case 734:
12666
12667
12668 #line 4142 "drizzled/sql_yacc.yy"
12669 {
12670 statement::DropTable *statement= new statement::DropTable(YYSession);
12671 Lex.statement= statement;
12672 statement->drop_temporary= (yyvsp[(2) - (5)].boolean);
12673 statement->drop_if_exists= (yyvsp[(4) - (5)].boolean);
12674 }
12675 break;
12676
12677 case 735:
12678
12679
12680 #line 4148 "drizzled/sql_yacc.yy"
12681 {}
12682 break;
12683
12684 case 736:
12685
12686
12687 #line 4149 "drizzled/sql_yacc.yy"
12688 {
12689 statement::DropIndex *statement= new statement::DropIndex(YYSession);
12690 Lex.statement= statement;
12691 statement->alter_info.flags.set(ALTER_DROP_INDEX);
12692 statement->alter_info.build_method= (yyvsp[(2) - (7)].build_method);
12693 statement->alter_info.drop_list.push_back(AlterDrop(AlterDrop::KEY, (yyvsp[(4) - (7)].lex_str).str));
12694 if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(6) - (7)].table), NULL,
12695 TL_OPTION_UPDATING))
12696 DRIZZLE_YYABORT;
12697 }
12698 break;
12699
12700 case 737:
12701
12702
12703 #line 4160 "drizzled/sql_yacc.yy"
12704 {
12705 statement::DropSchema *statement= new statement::DropSchema(YYSession);
12706 Lex.statement= statement;
12707 statement->drop_if_exists=(yyvsp[(3) - (4)].boolean);
12708 Lex.name= (yyvsp[(4) - (4)].lex_str);
12709 }
12710 break;
12711
12712 case 740:
12713
12714
12715 #line 4175 "drizzled/sql_yacc.yy"
12716 {
12717 if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
12718 DRIZZLE_YYABORT;
12719 }
12720 break;
12721
12722 case 741:
12723
12724
12725 #line 4182 "drizzled/sql_yacc.yy"
12726 { (yyval.boolean)= false; }
12727 break;
12728
12729 case 742:
12730
12731
12732 #line 4183 "drizzled/sql_yacc.yy"
12733 { (yyval.boolean)= true; }
12734 break;
12735
12736 case 743:
12737
12738
12739 #line 4187 "drizzled/sql_yacc.yy"
12740 { (yyval.boolean)= false; }
12741 break;
12742
12743 case 744:
12744
12745
12746 #line 4188 "drizzled/sql_yacc.yy"
12747 { (yyval.boolean)= true; }
12748 break;
12749
12750 case 745:
12751
12752
12753 #line 4197 "drizzled/sql_yacc.yy"
12754 {
12755 Lex.statement= new statement::Execute(YYSession, (yyvsp[(2) - (5)].execute_string), (yyvsp[(3) - (5)].boolean), (yyvsp[(4) - (5)].boolean), (yyvsp[(5) - (5)].boolean));
12756 }
12757 break;
12758
12759 case 746:
12760
12761
12762 #line 4204 "drizzled/sql_yacc.yy"
12763 {
12764 (yyval.execute_string).set((yyvsp[(1) - (1)].lex_str));
12765 }
12766 break;
12767
12768 case 747:
12769
12770
12771 #line 4208 "drizzled/sql_yacc.yy"
12772 {
12773 (yyval.execute_string).set((yyvsp[(2) - (2)].lex_str), true);
12774 }
12775 break;
12776
12777 case 748:
12778
12779
12780 #line 4213 "drizzled/sql_yacc.yy"
12781 { (yyval.boolean)= false; }
12782 break;
12783
12784 case 749:
12785
12786
12787 #line 4214 "drizzled/sql_yacc.yy"
12788 { (yyval.boolean)= true; }
12789 break;
12790
12791 case 750:
12792
12793
12794 #line 4218 "drizzled/sql_yacc.yy"
12795 { (yyval.boolean)= false; }
12796 break;
12797
12798 case 751:
12799
12800
12801 #line 4219 "drizzled/sql_yacc.yy"
12802 { (yyval.boolean)= true; }
12803 break;
12804
12805 case 752:
12806
12807
12808 #line 4223 "drizzled/sql_yacc.yy"
12809 { (yyval.boolean)= false; }
12810 break;
12811
12812 case 753:
12813
12814
12815 #line 4224 "drizzled/sql_yacc.yy"
12816 { (yyval.boolean)= true; }
12817 break;
12818
12819 case 754:
12820
12821
12822 #line 4233 "drizzled/sql_yacc.yy"
12823 {
12824 Lex.statement= new statement::Insert(YYSession);
12825 Lex.duplicates= DUP_ERROR;
12826 init_select(&Lex);
12827
12828 Lex.lock_option= TL_READ;
12829 }
12830 break;
12831
12832 case 755:
12833
12834
12835 #line 4241 "drizzled/sql_yacc.yy"
12836 {
12837 Lex.current_select->set_lock_for_tables(TL_WRITE_CONCURRENT_INSERT);
12838 Lex.current_select= &Lex.select_lex;
12839 }
12840 break;
12841
12842 case 756:
12843
12844
12845 #line 4246 "drizzled/sql_yacc.yy"
12846 {}
12847 break;
12848
12849 case 757:
12850
12851
12852 #line 4251 "drizzled/sql_yacc.yy"
12853 {
12854 Lex.statement= new statement::Replace(YYSession);
12855 Lex.duplicates= DUP_REPLACE;
12856 init_select(&Lex);
12857 }
12858 break;
12859
12860 case 758:
12861
12862
12863 #line 4257 "drizzled/sql_yacc.yy"
12864 {
12865 Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
12866 Lex.current_select= &Lex.select_lex;
12867 }
12868 break;
12869
12870 case 759:
12871
12872
12873 #line 4262 "drizzled/sql_yacc.yy"
12874 {}
12875 break;
12876
12877 case 760:
12878
12879
12880 #line 4266 "drizzled/sql_yacc.yy"
12881 {}
12882 break;
12883
12884 case 761:
12885
12886
12887 #line 4267 "drizzled/sql_yacc.yy"
12888 {}
12889 break;
12890
12891 case 762:
12892
12893
12894 #line 4272 "drizzled/sql_yacc.yy"
12895 {
12896 Lex.field_list.clear();
12897 Lex.many_values.clear();
12898 Lex.insert_list=0;
12899 }
12900 break;
12901
12902 case 763:
12903
12904
12905 #line 4279 "drizzled/sql_yacc.yy"
12906 {}
12907 break;
12908
12909 case 764:
12910
12911
12912 #line 4280 "drizzled/sql_yacc.yy"
12913 {}
12914 break;
12915
12916 case 765:
12917
12918
12919 #line 4281 "drizzled/sql_yacc.yy"
12920 {}
12921 break;
12922
12923 case 766:
12924
12925
12926 #line 4283 "drizzled/sql_yacc.yy"
12927 {
12928 if (not (Lex.insert_list = new List_item) ||
12929 Lex.many_values.push_back(Lex.insert_list))
12930 DRIZZLE_YYABORT;
12931 }
12932 break;
12933
12934 case 768:
12935
12936
12937 #line 4292 "drizzled/sql_yacc.yy"
12938 { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
12939 break;
12940
12941 case 769:
12942
12943
12944 #line 4293 "drizzled/sql_yacc.yy"
12945 { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
12946 break;
12947
12948 case 770:
12949
12950
12951 #line 4297 "drizzled/sql_yacc.yy"
12952 {}
12953 break;
12954
12955 case 771:
12956
12957
12958 #line 4298 "drizzled/sql_yacc.yy"
12959 {}
12960 break;
12961
12962 case 772:
12963
12964
12965 #line 4300 "drizzled/sql_yacc.yy"
12966 {
12967 Lex.current_select->set_braces(0);
12968 }
12969 break;
12970
12971 case 773:
12972
12973
12974 #line 4303 "drizzled/sql_yacc.yy"
12975 {}
12976 break;
12977
12978 case 774:
12979
12980
12981 #line 4305 "drizzled/sql_yacc.yy"
12982 {
12983 Lex.current_select->set_braces(1);
12984 }
12985 break;
12986
12987 case 775:
12988
12989
12990 #line 4308 "drizzled/sql_yacc.yy"
12991 {}
12992 break;
12993
12994 case 780:
12995
12996
12997 #line 4323 "drizzled/sql_yacc.yy"
12998 {
12999 if (Lex.field_list.push_back((yyvsp[(1) - (3)].item)) ||
13000 Lex.insert_list->push_back((yyvsp[(3) - (3)].item)))
13001 DRIZZLE_YYABORT;
13002 }
13003 break;
13004
13005 case 781:
13006
13007
13008 #line 4331 "drizzled/sql_yacc.yy"
13009 {}
13010 break;
13011
13012 case 782:
13013
13014
13015 #line 4332 "drizzled/sql_yacc.yy"
13016 {}
13017 break;
13018
13019 case 783:
13020
13021
13022 #line 4336 "drizzled/sql_yacc.yy"
13023 {}
13024 break;
13025
13026 case 784:
13027
13028
13029 #line 4337 "drizzled/sql_yacc.yy"
13030 {}
13031 break;
13032
13033 case 785:
13034
13035
13036 #line 4342 "drizzled/sql_yacc.yy"
13037 {
13038 if (!(Lex.insert_list = new List_item))
13039 DRIZZLE_YYABORT;
13040 }
13041 break;
13042
13043 case 786:
13044
13045
13046 #line 4347 "drizzled/sql_yacc.yy"
13047 {
13048 if (Lex.many_values.push_back(Lex.insert_list))
13049 DRIZZLE_YYABORT;
13050 }
13051 break;
13052
13053 case 787:
13054
13055
13056 #line 4354 "drizzled/sql_yacc.yy"
13057 {}
13058 break;
13059
13060 case 789:
13061
13062
13063 #line 4360 "drizzled/sql_yacc.yy"
13064 {
13065 if (Lex.insert_list->push_back((yyvsp[(3) - (3)].item)))
13066 DRIZZLE_YYABORT;
13067 }
13068 break;
13069
13070 case 790:
13071
13072
13073 #line 4365 "drizzled/sql_yacc.yy"
13074 {
13075 if (Lex.insert_list->push_back((yyvsp[(1) - (1)].item)))
13076 DRIZZLE_YYABORT;
13077 }
13078 break;
13079
13080 case 791:
13081
13082
13083 #line 4372 "drizzled/sql_yacc.yy"
13084 { (yyval.item)= (yyvsp[(1) - (1)].item);}
13085 break;
13086
13087 case 792:
13088
13089
13090 #line 4373 "drizzled/sql_yacc.yy"
13091 {(yyval.item)= new Item_default_value(Lex.current_context()); }
13092 break;
13093
13094 case 794:
13095
13096
13097 #line 4378 "drizzled/sql_yacc.yy"
13098 { Lex.duplicates= DUP_UPDATE; }
13099 break;
13100
13101 case 796:
13102
13103
13104 #line 4386 "drizzled/sql_yacc.yy"
13105 {
13106 init_select(&Lex);
13107 Lex.statement= new statement::Update(YYSession);
13108 Lex.lock_option= TL_UNLOCK;
13109 Lex.duplicates= DUP_ERROR;
13110 if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(3) - (5)].table), NULL,0))
13111 DRIZZLE_YYABORT;
13112
13113 if (Lex.select_lex.get_table_list()->derived)
13114 {
13115
13116 my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
13117 Lex.select_lex.get_table_list()->alias, "UPDATE");
13118 DRIZZLE_YYABORT;
13119 }
13120
13121
13122
13123
13124
13125 Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13126 }
13127 break;
13128
13129 case 797:
13130
13131
13132 #line 4408 "drizzled/sql_yacc.yy"
13133 {}
13134 break;
13135
13136 case 800:
13137
13138
13139 #line 4418 "drizzled/sql_yacc.yy"
13140 {
13141 if (YYSession->add_item_to_list((yyvsp[(1) - (3)].item)) || YYSession->add_value_to_list((yyvsp[(3) - (3)].item)))
13142 DRIZZLE_YYABORT;
13143 }
13144 break;
13145
13146 case 803:
13147
13148
13149 #line 4431 "drizzled/sql_yacc.yy"
13150 {
13151 if (Lex.update_list.push_back((yyvsp[(1) - (3)].item)) ||
13152 Lex.value_list.push_back((yyvsp[(3) - (3)].item)))
13153 DRIZZLE_YYABORT;
13154 }
13155 break;
13156
13157 case 804:
13158
13159
13160 #line 4442 "drizzled/sql_yacc.yy"
13161 {
13162 Lex.statement= new statement::Delete(YYSession);
13163 init_select(&Lex);
13164 Lex.lock_option= TL_WRITE_DEFAULT;
13165 Lex.select_lex.init_order();
13166
13167 if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(4) - (4)].table), NULL, TL_OPTION_UPDATING,
13168 Lex.lock_option))
13169 DRIZZLE_YYABORT;
13170 }
13171 break;
13172
13173 case 805:
13174
13175
13176 #line 4453 "drizzled/sql_yacc.yy"
13177 {}
13178 break;
13179
13180 case 806:
13181
13182
13183 #line 4457 "drizzled/sql_yacc.yy"
13184 { Lex.ignore= 0; }
13185 break;
13186
13187 case 807:
13188
13189
13190 #line 4458 "drizzled/sql_yacc.yy"
13191 { Lex.ignore= 1; }
13192 break;
13193
13194 case 808:
13195
13196
13197 #line 4463 "drizzled/sql_yacc.yy"
13198 {
13199 Lex.statement= new statement::Truncate(YYSession);
13200 Lex.select_lex.options= 0;
13201 Lex.select_lex.init_order();
13202 }
13203 break;
13204
13205 case 811:
13206
13207
13208 #line 4479 "drizzled/sql_yacc.yy"
13209 {
13210 Lex.lock_option= TL_READ;
13211 init_select(&Lex);
13212 Lex.current_select->parsing_place= SELECT_LIST;
13213 }
13214 break;
13215
13216 case 812:
13217
13218
13219 #line 4485 "drizzled/sql_yacc.yy"
13220 {}
13221 break;
13222
13223 case 813:
13224
13225
13226 #line 4491 "drizzled/sql_yacc.yy"
13227 {
13228 if (not show::buildScemas(YYSession))
13229 DRIZZLE_YYABORT;
13230 }
13231 break;
13232
13233 case 814:
13234
13235
13236 #line 4497 "drizzled/sql_yacc.yy"
13237 {
13238 if (not show::buildTables(YYSession, (yyvsp[(2) - (3)].simple_string)))
13239 DRIZZLE_YYABORT;
13240 }
13241 break;
13242
13243 case 815:
13244
13245
13246 #line 4503 "drizzled/sql_yacc.yy"
13247 {
13248 if (not show::buildTemporaryTables(YYSession))
13249 DRIZZLE_YYABORT;
13250 }
13251 break;
13252
13253 case 816:
13254
13255
13256 #line 4509 "drizzled/sql_yacc.yy"
13257 {
13258 if (not show::buildTableStatus(YYSession, (yyvsp[(3) - (4)].simple_string)))
13259 DRIZZLE_YYABORT;
13260 }
13261 break;
13262
13263 case 817:
13264
13265
13266 #line 4515 "drizzled/sql_yacc.yy"
13267 {
13268 if (not show::buildColumns(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13269 DRIZZLE_YYABORT;
13270 }
13271 break;
13272
13273 case 818:
13274
13275
13276 #line 4521 "drizzled/sql_yacc.yy"
13277 {
13278 if (not show::buildIndex(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13279 DRIZZLE_YYABORT;
13280 }
13281 break;
13282
13283 case 819:
13284
13285
13286 #line 4526 "drizzled/sql_yacc.yy"
13287 {
13288 show::buildSelectWarning(YYSession);
13289 }
13290 break;
13291
13292 case 820:
13293
13294
13295 #line 4530 "drizzled/sql_yacc.yy"
13296 {
13297 show::buildSelectError(YYSession);
13298 }
13299 break;
13300
13301 case 821:
13302
13303
13304 #line 4534 "drizzled/sql_yacc.yy"
13305 {
13306 show::buildWarnings(YYSession);
13307 }
13308 break;
13309
13310 case 822:
13311
13312
13313 #line 4538 "drizzled/sql_yacc.yy"
13314 {
13315 show::buildErrors(YYSession);
13316 }
13317 break;
13318
13319 case 823:
13320
13321
13322 #line 4542 "drizzled/sql_yacc.yy"
13323 {
13324 if (not show::buildStatus(YYSession, (yyvsp[(1) - (3)].var_type)))
13325 DRIZZLE_YYABORT;
13326 }
13327 break;
13328
13329 case 824:
13330
13331
13332 #line 4547 "drizzled/sql_yacc.yy"
13333 {
13334 if (not show::buildEngineStatus(YYSession, (yyvsp[(1) - (2)].lex_str)))
13335 DRIZZLE_YYABORT;
13336 }
13337 break;
13338
13339 case 825:
13340
13341
13342 #line 4552 "drizzled/sql_yacc.yy"
13343 {
13344 if (not show::buildCreateTable(YYSession, (yyvsp[(3) - (3)].table)))
13345 DRIZZLE_YYABORT;
13346 }
13347 break;
13348
13349 case 826:
13350
13351
13352 #line 4557 "drizzled/sql_yacc.yy"
13353 {
13354 if (not show::buildProcesslist(YYSession))
13355 DRIZZLE_YYABORT;
13356 }
13357 break;
13358
13359 case 827:
13360
13361
13362 #line 4562 "drizzled/sql_yacc.yy"
13363 {
13364 if (not show::buildVariables(YYSession, (yyvsp[(1) - (3)].var_type)))
13365 DRIZZLE_YYABORT;
13366 }
13367 break;
13368
13369 case 828:
13370
13371
13372 #line 4567 "drizzled/sql_yacc.yy"
13373 {
13374 if (not show::buildCreateSchema(YYSession, (yyvsp[(4) - (4)].lex_str)))
13375 DRIZZLE_YYABORT;
13376 }
13377 break;
13378
13379 case 829:
13380
13381
13382 #line 4573 "drizzled/sql_yacc.yy"
13383 { (yyval.simple_string)= 0; }
13384 break;
13385
13386 case 830:
13387
13388
13389 #line 4574 "drizzled/sql_yacc.yy"
13390 { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
13391 break;
13392
13393 case 834:
13394
13395
13396 #line 4585 "drizzled/sql_yacc.yy"
13397 {
13398 Lex.wild= new (YYSession->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
13399 system_charset_info);
13400 if (Lex.wild == NULL)
13401 DRIZZLE_YYABORT;
13402 }
13403 break;
13404
13405 case 835:
13406
13407
13408 #line 4592 "drizzled/sql_yacc.yy"
13409 {
13410 Lex.current_select->where= (yyvsp[(2) - (2)].item);
13411 if ((yyvsp[(2) - (2)].item))
13412 (yyvsp[(2) - (2)].item)->top_level_item();
13413 }
13414 break;
13415
13416 case 836:
13417
13418
13419 #line 4602 "drizzled/sql_yacc.yy"
13420 {
13421 if (not show::buildDescribe(YYSession, (yyvsp[(2) - (2)].table)))
13422 {
13423 DRIZZLE_YYABORT;
13424 }
13425 }
13426 break;
13427
13428 case 837:
13429
13430
13431 #line 4608 "drizzled/sql_yacc.yy"
13432 {}
13433 break;
13434
13435 case 838:
13436
13437
13438 #line 4610 "drizzled/sql_yacc.yy"
13439 { Lex.describe|= DESCRIBE_NORMAL; }
13440 break;
13441
13442 case 839:
13443
13444
13445 #line 4612 "drizzled/sql_yacc.yy"
13446 {
13447 Lex.select_lex.options|= SELECT_DESCRIBE;
13448 }
13449 break;
13450
13451 case 842:
13452
13453
13454 #line 4623 "drizzled/sql_yacc.yy"
13455 {}
13456 break;
13457
13458 case 843:
13459
13460
13461 #line 4624 "drizzled/sql_yacc.yy"
13462 { Lex.describe|= DESCRIBE_EXTENDED; }
13463 break;
13464
13465 case 844:
13466
13467
13468 #line 4628 "drizzled/sql_yacc.yy"
13469 {}
13470 break;
13471
13472 case 845:
13473
13474
13475 #line 4629 "drizzled/sql_yacc.yy"
13476 { Lex.wild= (yyvsp[(1) - (1)].string); }
13477 break;
13478
13479 case 846:
13480
13481
13482 #line 4631 "drizzled/sql_yacc.yy"
13483 {
13484 Lex.wild= new (YYSession->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
13485 (yyvsp[(1) - (1)].lex_str).length,
13486 system_charset_info);
13487 }
13488 break;
13489
13490 case 847:
13491
13492
13493 #line 4643 "drizzled/sql_yacc.yy"
13494 {
13495 Lex.statement= new statement::Flush(YYSession);
13496 }
13497 break;
13498
13499 case 848:
13500
13501
13502 #line 4647 "drizzled/sql_yacc.yy"
13503 {}
13504 break;
13505
13506 case 851:
13507
13508
13509 #line 4657 "drizzled/sql_yacc.yy"
13510 {
13511 statement::Flush *statement= (statement::Flush*)Lex.statement;
13512 statement->setFlushTables(true);
13513 }
13514 break;
13515
13516 case 852:
13517
13518
13519 #line 4661 "drizzled/sql_yacc.yy"
13520 {}
13521 break;
13522
13523 case 853:
13524
13525
13526 #line 4663 "drizzled/sql_yacc.yy"
13527 {
13528 statement::Flush *statement= (statement::Flush*)Lex.statement;
13529 statement->setFlushTablesWithReadLock(true);
13530 }
13531 break;
13532
13533 case 854:
13534
13535
13536 #line 4668 "drizzled/sql_yacc.yy"
13537 {
13538 statement::Flush *statement= (statement::Flush*)Lex.statement;
13539 statement->setFlushLog(true);
13540 }
13541 break;
13542
13543 case 855:
13544
13545
13546 #line 4673 "drizzled/sql_yacc.yy"
13547 {
13548 statement::Flush *statement= (statement::Flush*)Lex.statement;
13549 statement->setFlushStatus(true);
13550 }
13551 break;
13552
13553 case 856:
13554
13555
13556 #line 4678 "drizzled/sql_yacc.yy"
13557 {
13558 statement::Flush *statement= (statement::Flush*)Lex.statement;
13559 statement->setFlushGlobalStatus(true);
13560 }
13561 break;
13562
13563 case 857:
13564
13565
13566 #line 4685 "drizzled/sql_yacc.yy"
13567 {}
13568 break;
13569
13570 case 858:
13571
13572
13573 #line 4686 "drizzled/sql_yacc.yy"
13574 {}
13575 break;
13576
13577 case 859:
13578
13579
13580 #line 4693 "drizzled/sql_yacc.yy"
13581 {
13582 Lex.statement= new statement::Kill(YYSession, (yyvsp[(3) - (3)].item), (yyvsp[(2) - (3)].num));
13583 }
13584 break;
13585
13586 case 860:
13587
13588
13589 #line 4699 "drizzled/sql_yacc.yy"
13590 { (yyval.num)= false; }
13591 break;
13592
13593 case 861:
13594
13595
13596 #line 4700 "drizzled/sql_yacc.yy"
13597 { (yyval.num)= false; }
13598 break;
13599
13600 case 862:
13601
13602
13603 #line 4701 "drizzled/sql_yacc.yy"
13604 { (yyval.num)= true; }
13605 break;
13606
13607 case 863:
13608
13609
13610 #line 4708 "drizzled/sql_yacc.yy"
13611 {
13612 Lex.statement= new statement::ChangeSchema(YYSession);
13613 Lex.select_lex.db= (yyvsp[(2) - (2)].lex_str).str;
13614 }
13615 break;
13616
13617 case 864:
13618
13619
13620 #line 4718 "drizzled/sql_yacc.yy"
13621 {
13622 statement::Load *statement= new statement::Load(YYSession);
13623 Lex.statement= statement;
13624
13625 Lex_input_stream *lip= YYSession->m_lip;
13626 statement->fname_start= lip->get_ptr();
13627 }
13628 break;
13629
13630 case 865:
13631
13632
13633 #line 4726 "drizzled/sql_yacc.yy"
13634 {
13635 Lex.lock_option= (yyvsp[(4) - (6)].lock_type);
13636 Lex.duplicates= DUP_ERROR;
13637 Lex.ignore= 0;
13638 if (not (Lex.exchange= new file_exchange((yyvsp[(6) - (6)].lex_str).str, 0, (yyvsp[(2) - (6)].filetype))))
13639 DRIZZLE_YYABORT;
13640 }
13641 break;
13642
13643 case 866:
13644
13645
13646 #line 4734 "drizzled/sql_yacc.yy"
13647 {
13648 Lex_input_stream *lip= YYSession->m_lip;
13649 ((statement::Load *)Lex.statement)->fname_end= lip->get_ptr();
13650 }
13651 break;
13652
13653 case 867:
13654
13655
13656 #line 4739 "drizzled/sql_yacc.yy"
13657 {
13658 if (!Lex.current_select->add_table_to_list(YYSession,
13659 (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
13660 Lex.lock_option))
13661 DRIZZLE_YYABORT;
13662 Lex.field_list.clear();
13663 Lex.update_list.clear();
13664 Lex.value_list.clear();
13665 }
13666 break;
13667
13668 case 868:
13669
13670
13671 #line 4750 "drizzled/sql_yacc.yy"
13672 {}
13673 break;
13674
13675 case 869:
13676
13677
13678 #line 4754 "drizzled/sql_yacc.yy"
13679 { (yyval.filetype)= FILETYPE_CSV; }
13680 break;
13681
13682 case 870:
13683
13684
13685 #line 4757 "drizzled/sql_yacc.yy"
13686 { (yyval.lock_type)= TL_WRITE_DEFAULT; }
13687 break;
13688
13689 case 871:
13690
13691
13692 #line 4759 "drizzled/sql_yacc.yy"
13693 {
13694 (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
13695 }
13696 break;
13697
13698 case 872:
13699
13700
13701 #line 4765 "drizzled/sql_yacc.yy"
13702 { Lex.duplicates=DUP_ERROR; }
13703 break;
13704
13705 case 873:
13706
13707
13708 #line 4766 "drizzled/sql_yacc.yy"
13709 { Lex.duplicates=DUP_REPLACE; }
13710 break;
13711
13712 case 874:
13713
13714
13715 #line 4767 "drizzled/sql_yacc.yy"
13716 { Lex.ignore= 1; }
13717 break;
13718
13719 case 875:
13720
13721
13722 #line 4771 "drizzled/sql_yacc.yy"
13723 { Lex.duplicates=DUP_ERROR; }
13724 break;
13725
13726 case 876:
13727
13728
13729 #line 4772 "drizzled/sql_yacc.yy"
13730 { Lex.duplicates=DUP_ERROR; }
13731 break;
13732
13733 case 877:
13734
13735
13736 #line 4773 "drizzled/sql_yacc.yy"
13737 { Lex.duplicates=DUP_REPLACE; }
13738 break;
13739
13740 case 878:
13741
13742
13743 #line 4774 "drizzled/sql_yacc.yy"
13744 { Lex.ignore= true; }
13745 break;
13746
13747 case 879:
13748
13749
13750 #line 4775 "drizzled/sql_yacc.yy"
13751 { Lex.duplicates=DUP_REPLACE; }
13752 break;
13753
13754 case 880:
13755
13756
13757 #line 4776 "drizzled/sql_yacc.yy"
13758 { Lex.ignore= true; }
13759 break;
13760
13761 case 885:
13762
13763
13764 #line 4791 "drizzled/sql_yacc.yy"
13765 {
13766 assert(Lex.exchange != 0);
13767 Lex.exchange->field_term= (yyvsp[(3) - (3)].string);
13768 }
13769 break;
13770
13771 case 886:
13772
13773
13774 #line 4796 "drizzled/sql_yacc.yy"
13775 {
13776 assert(Lex.exchange != 0);
13777 Lex.exchange->enclosed= (yyvsp[(4) - (4)].string);
13778 Lex.exchange->opt_enclosed= 1;
13779 }
13780 break;
13781
13782 case 887:
13783
13784
13785 #line 4802 "drizzled/sql_yacc.yy"
13786 {
13787 assert(Lex.exchange != 0);
13788 Lex.exchange->enclosed= (yyvsp[(3) - (3)].string);
13789 }
13790 break;
13791
13792 case 888:
13793
13794
13795 #line 4807 "drizzled/sql_yacc.yy"
13796 {
13797 assert(Lex.exchange != 0);
13798 Lex.exchange->escaped= (yyvsp[(3) - (3)].string);
13799 }
13800 break;
13801
13802 case 893:
13803
13804
13805 #line 4825 "drizzled/sql_yacc.yy"
13806 {
13807 assert(Lex.exchange != 0);
13808 Lex.exchange->line_term= (yyvsp[(3) - (3)].string);
13809 }
13810 break;
13811
13812 case 894:
13813
13814
13815 #line 4830 "drizzled/sql_yacc.yy"
13816 {
13817 assert(Lex.exchange != 0);
13818 Lex.exchange->line_start= (yyvsp[(3) - (3)].string);
13819 }
13820 break;
13821
13822 case 896:
13823
13824
13825 #line 4839 "drizzled/sql_yacc.yy"
13826 {
13827 assert(Lex.exchange != 0);
13828 Lex.exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
13829 }
13830 break;
13831
13832 case 897:
13833
13834
13835 #line 4846 "drizzled/sql_yacc.yy"
13836 { }
13837 break;
13838
13839 case 898:
13840
13841
13842 #line 4847 "drizzled/sql_yacc.yy"
13843 { }
13844 break;
13845
13846 case 899:
13847
13848
13849 #line 4851 "drizzled/sql_yacc.yy"
13850 {}
13851 break;
13852
13853 case 900:
13854
13855
13856 #line 4852 "drizzled/sql_yacc.yy"
13857 {}
13858 break;
13859
13860 case 901:
13861
13862
13863 #line 4853 "drizzled/sql_yacc.yy"
13864 {}
13865 break;
13866
13867 case 902:
13868
13869
13870 #line 4858 "drizzled/sql_yacc.yy"
13871 { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
13872 break;
13873
13874 case 903:
13875
13876
13877 #line 4860 "drizzled/sql_yacc.yy"
13878 { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
13879 break;
13880
13881 case 904:
13882
13883
13884 #line 4864 "drizzled/sql_yacc.yy"
13885 {(yyval.item)= (yyvsp[(1) - (1)].item);}
13886 break;
13887
13888 case 905:
13889
13890
13891 #line 4866 "drizzled/sql_yacc.yy"
13892 { (yyval.item)= new Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str)); }
13893 break;
13894
13895 case 906:
13896
13897
13898 #line 4870 "drizzled/sql_yacc.yy"
13899 {}
13900 break;
13901
13902 case 907:
13903
13904
13905 #line 4871 "drizzled/sql_yacc.yy"
13906 {}
13907 break;
13908
13909 case 908:
13910
13911
13912 #line 4878 "drizzled/sql_yacc.yy"
13913 {
13914 (yyval.item) = new Item_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, YYSession->variables.getCollation());
13915 }
13916 break;
13917
13918 case 909:
13919
13920
13921 #line 4882 "drizzled/sql_yacc.yy"
13922 {
13923 ((Item_string*) (yyvsp[(1) - (2)].item))->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
13924 }
13925 break;
13926
13927 case 910:
13928
13929
13930 #line 4889 "drizzled/sql_yacc.yy"
13931 {
13932 (yyval.string)= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
13933 (yyvsp[(1) - (1)].lex_str).length,
13934 YYSession->variables.getCollation());
13935 }
13936 break;
13937
13938 case 911:
13939
13940
13941 #line 4895 "drizzled/sql_yacc.yy"
13942 {
13943 Item *tmp= new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
13944
13945
13946
13947
13948 (yyval.string)= tmp ?
13949 tmp->quick_fix_field(), tmp->val_str((String*) 0) :
13950 (String*) 0;
13951 }
13952 break;
13953
13954 case 912:
13955
13956
13957 #line 4906 "drizzled/sql_yacc.yy"
13958 {
13959 Item *tmp= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
13960
13961
13962
13963
13964 (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str((String*) 0) :
13965 (String*) 0;
13966 }
13967 break;
13968
13969 case 913:
13970
13971
13972 #line 4918 "drizzled/sql_yacc.yy"
13973 { (yyval.item) = (yyvsp[(1) - (1)].item); }
13974 break;
13975
13976 case 914:
13977
13978
13979 #line 4919 "drizzled/sql_yacc.yy"
13980 { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
13981 break;
13982
13983 case 915:
13984
13985
13986 #line 4921 "drizzled/sql_yacc.yy"
13987 {
13988 (yyvsp[(2) - (2)].item_num)->max_length++;
13989 (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
13990 }
13991 break;
13992
13993 case 916:
13994
13995
13996 #line 4928 "drizzled/sql_yacc.yy"
13997 { (yyval.item) = (yyvsp[(1) - (1)].item); }
13998 break;
13999
14000 case 917:
14001
14002
14003 #line 4929 "drizzled/sql_yacc.yy"
14004 { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14005 break;
14006
14007 case 918:
14008
14009
14010 #line 4931 "drizzled/sql_yacc.yy"
14011 {
14012 (yyval.item) = new Item_null();
14013 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14014 }
14015 break;
14016
14017 case 919:
14018
14019
14020 #line 4935 "drizzled/sql_yacc.yy"
14021 { (yyval.item)= new drizzled::item::False(); }
14022 break;
14023
14024 case 920:
14025
14026
14027 #line 4936 "drizzled/sql_yacc.yy"
14028 { (yyval.item)= new drizzled::item::True(); }
14029 break;
14030
14031 case 921:
14032
14033
14034 #line 4937 "drizzled/sql_yacc.yy"
14035 { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);}
14036 break;
14037
14038 case 922:
14039
14040
14041 #line 4938 "drizzled/sql_yacc.yy"
14042 { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
14043 break;
14044
14045 case 923:
14046
14047
14048 #line 4939 "drizzled/sql_yacc.yy"
14049 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14050 break;
14051
14052 case 924:
14053
14054
14055 #line 4940 "drizzled/sql_yacc.yy"
14056 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14057 break;
14058
14059 case 925:
14060
14061
14062 #line 4944 "drizzled/sql_yacc.yy"
14063 { (yyval.item) = (yyvsp[(1) - (1)].item); }
14064 break;
14065
14066 case 926:
14067
14068
14069 #line 4945 "drizzled/sql_yacc.yy"
14070 { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);}
14071 break;
14072
14073 case 927:
14074
14075
14076 #line 4946 "drizzled/sql_yacc.yy"
14077 { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
14078 break;
14079
14080 case 928:
14081
14082
14083 #line 4947 "drizzled/sql_yacc.yy"
14084 { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14085 break;
14086
14087 case 929:
14088
14089
14090 #line 4949 "drizzled/sql_yacc.yy"
14091 {
14092 (yyval.item) = new Item_null();
14093 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14094 }
14095 break;
14096
14097 case 930:
14098
14099
14100 #line 4953 "drizzled/sql_yacc.yy"
14101 { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14102 break;
14103
14104 case 931:
14105
14106
14107 #line 4955 "drizzled/sql_yacc.yy"
14108 {
14109 (yyvsp[(2) - (2)].item_num)->max_length++;
14110 (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14111 }
14112 break;
14113
14114 case 932:
14115
14116
14117 #line 4963 "drizzled/sql_yacc.yy"
14118 {
14119 (yyval.item) = new Item_null();
14120 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14121 }
14122 break;
14123
14124 case 933:
14125
14126
14127 #line 4968 "drizzled/sql_yacc.yy"
14128 {
14129 (yyval.item)= new drizzled::item::False();
14130 }
14131 break;
14132
14133 case 934:
14134
14135
14136 #line 4972 "drizzled/sql_yacc.yy"
14137 {
14138 (yyval.item)= new drizzled::item::True();
14139 }
14140 break;
14141
14142 case 935:
14143
14144
14145 #line 4978 "drizzled/sql_yacc.yy"
14146 { (yyval.item) = (yyvsp[(1) - (1)].item); }
14147 break;
14148
14149 case 936:
14150
14151
14152 #line 4980 "drizzled/sql_yacc.yy"
14153 {
14154 (yyval.item) = new Item_null();
14155 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14156 }
14157 break;
14158
14159 case 937:
14160
14161
14162 #line 4984 "drizzled/sql_yacc.yy"
14163 { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14164 break;
14165
14166 case 938:
14167
14168
14169 #line 4985 "drizzled/sql_yacc.yy"
14170 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14171 break;
14172
14173 case 939:
14174
14175
14176 #line 4986 "drizzled/sql_yacc.yy"
14177 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14178 break;
14179
14180 case 940:
14181
14182
14183 #line 4991 "drizzled/sql_yacc.yy"
14184 {
14185 int error;
14186 (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).str, (int64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error), (yyvsp[(1) - (1)].lex_str).length);
14187 }
14188 break;
14189
14190 case 941:
14191
14192
14193 #line 4996 "drizzled/sql_yacc.yy"
14194 {
14195 int error;
14196 (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).str, (int64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error), (yyvsp[(1) - (1)].lex_str).length);
14197 }
14198 break;
14199
14200 case 942:
14201
14202
14203 #line 5001 "drizzled/sql_yacc.yy"
14204 { (yyval.item_num) = new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
14205 break;
14206
14207 case 943:
14208
14209
14210 #line 5003 "drizzled/sql_yacc.yy"
14211 {
14212 (yyval.item_num)= new Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, YYSession->charset());
14213 if (YYSession->is_error())
14214 {
14215 DRIZZLE_YYABORT;
14216 }
14217 }
14218 break;
14219
14220 case 944:
14221
14222
14223 #line 5011 "drizzled/sql_yacc.yy"
14224 {
14225 (yyval.item_num) = new Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
14226 if (YYSession->is_error())
14227 {
14228 DRIZZLE_YYABORT;
14229 }
14230 }
14231 break;
14232
14233 case 945:
14234
14235
14236 #line 5025 "drizzled/sql_yacc.yy"
14237 { (yyval.item)=(yyvsp[(1) - (1)].item); }
14238 break;
14239
14240 case 946:
14241
14242
14243 #line 5026 "drizzled/sql_yacc.yy"
14244 { (yyval.item)=(yyvsp[(1) - (1)].item); }
14245 break;
14246
14247 case 947:
14248
14249
14250 #line 5031 "drizzled/sql_yacc.yy"
14251 {
14252 (yyval.item)= parser::buildTableWild(&Lex, NULL_LEX_STRING, (yyvsp[(1) - (3)].lex_str));
14253 }
14254 break;
14255
14256 case 948:
14257
14258
14259 #line 5035 "drizzled/sql_yacc.yy"
14260 {
14261 (yyval.item)= parser::buildTableWild(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str));
14262 }
14263 break;
14264
14265 case 949:
14266
14267
14268 #line 5041 "drizzled/sql_yacc.yy"
14269 { (yyval.item)=(yyvsp[(1) - (1)].item); }
14270 break;
14271
14272 case 950:
14273
14274
14275 #line 5046 "drizzled/sql_yacc.yy"
14276 {
14277 (yyval.item)= parser::buildIdent(&Lex, NULL_LEX_STRING, NULL_LEX_STRING, (yyvsp[(1) - (1)].lex_str));
14278 }
14279 break;
14280
14281 case 951:
14282
14283
14284 #line 5049 "drizzled/sql_yacc.yy"
14285 { (yyval.item)= (yyvsp[(1) - (1)].item); }
14286 break;
14287
14288 case 952:
14289
14290
14291 #line 5054 "drizzled/sql_yacc.yy"
14292 {
14293 (yyval.item)= parser::buildIdent(&Lex, NULL_LEX_STRING, (yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str));
14294 }
14295 break;
14296
14297 case 953:
14298
14299
14300 #line 5058 "drizzled/sql_yacc.yy"
14301 {
14302 (yyval.item)= parser::buildIdent(&Lex, NULL_LEX_STRING, (yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str));
14303 }
14304 break;
14305
14306 case 954:
14307
14308
14309 #line 5062 "drizzled/sql_yacc.yy"
14310 {
14311 (yyval.item)= parser::buildIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), (yyvsp[(5) - (5)].lex_str));
14312 }
14313 break;
14314
14315 case 955:
14316
14317
14318 #line 5069 "drizzled/sql_yacc.yy"
14319 {
14320 (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);
14321 }
14322 break;
14323
14324 case 956:
14325
14326
14327 #line 5073 "drizzled/sql_yacc.yy"
14328 {
14329 if (not parser::checkFieldIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str)))
14330 DRIZZLE_YYABORT;
14331
14332 (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
14333 }
14334 break;
14335
14336 case 957:
14337
14338
14339 #line 5080 "drizzled/sql_yacc.yy"
14340 {
14341 if (not parser::checkFieldIdent(&Lex, NULL_LEX_STRING, (yyvsp[(1) - (3)].lex_str)))
14342 DRIZZLE_YYABORT;
14343
14344 (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
14345 }
14346 break;
14347
14348 case 958:
14349
14350
14351 #line 5087 "drizzled/sql_yacc.yy"
14352 {
14353 (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);
14354 }
14355 break;
14356
14357 case 959:
14358
14359
14360 #line 5094 "drizzled/sql_yacc.yy"
14361 {
14362 (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
14363 }
14364 break;
14365
14366 case 960:
14367
14368
14369 #line 5098 "drizzled/sql_yacc.yy"
14370 {
14371 (yyval.table)=new Table_ident((yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str));
14372 }
14373 break;
14374
14375 case 961:
14376
14377
14378 #line 5102 "drizzled/sql_yacc.yy"
14379 {
14380 (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
14381 }
14382 break;
14383
14384 case 964:
14385
14386
14387 #line 5117 "drizzled/sql_yacc.yy"
14388 {
14389 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14390 }
14391 break;
14392
14393 case 965:
14394
14395
14396 #line 5121 "drizzled/sql_yacc.yy"
14397 {
14398 const CHARSET_INFO * const cs= system_charset_info;
14399 int dummy_error;
14400 uint32_t wlen= cs->cset->well_formed_len(cs, (yyvsp[(1) - (1)].lex_str).str,
14401 (yyvsp[(1) - (1)].lex_str).str+(yyvsp[(1) - (1)].lex_str).length,
14402 (yyvsp[(1) - (1)].lex_str).length, &dummy_error);
14403 if (wlen < (yyvsp[(1) - (1)].lex_str).length)
14404 {
14405 my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
14406 cs->csname, (yyvsp[(1) - (1)].lex_str).str + wlen);
14407 DRIZZLE_YYABORT;
14408 }
14409 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14410 }
14411 break;
14412
14413 case 966:
14414
14415
14416 #line 5139 "drizzled/sql_yacc.yy"
14417 {
14418 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14419 }
14420 break;
14421
14422 case 967:
14423
14424
14425 #line 5146 "drizzled/sql_yacc.yy"
14426 {
14427 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14428 }
14429 break;
14430
14431 case 968:
14432
14433
14434 #line 5153 "drizzled/sql_yacc.yy"
14435 {
14436 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14437 }
14438 break;
14439
14440 case 969:
14441
14442
14443 #line 5159 "drizzled/sql_yacc.yy"
14444 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
14445 break;
14446
14447 case 970:
14448
14449
14450 #line 5161 "drizzled/sql_yacc.yy"
14451 {
14452 (yyval.lex_str).str= YYSession->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
14453 (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
14454 }
14455 break;
14456
14457 case 971:
14458
14459
14460 #line 5168 "drizzled/sql_yacc.yy"
14461 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14462 break;
14463
14464 case 972:
14465
14466
14467 #line 5169 "drizzled/sql_yacc.yy"
14468 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14469 break;
14470
14471 case 973:
14472
14473
14474 #line 5173 "drizzled/sql_yacc.yy"
14475 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14476 break;
14477
14478 case 974:
14479
14480
14481 #line 5174 "drizzled/sql_yacc.yy"
14482 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14483 break;
14484
14485 case 975:
14486
14487
14488 #line 5178 "drizzled/sql_yacc.yy"
14489 {}
14490 break;
14491
14492 case 976:
14493
14494
14495 #line 5179 "drizzled/sql_yacc.yy"
14496 {}
14497 break;
14498
14499 case 977:
14500
14501
14502 #line 5180 "drizzled/sql_yacc.yy"
14503 {}
14504 break;
14505
14506 case 978:
14507
14508
14509 #line 5185 "drizzled/sql_yacc.yy"
14510 {}
14511 break;
14512
14513 case 979:
14514
14515
14516 #line 5186 "drizzled/sql_yacc.yy"
14517 {}
14518 break;
14519
14520 case 980:
14521
14522
14523 #line 5187 "drizzled/sql_yacc.yy"
14524 {}
14525 break;
14526
14527 case 981:
14528
14529
14530 #line 5188 "drizzled/sql_yacc.yy"
14531 {}
14532 break;
14533
14534 case 982:
14535
14536
14537 #line 5189 "drizzled/sql_yacc.yy"
14538 {}
14539 break;
14540
14541 case 983:
14542
14543
14544 #line 5190 "drizzled/sql_yacc.yy"
14545 {}
14546 break;
14547
14548 case 984:
14549
14550
14551 #line 5191 "drizzled/sql_yacc.yy"
14552 {}
14553 break;
14554
14555 case 985:
14556
14557
14558 #line 5192 "drizzled/sql_yacc.yy"
14559 {}
14560 break;
14561
14562 case 986:
14563
14564
14565 #line 5193 "drizzled/sql_yacc.yy"
14566 {}
14567 break;
14568
14569 case 987:
14570
14571
14572 #line 5194 "drizzled/sql_yacc.yy"
14573 {}
14574 break;
14575
14576 case 988:
14577
14578
14579 #line 5195 "drizzled/sql_yacc.yy"
14580 {}
14581 break;
14582
14583 case 989:
14584
14585
14586 #line 5196 "drizzled/sql_yacc.yy"
14587 {}
14588 break;
14589
14590 case 990:
14591
14592
14593 #line 5197 "drizzled/sql_yacc.yy"
14594 {}
14595 break;
14596
14597 case 991:
14598
14599
14600 #line 5198 "drizzled/sql_yacc.yy"
14601 {}
14602 break;
14603
14604 case 992:
14605
14606
14607 #line 5199 "drizzled/sql_yacc.yy"
14608 {}
14609 break;
14610
14611 case 993:
14612
14613
14614 #line 5200 "drizzled/sql_yacc.yy"
14615 {}
14616 break;
14617
14618 case 994:
14619
14620
14621 #line 5201 "drizzled/sql_yacc.yy"
14622 {}
14623 break;
14624
14625 case 995:
14626
14627
14628 #line 5202 "drizzled/sql_yacc.yy"
14629 {}
14630 break;
14631
14632 case 996:
14633
14634
14635 #line 5203 "drizzled/sql_yacc.yy"
14636 {}
14637 break;
14638
14639 case 997:
14640
14641
14642 #line 5204 "drizzled/sql_yacc.yy"
14643 {}
14644 break;
14645
14646 case 998:
14647
14648
14649 #line 5205 "drizzled/sql_yacc.yy"
14650 {}
14651 break;
14652
14653 case 999:
14654
14655
14656 #line 5215 "drizzled/sql_yacc.yy"
14657 {}
14658 break;
14659
14660 case 1000:
14661
14662
14663 #line 5216 "drizzled/sql_yacc.yy"
14664 {}
14665 break;
14666
14667 case 1001:
14668
14669
14670 #line 5217 "drizzled/sql_yacc.yy"
14671 {}
14672 break;
14673
14674 case 1002:
14675
14676
14677 #line 5218 "drizzled/sql_yacc.yy"
14678 {}
14679 break;
14680
14681 case 1003:
14682
14683
14684 #line 5219 "drizzled/sql_yacc.yy"
14685 {}
14686 break;
14687
14688 case 1004:
14689
14690
14691 #line 5220 "drizzled/sql_yacc.yy"
14692 {}
14693 break;
14694
14695 case 1005:
14696
14697
14698 #line 5221 "drizzled/sql_yacc.yy"
14699 {}
14700 break;
14701
14702 case 1006:
14703
14704
14705 #line 5222 "drizzled/sql_yacc.yy"
14706 {}
14707 break;
14708
14709 case 1007:
14710
14711
14712 #line 5223 "drizzled/sql_yacc.yy"
14713 {}
14714 break;
14715
14716 case 1008:
14717
14718
14719 #line 5224 "drizzled/sql_yacc.yy"
14720 {}
14721 break;
14722
14723 case 1009:
14724
14725
14726 #line 5225 "drizzled/sql_yacc.yy"
14727 {}
14728 break;
14729
14730 case 1010:
14731
14732
14733 #line 5226 "drizzled/sql_yacc.yy"
14734 {}
14735 break;
14736
14737 case 1011:
14738
14739
14740 #line 5227 "drizzled/sql_yacc.yy"
14741 {}
14742 break;
14743
14744 case 1012:
14745
14746
14747 #line 5228 "drizzled/sql_yacc.yy"
14748 {}
14749 break;
14750
14751 case 1013:
14752
14753
14754 #line 5229 "drizzled/sql_yacc.yy"
14755 {}
14756 break;
14757
14758 case 1014:
14759
14760
14761 #line 5230 "drizzled/sql_yacc.yy"
14762 {}
14763 break;
14764
14765 case 1015:
14766
14767
14768 #line 5231 "drizzled/sql_yacc.yy"
14769 {}
14770 break;
14771
14772 case 1016:
14773
14774
14775 #line 5232 "drizzled/sql_yacc.yy"
14776 {}
14777 break;
14778
14779 case 1017:
14780
14781
14782 #line 5233 "drizzled/sql_yacc.yy"
14783 {}
14784 break;
14785
14786 case 1018:
14787
14788
14789 #line 5234 "drizzled/sql_yacc.yy"
14790 {}
14791 break;
14792
14793 case 1019:
14794
14795
14796 #line 5235 "drizzled/sql_yacc.yy"
14797 {}
14798 break;
14799
14800 case 1020:
14801
14802
14803 #line 5236 "drizzled/sql_yacc.yy"
14804 {}
14805 break;
14806
14807 case 1021:
14808
14809
14810 #line 5237 "drizzled/sql_yacc.yy"
14811 {}
14812 break;
14813
14814 case 1022:
14815
14816
14817 #line 5238 "drizzled/sql_yacc.yy"
14818 {}
14819 break;
14820
14821 case 1023:
14822
14823
14824 #line 5239 "drizzled/sql_yacc.yy"
14825 {}
14826 break;
14827
14828 case 1024:
14829
14830
14831 #line 5240 "drizzled/sql_yacc.yy"
14832 {}
14833 break;
14834
14835 case 1025:
14836
14837
14838 #line 5241 "drizzled/sql_yacc.yy"
14839 {}
14840 break;
14841
14842 case 1026:
14843
14844
14845 #line 5242 "drizzled/sql_yacc.yy"
14846 {}
14847 break;
14848
14849 case 1027:
14850
14851
14852 #line 5243 "drizzled/sql_yacc.yy"
14853 {}
14854 break;
14855
14856 case 1028:
14857
14858
14859 #line 5244 "drizzled/sql_yacc.yy"
14860 {}
14861 break;
14862
14863 case 1029:
14864
14865
14866 #line 5245 "drizzled/sql_yacc.yy"
14867 {}
14868 break;
14869
14870 case 1030:
14871
14872
14873 #line 5246 "drizzled/sql_yacc.yy"
14874 {}
14875 break;
14876
14877 case 1031:
14878
14879
14880 #line 5247 "drizzled/sql_yacc.yy"
14881 {}
14882 break;
14883
14884 case 1032:
14885
14886
14887 #line 5248 "drizzled/sql_yacc.yy"
14888 {}
14889 break;
14890
14891 case 1033:
14892
14893
14894 #line 5249 "drizzled/sql_yacc.yy"
14895 {}
14896 break;
14897
14898 case 1034:
14899
14900
14901 #line 5250 "drizzled/sql_yacc.yy"
14902 {}
14903 break;
14904
14905 case 1035:
14906
14907
14908 #line 5251 "drizzled/sql_yacc.yy"
14909 {}
14910 break;
14911
14912 case 1036:
14913
14914
14915 #line 5252 "drizzled/sql_yacc.yy"
14916 {}
14917 break;
14918
14919 case 1037:
14920
14921
14922 #line 5253 "drizzled/sql_yacc.yy"
14923 {}
14924 break;
14925
14926 case 1038:
14927
14928
14929 #line 5254 "drizzled/sql_yacc.yy"
14930 {}
14931 break;
14932
14933 case 1039:
14934
14935
14936 #line 5255 "drizzled/sql_yacc.yy"
14937 {}
14938 break;
14939
14940 case 1040:
14941
14942
14943 #line 5256 "drizzled/sql_yacc.yy"
14944 {}
14945 break;
14946
14947 case 1041:
14948
14949
14950 #line 5257 "drizzled/sql_yacc.yy"
14951 {}
14952 break;
14953
14954 case 1042:
14955
14956
14957 #line 5258 "drizzled/sql_yacc.yy"
14958 {}
14959 break;
14960
14961 case 1043:
14962
14963
14964 #line 5259 "drizzled/sql_yacc.yy"
14965 {}
14966 break;
14967
14968 case 1044:
14969
14970
14971 #line 5260 "drizzled/sql_yacc.yy"
14972 {}
14973 break;
14974
14975 case 1045:
14976
14977
14978 #line 5261 "drizzled/sql_yacc.yy"
14979 {}
14980 break;
14981
14982 case 1046:
14983
14984
14985 #line 5262 "drizzled/sql_yacc.yy"
14986 {}
14987 break;
14988
14989 case 1047:
14990
14991
14992 #line 5263 "drizzled/sql_yacc.yy"
14993 {}
14994 break;
14995
14996 case 1048:
14997
14998
14999 #line 5264 "drizzled/sql_yacc.yy"
15000 {}
15001 break;
15002
15003 case 1049:
15004
15005
15006 #line 5265 "drizzled/sql_yacc.yy"
15007 {}
15008 break;
15009
15010 case 1050:
15011
15012
15013 #line 5266 "drizzled/sql_yacc.yy"
15014 {}
15015 break;
15016
15017 case 1051:
15018
15019
15020 #line 5267 "drizzled/sql_yacc.yy"
15021 {}
15022 break;
15023
15024 case 1052:
15025
15026
15027 #line 5268 "drizzled/sql_yacc.yy"
15028 {}
15029 break;
15030
15031 case 1053:
15032
15033
15034 #line 5269 "drizzled/sql_yacc.yy"
15035 {}
15036 break;
15037
15038 case 1054:
15039
15040
15041 #line 5270 "drizzled/sql_yacc.yy"
15042 {}
15043 break;
15044
15045 case 1055:
15046
15047
15048 #line 5271 "drizzled/sql_yacc.yy"
15049 {}
15050 break;
15051
15052 case 1056:
15053
15054
15055 #line 5272 "drizzled/sql_yacc.yy"
15056 {}
15057 break;
15058
15059 case 1057:
15060
15061
15062 #line 5273 "drizzled/sql_yacc.yy"
15063 {}
15064 break;
15065
15066 case 1058:
15067
15068
15069 #line 5274 "drizzled/sql_yacc.yy"
15070 {}
15071 break;
15072
15073 case 1059:
15074
15075
15076 #line 5275 "drizzled/sql_yacc.yy"
15077 {}
15078 break;
15079
15080 case 1060:
15081
15082
15083 #line 5276 "drizzled/sql_yacc.yy"
15084 {}
15085 break;
15086
15087 case 1061:
15088
15089
15090 #line 5277 "drizzled/sql_yacc.yy"
15091 {}
15092 break;
15093
15094 case 1062:
15095
15096
15097 #line 5278 "drizzled/sql_yacc.yy"
15098 {}
15099 break;
15100
15101 case 1063:
15102
15103
15104 #line 5279 "drizzled/sql_yacc.yy"
15105 {}
15106 break;
15107
15108 case 1064:
15109
15110
15111 #line 5280 "drizzled/sql_yacc.yy"
15112 {}
15113 break;
15114
15115 case 1065:
15116
15117
15118 #line 5281 "drizzled/sql_yacc.yy"
15119 {}
15120 break;
15121
15122 case 1066:
15123
15124
15125 #line 5282 "drizzled/sql_yacc.yy"
15126 {}
15127 break;
15128
15129 case 1067:
15130
15131
15132 #line 5283 "drizzled/sql_yacc.yy"
15133 {}
15134 break;
15135
15136 case 1068:
15137
15138
15139 #line 5284 "drizzled/sql_yacc.yy"
15140 {}
15141 break;
15142
15143 case 1069:
15144
15145
15146 #line 5285 "drizzled/sql_yacc.yy"
15147 {}
15148 break;
15149
15150 case 1070:
15151
15152
15153 #line 5286 "drizzled/sql_yacc.yy"
15154 {}
15155 break;
15156
15157 case 1071:
15158
15159
15160 #line 5287 "drizzled/sql_yacc.yy"
15161 {}
15162 break;
15163
15164 case 1072:
15165
15166
15167 #line 5288 "drizzled/sql_yacc.yy"
15168 {}
15169 break;
15170
15171 case 1073:
15172
15173
15174 #line 5289 "drizzled/sql_yacc.yy"
15175 {}
15176 break;
15177
15178 case 1074:
15179
15180
15181 #line 5290 "drizzled/sql_yacc.yy"
15182 {}
15183 break;
15184
15185 case 1075:
15186
15187
15188 #line 5291 "drizzled/sql_yacc.yy"
15189 {}
15190 break;
15191
15192 case 1076:
15193
15194
15195 #line 5292 "drizzled/sql_yacc.yy"
15196 {}
15197 break;
15198
15199 case 1077:
15200
15201
15202 #line 5293 "drizzled/sql_yacc.yy"
15203 {}
15204 break;
15205
15206 case 1078:
15207
15208
15209 #line 5294 "drizzled/sql_yacc.yy"
15210 {}
15211 break;
15212
15213 case 1079:
15214
15215
15216 #line 5295 "drizzled/sql_yacc.yy"
15217 {}
15218 break;
15219
15220 case 1080:
15221
15222
15223 #line 5296 "drizzled/sql_yacc.yy"
15224 {}
15225 break;
15226
15227 case 1081:
15228
15229
15230 #line 5297 "drizzled/sql_yacc.yy"
15231 {}
15232 break;
15233
15234 case 1082:
15235
15236
15237 #line 5298 "drizzled/sql_yacc.yy"
15238 {}
15239 break;
15240
15241 case 1083:
15242
15243
15244 #line 5299 "drizzled/sql_yacc.yy"
15245 {}
15246 break;
15247
15248 case 1084:
15249
15250
15251 #line 5300 "drizzled/sql_yacc.yy"
15252 {}
15253 break;
15254
15255 case 1085:
15256
15257
15258 #line 5301 "drizzled/sql_yacc.yy"
15259 {}
15260 break;
15261
15262 case 1086:
15263
15264
15265 #line 5302 "drizzled/sql_yacc.yy"
15266 {}
15267 break;
15268
15269 case 1087:
15270
15271
15272 #line 5303 "drizzled/sql_yacc.yy"
15273 {}
15274 break;
15275
15276 case 1088:
15277
15278
15279 #line 5304 "drizzled/sql_yacc.yy"
15280 {}
15281 break;
15282
15283 case 1089:
15284
15285
15286 #line 5305 "drizzled/sql_yacc.yy"
15287 {}
15288 break;
15289
15290 case 1090:
15291
15292
15293 #line 5306 "drizzled/sql_yacc.yy"
15294 {}
15295 break;
15296
15297 case 1091:
15298
15299
15300 #line 5307 "drizzled/sql_yacc.yy"
15301 {}
15302 break;
15303
15304 case 1092:
15305
15306
15307 #line 5308 "drizzled/sql_yacc.yy"
15308 {}
15309 break;
15310
15311 case 1093:
15312
15313
15314 #line 5309 "drizzled/sql_yacc.yy"
15315 {}
15316 break;
15317
15318 case 1094:
15319
15320
15321 #line 5310 "drizzled/sql_yacc.yy"
15322 {}
15323 break;
15324
15325 case 1095:
15326
15327
15328 #line 5311 "drizzled/sql_yacc.yy"
15329 {}
15330 break;
15331
15332 case 1096:
15333
15334
15335 #line 5312 "drizzled/sql_yacc.yy"
15336 {}
15337 break;
15338
15339 case 1097:
15340
15341
15342 #line 5313 "drizzled/sql_yacc.yy"
15343 {}
15344 break;
15345
15346 case 1098:
15347
15348
15349 #line 5314 "drizzled/sql_yacc.yy"
15350 {}
15351 break;
15352
15353 case 1099:
15354
15355
15356 #line 5315 "drizzled/sql_yacc.yy"
15357 {}
15358 break;
15359
15360 case 1100:
15361
15362
15363 #line 5316 "drizzled/sql_yacc.yy"
15364 {}
15365 break;
15366
15367 case 1101:
15368
15369
15370 #line 5317 "drizzled/sql_yacc.yy"
15371 {}
15372 break;
15373
15374 case 1102:
15375
15376
15377 #line 5318 "drizzled/sql_yacc.yy"
15378 {}
15379 break;
15380
15381 case 1103:
15382
15383
15384 #line 5319 "drizzled/sql_yacc.yy"
15385 {}
15386 break;
15387
15388 case 1104:
15389
15390
15391 #line 5320 "drizzled/sql_yacc.yy"
15392 {}
15393 break;
15394
15395 case 1105:
15396
15397
15398 #line 5321 "drizzled/sql_yacc.yy"
15399 {}
15400 break;
15401
15402 case 1106:
15403
15404
15405 #line 5322 "drizzled/sql_yacc.yy"
15406 {}
15407 break;
15408
15409 case 1107:
15410
15411
15412 #line 5323 "drizzled/sql_yacc.yy"
15413 {}
15414 break;
15415
15416 case 1108:
15417
15418
15419 #line 5324 "drizzled/sql_yacc.yy"
15420 {}
15421 break;
15422
15423 case 1109:
15424
15425
15426 #line 5325 "drizzled/sql_yacc.yy"
15427 {}
15428 break;
15429
15430 case 1110:
15431
15432
15433 #line 5326 "drizzled/sql_yacc.yy"
15434 {}
15435 break;
15436
15437 case 1111:
15438
15439
15440 #line 5327 "drizzled/sql_yacc.yy"
15441 {}
15442 break;
15443
15444 case 1112:
15445
15446
15447 #line 5328 "drizzled/sql_yacc.yy"
15448 {}
15449 break;
15450
15451 case 1113:
15452
15453
15454 #line 5329 "drizzled/sql_yacc.yy"
15455 {}
15456 break;
15457
15458 case 1114:
15459
15460
15461 #line 5330 "drizzled/sql_yacc.yy"
15462 {}
15463 break;
15464
15465 case 1115:
15466
15467
15468 #line 5331 "drizzled/sql_yacc.yy"
15469 {}
15470 break;
15471
15472 case 1116:
15473
15474
15475 #line 5332 "drizzled/sql_yacc.yy"
15476 {}
15477 break;
15478
15479 case 1117:
15480
15481
15482 #line 5333 "drizzled/sql_yacc.yy"
15483 {}
15484 break;
15485
15486 case 1118:
15487
15488
15489 #line 5334 "drizzled/sql_yacc.yy"
15490 {}
15491 break;
15492
15493 case 1119:
15494
15495
15496 #line 5335 "drizzled/sql_yacc.yy"
15497 {}
15498 break;
15499
15500 case 1120:
15501
15502
15503 #line 5336 "drizzled/sql_yacc.yy"
15504 {}
15505 break;
15506
15507 case 1121:
15508
15509
15510 #line 5337 "drizzled/sql_yacc.yy"
15511 {}
15512 break;
15513
15514 case 1122:
15515
15516
15517 #line 5338 "drizzled/sql_yacc.yy"
15518 {}
15519 break;
15520
15521 case 1123:
15522
15523
15524 #line 5339 "drizzled/sql_yacc.yy"
15525 {}
15526 break;
15527
15528 case 1124:
15529
15530
15531 #line 5340 "drizzled/sql_yacc.yy"
15532 {}
15533 break;
15534
15535 case 1125:
15536
15537
15538 #line 5347 "drizzled/sql_yacc.yy"
15539 {
15540 Lex.statement= new statement::SetOption(YYSession);
15541 }
15542 break;
15543
15544 case 1126:
15545
15546
15547 #line 5351 "drizzled/sql_yacc.yy"
15548 {}
15549 break;
15550
15551 case 1127:
15552
15553
15554 #line 5355 "drizzled/sql_yacc.yy"
15555 {}
15556 break;
15557
15558 case 1128:
15559
15560
15561 #line 5356 "drizzled/sql_yacc.yy"
15562 {}
15563 break;
15564
15565 case 1131:
15566
15567
15568 #line 5365 "drizzled/sql_yacc.yy"
15569 { }
15570 break;
15571
15572 case 1132:
15573
15574
15575 #line 5367 "drizzled/sql_yacc.yy"
15576 { }
15577 break;
15578
15579 case 1133:
15580
15581
15582 #line 5371 "drizzled/sql_yacc.yy"
15583 {}
15584 break;
15585
15586 case 1134:
15587
15588
15589 #line 5372 "drizzled/sql_yacc.yy"
15590 { (yyval.var_type)=OPT_GLOBAL; }
15591 break;
15592
15593 case 1135:
15594
15595
15596 #line 5373 "drizzled/sql_yacc.yy"
15597 { (yyval.var_type)=OPT_SESSION; }
15598 break;
15599
15600 case 1136:
15601
15602
15603 #line 5374 "drizzled/sql_yacc.yy"
15604 { (yyval.var_type)=OPT_SESSION; }
15605 break;
15606
15607 case 1137:
15608
15609
15610 #line 5378 "drizzled/sql_yacc.yy"
15611 { (yyval.num)= OPT_DEFAULT; }
15612 break;
15613
15614 case 1138:
15615
15616
15617 #line 5379 "drizzled/sql_yacc.yy"
15618 { ((statement::SetOption *)Lex.statement)->one_shot_set= true; (yyval.num)= OPT_SESSION; }
15619 break;
15620
15621 case 1139:
15622
15623
15624 #line 5383 "drizzled/sql_yacc.yy"
15625 { (yyval.var_type)=OPT_SESSION; }
15626 break;
15627
15628 case 1140:
15629
15630
15631 #line 5384 "drizzled/sql_yacc.yy"
15632 { (yyval.var_type)=OPT_GLOBAL; }
15633 break;
15634
15635 case 1141:
15636
15637
15638 #line 5385 "drizzled/sql_yacc.yy"
15639 { (yyval.var_type)=OPT_SESSION; }
15640 break;
15641
15642 case 1142:
15643
15644
15645 #line 5386 "drizzled/sql_yacc.yy"
15646 { (yyval.var_type)=OPT_SESSION; }
15647 break;
15648
15649 case 1143:
15650
15651
15652 #line 5390 "drizzled/sql_yacc.yy"
15653 { (yyval.var_type)=OPT_DEFAULT; }
15654 break;
15655
15656 case 1144:
15657
15658
15659 #line 5391 "drizzled/sql_yacc.yy"
15660 { (yyval.var_type)=OPT_GLOBAL; }
15661 break;
15662
15663 case 1145:
15664
15665
15666 #line 5392 "drizzled/sql_yacc.yy"
15667 { (yyval.var_type)=OPT_SESSION; }
15668 break;
15669
15670 case 1146:
15671
15672
15673 #line 5393 "drizzled/sql_yacc.yy"
15674 { (yyval.var_type)=OPT_SESSION; }
15675 break;
15676
15677 case 1149:
15678
15679
15680 #line 5403 "drizzled/sql_yacc.yy"
15681 {
15682 if ((yyvsp[(2) - (4)].variable).var)
15683 {
15684 if ((yyvsp[(1) - (4)].var_type))
15685 {
15686 Lex.option_type= (yyvsp[(1) - (4)].var_type);
15687 }
15688 Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type, (yyvsp[(2) - (4)].variable).var, &(yyvsp[(2) - (4)].variable).base_name, (yyvsp[(4) - (4)].item))));
15689 }
15690 }
15691 break;
15692
15693 case 1150:
15694
15695
15696 #line 5414 "drizzled/sql_yacc.yy"
15697 {
15698 Lex.option_type= (yyvsp[(1) - (5)].var_type);
15699 Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type,
15700 find_sys_var("tx_isolation"),
15701 &null_lex_str,
15702 new Item_int((int32_t)
15703 (yyvsp[(5) - (5)].tx_isolation)))));
15704 }
15705 break;
15706
15707 case 1151:
15708
15709
15710 #line 5426 "drizzled/sql_yacc.yy"
15711 {
15712 Lex.var_list.push_back(SetVarPtr(new set_var_user(new Item_func_set_user_var((yyvsp[(2) - (4)].lex_str),(yyvsp[(4) - (4)].item)))));
15713 }
15714 break;
15715
15716 case 1152:
15717
15718
15719 #line 5430 "drizzled/sql_yacc.yy"
15720 {
15721 Lex.var_list.push_back(SetVarPtr(new set_var((yyvsp[(3) - (6)].var_type), (yyvsp[(4) - (6)].variable).var, &(yyvsp[(4) - (6)].variable).base_name, (yyvsp[(6) - (6)].item))));
15722 }
15723 break;
15724
15725 case 1153:
15726
15727
15728 #line 5436 "drizzled/sql_yacc.yy"
15729 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15730 break;
15731
15732 case 1154:
15733
15734
15735 #line 5437 "drizzled/sql_yacc.yy"
15736 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15737 break;
15738
15739 case 1155:
15740
15741
15742 #line 5438 "drizzled/sql_yacc.yy"
15743 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15744 break;
15745
15746 case 1156:
15747
15748
15749 #line 5443 "drizzled/sql_yacc.yy"
15750 {
15751 (yyval.lex_str).str= YYSession->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
15752 (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
15753 }
15754 break;
15755
15756 case 1157:
15757
15758
15759 #line 5447 "drizzled/sql_yacc.yy"
15760 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
15761 break;
15762
15763 case 1158:
15764
15765
15766 #line 5452 "drizzled/sql_yacc.yy"
15767 {
15768
15769 {
15770
15771 sys_var *tmp= find_sys_var(std::string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length));
15772 if (!tmp)
15773 DRIZZLE_YYABORT;
15774 (yyval.variable).var= tmp;
15775 (yyval.variable).base_name= null_lex_str;
15776 }
15777 }
15778 break;
15779
15780 case 1159:
15781
15782
15783 #line 5466 "drizzled/sql_yacc.yy"
15784 { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
15785 break;
15786
15787 case 1160:
15788
15789
15790 #line 5467 "drizzled/sql_yacc.yy"
15791 { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
15792 break;
15793
15794 case 1161:
15795
15796
15797 #line 5468 "drizzled/sql_yacc.yy"
15798 { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
15799 break;
15800
15801 case 1162:
15802
15803
15804 #line 5469 "drizzled/sql_yacc.yy"
15805 { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
15806 break;
15807
15808 case 1163:
15809
15810
15811 #line 5473 "drizzled/sql_yacc.yy"
15812 { (yyval.item)=(yyvsp[(1) - (1)].item); }
15813 break;
15814
15815 case 1164:
15816
15817
15818 #line 5474 "drizzled/sql_yacc.yy"
15819 { (yyval.item)=0; }
15820 break;
15821
15822 case 1165:
15823
15824
15825 #line 5475 "drizzled/sql_yacc.yy"
15826 { (yyval.item)=new Item_string("ON", 2, system_charset_info); }
15827 break;
15828
15829 case 1166:
15830
15831
15832 #line 5476 "drizzled/sql_yacc.yy"
15833 { (yyval.item)=new Item_string("ALL", 3, system_charset_info); }
15834 break;
15835
15836 case 1167:
15837
15838
15839 #line 5477 "drizzled/sql_yacc.yy"
15840 { (yyval.item)=new Item_string("binary", 6, system_charset_info); }
15841 break;
15842
15843 case 1170:
15844
15845
15846 #line 5487 "drizzled/sql_yacc.yy"
15847 {
15848 Lex.statement= new statement::UnlockTables(YYSession);
15849 }
15850 break;
15851
15852 case 1171:
15853
15854
15855 #line 5491 "drizzled/sql_yacc.yy"
15856 {}
15857 break;
15858
15859 case 1172:
15860
15861
15862 #line 5496 "drizzled/sql_yacc.yy"
15863 {
15864 Lex.statement= new statement::StartTransaction(YYSession);
15865 }
15866 break;
15867
15868 case 1173:
15869
15870
15871 #line 5499 "drizzled/sql_yacc.yy"
15872 {}
15873 break;
15874
15875 case 1174:
15876
15877
15878 #line 5503 "drizzled/sql_yacc.yy"
15879 {}
15880 break;
15881
15882 case 1175:
15883
15884
15885 #line 5504 "drizzled/sql_yacc.yy"
15886 {}
15887 break;
15888
15889 case 1176:
15890
15891
15892 #line 5509 "drizzled/sql_yacc.yy"
15893 { (yyval.num)= (YYSession->variables.completion_type == 1); }
15894 break;
15895
15896 case 1177:
15897
15898
15899 #line 5510 "drizzled/sql_yacc.yy"
15900 { (yyval.num)=0; }
15901 break;
15902
15903 case 1178:
15904
15905
15906 #line 5511 "drizzled/sql_yacc.yy"
15907 { (yyval.num)=1; }
15908 break;
15909
15910 case 1179:
15911
15912
15913 #line 5516 "drizzled/sql_yacc.yy"
15914 { (yyval.num)= (YYSession->variables.completion_type == 2); }
15915 break;
15916
15917 case 1180:
15918
15919
15920 #line 5517 "drizzled/sql_yacc.yy"
15921 { (yyval.num)=1; }
15922 break;
15923
15924 case 1181:
15925
15926
15927 #line 5518 "drizzled/sql_yacc.yy"
15928 { (yyval.num)=0; }
15929 break;
15930
15931 case 1182:
15932
15933
15934 #line 5522 "drizzled/sql_yacc.yy"
15935 {}
15936 break;
15937
15938 case 1183:
15939
15940
15941 #line 5523 "drizzled/sql_yacc.yy"
15942 {}
15943 break;
15944
15945 case 1184:
15946
15947
15948 #line 5528 "drizzled/sql_yacc.yy"
15949 {
15950 Lex.statement= new statement::Commit(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
15951 }
15952 break;
15953
15954 case 1185:
15955
15956
15957 #line 5535 "drizzled/sql_yacc.yy"
15958 {
15959 Lex.statement= new statement::Rollback(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
15960 }
15961 break;
15962
15963 case 1186:
15964
15965
15966 #line 5539 "drizzled/sql_yacc.yy"
15967 {
15968 Lex.statement= new statement::RollbackToSavepoint(YYSession, (yyvsp[(5) - (5)].lex_str));
15969 }
15970 break;
15971
15972 case 1187:
15973
15974
15975 #line 5546 "drizzled/sql_yacc.yy"
15976 {
15977 Lex.statement= new statement::Savepoint(YYSession, (yyvsp[(2) - (2)].lex_str));
15978 }
15979 break;
15980
15981 case 1188:
15982
15983
15984 #line 5553 "drizzled/sql_yacc.yy"
15985 {
15986 Lex.statement= new statement::ReleaseSavepoint(YYSession, (yyvsp[(3) - (3)].lex_str));
15987 }
15988 break;
15989
15990 case 1190:
15991
15992
15993 #line 5568 "drizzled/sql_yacc.yy"
15994 {}
15995 break;
15996
15997 case 1192:
15998
15999
16000 #line 5574 "drizzled/sql_yacc.yy"
16001 {
16002 if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(2) - (2)].num)))
16003 DRIZZLE_YYABORT;
16004 }
16005 break;
16006
16007 case 1193:
16008
16009
16010 #line 5579 "drizzled/sql_yacc.yy"
16011 {
16012
16013
16014
16015
16016 Lex.pop_context();
16017 }
16018 break;
16019
16020 case 1194:
16021
16022
16023 #line 5589 "drizzled/sql_yacc.yy"
16024 { (yyval.num)= 0; }
16025 break;
16026
16027 case 1195:
16028
16029
16030 #line 5590 "drizzled/sql_yacc.yy"
16031 { (yyval.num)= 1; }
16032 break;
16033
16034 case 1196:
16035
16036
16037 #line 5591 "drizzled/sql_yacc.yy"
16038 { (yyval.num)= 1; }
16039 break;
16040
16041 case 1197:
16042
16043
16044 #line 5595 "drizzled/sql_yacc.yy"
16045 {
16046 assert(Lex.current_select->linkage != GLOBAL_OPTIONS_TYPE);
16047 Select_Lex *sel= Lex.current_select;
16048 Select_Lex_Unit *unit= sel->master_unit();
16049 Select_Lex *fake= unit->fake_select_lex;
16050 if (fake)
16051 {
16052 unit->global_parameters= fake;
16053 fake->no_table_names_allowed= 1;
16054 Lex.current_select= fake;
16055 }
16056 YYSession->setWhere("global ORDER clause");
16057 }
16058 break;
16059
16060 case 1198:
16061
16062
16063 #line 5609 "drizzled/sql_yacc.yy"
16064 {
16065 YYSession->lex().current_select->no_table_names_allowed= 0;
16066 YYSession->setWhere("");
16067 }
16068 break;
16069
16070 case 1201:
16071
16072
16073 #line 5621 "drizzled/sql_yacc.yy"
16074 { (yyval.num)=1; }
16075 break;
16076
16077 case 1202:
16078
16079
16080 #line 5622 "drizzled/sql_yacc.yy"
16081 { (yyval.num)=1; }
16082 break;
16083
16084 case 1203:
16085
16086
16087 #line 5623 "drizzled/sql_yacc.yy"
16088 { (yyval.num)=0; }
16089 break;
16090
16091 case 1204:
16092
16093
16094 #line 5628 "drizzled/sql_yacc.yy"
16095 {
16096 (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16097 }
16098 break;
16099
16100 case 1205:
16101
16102
16103 #line 5632 "drizzled/sql_yacc.yy"
16104 {
16105 (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16106 }
16107 break;
16108
16109 case 1207:
16110
16111
16112 #line 5641 "drizzled/sql_yacc.yy"
16113 {
16114 if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
16115 DRIZZLE_YYABORT;
16116 }
16117 break;
16118
16119 case 1208:
16120
16121
16122 #line 5646 "drizzled/sql_yacc.yy"
16123 {
16124 Lex.pop_context();
16125 (yyval.select_lex)= (yyvsp[(1) - (5)].select_lex);
16126 }
16127 break;
16128
16129 case 1209:
16130
16131
16132 #line 5655 "drizzled/sql_yacc.yy"
16133 {
16134 (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
16135 }
16136 break;
16137
16138 case 1210:
16139
16140
16141 #line 5661 "drizzled/sql_yacc.yy"
16142 {
16143 if (not Lex.expr_allows_subselect)
16144 {
16145 parser::my_parse_error(YYSession->m_lip);
16146 DRIZZLE_YYABORT;
16147 }
16148
16149
16150
16151
16152
16153
16154
16155 if (new_select(&Lex, 1))
16156 DRIZZLE_YYABORT;
16157 }
16158 break;
16159
16160 case 1211:
16161
16162
16163 #line 5680 "drizzled/sql_yacc.yy"
16164 {
16165 Lex.pop_context();
16166 Select_Lex *child= Lex.current_select;
16167 Lex.current_select= Lex.current_select->return_after_parsing();
16168 Lex.nest_level--;
16169 Lex.current_select->n_child_sum_items += child->n_sum_items;
16170
16171
16172
16173
16174 Lex.current_select->select_n_where_fields+=
16175 child->select_n_where_fields;
16176 }
16177 break;
16178
16179
16180
16181
16182 #line 16183 "drizzled/sql_yacc.cc"
16183 default: break;
16184 }
16185 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
16186
16187 YYPOPSTACK (yylen);
16188 yylen = 0;
16189 YY_STACK_PRINT (yyss, yyssp);
16190
16191 *++yyvsp = yyval;
16192
16193
16194
16195
16196
16197 yyn = yyr1[yyn];
16198
16199 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
16200 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
16201 yystate = yytable[yystate];
16202 else
16203 yystate = yydefgoto[yyn - YYNTOKENS];
16204
16205 goto yynewstate;
16206
16207
16208
16209
16210
16211 yyerrlab:
16212
16213 if (!yyerrstatus)
16214 {
16215 ++yynerrs;
16216 #if ! YYERROR_VERBOSE
16217 yyerror (session, YY_("syntax error"));
16218 #else
16219 {
16220 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
16221 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
16222 {
16223 YYSIZE_T yyalloc = 2 * yysize;
16224 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
16225 yyalloc = YYSTACK_ALLOC_MAXIMUM;
16226 if (yymsg != yymsgbuf)
16227 YYSTACK_FREE (yymsg);
16228 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
16229 if (yymsg)
16230 yymsg_alloc = yyalloc;
16231 else
16232 {
16233 yymsg = yymsgbuf;
16234 yymsg_alloc = sizeof yymsgbuf;
16235 }
16236 }
16237
16238 if (0 < yysize && yysize <= yymsg_alloc)
16239 {
16240 (void) yysyntax_error (yymsg, yystate, yychar);
16241 yyerror (session, yymsg);
16242 }
16243 else
16244 {
16245 yyerror (session, YY_("syntax error"));
16246 if (yysize != 0)
16247 goto yyexhaustedlab;
16248 }
16249 }
16250 #endif
16251 }
16252
16253
16254
16255 if (yyerrstatus == 3)
16256 {
16257
16258
16259
16260 if (yychar <= YYEOF)
16261 {
16262
16263 if (yychar == YYEOF)
16264 YYABORT;
16265 }
16266 else
16267 {
16268 yydestruct ("Error: discarding",
16269 yytoken, &yylval, session);
16270 yychar = YYEMPTY;
16271 }
16272 }
16273
16274
16275
16276 goto yyerrlab1;
16277
16278
16279
16280
16281
16282 yyerrorlab:
16283
16284
16285
16286
16287 if ( 0)
16288 goto yyerrorlab;
16289
16290
16291
16292 YYPOPSTACK (yylen);
16293 yylen = 0;
16294 YY_STACK_PRINT (yyss, yyssp);
16295 yystate = *yyssp;
16296 goto yyerrlab1;
16297
16298
16299
16300
16301
16302 yyerrlab1:
16303 yyerrstatus = 3;
16304
16305 for (;;)
16306 {
16307 yyn = yypact[yystate];
16308 if (yyn != YYPACT_NINF)
16309 {
16310 yyn += YYTERROR;
16311 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
16312 {
16313 yyn = yytable[yyn];
16314 if (0 < yyn)
16315 break;
16316 }
16317 }
16318
16319
16320 if (yyssp == yyss)
16321 YYABORT;
16322
16323
16324 yydestruct ("Error: popping",
16325 yystos[yystate], yyvsp, session);
16326 YYPOPSTACK (1);
16327 yystate = *yyssp;
16328 YY_STACK_PRINT (yyss, yyssp);
16329 }
16330
16331 *++yyvsp = yylval;
16332
16333
16334
16335 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
16336
16337 yystate = yyn;
16338 goto yynewstate;
16339
16340
16341
16342
16343
16344 yyacceptlab:
16345 yyresult = 0;
16346 goto yyreturn;
16347
16348
16349
16350
16351 yyabortlab:
16352 yyresult = 1;
16353 goto yyreturn;
16354
16355 #if !defined(yyoverflow) || YYERROR_VERBOSE
16356
16357
16358
16359 yyexhaustedlab:
16360 yyerror (session, YY_("memory exhausted"));
16361 yyresult = 2;
16362
16363 #endif
16364
16365 yyreturn:
16366 if (yychar != YYEMPTY)
16367 yydestruct ("Cleanup: discarding lookahead",
16368 yytoken, &yylval, session);
16369
16370
16371 YYPOPSTACK (yylen);
16372 YY_STACK_PRINT (yyss, yyssp);
16373 while (yyssp != yyss)
16374 {
16375 yydestruct ("Cleanup: popping",
16376 yystos[*yyssp], yyvsp, session);
16377 YYPOPSTACK (1);
16378 }
16379 #ifndef yyoverflow
16380 if (yyss != yyssa)
16381 YYSTACK_FREE (yyss);
16382 #endif
16383 #if YYERROR_VERBOSE
16384 if (yymsg != yymsgbuf)
16385 YYSTACK_FREE (yymsg);
16386 #endif
16387
16388 return YYID (yyresult);
16389 }
16390
16391
16392