diff --git a/intergration/radon-test/r/help.result b/intergration/radon-test/r/help.result new file mode 100644 index 00000000..d9094048 --- /dev/null +++ b/intergration/radon-test/r/help.result @@ -0,0 +1,125 @@ +drop database if exists integrate_test; + +create database if not exists integrate_test DEFAULT CHARSET=utf8; + + +help; +? (\?) Synonym for `help'. +clear (\c) Clear the current input statement. +connect (\r) Reconnect to the server. Optional arguments are db and host. +delimiter (\d) Set statement delimiter. +edit (\e) Edit command with $EDITOR. +ego (\G) Send command to mysql server, display result vertically. +exit (\q) Exit mysql. Same as quit. +go (\g) Send command to mysql server. +help (\h) Display this help. +nopager (\n) Disable pager, print to stdout. +notee (\t) Don't write into outfile. +pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. +print (\p) Print current command. +prompt (\R) Change your mysql prompt. +quit (\q) Quit mysql. +rehash (\#) Rebuild completion hash. +source (\.) Execute an SQL script file. Takes a file name as an argument. +status (\s) Get status information from the server. +system (\!) Execute a system shell command. +tee (\T) Set outfile [to_outfile]. Append everything into given outfile. +use (\u) Use another database. Takes database name as argument. +charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. +warnings (\W) Show warnings after every statement. +nowarning (\w) Don't show warnings after every statement. +resetconnection(\x) Clean session context. + +help content; + +help 'index'; + ALTER TABLE + CACHE INDEX + CREATE INDEX + CREATE TABLE + DROP INDEX + JOIN + LOAD INDEX + SHOW + SHOW INDEX + SPATIAL + + +help 'insert'; +Name: 'INSERT' +Description: +Syntax: +INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + {VALUES | VALUE} (value_list) [, (value_list)] ... + [ON DUPLICATE KEY UPDATE assignment_list] + +INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + SET assignment_list + [ON DUPLICATE KEY UPDATE assignment_list] + +INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + SELECT ... + [ON DUPLICATE KEY UPDATE assignment_list] + +value: + {expr | DEFAULT} + +value_list: + value [, value] ... + +assignment: + col_name = value + +assignment_list: + assignment [, assignment] ... + +INSERT inserts new rows into an existing table. The INSERT ... VALUES +and INSERT ... SET forms of the statement insert rows based on +explicitly specified values. The INSERT ... SELECT form inserts rows +selected from another table or tables. INSERT with an ON DUPLICATE KEY +UPDATE clause enables existing rows to be updated if a row to be +inserted would cause a duplicate value in a UNIQUE index or PRIMARY +KEY. + +For additional information about INSERT ... SELECT and INSERT ... ON +DUPLICATE KEY UPDATE, see [HELP INSERT SELECT], and +http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html. + +In MySQL 5.7, the DELAYED keyword is accepted but ignored by the +server. For the reasons for this, see [HELP INSERT DELAYED], + +Inserting into a table requires the INSERT privilege for the table. If +the ON DUPLICATE KEY UPDATE clause is used and a duplicate key causes +an UPDATE to be performed instead, the statement requires the UPDATE +privilege for the columns to be updated. For columns that are read but +not modified you need only the SELECT privilege (such as for a column +referenced only on the right hand side of an col_name=expr assignment +in an ON DUPLICATE KEY UPDATE clause). + +When inserting into a partitioned table, you can control which +partitions and subpartitions accept new rows. The PARTITION option +takes a list of the comma-separated names of one or more partitions or +subpartitions (or both) of the table. If any of the rows to be inserted +by a given INSERT statement do not match one of the partitions listed, +the INSERT statement fails with the error Found a row not matching the +given partition set. For more information and examples, see +http://dev.mysql.com/doc/refman/5.7/en/partitioning-selection.html. + +URL: http://dev.mysql.com/doc/refman/5.7/en/insert.html + + + +help /*test nothing get*/ xx; + +help /*test nothing get*/ create create; + + +drop database integrate_test; diff --git a/intergration/radon-test/t/help.test b/intergration/radon-test/t/help.test new file mode 100644 index 00000000..ad05a444 --- /dev/null +++ b/intergration/radon-test/t/help.test @@ -0,0 +1,11 @@ +drop database if exists integrate_test; +create database if not exists integrate_test DEFAULT CHARSET=utf8; + +help; +help content; +help 'index'; +help 'insert'; +help /*test nothing get*/ xx; +help /*test nothing get*/ create create; + +drop database integrate_test; diff --git a/src/proxy/help.go b/src/proxy/help.go new file mode 100644 index 00000000..0d2f805d --- /dev/null +++ b/src/proxy/help.go @@ -0,0 +1,20 @@ +/* + * Radon + * + * Copyright 2020 The Radon Authors. + * Code is licensed under the GPLv3. + * + */ + +package proxy + +import ( + "github.com/xelabs/go-mysqlstack/driver" + "github.com/xelabs/go-mysqlstack/sqlparser" + "github.com/xelabs/go-mysqlstack/sqlparser/depends/sqltypes" +) + +// handleExplain used to handle the EXPLAIN command. +func (spanner *Spanner) handleHelp(session *driver.Session, query string, node sqlparser.Statement) (*sqltypes.Result, error) { + return spanner.ExecuteSingle(query) +} diff --git a/src/proxy/help_test.go b/src/proxy/help_test.go new file mode 100644 index 00000000..da98b02a --- /dev/null +++ b/src/proxy/help_test.go @@ -0,0 +1,48 @@ +/* + * Radon + * + * Copyright 2018 The Radon Authors. + * Code is licensed under the GPLv3. + * + */ + +package proxy + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/xelabs/go-mysqlstack/driver" + "github.com/xelabs/go-mysqlstack/sqlparser/depends/sqltypes" + "github.com/xelabs/go-mysqlstack/xlog" +) + +func TestHelpStmt(t *testing.T) { + log := xlog.NewStdLog(xlog.Level(xlog.PANIC)) + fakedbs, proxy, cleanup := MockProxy(log) + defer cleanup() + address := proxy.Address() + + // fakedbs. + { + fakedbs.AddQueryPattern("use .*", &sqltypes.Result{}) + fakedbs.AddQueryPattern("help *.*", &sqltypes.Result{}) + } + + // show databases. + { + client, err := driver.NewConn("mock", "mock", address, "test", "utf8") + assert.Nil(t, err) + defer client.Close() + querys := []string{ + "help", + "help index", + "help content", + "help 'any string'", + } + for _, query := range querys { + _, err = client.FetchAll(query, -1) + assert.Nil(t, err) + } + } +} diff --git a/src/proxy/query.go b/src/proxy/query.go index ea042251..ea6b1399 100644 --- a/src/proxy/query.go +++ b/src/proxy/query.go @@ -334,6 +334,13 @@ func (spanner *Spanner) ComQuery(session *driver.Session, query string, bindVari } spanner.auditLog(session, R, xbase.EXPLAIN, query, qr, status) return returnQuery(qr, callback, err) + case *sqlparser.Help: + if qr, err = spanner.handleHelp(session, query, node); err != nil { + log.Error("proxy.help[%s].from.session[%v].error:%+v", query, session.ID(), err) + status = 1 + } + spanner.auditLog(session, R, xbase.HELP, query, qr, status) + return returnQuery(qr, callback, err) case *sqlparser.Transaction: // Support for myloader. // Support Multiple-statement Transaction diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go index f40c2786..e7001480 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go @@ -198,6 +198,11 @@ type ( Statement Statement } + // Help represents a help statement. + Help struct { + HelpInfo *SQLVal + } + // Kill represents a KILL statement. Kill struct { QueryID *NumVal @@ -230,6 +235,7 @@ func (*OtherRead) iStatement() {} func (*OtherAdmin) iStatement() {} func (*Radon) iStatement() {} func (*Explain) iStatement() {} +func (*Help) iStatement() {} func (*Kill) iStatement() {} func (*Transaction) iStatement() {} func (*Xa) iStatement() {} @@ -1931,6 +1937,14 @@ func (node *Explain) Format(buf *TrackedBuffer) { buf.WriteString("explain") } +// Format formats the node. +func (node *Help) Format(buf *TrackedBuffer) { + buf.Myprintf("help") + if node.HelpInfo != nil { + buf.Myprintf(" %v", node.HelpInfo) + } +} + // Format formats the node. func (node *Kill) Format(buf *TrackedBuffer) { buf.Myprintf("kill %s", node.QueryID.raw) diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/parse_test.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/parse_test.go index c7dba454..ed80f8f6 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/parse_test.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/parse_test.go @@ -731,6 +731,18 @@ func TestValid(t *testing.T) { }, { input: "explain update t set col = 2", output: "explain", + }, { + input: "help", + output: "help", + }, { + input: "helP Create", + output: "help create", + }, { + input: "helP 'Create'", + output: "help 'Create'", + }, { + input: "helP \"Create\"", + output: "help 'Create'", }, { input: "truncate table foo", output: "truncate table foo", @@ -1266,6 +1278,9 @@ func TestErrors(t *testing.T) { }, { input: "explain analyze format = json select a from t", output: "syntax error at position 30 near 'json'", + }, { + input: "help create create", + output: "syntax error at position 19 near 'create'", }, { input: "select $ from t", output: "syntax error at position 9 near '$'", diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go index 087dcbf2..eded52d1 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go @@ -272,6 +272,10 @@ func replaceGroupConcatExprOrderBy(newNode, parent SQLNode) { parent.(*GroupConcatExpr).OrderBy = newNode.(OrderBy) } +func replaceHelpHelpInfo(newNode, parent SQLNode) { + parent.(*Help).HelpInfo = newNode.(*SQLVal) +} + func replaceIndexDefinitionName(newNode, parent SQLNode) { parent.(*IndexDefinition).Name = newNode.(ColIdent) } @@ -839,6 +843,9 @@ func (a *application) apply(parent, node SQLNode, replacer replacerFunc) { a.apply(node, n.Exprs, replaceGroupConcatExprExprs) a.apply(node, n.OrderBy, replaceGroupConcatExprOrderBy) + case *Help: + a.apply(node, n.HelpInfo, replaceHelpHelpInfo) + case *IndexDefinition: a.apply(node, n.Name, replaceIndexDefinitionName) a.apply(node, n.Opts, replaceIndexDefinitionOpts) diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go index 9501346b..6d5824de 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go @@ -233,168 +233,169 @@ const EXPLAIN = 57468 const SHOW = 57469 const DATE = 57470 const ESCAPE = 57471 -const REPAIR = 57472 -const OPTIMIZE = 57473 +const HELP = 57472 +const REPAIR = 57473 const TRUNCATE = 57474 -const BIT = 57475 -const TINYINT = 57476 -const SMALLINT = 57477 -const MEDIUMINT = 57478 -const INT = 57479 -const INTEGER = 57480 -const BIGINT = 57481 -const INTNUM = 57482 -const REAL = 57483 -const DOUBLE = 57484 -const FLOAT_TYPE = 57485 -const DECIMAL = 57486 -const NUMERIC = 57487 -const TIME = 57488 -const TIMESTAMP = 57489 -const DATETIME = 57490 -const YEAR = 57491 -const CHAR = 57492 -const VARCHAR = 57493 -const BOOL = 57494 -const CHARACTER = 57495 -const VARBINARY = 57496 -const NCHAR = 57497 -const CHARSET = 57498 -const TEXT = 57499 -const TINYTEXT = 57500 -const MEDIUMTEXT = 57501 -const LONGTEXT = 57502 -const BLOB = 57503 -const TINYBLOB = 57504 -const MEDIUMBLOB = 57505 -const LONGBLOB = 57506 -const JSON = 57507 -const ENUM = 57508 -const GEOMETRY = 57509 -const POINT = 57510 -const LINESTRING = 57511 -const POLYGON = 57512 -const GEOMETRYCOLLECTION = 57513 -const MULTIPOINT = 57514 -const MULTILINESTRING = 57515 -const MULTIPOLYGON = 57516 -const NULLX = 57517 -const AUTO_INCREMENT = 57518 -const APPROXNUM = 57519 -const SIGNED = 57520 -const UNSIGNED = 57521 -const ZEROFILL = 57522 -const FIXED = 57523 -const DYNAMIC = 57524 -const STORAGE = 57525 -const DISK = 57526 -const MEMORY = 57527 -const COLUMN_FORMAT = 57528 -const AVG_ROW_LENGTH = 57529 -const COMPRESSION = 57530 -const CONNECTION = 57531 -const DATA = 57532 -const DIRECTORY = 57533 -const DELAY_KEY_WRITE = 57534 -const ENCRYPTION = 57535 -const INSERT_METHOD = 57536 -const MAX_ROWS = 57537 -const MIN_ROWS = 57538 -const PACK_KEYS = 57539 -const PASSWORD = 57540 -const ROW_FORMAT = 57541 -const STATS_AUTO_RECALC = 57542 -const STATS_PERSISTENT = 57543 -const STATS_SAMPLE_PAGES = 57544 -const TABLESPACE = 57545 -const COMPRESSED = 57546 -const REDUNDANT = 57547 -const COMPACT = 57548 -const TOKUDB_DEFAULT = 57549 -const TOKUDB_FAST = 57550 -const TOKUDB_SMALL = 57551 -const TOKUDB_ZLIB = 57552 -const TOKUDB_QUICKLZ = 57553 -const TOKUDB_LZMA = 57554 -const TOKUDB_SNAPPY = 57555 -const TOKUDB_UNCOMPRESSED = 57556 -const COLLATION = 57557 -const DATABASES = 57558 -const TABLES = 57559 -const WARNINGS = 57560 -const VARIABLES = 57561 -const EVENTS = 57562 -const BINLOG = 57563 -const GTID = 57564 -const STATUS = 57565 -const COLUMNS = 57566 -const FIELDS = 57567 -const CURRENT_TIMESTAMP = 57568 -const CURRENT_DATE = 57569 -const DATABASE = 57570 -const SCHEMA = 57571 -const CURRENT_TIME = 57572 -const LOCALTIME = 57573 -const LOCALTIMESTAMP = 57574 -const UTC_DATE = 57575 -const UTC_TIME = 57576 -const UTC_TIMESTAMP = 57577 -const REPLACE = 57578 -const CONVERT = 57579 -const CAST = 57580 -const GROUP_CONCAT = 57581 -const SEPARATOR = 57582 -const MATCH = 57583 -const AGAINST = 57584 -const BOOLEAN = 57585 -const LANGUAGE = 57586 -const WITH = 57587 -const QUERY = 57588 -const EXPANSION = 57589 -const UNUSED = 57590 -const FORMAT = 57591 -const TREE = 57592 -const TRADITIONAL = 57593 -const EXTENDED = 57594 -const PARTITION = 57595 -const PARTITIONS = 57596 -const LIST = 57597 -const XA = 57598 -const DISTRIBUTED = 57599 -const ENGINES = 57600 -const VERSIONS = 57601 -const PROCESSLIST = 57602 -const QUERYZ = 57603 -const TXNZ = 57604 -const KILL = 57605 -const ENGINE = 57606 -const SINGLE = 57607 -const BEGIN = 57608 -const START = 57609 -const TRANSACTION = 57610 -const COMMIT = 57611 -const ROLLBACK = 57612 -const GLOBAL = 57613 -const LOCAL = 57614 -const SESSION = 57615 -const NAMES = 57616 -const ISOLATION = 57617 -const LEVEL = 57618 -const READ = 57619 -const WRITE = 57620 -const ONLY = 57621 -const REPEATABLE = 57622 -const COMMITTED = 57623 -const UNCOMMITTED = 57624 -const SERIALIZABLE = 57625 -const RADON = 57626 -const ATTACH = 57627 -const ATTACHLIST = 57628 -const DETACH = 57629 -const RESHARD = 57630 -const CLEANUP = 57631 -const RECOVER = 57632 -const REBALANCE = 57633 +const OPTIMIZE = 57475 +const BIT = 57476 +const TINYINT = 57477 +const SMALLINT = 57478 +const MEDIUMINT = 57479 +const INT = 57480 +const INTEGER = 57481 +const BIGINT = 57482 +const INTNUM = 57483 +const REAL = 57484 +const DOUBLE = 57485 +const FLOAT_TYPE = 57486 +const DECIMAL = 57487 +const NUMERIC = 57488 +const TIME = 57489 +const TIMESTAMP = 57490 +const DATETIME = 57491 +const YEAR = 57492 +const CHAR = 57493 +const VARCHAR = 57494 +const BOOL = 57495 +const CHARACTER = 57496 +const VARBINARY = 57497 +const NCHAR = 57498 +const CHARSET = 57499 +const TEXT = 57500 +const TINYTEXT = 57501 +const MEDIUMTEXT = 57502 +const LONGTEXT = 57503 +const BLOB = 57504 +const TINYBLOB = 57505 +const MEDIUMBLOB = 57506 +const LONGBLOB = 57507 +const JSON = 57508 +const ENUM = 57509 +const GEOMETRY = 57510 +const POINT = 57511 +const LINESTRING = 57512 +const POLYGON = 57513 +const GEOMETRYCOLLECTION = 57514 +const MULTIPOINT = 57515 +const MULTILINESTRING = 57516 +const MULTIPOLYGON = 57517 +const NULLX = 57518 +const AUTO_INCREMENT = 57519 +const APPROXNUM = 57520 +const SIGNED = 57521 +const UNSIGNED = 57522 +const ZEROFILL = 57523 +const FIXED = 57524 +const DYNAMIC = 57525 +const STORAGE = 57526 +const DISK = 57527 +const MEMORY = 57528 +const COLUMN_FORMAT = 57529 +const AVG_ROW_LENGTH = 57530 +const COMPRESSION = 57531 +const CONNECTION = 57532 +const DATA = 57533 +const DIRECTORY = 57534 +const DELAY_KEY_WRITE = 57535 +const ENCRYPTION = 57536 +const INSERT_METHOD = 57537 +const MAX_ROWS = 57538 +const MIN_ROWS = 57539 +const PACK_KEYS = 57540 +const PASSWORD = 57541 +const ROW_FORMAT = 57542 +const STATS_AUTO_RECALC = 57543 +const STATS_PERSISTENT = 57544 +const STATS_SAMPLE_PAGES = 57545 +const TABLESPACE = 57546 +const COMPRESSED = 57547 +const REDUNDANT = 57548 +const COMPACT = 57549 +const TOKUDB_DEFAULT = 57550 +const TOKUDB_FAST = 57551 +const TOKUDB_SMALL = 57552 +const TOKUDB_ZLIB = 57553 +const TOKUDB_QUICKLZ = 57554 +const TOKUDB_LZMA = 57555 +const TOKUDB_SNAPPY = 57556 +const TOKUDB_UNCOMPRESSED = 57557 +const COLLATION = 57558 +const DATABASES = 57559 +const TABLES = 57560 +const WARNINGS = 57561 +const VARIABLES = 57562 +const EVENTS = 57563 +const BINLOG = 57564 +const GTID = 57565 +const STATUS = 57566 +const COLUMNS = 57567 +const FIELDS = 57568 +const CURRENT_TIMESTAMP = 57569 +const CURRENT_DATE = 57570 +const DATABASE = 57571 +const SCHEMA = 57572 +const CURRENT_TIME = 57573 +const LOCALTIME = 57574 +const LOCALTIMESTAMP = 57575 +const UTC_DATE = 57576 +const UTC_TIME = 57577 +const UTC_TIMESTAMP = 57578 +const REPLACE = 57579 +const CONVERT = 57580 +const CAST = 57581 +const GROUP_CONCAT = 57582 +const SEPARATOR = 57583 +const MATCH = 57584 +const AGAINST = 57585 +const BOOLEAN = 57586 +const LANGUAGE = 57587 +const WITH = 57588 +const QUERY = 57589 +const EXPANSION = 57590 +const UNUSED = 57591 +const FORMAT = 57592 +const TREE = 57593 +const TRADITIONAL = 57594 +const EXTENDED = 57595 +const PARTITION = 57596 +const PARTITIONS = 57597 +const LIST = 57598 +const XA = 57599 +const DISTRIBUTED = 57600 +const ENGINES = 57601 +const VERSIONS = 57602 +const PROCESSLIST = 57603 +const QUERYZ = 57604 +const TXNZ = 57605 +const KILL = 57606 +const ENGINE = 57607 +const SINGLE = 57608 +const BEGIN = 57609 +const START = 57610 +const TRANSACTION = 57611 +const COMMIT = 57612 +const ROLLBACK = 57613 +const GLOBAL = 57614 +const LOCAL = 57615 +const SESSION = 57616 +const NAMES = 57617 +const ISOLATION = 57618 +const LEVEL = 57619 +const READ = 57620 +const WRITE = 57621 +const ONLY = 57622 +const REPEATABLE = 57623 +const COMMITTED = 57624 +const UNCOMMITTED = 57625 +const SERIALIZABLE = 57626 +const RADON = 57627 +const ATTACH = 57628 +const ATTACHLIST = 57629 +const DETACH = 57630 +const RESHARD = 57631 +const CLEANUP = 57632 +const RECOVER = 57633 +const REBALANCE = 57634 var yyToknames = [...]string{ "$end", @@ -543,9 +544,10 @@ var yyToknames = [...]string{ "SHOW", "DATE", "ESCAPE", + "HELP", "REPAIR", - "OPTIMIZE", "TRUNCATE", + "OPTIMIZE", "BIT", "TINYINT", "SMALLINT", @@ -713,7 +715,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line sql.y:5009 +//line sql.y:5043 //line yacctab:1 var yyExca = [...]int{ @@ -721,1180 +723,1235 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 3, - 5, 28, + 5, 29, -2, 4, - -1, 195, - 6, 355, - 7, 355, - 8, 355, - 9, 355, - 18, 355, - 67, 355, - 253, 355, - -2, 882, - -1, 238, - 94, 890, - -2, 698, - -1, 244, - 94, 747, - -2, 676, - -1, 424, - 5, 28, - -2, 347, - -1, 503, - 122, 728, - -2, 724, - -1, 504, - 122, 729, - -2, 725, - -1, 537, - 119, 89, - 167, 89, - 170, 89, - 173, 89, - -2, 101, - -1, 588, - 1, 82, - 309, 82, - -2, 89, - -1, 720, - 5, 28, - -2, 647, - -1, 749, - 119, 89, - 167, 89, - 170, 89, - 173, 89, + -1, 197, + 6, 356, + 7, 356, + 8, 356, + 9, 356, + 18, 356, + 67, 356, + 254, 356, + -2, 890, + -1, 372, + 94, 898, + -2, 705, + -1, 378, + 94, 754, + -2, 683, + -1, 434, + 5, 29, + -2, 348, + -1, 513, + 122, 735, + -2, 731, + -1, 514, + 122, 736, + -2, 732, + -1, 547, + 119, 90, + 168, 90, + 171, 90, + 174, 90, -2, 102, - -1, 807, - 35, 309, - 67, 309, - 70, 309, - 133, 309, - -2, 887, - -1, 860, + -1, 598, 1, 83, - 309, 83, - -2, 89, - -1, 951, - 122, 731, - -2, 727, - -1, 1133, + 310, 83, + -2, 90, + -1, 728, 5, 29, - -2, 526, - -1, 1157, + -2, 654, + -1, 757, + 119, 90, + 168, 90, + 171, 90, + 174, 90, + -2, 103, + -1, 815, + 35, 310, + 67, 310, + 70, 310, + 133, 310, + -2, 895, + -1, 868, + 1, 84, + 310, 84, + -2, 90, + -1, 959, + 122, 738, + -2, 734, + -1, 1141, + 5, 30, + -2, 533, + -1, 1165, + 5, 30, + -2, 655, + -1, 1300, 5, 29, - -2, 648, - -1, 1292, - 5, 28, - -2, 650, - -1, 1420, - 5, 29, - -2, 651, + -2, 657, + -1, 1428, + 5, 30, + -2, 658, } const yyPrivate = 57344 -const yyLast = 10818 +const yyLast = 11352 var yyAct = [...]int{ - 504, 481, 1493, 1423, 1096, 623, 1324, 1282, 1449, 1353, - 842, 1455, 457, 980, 1367, 1283, 479, 723, 1323, 1479, - 1316, 1216, 1055, 239, 214, 981, 1032, 856, 1262, 1364, - 424, 3, 728, 935, 58, 243, 1004, 1126, 945, 111, - 942, 111, 950, 1118, 889, 1098, 1097, 836, 1045, 68, - 724, 977, 961, 1034, 378, 422, 459, 189, 912, 626, - 605, 1008, 777, 379, 1070, 861, 111, 763, 247, 456, - 381, 811, 523, 446, 506, 522, 606, 944, 512, 455, - 213, 1035, 235, 588, 242, 111, 852, 111, 482, 49, - 750, 521, 234, 391, 223, 232, 210, 442, 443, 57, - 200, 1166, 202, 203, 444, 211, 212, 997, 525, 111, - 996, 736, 524, 998, 1167, 1168, 737, 738, 441, 524, - 201, 525, 1377, 1424, 618, 204, 206, 205, 207, 208, - 747, 209, 376, 897, 1515, 691, 375, 1478, 49, 25, - 50, 27, 28, 1492, 374, 199, 1514, 398, 399, 219, - 373, 407, 408, 409, 1469, 411, 412, 413, 414, 415, - 416, 417, 788, 25, 50, 27, 28, 1512, 1491, 404, - 1275, 1100, 1347, 25, 50, 27, 28, 1468, 1457, 798, - 410, 1048, 396, 780, 886, 423, 1049, 1050, 83, 395, - 1480, 381, 529, 1018, 1017, 611, 1065, 1099, 835, 1061, - 55, 29, 198, 1241, 37, 843, 434, 436, 111, 619, - 620, 107, 400, 106, 1393, 775, 947, 1007, 1342, 402, - 403, 38, 1340, 1091, 55, 1060, 1090, 1089, 111, 1037, - 111, 1458, 104, 1218, 55, 247, 1041, 1042, 1043, 392, - 383, 247, 247, 79, 1044, 477, 478, 62, 428, 1218, - 509, 242, 508, 1088, 420, 1445, 103, 530, 530, 433, - 25, 50, 27, 28, 437, 1011, 439, 440, 1010, 784, - 1444, 1009, 1415, 1417, 64, 65, 66, 67, 1443, 805, - 49, 49, 31, 32, 33, 1076, 35, 1086, 81, 1497, - 628, 386, 385, 435, 435, 397, 628, 389, 54, 53, - 52, 36, 72, 384, 47, 48, 34, 388, 49, 108, - 73, 88, 86, 77, 843, 85, 1374, 526, 96, 105, - 1332, 55, 651, 652, 653, 654, 655, 648, 1160, 778, - 658, 1132, 1130, 1011, 1036, 990, 1010, 670, 671, 1009, - 779, 781, 782, 783, 1416, 785, 786, 787, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 1062, 1063, 102, - 1435, 647, 646, 656, 657, 649, 650, 651, 652, 653, - 654, 655, 648, 1481, 1467, 658, 786, 804, 746, 679, - 1058, 1059, 430, 590, 658, 1085, 51, 627, 111, 111, - 744, 648, 590, 627, 658, 633, 891, 111, 111, 429, - 75, 76, 636, 1005, 1087, 111, 989, 1048, 635, 634, - 51, 74, 1049, 1050, 1463, 405, 612, 776, 101, 89, - 51, 100, 98, 634, 87, 636, 95, 1225, 528, 431, - 39, 111, 449, 507, 533, 706, 1277, 41, 962, 636, - 42, 43, 1322, 45, 44, 647, 646, 656, 657, 649, - 650, 651, 652, 653, 654, 655, 648, 591, 46, 658, - 514, 90, 99, 93, 94, 97, 615, 1100, 510, 1320, - 962, 609, 1143, 613, 1457, 599, 610, 1226, 607, 635, - 634, 1136, 1040, 597, 1100, 55, 1119, 890, 1510, 919, - 621, 1457, 622, 1099, 625, 915, 636, 635, 634, 629, - 630, 631, 1194, 917, 918, 916, 1138, 51, 1502, 406, - 1099, 668, 247, 680, 636, 635, 634, 111, 1436, 1321, - 1213, 247, 1279, 1425, 75, 76, 382, 1458, 712, 1211, - 1311, 725, 636, 708, 1312, 726, 707, 242, 1499, 381, - 1209, 1485, 667, 669, 1458, 1315, 720, 1111, 1112, 1113, - 1212, 1137, 635, 634, 905, 907, 908, 1314, 1190, 1210, - 906, 1189, 844, 845, 846, 1056, 1188, 1057, 678, 636, - 1208, 681, 682, 683, 684, 685, 686, 687, 1185, 690, - 692, 692, 692, 692, 692, 692, 692, 692, 700, 701, - 702, 703, 1192, 799, 838, 839, 840, 841, 111, 111, - 936, 387, 937, 1459, 721, 710, 1180, 111, 111, 638, - 849, 850, 851, 731, 709, 858, 730, 1179, 1178, 739, - 801, 1074, 1191, 1073, 745, 1066, 885, 111, 693, 694, - 695, 696, 697, 698, 699, 649, 650, 651, 652, 653, - 654, 655, 648, 913, 896, 658, 432, 1396, 1313, 1302, - 1301, 862, 624, 1193, 1186, 1182, 1181, 1196, 1195, 1172, - 637, 887, 888, 1103, 445, 1102, 1071, 895, 639, 894, - 1053, 854, 855, 1511, 1318, 1503, 635, 634, 247, 1448, - 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, - 1207, 247, 1390, 636, 941, 1033, 242, 1243, 914, 624, - 680, 1317, 1240, 949, 1506, 445, 689, 963, 1386, 1483, - 1386, 1451, 953, 1446, 445, 951, 1386, 1427, 1386, 1426, - 1384, 982, 247, 1187, 1263, 1351, 445, 1383, 899, 1386, - 445, 725, 247, 1124, 445, 726, 979, 999, 986, 1232, - 1231, 1382, 966, 1228, 1229, 742, 381, 1095, 242, 1265, - 939, 940, 984, 1228, 1227, 1094, 987, 938, 49, 594, - 954, 955, 593, 991, 958, 1267, 959, 1271, 592, 1266, - 681, 1264, 1159, 445, 898, 445, 1269, 390, 965, 969, - 967, 968, 970, 879, 59, 952, 1268, 471, 470, 472, - 473, 474, 475, 976, 1093, 1152, 476, 964, 1224, 1270, - 1272, 538, 537, 25, 729, 978, 993, 988, 983, 1000, - 49, 994, 878, 1006, 526, 1012, 1013, 1014, 1015, 1016, - 898, 988, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1001, 1002, 1439, 1124, 881, - 1003, 718, 25, 1155, 1351, 719, 1230, 1124, 877, 1067, - 1068, 902, 903, 1124, 909, 910, 1355, 1358, 1359, 1360, - 1356, 988, 1357, 1361, 55, 111, 111, 111, 25, 647, - 646, 656, 657, 649, 650, 651, 652, 653, 654, 655, - 648, 735, 1039, 658, 1291, 733, 704, 520, 55, 220, - 1429, 837, 1380, 857, 1046, 874, 872, 868, 624, 871, - 873, 956, 957, 55, 1308, 1355, 1358, 1359, 1360, 1356, - 480, 1357, 1361, 1072, 1303, 1440, 78, 69, 913, 1222, - 853, 507, 848, 862, 1077, 1082, 1075, 1106, 1083, 55, - 1078, 847, 978, 866, 865, 864, 598, 1408, 23, 876, - 1406, 1442, 1409, 1101, 716, 1407, 992, 1441, 247, 109, - 55, 193, 1405, 1107, 1105, 1404, 1504, 1410, 1109, 1359, - 1360, 1490, 875, 1110, 1128, 224, 225, 901, 1476, 513, - 975, 974, 111, 914, 1100, 1114, 193, 447, 1099, 1328, - 1177, 227, 511, 1176, 1069, 534, 49, 518, 798, 1153, - 863, 600, 1363, 221, 222, 193, 70, 193, 513, 218, - 1099, 725, 381, 381, 448, 726, 1289, 242, 1220, 1052, - 1051, 1038, 1500, 1142, 1164, 1489, 1165, 1100, 452, 193, - 1488, 1123, 1161, 870, 1487, 973, 951, 215, 1399, 1173, - 82, 1154, 1215, 972, 880, 536, 1306, 1140, 1131, 1162, - 1305, 535, 216, 1121, 1174, 1175, 1307, 1122, 59, 1398, - 869, 1350, 1217, 729, 1183, 1184, 602, 229, 1133, 1134, - 1135, 1219, 1371, 1139, 1054, 1170, 1171, 632, 1145, 61, - 1146, 1147, 1148, 1149, 656, 657, 649, 650, 651, 652, - 653, 654, 655, 648, 111, 63, 658, 56, 1156, 1157, - 1158, 1221, 381, 1, 111, 427, 6, 425, 5, 426, - 4, 372, 1422, 1223, 860, 1169, 859, 810, 1104, 809, - 1486, 71, 1477, 1233, 1234, 1108, 1454, 1456, 193, 1461, - 1433, 1430, 1432, 749, 748, 377, 800, 816, 247, 815, - 814, 812, 1064, 247, 834, 1319, 1248, 1249, 193, 1242, - 193, 821, 1239, 1246, 1128, 1247, 1244, 242, 820, 242, - 1250, 743, 774, 111, 949, 773, 1261, 982, 772, 1251, - 247, 247, 771, 1256, 1288, 1257, 951, 1274, 1235, 1236, - 1237, 1273, 1260, 1259, 770, 1276, 1294, 1295, 769, 1144, - 768, 1290, 1281, 767, 1280, 766, 1296, 765, 764, 1292, - 1252, 762, 761, 760, 759, 758, 757, 1299, 1300, 756, - 624, 755, 751, 754, 753, 190, 1163, 1376, 752, 1286, - 647, 646, 656, 657, 649, 650, 651, 652, 653, 654, - 655, 648, 819, 817, 658, 813, 543, 541, 1255, 542, - 228, 540, 545, 544, 539, 1362, 247, 247, 247, 1366, - 1217, 1287, 1309, 1125, 983, 84, 1092, 1293, 1310, 393, - 197, 394, 1325, 1325, 1325, 1326, 1327, 1084, 646, 656, - 657, 649, 650, 651, 652, 653, 654, 655, 648, 1329, - 1330, 658, 867, 418, 40, 1297, 1298, 80, 666, 971, - 1047, 240, 995, 734, 732, 231, 230, 985, 111, 111, - 705, 505, 1397, 982, 1349, 1338, 1141, 688, 193, 193, - 960, 458, 904, 469, 247, 1372, 466, 193, 604, 247, - 468, 1335, 1336, 467, 1337, 193, 711, 1339, 680, 1341, - 1325, 717, 1378, 640, 1373, 1325, 450, 1379, 1414, 1285, - 1217, 882, 1381, 247, 191, 419, 92, 91, 401, 515, - 1354, 614, 1352, 1284, 1286, 1151, 601, 1392, 1346, 242, - 1434, 715, 111, 111, 111, 111, 1261, 818, 26, 1400, - 1278, 1402, 60, 111, 1345, 1333, 111, 1334, 1401, 111, - 1403, 1411, 438, 1387, 226, 247, 1365, 14, 1343, 1344, - 983, 247, 49, 1418, 725, 22, 1375, 247, 726, 1419, - 15, 1421, 517, 1431, 519, 13, 953, 1325, 12, 1428, - 30, 10, 9, 1325, 8, 1438, 7, 217, 1286, 1286, - 1286, 1286, 24, 2, 21, 20, 19, 18, 17, 16, - 11, 802, 1286, 803, 1304, 0, 0, 193, 1385, 727, - 247, 1388, 1389, 0, 0, 1453, 1450, 1460, 1464, 0, - 1287, 1287, 1287, 1287, 1462, 1465, 1325, 0, 1452, 0, - 1475, 1395, 0, 0, 1365, 0, 0, 0, 0, 0, - 1482, 0, 0, 0, 0, 0, 0, 0, 0, 1413, - 0, 0, 0, 247, 247, 247, 1495, 1496, 1420, 672, - 673, 674, 675, 676, 677, 0, 0, 0, 0, 1494, - 1494, 1494, 1501, 0, 1484, 0, 1348, 0, 0, 1509, - 0, 0, 0, 0, 0, 0, 0, 247, 193, 193, - 0, 0, 0, 0, 0, 1498, 0, 892, 193, 0, - 1120, 0, 0, 1513, 0, 0, 0, 1447, 0, 0, - 0, 0, 1472, 1473, 1474, 0, 0, 193, 0, 1466, - 647, 646, 656, 657, 649, 650, 651, 652, 653, 654, - 655, 648, 595, 596, 658, 0, 0, 0, 0, 0, - 0, 603, 0, 0, 0, 0, 0, 0, 0, 608, - 0, 0, 0, 828, 827, 0, 560, 0, 0, 0, - 0, 0, 824, 0, 0, 0, 435, 0, 0, 948, - 614, 0, 0, 948, 948, 0, 0, 948, 1505, 0, - 1507, 1508, 0, 0, 0, 830, 0, 0, 0, 0, - 0, 948, 948, 948, 948, 1437, 624, 0, 829, 822, - 0, 0, 0, 0, 0, 823, 948, 0, 0, 727, + 514, 1457, 1501, 1431, 1331, 1104, 491, 1463, 631, 1332, + 731, 467, 1012, 988, 1361, 1375, 1324, 1291, 373, 1290, + 989, 454, 864, 1487, 1224, 1040, 736, 1372, 1063, 1270, + 1134, 943, 377, 950, 953, 958, 1126, 850, 897, 1105, + 113, 1106, 113, 203, 388, 348, 1053, 70, 920, 492, + 51, 732, 969, 60, 844, 1042, 489, 432, 985, 615, + 634, 1016, 771, 466, 1078, 389, 785, 869, 113, 469, + 381, 819, 391, 465, 758, 202, 532, 456, 516, 533, + 522, 860, 1043, 531, 369, 368, 357, 113, 366, 113, + 616, 598, 401, 539, 64, 452, 453, 59, 796, 1175, + 1176, 51, 745, 746, 26, 52, 28, 29, 462, 1174, + 535, 113, 353, 744, 534, 806, 451, 344, 534, 788, + 535, 335, 66, 67, 68, 69, 376, 1385, 755, 1005, + 1432, 952, 1004, 699, 626, 1006, 26, 52, 28, 29, + 905, 1523, 30, 1486, 1500, 38, 338, 340, 339, 341, + 342, 783, 343, 1522, 333, 386, 1477, 434, 3, 385, + 1520, 1499, 39, 1476, 1283, 57, 1355, 384, 1108, 420, + 894, 1056, 410, 383, 405, 1465, 1057, 1058, 1026, 412, + 413, 85, 1025, 621, 1069, 414, 1073, 955, 26, 52, + 28, 29, 843, 391, 1107, 406, 1488, 57, 1249, 1068, + 433, 851, 1015, 1350, 74, 792, 1348, 1099, 109, 347, + 108, 332, 75, 1401, 1098, 79, 1097, 1226, 1045, 627, + 628, 402, 393, 32, 33, 34, 81, 36, 1466, 106, + 1096, 399, 813, 26, 52, 28, 29, 398, 636, 56, + 55, 54, 37, 51, 51, 42, 49, 35, 50, 57, + 110, 1019, 438, 105, 1018, 1226, 1453, 1017, 430, 1423, + 1425, 1049, 1050, 1051, 1452, 1451, 786, 396, 395, 1052, + 487, 488, 394, 1084, 88, 1382, 87, 787, 789, 790, + 791, 83, 793, 794, 795, 797, 798, 799, 800, 801, + 802, 803, 804, 805, 57, 1443, 655, 654, 664, 665, + 657, 658, 659, 660, 661, 662, 663, 656, 90, 407, + 666, 678, 679, 76, 851, 98, 107, 1233, 1340, 415, + 1168, 1140, 1019, 1044, 1330, 1018, 1138, 1108, 1017, 714, + 812, 1424, 998, 687, 1465, 635, 440, 1094, 656, 666, + 636, 666, 113, 1070, 1071, 444, 446, 752, 1505, 641, + 642, 1328, 53, 1107, 784, 1066, 1067, 104, 644, 899, + 1013, 1475, 113, 1146, 113, 794, 644, 1234, 1095, 381, + 997, 622, 40, 643, 642, 381, 381, 754, 538, 43, + 1489, 441, 44, 45, 53, 47, 46, 1466, 445, 445, + 644, 1285, 1048, 600, 77, 78, 970, 439, 113, 113, + 48, 1329, 600, 51, 970, 518, 1151, 113, 113, 643, + 642, 57, 1471, 416, 601, 113, 103, 91, 524, 102, + 100, 923, 89, 1518, 97, 376, 644, 77, 78, 927, + 715, 540, 540, 1056, 1510, 1093, 53, 635, 1057, 1058, + 392, 113, 1271, 925, 926, 924, 1467, 643, 642, 520, + 898, 1433, 1323, 536, 1444, 1119, 1120, 1121, 1144, 92, + 101, 95, 96, 99, 644, 643, 642, 1273, 1322, 543, + 1519, 1198, 1287, 625, 643, 642, 623, 913, 915, 916, + 619, 53, 644, 914, 1275, 1319, 1279, 1197, 1274, 1320, + 1272, 644, 607, 609, 1221, 1277, 659, 660, 661, 662, + 663, 656, 617, 1108, 666, 1276, 1219, 1064, 1196, 1065, + 1465, 519, 1193, 675, 677, 1188, 1187, 397, 1278, 1280, + 1186, 1082, 381, 944, 1220, 945, 1507, 113, 1145, 1107, + 1081, 381, 1074, 904, 676, 442, 1218, 459, 517, 686, + 733, 717, 689, 690, 691, 692, 693, 694, 695, 391, + 698, 700, 700, 700, 700, 700, 700, 700, 700, 708, + 709, 710, 711, 1466, 716, 664, 665, 657, 658, 659, + 660, 661, 662, 663, 656, 729, 1217, 666, 720, 680, + 681, 682, 683, 684, 685, 734, 1493, 376, 1404, 1321, + 1310, 1309, 1200, 807, 1201, 753, 1194, 1190, 1189, 852, + 853, 854, 1180, 1111, 1110, 1326, 1216, 718, 113, 113, + 1079, 846, 847, 848, 849, 1061, 739, 113, 113, 738, + 866, 747, 1199, 1514, 455, 906, 1511, 857, 858, 859, + 1456, 809, 1325, 632, 1398, 113, 701, 702, 703, 704, + 705, 706, 707, 481, 480, 482, 483, 484, 485, 647, + 688, 1041, 486, 907, 1394, 1491, 921, 893, 1394, 1459, + 1363, 1366, 1367, 1368, 1364, 870, 1365, 1369, 1454, 455, + 1448, 1394, 1435, 1394, 1434, 455, 862, 863, 902, 1251, + 632, 1202, 1248, 728, 1359, 455, 381, 697, 654, 664, + 665, 657, 658, 659, 660, 661, 662, 663, 656, 381, + 1195, 666, 1394, 455, 1132, 455, 957, 1240, 1239, 1392, + 960, 657, 658, 659, 660, 661, 662, 663, 656, 922, + 959, 666, 972, 1236, 1237, 1391, 750, 51, 1236, 1235, + 381, 1167, 455, 1103, 990, 1007, 946, 987, 733, 689, + 381, 1102, 949, 974, 376, 906, 455, 1450, 604, 603, + 602, 400, 947, 948, 391, 971, 1390, 919, 995, 1232, + 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, + 938, 939, 940, 941, 942, 61, 967, 991, 1160, 51, + 1101, 548, 547, 734, 996, 26, 994, 986, 737, 996, + 999, 977, 1163, 1359, 978, 1238, 376, 1014, 26, 1020, + 1021, 1022, 1023, 1024, 1009, 1010, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1008, + 1002, 1001, 962, 963, 536, 646, 966, 1299, 1132, 1132, + 910, 911, 1011, 917, 918, 688, 1132, 1204, 1203, 743, + 973, 26, 975, 976, 741, 996, 57, 961, 712, 530, + 1363, 1366, 1367, 1368, 1364, 984, 1365, 1369, 354, 57, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, + 1215, 57, 1437, 113, 113, 113, 645, 632, 490, 726, + 964, 965, 845, 727, 1075, 1076, 1388, 992, 865, 1316, + 1047, 1311, 643, 642, 71, 1230, 1054, 861, 856, 855, + 517, 24, 57, 80, 1447, 986, 874, 873, 872, 644, + 887, 608, 1416, 1418, 1449, 1367, 1368, 1417, 111, 57, + 195, 1080, 1414, 909, 724, 1000, 1413, 1415, 1412, 1114, + 1512, 921, 1085, 1086, 1498, 870, 1083, 1091, 1118, 886, + 358, 359, 1484, 983, 523, 982, 195, 1107, 1108, 457, + 1336, 871, 1185, 1184, 1077, 51, 381, 521, 544, 528, + 806, 1113, 1161, 1115, 352, 195, 889, 195, 1129, 610, + 361, 1371, 1130, 1122, 1107, 885, 458, 355, 356, 523, + 113, 1297, 1228, 1141, 1142, 1143, 1060, 1059, 1147, 195, + 72, 1046, 1508, 1153, 922, 1154, 1155, 1156, 1157, 1314, + 1497, 1496, 1108, 1313, 349, 1495, 1407, 1139, 733, 1315, + 391, 391, 1136, 1164, 1165, 1166, 546, 1172, 545, 350, + 61, 1150, 882, 880, 876, 84, 879, 881, 1182, 1183, + 1177, 959, 1406, 981, 1123, 1124, 1125, 1358, 1191, 1192, + 1223, 980, 737, 1181, 612, 1173, 1162, 363, 1170, 1169, + 1379, 1062, 640, 734, 63, 376, 437, 6, 435, 5, + 436, 4, 65, 58, 1225, 1, 382, 884, 1227, 1430, + 868, 867, 818, 817, 1494, 1178, 1179, 73, 1485, 1462, + 1464, 1469, 1441, 1131, 1438, 1440, 757, 1112, 756, 387, + 883, 808, 113, 824, 1116, 823, 822, 1241, 1242, 1148, + 391, 1229, 113, 820, 1072, 842, 1327, 199, 829, 1231, + 828, 751, 782, 781, 780, 779, 778, 777, 776, 775, + 1256, 1257, 774, 773, 772, 770, 769, 768, 767, 766, + 765, 764, 763, 759, 762, 761, 381, 1243, 1244, 1245, + 1384, 381, 760, 827, 1252, 1250, 1255, 1254, 825, 821, + 553, 878, 1258, 1263, 551, 552, 550, 957, 1152, 1269, + 1259, 113, 888, 555, 554, 549, 1265, 1264, 381, 381, + 990, 959, 1370, 1268, 1267, 1374, 1282, 1281, 877, 632, + 1133, 86, 1100, 331, 1298, 1171, 1288, 1092, 1289, 875, + 41, 82, 1136, 674, 979, 376, 1055, 376, 374, 1003, + 1305, 1306, 1284, 742, 740, 365, 364, 993, 713, 515, + 1295, 1307, 1308, 991, 1405, 1304, 1301, 1357, 1149, 696, + 195, 968, 468, 912, 1302, 1303, 479, 476, 478, 477, + 1294, 719, 725, 648, 460, 1422, 1261, 1262, 1293, 890, + 195, 193, 195, 429, 381, 381, 381, 94, 93, 1334, + 1335, 411, 1225, 1317, 525, 1318, 1362, 1360, 655, 654, + 664, 665, 657, 658, 659, 660, 661, 662, 663, 656, + 1292, 1159, 666, 1337, 1338, 611, 195, 195, 1354, 1442, + 723, 826, 27, 62, 360, 195, 614, 14, 23, 15, + 1341, 13, 1342, 195, 12, 31, 113, 113, 1346, 1127, + 1333, 1333, 1333, 1351, 1352, 10, 990, 9, 8, 7, + 351, 25, 381, 1380, 2, 21, 1386, 381, 22, 624, + 20, 1387, 19, 18, 1300, 17, 1343, 1344, 16, 1345, + 11, 810, 1347, 1353, 1349, 811, 1312, 0, 0, 1286, + 0, 381, 1225, 1389, 0, 1373, 0, 0, 0, 991, + 0, 51, 0, 1393, 0, 1383, 1396, 1397, 0, 1269, + 113, 113, 113, 113, 0, 1294, 0, 0, 1333, 1339, + 0, 113, 0, 1333, 113, 0, 1403, 113, 1409, 1408, + 1411, 1410, 1400, 381, 1419, 0, 0, 0, 1395, 381, + 1427, 733, 1426, 1436, 1421, 381, 0, 376, 0, 0, + 0, 0, 0, 1428, 1439, 195, 0, 735, 0, 1295, + 1295, 1295, 1295, 0, 0, 0, 1446, 0, 0, 0, + 0, 0, 0, 1373, 0, 0, 0, 0, 0, 1294, + 1294, 1294, 1294, 0, 0, 0, 734, 1458, 381, 1429, + 0, 0, 1460, 1294, 1461, 1333, 1468, 1472, 1470, 1473, + 0, 1333, 1455, 688, 0, 0, 0, 0, 1483, 1381, + 0, 1490, 1402, 0, 1474, 1296, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1356, 0, 0, 1492, 0, + 0, 381, 381, 381, 1503, 1504, 195, 195, 0, 0, + 0, 0, 0, 1509, 1333, 900, 195, 0, 0, 1506, + 0, 1480, 1481, 1482, 0, 0, 0, 192, 0, 0, + 0, 191, 1517, 195, 0, 381, 0, 0, 0, 0, + 0, 0, 0, 1513, 0, 1515, 1516, 0, 0, 0, + 570, 961, 0, 362, 0, 0, 0, 1502, 1502, 1502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 403, 0, 404, 445, 334, 0, 336, 337, + 0, 345, 346, 0, 0, 956, 624, 0, 0, 956, + 956, 1521, 0, 956, 0, 0, 428, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 956, 956, 956, + 956, 0, 0, 0, 1445, 632, 0, 0, 1260, 0, + 0, 0, 956, 408, 409, 735, 558, 417, 418, 419, + 0, 421, 422, 423, 424, 425, 426, 427, 655, 654, + 664, 665, 657, 658, 659, 660, 661, 662, 663, 656, + 0, 571, 666, 0, 0, 1478, 1479, 584, 587, 588, + 589, 590, 591, 592, 0, 593, 594, 595, 596, 597, + 572, 573, 574, 575, 556, 557, 585, 0, 559, 0, + 0, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 1128, 836, 835, 0, 0, 0, 0, 0, 0, 0, + 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 655, 654, 664, 665, 657, 658, 659, 660, 661, 662, + 663, 656, 0, 838, 666, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 837, 830, 0, 0, + 0, 0, 0, 831, 655, 654, 664, 665, 657, 658, + 659, 660, 661, 662, 663, 656, 0, 586, 666, 0, + 0, 195, 195, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 839, 0, 0, 0, + 0, 650, 0, 653, 0, 0, 0, 0, 0, 667, + 668, 669, 670, 671, 672, 673, 834, 651, 652, 649, + 655, 654, 664, 665, 657, 658, 659, 660, 661, 662, + 663, 656, 0, 0, 666, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 548, 0, 0, 0, 1470, 1471, 831, 911, - 0, 0, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 561, 826, 0, - 0, 722, 574, 577, 578, 579, 580, 581, 582, 0, - 583, 584, 585, 586, 587, 562, 563, 564, 565, 546, - 547, 575, 0, 549, 0, 0, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 566, 567, 568, 569, - 570, 571, 572, 573, 0, 0, 0, 0, 0, 0, - 0, 0, 825, 0, 0, 0, 0, 0, 0, 833, - 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 527, 0, 529, + 956, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 833, 0, 0, 0, 0, 956, 443, 841, 0, + 0, 840, 447, 0, 449, 450, 0, 0, 195, 0, + 0, 0, 0, 605, 606, 0, 0, 0, 0, 0, + 0, 0, 613, 0, 0, 735, 0, 624, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 883, 884, 0, 0, 0, 0, 0, 0, - 0, 0, 893, 0, 0, 193, 193, 193, 0, 0, - 0, 0, 0, 0, 0, 642, 0, 645, 0, 0, - 0, 900, 576, 659, 660, 661, 662, 663, 664, 665, - 0, 643, 644, 641, 647, 646, 656, 657, 649, 650, - 651, 652, 653, 654, 655, 648, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 948, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, - 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, - 0, 113, 0, 0, 0, 139, 0, 143, 146, 147, - 0, 0, 0, 0, 0, 0, 1115, 1116, 1117, 943, - 0, 454, 0, 0, 129, 453, 0, 0, 0, 0, - 490, 149, 0, 0, 167, 152, 0, 0, 0, 0, - 483, 484, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 503, 471, 470, 472, 473, 474, 475, 0, - 0, 119, 476, 477, 478, 0, 0, 0, 451, 464, - 0, 489, 0, 0, 193, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, - 0, 461, 462, 946, 0, 0, 0, 501, 0, 463, - 0, 0, 460, 465, 0, 0, 0, 0, 0, 1079, - 1080, 1081, 0, 0, 0, 948, 180, 0, 0, 499, - 0, 614, 948, 0, 0, 0, 0, 123, 0, 165, - 0, 178, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 137, 193, 0, 174, 175, 124, 181, 0, - 0, 116, 0, 0, 158, 0, 173, 0, 0, 0, - 0, 0, 0, 0, 145, 131, 140, 162, 150, 163, - 141, 156, 155, 157, 0, 0, 0, 168, 0, 0, - 136, 130, 172, 127, 153, 120, 114, 0, 121, 122, - 126, 125, 0, 144, 151, 154, 160, 161, 166, 0, + 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 629, 0, 630, 0, 633, 0, + 0, 0, 0, 637, 638, 639, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1150, 0, 1253, 1254, - 0, 0, 171, 0, 135, 491, 497, 500, 0, 498, - 495, 496, 494, 493, 492, 502, 485, 486, 488, 0, - 487, 112, 117, 148, 0, 164, 133, 179, 138, 177, - 176, 134, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 169, 0, 170, 0, 0, 0, - 142, 0, 0, 0, 0, 0, 0, 0, 193, 1369, - 0, 0, 0, 182, 183, 185, 184, 186, 118, 187, - 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 956, 0, 0, 0, 0, 0, 624, 956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 161, 0, 115, 0, 195, + 0, 141, 0, 145, 148, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, + 131, 0, 0, 0, 0, 0, 0, 151, 0, 0, + 169, 154, 0, 891, 892, 0, 0, 0, 0, 0, + 0, 0, 0, 901, 0, 0, 0, 0, 380, 0, + 1137, 0, 0, 0, 0, 0, 0, 121, 0, 0, + 908, 0, 643, 642, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, + 0, 0, 0, 0, 0, 895, 896, 0, 0, 0, + 0, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1245, 0, - 0, 0, 193, 193, 193, 193, 0, 0, 0, 0, - 0, 1331, 0, 1412, 0, 0, 193, 0, 0, 1369, - 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 355, 339, 297, 358, 273, 288, 370, 290, 291, - 327, 256, 307, 159, 286, 113, 0, 257, 0, 139, - 0, 143, 146, 147, 0, 336, 0, 0, 0, 347, - 356, 304, 0, 276, 249, 283, 250, 301, 129, 272, - 341, 310, 289, 0, 364, 149, 319, 0, 167, 152, - 0, 0, 303, 344, 305, 337, 296, 328, 265, 318, - 359, 287, 324, 0, 0, 0, 246, 0, 0, 0, - 0, 0, 0, 0, 1394, 119, 321, 353, 285, 323, - 326, 248, 320, 0, 252, 258, 369, 351, 279, 280, - 0, 0, 0, 0, 0, 0, 0, 302, 306, 333, - 294, 0, 0, 0, 0, 0, 0, 0, 0, 277, - 0, 317, 0, 0, 0, 260, 254, 300, 0, 0, - 0, 264, 0, 278, 334, 0, 0, 0, 345, 295, - 180, 352, 293, 292, 360, 330, 0, 274, 275, 284, - 342, 123, 282, 165, 325, 178, 115, 349, 343, 315, - 298, 299, 253, 0, 332, 128, 137, 271, 322, 174, - 175, 124, 181, 259, 366, 116, 245, 365, 158, 244, - 173, 350, 316, 312, 255, 348, 314, 311, 145, 131, - 140, 162, 150, 163, 141, 156, 155, 157, 0, 251, - 0, 168, 357, 371, 136, 130, 172, 127, 153, 120, - 114, 262, 121, 122, 126, 125, 0, 144, 151, 154, - 160, 161, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 346, 0, 0, 0, 0, 0, 171, 261, 135, 268, - 266, 269, 338, 267, 308, 309, 361, 362, 363, 335, - 263, 0, 0, 340, 313, 112, 117, 148, 368, 164, - 133, 179, 138, 177, 176, 134, 0, 0, 0, 0, - 0, 281, 367, 331, 329, 354, 0, 132, 169, 0, - 170, 233, 0, 0, 238, 236, 237, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 185, - 184, 186, 118, 187, 188, 355, 339, 297, 358, 273, - 288, 370, 290, 291, 327, 256, 307, 159, 286, 113, - 0, 257, 0, 139, 0, 143, 146, 147, 0, 336, - 0, 0, 0, 347, 356, 304, 0, 276, 249, 283, - 250, 301, 129, 272, 341, 310, 289, 0, 364, 149, - 319, 0, 167, 152, 0, 0, 303, 344, 305, 337, - 296, 328, 265, 318, 359, 287, 324, 0, 0, 0, - 246, 0, 0, 0, 0, 0, 0, 0, 0, 119, - 321, 353, 285, 323, 326, 248, 320, 0, 252, 258, - 369, 351, 279, 280, 0, 0, 0, 0, 0, 0, - 0, 302, 306, 333, 294, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 0, 317, 0, 0, 0, 260, - 254, 300, 0, 0, 0, 264, 0, 278, 334, 0, - 0, 0, 345, 295, 180, 352, 293, 292, 360, 330, - 0, 274, 275, 284, 342, 123, 282, 165, 325, 178, - 115, 349, 343, 315, 298, 299, 253, 0, 332, 128, - 137, 271, 322, 174, 175, 124, 181, 259, 366, 116, - 245, 365, 158, 244, 173, 350, 316, 312, 255, 348, - 314, 311, 145, 131, 140, 162, 150, 163, 141, 156, - 155, 157, 0, 251, 0, 168, 357, 371, 136, 130, - 172, 127, 153, 120, 114, 262, 121, 122, 126, 125, - 0, 144, 151, 154, 160, 161, 166, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 167, 180, 0, 117, + 0, 0, 0, 0, 195, 1377, 0, 0, 130, 139, + 0, 0, 176, 177, 126, 183, 0, 0, 118, 0, + 0, 160, 0, 175, 0, 0, 0, 0, 0, 0, + 0, 147, 133, 142, 164, 152, 165, 143, 158, 157, + 159, 0, 0, 0, 170, 0, 0, 138, 132, 174, + 129, 155, 122, 116, 0, 123, 124, 128, 127, 0, + 146, 153, 156, 162, 163, 168, 0, 0, 195, 195, + 195, 195, 0, 0, 0, 0, 0, 0, 0, 1420, + 0, 0, 195, 0, 0, 1377, 0, 0, 735, 173, + 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 119, + 150, 0, 166, 135, 181, 140, 179, 178, 136, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1087, 1088, + 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 270, 346, 0, 0, 0, 0, 0, - 171, 261, 135, 268, 266, 269, 338, 267, 308, 309, - 361, 362, 363, 335, 263, 0, 0, 340, 313, 112, - 117, 148, 368, 164, 133, 179, 138, 177, 176, 134, - 0, 0, 0, 0, 0, 281, 367, 331, 329, 354, - 0, 132, 169, 0, 170, 0, 0, 0, 238, 236, - 237, 241, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 185, 184, 186, 118, 187, 188, 355, - 339, 297, 358, 273, 288, 370, 290, 291, 327, 256, - 307, 159, 286, 113, 0, 257, 0, 139, 0, 143, - 146, 147, 0, 336, 0, 0, 0, 347, 356, 304, - 0, 276, 249, 283, 250, 301, 129, 272, 341, 310, - 289, 0, 364, 149, 319, 0, 167, 152, 0, 0, - 303, 344, 305, 337, 296, 328, 265, 318, 359, 287, - 324, 0, 0, 0, 246, 0, 0, 0, 0, 0, - 0, 0, 0, 119, 321, 353, 285, 323, 326, 248, - 320, 0, 252, 258, 369, 351, 279, 280, 0, 0, - 0, 0, 0, 0, 0, 302, 306, 333, 294, 0, - 0, 0, 0, 0, 0, 0, 0, 277, 0, 317, - 0, 0, 0, 260, 254, 300, 0, 0, 0, 264, - 0, 278, 334, 0, 0, 0, 345, 295, 180, 352, - 293, 292, 360, 330, 0, 274, 275, 284, 342, 123, - 282, 165, 325, 178, 115, 349, 343, 315, 298, 299, - 253, 0, 332, 128, 137, 271, 322, 174, 175, 124, - 181, 259, 366, 116, 245, 365, 158, 244, 173, 350, - 316, 312, 255, 348, 314, 311, 145, 131, 140, 162, - 150, 163, 141, 156, 155, 157, 0, 251, 0, 168, - 357, 371, 136, 130, 172, 127, 153, 120, 114, 262, - 121, 122, 126, 125, 0, 144, 151, 154, 160, 161, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 270, 346, 0, - 0, 0, 0, 0, 171, 261, 135, 268, 266, 269, - 338, 267, 308, 309, 361, 362, 363, 335, 263, 0, - 0, 340, 313, 112, 117, 148, 368, 164, 133, 179, - 138, 177, 176, 134, 0, 0, 0, 0, 0, 281, - 367, 331, 329, 354, 0, 132, 169, 0, 170, 527, - 0, 0, 142, 0, 0, 241, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 185, 184, 186, - 118, 187, 188, 355, 339, 297, 358, 273, 288, 370, - 290, 291, 327, 256, 307, 159, 286, 113, 0, 257, - 0, 139, 0, 143, 146, 147, 0, 336, 0, 0, - 0, 347, 356, 304, 0, 276, 249, 283, 250, 301, - 129, 272, 341, 310, 289, 0, 364, 149, 319, 0, - 167, 152, 0, 0, 303, 344, 305, 337, 296, 328, - 265, 318, 359, 287, 324, 0, 0, 0, 246, 0, - 0, 0, 0, 0, 0, 0, 0, 119, 321, 353, - 285, 323, 326, 248, 320, 0, 252, 258, 369, 351, - 279, 280, 0, 0, 0, 0, 0, 0, 0, 302, - 306, 333, 294, 0, 0, 0, 0, 0, 0, 1391, - 0, 277, 0, 317, 0, 0, 0, 260, 254, 300, - 0, 0, 0, 264, 0, 278, 334, 0, 0, 0, - 345, 295, 180, 352, 293, 292, 360, 330, 0, 274, - 275, 284, 342, 123, 282, 165, 325, 178, 115, 349, - 343, 315, 298, 299, 253, 0, 332, 128, 137, 271, - 322, 174, 175, 124, 181, 259, 366, 116, 616, 365, - 158, 617, 173, 350, 316, 312, 255, 348, 314, 311, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 251, 0, 168, 357, 371, 136, 130, 172, 127, - 153, 120, 114, 262, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 270, 346, 0, 0, 0, 0, 0, 171, 261, - 135, 268, 266, 269, 338, 267, 308, 309, 361, 362, - 363, 335, 263, 0, 0, 340, 313, 112, 117, 148, - 368, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 281, 367, 331, 329, 354, 0, 132, - 169, 0, 170, 0, 0, 0, 142, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 355, 339, 297, - 358, 273, 288, 370, 290, 291, 327, 256, 307, 159, - 286, 113, 0, 257, 0, 139, 0, 143, 146, 147, - 0, 336, 0, 0, 0, 347, 356, 304, 0, 276, - 249, 283, 250, 301, 129, 272, 341, 310, 289, 0, - 364, 149, 319, 0, 167, 152, 0, 0, 303, 344, - 305, 337, 296, 328, 265, 318, 359, 287, 324, 0, - 0, 0, 503, 0, 0, 0, 0, 0, 0, 0, - 0, 119, 321, 353, 285, 323, 326, 248, 320, 0, - 252, 258, 369, 351, 279, 280, 0, 0, 0, 0, - 0, 0, 0, 302, 306, 333, 294, 0, 0, 0, - 0, 0, 0, 1258, 0, 277, 0, 317, 0, 0, - 0, 260, 254, 300, 0, 0, 0, 264, 0, 278, - 334, 0, 0, 0, 345, 295, 180, 352, 293, 292, - 360, 330, 0, 274, 275, 284, 342, 123, 282, 165, - 325, 178, 115, 349, 343, 315, 298, 299, 253, 0, - 332, 128, 137, 271, 322, 174, 175, 124, 181, 259, - 366, 116, 616, 365, 158, 617, 173, 350, 316, 312, - 255, 348, 314, 311, 145, 131, 140, 162, 150, 163, - 141, 156, 155, 157, 0, 251, 0, 168, 357, 371, - 136, 130, 172, 127, 153, 120, 114, 262, 121, 122, - 126, 125, 0, 144, 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 346, 0, 0, 0, - 0, 0, 171, 261, 135, 268, 266, 269, 338, 267, - 308, 309, 361, 362, 363, 335, 263, 0, 0, 340, - 313, 112, 117, 148, 368, 164, 133, 179, 138, 177, - 176, 134, 0, 0, 0, 0, 0, 281, 367, 331, - 329, 354, 0, 132, 169, 0, 170, 0, 0, 0, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 185, 184, 186, 118, 187, - 188, 355, 339, 297, 358, 273, 288, 370, 290, 291, - 327, 256, 307, 159, 286, 113, 0, 257, 0, 139, - 0, 143, 146, 147, 0, 336, 0, 0, 0, 347, - 356, 304, 0, 276, 249, 283, 250, 301, 129, 272, - 341, 310, 289, 0, 364, 149, 319, 0, 167, 152, - 0, 0, 303, 344, 305, 337, 296, 328, 265, 318, - 359, 287, 324, 0, 0, 0, 246, 0, 0, 0, - 0, 0, 0, 0, 0, 119, 321, 353, 285, 323, - 326, 248, 320, 0, 252, 258, 369, 351, 279, 280, - 0, 0, 0, 0, 0, 0, 0, 302, 306, 333, - 294, 0, 0, 0, 0, 0, 0, 0, 0, 277, - 0, 317, 0, 0, 0, 260, 254, 300, 0, 0, - 0, 264, 0, 278, 334, 0, 0, 0, 345, 295, - 180, 352, 293, 292, 360, 330, 0, 274, 275, 284, - 342, 123, 282, 165, 325, 178, 115, 349, 343, 315, - 298, 299, 253, 0, 332, 128, 137, 271, 322, 174, - 175, 124, 181, 259, 366, 116, 245, 365, 158, 244, - 173, 350, 316, 312, 255, 348, 314, 311, 145, 131, - 140, 162, 150, 163, 141, 156, 155, 157, 0, 251, - 0, 168, 357, 371, 136, 130, 172, 127, 153, 120, - 114, 262, 121, 122, 126, 125, 0, 144, 151, 154, - 160, 161, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 346, 0, 0, 0, 0, 0, 171, 261, 135, 268, - 266, 269, 338, 267, 308, 309, 361, 362, 363, 335, - 263, 0, 0, 340, 313, 112, 117, 148, 368, 164, - 133, 179, 138, 177, 176, 134, 0, 0, 0, 0, - 0, 281, 367, 331, 329, 354, 0, 132, 169, 0, - 170, 0, 0, 0, 142, 0, 0, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 185, - 184, 186, 118, 187, 188, 355, 339, 297, 358, 273, - 288, 370, 290, 291, 327, 256, 307, 159, 286, 113, - 0, 257, 0, 139, 0, 143, 146, 147, 0, 336, - 0, 0, 0, 347, 356, 304, 0, 276, 249, 283, - 250, 301, 129, 272, 341, 310, 289, 0, 364, 149, - 319, 0, 167, 152, 0, 0, 303, 344, 305, 337, - 296, 328, 265, 318, 359, 287, 324, 0, 0, 0, - 246, 0, 0, 0, 0, 0, 0, 0, 0, 119, - 321, 353, 285, 323, 326, 248, 320, 0, 252, 258, - 369, 351, 279, 280, 0, 0, 0, 0, 0, 0, - 0, 302, 306, 333, 294, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 0, 317, 0, 0, 0, 260, - 254, 300, 0, 0, 0, 264, 0, 278, 334, 0, - 0, 0, 345, 295, 180, 352, 293, 292, 360, 330, - 0, 274, 275, 284, 342, 123, 282, 165, 325, 178, - 115, 349, 343, 315, 298, 299, 253, 0, 332, 128, - 137, 271, 322, 174, 175, 124, 181, 259, 366, 116, - 616, 365, 158, 617, 173, 350, 316, 312, 255, 348, - 314, 311, 145, 131, 140, 162, 150, 163, 141, 156, - 155, 157, 0, 251, 0, 168, 357, 371, 136, 130, - 172, 127, 153, 120, 114, 262, 121, 122, 126, 125, - 0, 144, 151, 154, 160, 161, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 270, 346, 0, 0, 0, 0, 0, - 171, 261, 135, 268, 266, 269, 338, 267, 308, 309, - 361, 362, 363, 335, 263, 0, 0, 340, 313, 112, - 117, 148, 368, 164, 133, 179, 138, 177, 176, 134, - 0, 0, 0, 0, 0, 281, 367, 331, 329, 354, - 0, 132, 169, 0, 170, 0, 0, 0, 142, 0, + 0, 0, 0, 0, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 185, 184, 186, 118, 187, 188, 355, - 339, 297, 358, 273, 288, 370, 290, 291, 327, 256, - 307, 159, 286, 113, 0, 257, 0, 139, 0, 143, - 146, 147, 0, 336, 0, 0, 0, 347, 356, 304, - 0, 276, 249, 283, 250, 301, 129, 272, 341, 310, - 289, 0, 364, 149, 319, 0, 167, 152, 0, 0, - 303, 344, 305, 337, 296, 328, 265, 318, 359, 287, - 324, 0, 0, 0, 503, 0, 0, 0, 0, 0, - 0, 0, 0, 119, 321, 353, 285, 323, 326, 248, - 320, 0, 252, 258, 369, 351, 279, 280, 0, 0, - 0, 0, 0, 0, 0, 302, 306, 333, 294, 0, - 0, 0, 0, 0, 0, 0, 0, 277, 0, 317, - 0, 0, 0, 260, 254, 300, 0, 0, 0, 264, - 0, 278, 334, 0, 0, 0, 345, 295, 180, 352, - 293, 292, 360, 330, 0, 274, 275, 284, 342, 123, - 282, 165, 325, 178, 115, 349, 343, 315, 298, 299, - 253, 0, 332, 128, 137, 271, 322, 174, 175, 124, - 181, 259, 366, 116, 616, 365, 158, 617, 173, 350, - 316, 312, 255, 348, 314, 311, 145, 131, 140, 162, - 150, 163, 141, 156, 155, 157, 0, 251, 0, 168, - 357, 371, 136, 130, 172, 127, 153, 120, 114, 262, - 121, 122, 126, 125, 0, 144, 151, 154, 160, 161, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 270, 346, 0, - 0, 0, 0, 0, 171, 261, 135, 268, 266, 269, - 338, 267, 308, 309, 361, 362, 363, 335, 263, 0, - 0, 340, 313, 112, 117, 148, 368, 164, 133, 179, - 138, 177, 176, 134, 0, 0, 0, 0, 0, 281, - 367, 331, 329, 354, 0, 132, 169, 0, 170, 0, - 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 185, 184, 186, - 118, 187, 188, 355, 339, 297, 358, 273, 288, 370, - 290, 291, 327, 256, 307, 159, 286, 113, 0, 257, - 0, 139, 0, 143, 146, 147, 0, 336, 0, 0, - 0, 347, 356, 304, 0, 276, 249, 283, 250, 301, - 129, 272, 341, 310, 289, 0, 364, 149, 319, 0, - 167, 152, 0, 0, 303, 344, 305, 337, 296, 328, - 265, 318, 359, 287, 324, 0, 0, 0, 110, 0, - 0, 0, 0, 0, 0, 0, 0, 119, 321, 353, - 285, 323, 326, 248, 320, 0, 252, 258, 369, 351, - 279, 280, 0, 0, 0, 0, 0, 0, 0, 302, - 306, 333, 294, 0, 0, 0, 0, 0, 0, 0, - 0, 277, 0, 317, 0, 0, 0, 260, 254, 300, - 0, 0, 0, 264, 0, 278, 334, 0, 0, 0, - 345, 295, 180, 352, 293, 292, 360, 330, 0, 274, - 275, 284, 342, 123, 282, 165, 325, 178, 115, 349, - 343, 315, 298, 299, 253, 0, 332, 128, 137, 271, - 322, 174, 175, 124, 181, 259, 366, 116, 616, 365, - 158, 617, 173, 350, 316, 312, 255, 348, 314, 311, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 251, 0, 168, 357, 371, 136, 130, 172, 127, - 153, 120, 114, 262, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, + 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 270, 346, 0, 0, 0, 0, 0, 171, 261, - 135, 268, 266, 269, 338, 267, 308, 309, 361, 362, - 363, 335, 263, 0, 0, 340, 313, 112, 117, 148, - 368, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 281, 367, 331, 329, 354, 0, 132, - 169, 0, 170, 0, 0, 159, 142, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 454, 0, 0, - 129, 453, 0, 0, 0, 0, 490, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 483, 484, 0, 0, - 0, 0, 0, 0, 740, 55, 0, 0, 503, 471, - 470, 472, 473, 474, 475, 0, 0, 119, 476, 477, - 478, 741, 0, 0, 451, 464, 0, 489, 0, 0, + 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 461, 462, 0, - 0, 0, 0, 501, 0, 463, 0, 0, 460, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 491, 497, 500, 0, 498, 495, 496, 494, 493, - 492, 502, 485, 486, 488, 0, 487, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 169, 0, 170, 0, 0, 159, 142, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 454, 0, 0, - 129, 453, 0, 0, 0, 0, 490, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 483, 484, 0, 0, - 0, 0, 0, 0, 0, 55, 0, 0, 503, 471, - 470, 472, 473, 474, 475, 0, 0, 119, 476, 477, - 478, 0, 0, 0, 451, 464, 0, 489, 0, 0, + 0, 0, 0, 0, 0, 314, 298, 256, 317, 231, + 246, 329, 248, 249, 286, 212, 266, 161, 244, 115, + 0, 213, 0, 141, 0, 145, 148, 149, 0, 295, + 0, 0, 0, 306, 315, 263, 0, 234, 205, 241, + 206, 260, 131, 230, 300, 269, 247, 0, 323, 151, + 278, 0, 169, 154, 0, 0, 262, 303, 264, 296, + 255, 287, 223, 277, 318, 245, 283, 0, 0, 0, + 380, 0, 0, 0, 0, 0, 0, 1246, 0, 121, + 280, 312, 243, 282, 285, 204, 279, 1253, 208, 214, + 328, 310, 237, 238, 0, 0, 0, 0, 0, 0, + 0, 261, 265, 292, 253, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 276, 0, 0, 0, 218, + 210, 259, 0, 0, 1247, 222, 0, 236, 293, 0, + 0, 0, 304, 254, 182, 311, 252, 251, 319, 289, + 0, 232, 233, 242, 301, 125, 240, 250, 167, 180, + 284, 117, 308, 302, 274, 257, 258, 209, 0, 291, + 130, 139, 229, 281, 176, 177, 126, 183, 215, 325, + 118, 379, 324, 160, 378, 175, 309, 275, 271, 211, + 307, 273, 270, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 207, 0, 170, 316, 330, 138, + 132, 174, 129, 155, 122, 116, 220, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 461, 462, 946, - 0, 0, 0, 501, 0, 463, 0, 0, 460, 465, + 0, 0, 0, 0, 228, 305, 0, 0, 0, 0, + 0, 173, 219, 137, 226, 224, 227, 297, 225, 267, + 268, 320, 321, 322, 294, 221, 0, 0, 299, 272, + 114, 119, 150, 327, 166, 135, 181, 140, 179, 178, + 136, 0, 0, 0, 0, 0, 239, 326, 290, 288, + 313, 0, 134, 171, 0, 172, 367, 0, 0, 372, + 370, 371, 375, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 314, 298, 256, 317, 231, 246, 329, 248, 249, 286, + 212, 266, 161, 244, 115, 0, 213, 0, 141, 0, + 145, 148, 149, 0, 295, 0, 0, 0, 306, 315, + 263, 0, 234, 205, 241, 206, 260, 131, 230, 300, + 269, 247, 0, 323, 151, 278, 0, 169, 154, 0, + 0, 262, 303, 264, 296, 255, 287, 223, 277, 318, + 245, 283, 0, 0, 0, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 280, 312, 243, 282, 285, + 204, 279, 0, 208, 214, 328, 310, 237, 238, 0, + 0, 0, 0, 0, 0, 0, 261, 265, 292, 253, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 276, 0, 0, 0, 218, 210, 259, 0, 0, 0, + 222, 0, 236, 293, 0, 0, 0, 304, 254, 182, + 311, 252, 251, 319, 289, 0, 232, 233, 242, 301, + 125, 240, 250, 167, 180, 284, 117, 308, 302, 274, + 257, 258, 209, 0, 291, 130, 139, 229, 281, 176, + 177, 126, 183, 215, 325, 118, 379, 324, 160, 378, + 175, 309, 275, 271, 211, 307, 273, 270, 147, 133, + 142, 164, 152, 165, 143, 158, 157, 159, 0, 207, + 0, 170, 316, 330, 138, 132, 174, 129, 155, 122, + 116, 220, 123, 124, 128, 127, 0, 146, 153, 156, + 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 305, 0, 0, 0, 0, 0, 173, 219, 137, 226, + 224, 227, 297, 225, 267, 268, 320, 321, 322, 294, + 221, 0, 0, 299, 272, 114, 119, 150, 327, 166, + 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, + 0, 239, 326, 290, 288, 313, 0, 134, 171, 0, + 172, 0, 0, 0, 372, 370, 371, 375, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 185, 187, + 186, 188, 120, 189, 190, 314, 298, 256, 317, 231, + 246, 329, 248, 249, 286, 212, 266, 161, 244, 115, + 0, 213, 0, 141, 0, 145, 148, 149, 0, 295, + 0, 0, 0, 306, 315, 263, 0, 234, 205, 241, + 206, 260, 131, 230, 300, 269, 247, 0, 323, 151, + 278, 0, 169, 154, 0, 0, 262, 303, 264, 296, + 255, 287, 223, 277, 318, 245, 283, 0, 0, 0, + 380, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 280, 312, 243, 282, 285, 204, 279, 0, 208, 214, + 328, 310, 237, 238, 0, 0, 0, 0, 0, 0, + 0, 261, 265, 292, 253, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 276, 0, 0, 0, 218, + 210, 259, 0, 0, 0, 222, 0, 236, 293, 0, + 0, 0, 304, 254, 182, 311, 252, 251, 319, 289, + 0, 232, 233, 242, 301, 125, 240, 250, 167, 180, + 284, 117, 308, 302, 274, 257, 258, 209, 0, 291, + 130, 139, 229, 281, 176, 177, 126, 183, 215, 325, + 118, 379, 324, 160, 378, 175, 309, 275, 271, 211, + 307, 273, 270, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 207, 0, 170, 316, 330, 138, + 132, 174, 129, 155, 122, 116, 220, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 305, 0, 0, 0, 0, + 0, 173, 219, 137, 226, 224, 227, 297, 225, 267, + 268, 320, 321, 322, 294, 221, 0, 0, 299, 272, + 114, 119, 150, 327, 166, 135, 181, 140, 179, 178, + 136, 0, 0, 0, 0, 0, 239, 326, 290, 288, + 313, 0, 134, 171, 0, 172, 537, 0, 0, 144, + 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 314, 298, 256, 317, 231, 246, 329, 248, 249, 286, + 212, 266, 161, 244, 115, 0, 213, 0, 141, 0, + 145, 148, 149, 0, 295, 0, 0, 0, 306, 315, + 263, 0, 234, 205, 241, 206, 260, 131, 230, 300, + 269, 247, 0, 323, 151, 278, 0, 169, 154, 0, + 0, 262, 303, 264, 296, 255, 287, 223, 277, 318, + 245, 283, 0, 0, 0, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 280, 312, 243, 282, 285, + 204, 279, 0, 208, 214, 328, 310, 237, 238, 0, + 0, 0, 0, 0, 0, 0, 261, 265, 292, 253, + 0, 0, 0, 0, 0, 0, 1399, 0, 235, 0, + 276, 0, 0, 0, 218, 210, 259, 0, 0, 0, + 222, 0, 236, 293, 0, 0, 0, 304, 254, 182, + 311, 252, 251, 319, 289, 0, 232, 233, 242, 301, + 125, 240, 250, 167, 180, 284, 117, 308, 302, 274, + 257, 258, 209, 0, 291, 130, 139, 229, 281, 176, + 177, 126, 183, 215, 325, 118, 216, 324, 160, 217, + 175, 309, 275, 271, 211, 307, 273, 270, 147, 133, + 142, 164, 152, 165, 143, 158, 157, 159, 0, 207, + 0, 170, 316, 330, 138, 132, 174, 129, 155, 122, + 116, 220, 123, 124, 128, 127, 0, 146, 153, 156, + 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 305, 0, 0, 0, 0, 0, 173, 219, 137, 226, + 224, 227, 297, 225, 267, 268, 320, 321, 322, 294, + 221, 0, 0, 299, 272, 114, 119, 150, 327, 166, + 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, + 0, 239, 326, 290, 288, 313, 0, 134, 171, 0, + 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 185, 187, + 186, 188, 120, 189, 190, 314, 298, 256, 317, 231, + 246, 329, 248, 249, 286, 212, 266, 161, 244, 115, + 0, 213, 0, 141, 0, 145, 148, 149, 0, 295, + 0, 0, 0, 306, 315, 263, 0, 234, 205, 241, + 206, 260, 131, 230, 300, 269, 247, 0, 323, 151, + 278, 0, 169, 154, 0, 0, 262, 303, 264, 296, + 255, 287, 223, 277, 318, 245, 283, 0, 0, 0, + 513, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 280, 312, 243, 282, 285, 204, 279, 0, 208, 214, + 328, 310, 237, 238, 0, 0, 0, 0, 0, 0, + 0, 261, 265, 292, 253, 0, 0, 0, 0, 0, + 0, 1266, 0, 235, 0, 276, 0, 0, 0, 218, + 210, 259, 0, 0, 0, 222, 0, 236, 293, 0, + 0, 0, 304, 254, 182, 311, 252, 251, 319, 289, + 0, 232, 233, 242, 301, 125, 240, 250, 167, 180, + 284, 117, 308, 302, 274, 257, 258, 209, 0, 291, + 130, 139, 229, 281, 176, 177, 126, 183, 215, 325, + 118, 216, 324, 160, 217, 175, 309, 275, 271, 211, + 307, 273, 270, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 207, 0, 170, 316, 330, 138, + 132, 174, 129, 155, 122, 116, 220, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 491, 497, 500, 0, 498, 495, 496, 494, 493, - 492, 502, 485, 486, 488, 0, 487, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 169, 0, 170, 0, 0, 159, 142, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 454, 0, 0, - 129, 453, 0, 0, 0, 0, 490, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 483, 484, 0, 0, - 0, 0, 0, 0, 0, 55, 0, 445, 503, 471, - 470, 472, 473, 474, 475, 0, 0, 119, 476, 477, - 478, 0, 0, 0, 451, 464, 0, 489, 0, 0, + 0, 0, 0, 0, 228, 305, 0, 0, 0, 0, + 0, 173, 219, 137, 226, 224, 227, 297, 225, 267, + 268, 320, 321, 322, 294, 221, 0, 0, 299, 272, + 114, 119, 150, 327, 166, 135, 181, 140, 179, 178, + 136, 0, 0, 0, 0, 0, 239, 326, 290, 288, + 313, 0, 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 461, 462, 0, - 0, 0, 0, 501, 0, 463, 0, 0, 460, 465, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 314, 298, 256, 317, 231, 246, 329, 248, 249, 286, + 212, 266, 161, 244, 115, 0, 213, 0, 141, 0, + 145, 148, 149, 0, 295, 0, 0, 0, 306, 315, + 263, 0, 234, 205, 241, 206, 260, 131, 230, 300, + 269, 247, 0, 323, 151, 278, 0, 169, 154, 0, + 0, 262, 303, 264, 296, 255, 287, 223, 277, 318, + 245, 283, 0, 0, 0, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 280, 312, 243, 282, 285, + 204, 279, 0, 208, 214, 328, 310, 237, 238, 0, + 0, 0, 0, 0, 0, 0, 261, 265, 292, 253, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 276, 0, 0, 0, 218, 210, 259, 0, 0, 0, + 222, 0, 236, 293, 0, 0, 0, 304, 254, 182, + 311, 252, 251, 319, 289, 0, 232, 233, 242, 301, + 125, 240, 250, 167, 180, 284, 117, 308, 302, 274, + 257, 258, 209, 0, 291, 130, 139, 229, 281, 176, + 177, 126, 183, 215, 325, 118, 379, 324, 160, 378, + 175, 309, 275, 271, 211, 307, 273, 270, 147, 133, + 142, 164, 152, 165, 143, 158, 157, 159, 0, 207, + 0, 170, 316, 330, 138, 132, 174, 129, 155, 122, + 116, 220, 123, 124, 128, 127, 0, 146, 153, 156, + 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 305, 0, 0, 0, 0, 0, 173, 219, 137, 226, + 224, 227, 297, 225, 267, 268, 320, 321, 322, 294, + 221, 0, 0, 299, 272, 114, 119, 150, 327, 166, + 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, + 0, 239, 326, 290, 288, 313, 0, 134, 171, 0, + 172, 0, 0, 0, 144, 0, 0, 375, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 185, 187, + 186, 188, 120, 189, 190, 314, 298, 256, 317, 231, + 246, 329, 248, 249, 286, 212, 266, 161, 244, 115, + 0, 213, 0, 141, 0, 145, 148, 149, 0, 295, + 0, 0, 0, 306, 315, 263, 0, 234, 205, 241, + 206, 260, 131, 230, 300, 269, 247, 0, 323, 151, + 278, 0, 169, 154, 0, 0, 262, 303, 264, 296, + 255, 287, 223, 277, 318, 245, 283, 0, 0, 0, + 200, 0, 201, 0, 0, 0, 0, 0, 0, 121, + 280, 312, 243, 282, 285, 204, 279, 0, 208, 214, + 328, 310, 237, 238, 0, 0, 0, 0, 0, 0, + 0, 261, 265, 292, 253, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 276, 0, 0, 0, 218, + 210, 259, 0, 0, 0, 222, 0, 236, 293, 0, + 0, 0, 304, 254, 182, 311, 252, 251, 319, 289, + 0, 232, 233, 242, 301, 125, 240, 250, 167, 180, + 284, 117, 308, 302, 274, 257, 258, 209, 0, 291, + 130, 139, 229, 281, 176, 177, 126, 183, 215, 325, + 118, 216, 324, 160, 217, 175, 309, 275, 271, 211, + 307, 273, 270, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 207, 0, 170, 316, 330, 138, + 132, 174, 129, 155, 122, 116, 220, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 305, 0, 0, 0, 0, + 0, 173, 219, 137, 226, 224, 227, 297, 225, 267, + 268, 320, 321, 322, 294, 221, 0, 0, 299, 272, + 114, 119, 150, 327, 166, 135, 181, 140, 179, 178, + 136, 0, 0, 0, 0, 0, 239, 326, 290, 288, + 313, 0, 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 491, 497, 500, 0, 498, 495, 496, 494, 493, - 492, 502, 485, 486, 488, 0, 487, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 132, - 169, 0, 170, 0, 0, 159, 142, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 454, 0, 0, - 129, 453, 0, 0, 0, 0, 490, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 483, 484, 0, 0, - 0, 0, 0, 0, 0, 55, 0, 0, 503, 471, - 470, 472, 473, 474, 475, 0, 0, 119, 476, 477, - 478, 0, 0, 0, 451, 464, 0, 489, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 314, 298, 256, 317, 231, 246, 329, 248, 249, 286, + 212, 266, 161, 244, 115, 0, 213, 0, 141, 0, + 145, 148, 149, 0, 295, 0, 0, 0, 306, 315, + 263, 0, 234, 205, 241, 206, 260, 131, 230, 300, + 269, 247, 0, 323, 151, 278, 0, 169, 154, 0, + 0, 262, 303, 264, 296, 255, 287, 223, 277, 318, + 245, 283, 0, 0, 0, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 280, 312, 243, 282, 285, + 204, 279, 0, 208, 214, 328, 310, 237, 238, 0, + 0, 0, 0, 0, 0, 0, 261, 265, 292, 253, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 276, 0, 0, 0, 218, 210, 259, 0, 0, 0, + 222, 0, 236, 293, 0, 0, 0, 304, 254, 182, + 311, 252, 251, 319, 289, 0, 232, 233, 242, 301, + 125, 240, 250, 167, 180, 284, 117, 308, 302, 274, + 257, 258, 209, 0, 291, 130, 139, 229, 281, 176, + 177, 126, 183, 215, 325, 118, 216, 324, 160, 217, + 175, 309, 275, 271, 211, 307, 273, 270, 147, 133, + 142, 164, 152, 165, 143, 158, 157, 159, 0, 207, + 0, 170, 316, 330, 138, 132, 174, 129, 155, 122, + 116, 220, 123, 124, 128, 127, 0, 146, 153, 156, + 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 305, 0, 0, 0, 0, 0, 173, 219, 137, 226, + 224, 227, 297, 225, 267, 268, 320, 321, 322, 294, + 221, 0, 0, 299, 272, 114, 119, 150, 327, 166, + 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, + 0, 239, 326, 290, 288, 313, 0, 134, 171, 0, + 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 185, 187, + 186, 188, 120, 189, 190, 314, 298, 256, 317, 231, + 246, 329, 248, 249, 286, 212, 266, 161, 244, 115, + 0, 213, 0, 141, 0, 145, 148, 149, 0, 295, + 0, 0, 0, 306, 315, 263, 0, 234, 205, 241, + 206, 260, 131, 230, 300, 269, 247, 0, 323, 151, + 278, 0, 169, 154, 0, 0, 262, 303, 264, 296, + 255, 287, 223, 277, 318, 245, 283, 0, 0, 0, + 513, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 280, 312, 243, 282, 285, 204, 279, 0, 208, 214, + 328, 310, 237, 238, 0, 0, 0, 0, 0, 0, + 0, 261, 265, 292, 253, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 276, 0, 0, 0, 218, + 210, 259, 0, 0, 0, 222, 0, 236, 293, 0, + 0, 0, 304, 254, 182, 311, 252, 251, 319, 289, + 0, 232, 233, 242, 301, 125, 240, 250, 167, 180, + 284, 117, 308, 302, 274, 257, 258, 209, 0, 291, + 130, 139, 229, 281, 176, 177, 126, 183, 215, 325, + 118, 216, 324, 160, 217, 175, 309, 275, 271, 211, + 307, 273, 270, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 207, 0, 170, 316, 330, 138, + 132, 174, 129, 155, 122, 116, 220, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 461, 462, 0, - 0, 0, 0, 501, 0, 463, 0, 0, 460, 465, + 0, 0, 0, 0, 228, 305, 0, 0, 0, 0, + 0, 173, 219, 137, 226, 224, 227, 297, 225, 267, + 268, 320, 321, 322, 294, 221, 0, 0, 299, 272, + 114, 119, 150, 327, 166, 135, 181, 140, 179, 178, + 136, 0, 0, 0, 0, 0, 239, 326, 290, 288, + 313, 0, 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 314, 298, 256, 317, 231, 246, 329, 248, 249, 286, + 212, 266, 161, 244, 115, 0, 213, 0, 141, 0, + 145, 148, 149, 0, 295, 0, 0, 0, 306, 315, + 263, 0, 234, 205, 241, 206, 260, 131, 230, 300, + 269, 247, 0, 323, 151, 278, 0, 169, 154, 0, + 0, 262, 303, 264, 296, 255, 287, 223, 277, 318, + 245, 283, 0, 0, 0, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 280, 312, 243, 282, 285, + 204, 279, 0, 208, 214, 328, 310, 237, 238, 0, + 0, 0, 0, 0, 0, 0, 261, 265, 292, 253, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 276, 0, 0, 0, 218, 210, 259, 0, 0, 0, + 222, 0, 236, 293, 0, 0, 0, 304, 254, 182, + 311, 252, 251, 319, 289, 0, 232, 233, 242, 301, + 125, 240, 250, 167, 180, 284, 117, 308, 302, 274, + 257, 258, 209, 0, 291, 130, 139, 229, 281, 176, + 177, 126, 183, 215, 325, 118, 216, 324, 160, 217, + 175, 309, 275, 271, 211, 307, 273, 270, 147, 133, + 142, 164, 152, 165, 143, 158, 157, 159, 0, 207, + 0, 170, 316, 330, 138, 132, 174, 129, 155, 122, + 116, 220, 123, 124, 128, 127, 0, 146, 153, 156, + 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 305, 0, 0, 0, 0, 0, 173, 219, 137, 226, + 224, 227, 297, 225, 267, 268, 320, 321, 322, 294, + 221, 0, 0, 299, 272, 114, 119, 150, 327, 166, + 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, + 0, 239, 326, 290, 288, 313, 0, 134, 171, 0, + 172, 0, 0, 0, 144, 161, 0, 115, 0, 0, + 0, 141, 0, 145, 148, 149, 0, 184, 185, 187, + 186, 188, 120, 189, 190, 951, 0, 464, 0, 0, + 131, 463, 0, 0, 0, 0, 500, 151, 0, 0, + 169, 154, 0, 0, 0, 0, 493, 494, 0, 0, + 0, 0, 0, 0, 0, 57, 0, 0, 513, 481, + 480, 482, 483, 484, 485, 0, 0, 121, 486, 487, + 488, 0, 0, 0, 461, 474, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 491, 497, 500, 0, 498, 495, 496, 494, 493, - 492, 502, 485, 486, 488, 0, 487, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 169, 0, 170, 0, 0, 159, 142, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 454, 0, 0, - 129, 453, 0, 0, 0, 0, 490, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 483, 484, 0, 0, - 0, 0, 0, 0, 0, 55, 0, 0, 503, 471, - 470, 472, 473, 474, 475, 0, 0, 119, 476, 477, - 478, 0, 0, 0, 451, 464, 0, 489, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 471, 472, 954, + 0, 0, 0, 511, 0, 473, 0, 0, 470, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 461, 462, 0, - 0, 0, 0, 501, 0, 463, 0, 0, 460, 465, + 0, 0, 182, 0, 0, 509, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 167, 180, 0, 117, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 139, + 0, 0, 176, 177, 126, 183, 0, 0, 118, 0, + 0, 160, 0, 175, 0, 0, 0, 0, 0, 0, + 0, 147, 133, 142, 164, 152, 165, 143, 158, 157, + 159, 0, 0, 0, 170, 0, 0, 138, 132, 174, + 129, 155, 122, 116, 0, 123, 124, 128, 127, 0, + 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 137, 501, 507, 510, 0, 508, 505, 506, 504, + 503, 502, 512, 495, 496, 498, 0, 497, 114, 119, + 150, 0, 166, 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 491, 497, 500, 0, 498, 495, 496, 494, 493, - 492, 502, 485, 486, 488, 0, 487, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 169, 0, 170, 159, 0, 113, 142, 0, 0, 139, - 0, 143, 146, 147, 0, 0, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 0, 129, 0, - 0, 0, 0, 0, 490, 149, 0, 0, 167, 152, - 0, 0, 0, 0, 483, 484, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 503, 471, 470, 472, - 473, 474, 475, 0, 0, 119, 476, 477, 478, 0, - 0, 0, 0, 464, 0, 489, 0, 0, 0, 0, + 134, 171, 0, 172, 0, 0, 161, 144, 115, 0, + 0, 0, 141, 0, 145, 148, 149, 0, 0, 0, + 184, 185, 187, 186, 188, 120, 189, 190, 464, 0, + 0, 131, 463, 0, 0, 0, 0, 500, 151, 0, + 0, 169, 154, 0, 0, 0, 0, 493, 494, 0, + 0, 0, 0, 0, 0, 748, 57, 0, 0, 513, + 481, 480, 482, 483, 484, 485, 0, 0, 121, 486, + 487, 488, 749, 0, 0, 461, 474, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 461, 462, 0, 0, 0, - 0, 501, 0, 463, 0, 0, 460, 465, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 471, 472, + 0, 0, 0, 0, 511, 0, 473, 0, 0, 470, + 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 182, 0, 0, 509, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 0, 167, 180, 0, + 117, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 139, 0, 0, 176, 177, 126, 183, 0, 0, 118, + 0, 0, 160, 0, 175, 0, 0, 0, 0, 0, + 0, 0, 147, 133, 142, 164, 152, 165, 143, 158, + 157, 159, 0, 0, 0, 170, 0, 0, 138, 132, + 174, 129, 155, 122, 116, 0, 123, 124, 128, 127, + 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 0, 499, 0, 0, 0, 0, 0, 0, - 0, 123, 0, 165, 0, 178, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 137, 0, 0, 174, - 175, 124, 181, 0, 0, 116, 0, 0, 158, 0, - 173, 0, 0, 0, 0, 0, 0, 0, 145, 131, - 140, 162, 150, 163, 141, 156, 155, 157, 0, 0, - 0, 168, 0, 0, 136, 130, 172, 127, 153, 120, - 114, 0, 121, 122, 126, 125, 0, 144, 151, 154, - 160, 161, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 135, 491, - 497, 500, 0, 498, 495, 496, 494, 493, 492, 502, - 485, 486, 488, 0, 487, 112, 117, 148, 0, 164, - 133, 179, 138, 177, 176, 134, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 132, 169, 0, - 170, 159, 0, 113, 142, 0, 0, 139, 0, 143, - 146, 147, 0, 0, 0, 0, 0, 182, 183, 185, - 184, 186, 118, 187, 188, 0, 129, 0, 0, 0, - 0, 0, 0, 149, 0, 0, 167, 152, 0, 0, + 173, 0, 137, 501, 507, 510, 0, 508, 505, 506, + 504, 503, 502, 512, 495, 496, 498, 0, 497, 114, + 119, 150, 0, 166, 135, 181, 140, 179, 178, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, - 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, + 0, 134, 171, 0, 172, 0, 0, 161, 144, 115, + 0, 0, 0, 141, 0, 145, 148, 149, 0, 0, + 0, 184, 185, 187, 186, 188, 120, 189, 190, 464, + 0, 0, 131, 463, 0, 0, 0, 0, 500, 151, + 0, 0, 169, 154, 0, 0, 0, 0, 493, 494, + 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, + 513, 481, 480, 482, 483, 484, 485, 0, 0, 121, + 486, 487, 488, 0, 0, 0, 461, 474, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 647, - 646, 656, 657, 649, 650, 651, 652, 653, 654, 655, - 648, 0, 0, 658, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 0, 165, 0, 178, 115, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 137, 0, 0, 174, 175, 124, - 181, 0, 0, 116, 0, 0, 158, 0, 173, 0, - 0, 0, 0, 0, 0, 0, 145, 131, 140, 162, - 150, 163, 141, 156, 155, 157, 0, 0, 0, 168, - 0, 0, 136, 130, 172, 127, 153, 120, 114, 0, - 121, 122, 126, 125, 0, 144, 151, 154, 160, 161, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, + 472, 954, 0, 0, 0, 511, 0, 473, 0, 0, + 470, 475, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 182, 0, 0, 509, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 167, 180, + 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 139, 0, 0, 176, 177, 126, 183, 0, 0, + 118, 0, 0, 160, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 0, 0, 170, 0, 0, 138, + 132, 174, 129, 155, 122, 116, 0, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 112, 117, 148, 0, 164, 133, 179, - 138, 177, 176, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 169, 0, 170, 0, - 0, 0, 142, 159, 0, 113, 0, 0, 0, 139, - 0, 143, 146, 147, 0, 182, 183, 185, 184, 186, - 118, 187, 188, 0, 1127, 0, 0, 0, 129, 0, - 0, 0, 0, 0, 0, 149, 0, 0, 167, 152, + 0, 173, 0, 137, 501, 507, 510, 0, 508, 505, + 506, 504, 503, 502, 512, 495, 496, 498, 0, 497, + 114, 119, 150, 0, 166, 135, 181, 140, 179, 178, + 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 134, 171, 0, 172, 0, 0, 161, 144, + 115, 0, 0, 0, 141, 0, 145, 148, 149, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 464, 0, 0, 131, 463, 0, 0, 0, 0, 500, + 151, 0, 0, 169, 154, 0, 0, 0, 0, 493, + 494, 0, 0, 0, 0, 0, 0, 0, 57, 0, + 455, 513, 481, 480, 482, 483, 484, 485, 0, 0, + 121, 486, 487, 488, 0, 0, 0, 461, 474, 0, + 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 246, 0, 1129, 0, - 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, - 635, 634, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, + 471, 472, 0, 0, 0, 0, 511, 0, 473, 0, + 0, 470, 475, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 182, 0, 0, 509, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 0, 167, + 180, 0, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 139, 0, 0, 176, 177, 126, 183, 0, + 0, 118, 0, 0, 160, 0, 175, 0, 0, 0, + 0, 0, 0, 0, 147, 133, 142, 164, 152, 165, + 143, 158, 157, 159, 0, 0, 0, 170, 0, 0, + 138, 132, 174, 129, 155, 122, 116, 0, 123, 124, + 128, 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 173, 0, 137, 501, 507, 510, 0, 508, + 505, 506, 504, 503, 502, 512, 495, 496, 498, 0, + 497, 114, 119, 150, 0, 166, 135, 181, 140, 179, + 178, 136, 0, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 134, 171, 0, 172, 0, 0, 161, + 144, 115, 0, 0, 0, 141, 0, 145, 148, 149, + 0, 0, 0, 184, 185, 187, 186, 188, 120, 189, + 190, 464, 0, 0, 131, 463, 0, 0, 0, 0, + 500, 151, 0, 0, 169, 154, 0, 0, 0, 0, + 493, 494, 0, 0, 0, 0, 0, 0, 0, 57, + 0, 0, 513, 481, 480, 482, 483, 484, 485, 0, + 0, 121, 486, 487, 488, 0, 0, 0, 461, 474, + 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 0, 165, 0, 178, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 137, 0, 0, 174, - 175, 124, 181, 0, 0, 116, 0, 0, 158, 0, - 173, 0, 0, 0, 0, 0, 0, 0, 145, 131, - 140, 162, 150, 163, 141, 156, 155, 157, 0, 0, - 0, 168, 0, 0, 136, 130, 172, 127, 153, 120, - 114, 0, 121, 122, 126, 125, 0, 144, 151, 154, - 160, 161, 166, 0, 159, 0, 113, 0, 0, 808, - 807, 0, 143, 146, 147, 0, 0, 0, 806, 0, - 0, 0, 805, 0, 0, 0, 171, 0, 135, 129, - 0, 0, 0, 0, 0, 0, 149, 0, 0, 167, - 152, 0, 0, 0, 0, 112, 117, 148, 0, 164, - 133, 179, 138, 177, 176, 134, 0, 380, 0, 0, - 0, 0, 0, 0, 0, 0, 119, 132, 169, 0, - 170, 0, 0, 0, 142, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 185, - 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, + 0, 471, 472, 0, 0, 0, 0, 511, 0, 473, + 0, 0, 470, 475, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 182, 0, 0, 509, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, + 167, 180, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 139, 0, 0, 176, 177, 126, 183, + 0, 0, 118, 0, 0, 160, 0, 175, 0, 0, + 0, 0, 0, 0, 0, 147, 133, 142, 164, 152, + 165, 143, 158, 157, 159, 0, 0, 0, 170, 0, + 0, 138, 132, 174, 129, 155, 122, 116, 0, 123, + 124, 128, 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 804, 180, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 0, 165, 0, 178, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 137, 0, 0, - 174, 175, 124, 181, 0, 0, 116, 0, 0, 158, - 0, 173, 0, 0, 0, 0, 0, 0, 0, 145, - 131, 140, 162, 150, 163, 141, 156, 155, 157, 0, - 0, 0, 168, 0, 0, 136, 130, 172, 127, 153, - 120, 114, 0, 121, 122, 126, 125, 25, 144, 151, - 154, 160, 161, 166, 0, 0, 0, 0, 159, 0, - 113, 0, 0, 0, 139, 0, 143, 146, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 135, - 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, - 149, 0, 0, 167, 152, 0, 112, 117, 148, 0, - 164, 133, 179, 138, 177, 176, 134, 0, 55, 0, - 0, 110, 0, 0, 0, 0, 0, 0, 132, 169, - 119, 170, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 137, 501, 507, 510, 0, + 508, 505, 506, 504, 503, 502, 512, 495, 496, 498, + 0, 497, 114, 119, 150, 0, 166, 135, 181, 140, + 179, 178, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 171, 0, 172, 0, 0, + 161, 144, 115, 0, 0, 0, 141, 0, 145, 148, + 149, 0, 0, 0, 184, 185, 187, 186, 188, 120, + 189, 190, 464, 0, 0, 131, 463, 0, 0, 0, + 0, 500, 151, 0, 0, 169, 154, 0, 0, 0, + 0, 493, 494, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 0, 513, 481, 480, 482, 483, 484, 485, + 0, 0, 121, 486, 487, 488, 0, 0, 0, 461, + 474, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 471, 472, 0, 0, 0, 0, 511, 0, + 473, 0, 0, 470, 475, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, + 509, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 0, 167, 180, 0, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 139, 0, 0, 176, 177, 126, + 183, 0, 0, 118, 0, 0, 160, 0, 175, 0, + 0, 0, 0, 0, 0, 0, 147, 133, 142, 164, + 152, 165, 143, 158, 157, 159, 0, 0, 0, 170, + 0, 0, 138, 132, 174, 129, 155, 122, 116, 0, + 123, 124, 128, 127, 0, 146, 153, 156, 162, 163, + 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 123, 0, 165, 0, - 178, 115, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 137, 0, 0, 174, 175, 124, 181, 0, 0, - 116, 0, 0, 158, 0, 173, 0, 0, 0, 0, - 0, 0, 0, 145, 131, 140, 162, 150, 163, 141, - 156, 155, 157, 0, 0, 0, 168, 0, 0, 136, - 130, 172, 127, 153, 120, 114, 0, 121, 122, 126, - 125, 0, 144, 151, 154, 160, 161, 166, 0, 159, - 0, 113, 0, 0, 0, 139, 0, 143, 146, 147, + 0, 0, 0, 0, 173, 0, 137, 501, 507, 510, + 0, 508, 505, 506, 504, 503, 502, 512, 495, 496, + 498, 0, 497, 114, 119, 150, 0, 166, 135, 181, + 140, 179, 178, 136, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 134, 171, 0, 172, 161, + 0, 115, 144, 0, 0, 141, 0, 145, 148, 149, + 0, 0, 0, 0, 0, 184, 185, 187, 186, 188, + 120, 189, 190, 0, 131, 0, 0, 0, 0, 0, + 500, 151, 0, 0, 169, 154, 0, 0, 0, 0, + 493, 494, 0, 0, 0, 0, 0, 0, 0, 57, + 0, 0, 513, 481, 480, 482, 483, 484, 485, 0, + 0, 121, 486, 487, 488, 0, 0, 0, 0, 474, + 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1368, 171, 0, 135, 129, 0, 0, 0, 0, 0, - 0, 149, 0, 0, 167, 152, 0, 0, 0, 0, - 112, 117, 148, 0, 164, 133, 179, 138, 177, 176, - 134, 0, 110, 0, 1370, 0, 0, 0, 0, 0, - 0, 119, 132, 169, 0, 170, 0, 0, 0, 142, + 0, 471, 472, 0, 0, 0, 0, 511, 0, 473, + 0, 0, 470, 475, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 182, 0, 0, 509, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, + 167, 180, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 139, 0, 0, 176, 177, 126, 183, + 0, 0, 118, 0, 0, 160, 0, 175, 0, 0, + 0, 0, 0, 0, 0, 147, 133, 142, 164, 152, + 165, 143, 158, 157, 159, 0, 0, 0, 170, 0, + 0, 138, 132, 174, 129, 155, 122, 116, 0, 123, + 124, 128, 127, 0, 146, 153, 156, 162, 163, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 182, 183, 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 137, 501, 507, 510, 0, + 508, 505, 506, 504, 503, 502, 512, 495, 496, 498, + 0, 497, 114, 119, 150, 0, 166, 135, 181, 140, + 179, 178, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 171, 0, 172, 161, 0, + 115, 144, 0, 0, 141, 0, 145, 148, 149, 0, + 0, 0, 0, 0, 184, 185, 187, 186, 188, 120, + 189, 190, 0, 131, 0, 0, 0, 0, 0, 0, + 151, 0, 0, 169, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 0, 165, - 0, 178, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 137, 0, 0, 174, 175, 124, 181, 0, - 0, 116, 0, 0, 158, 0, 173, 0, 0, 0, - 0, 0, 0, 0, 145, 131, 140, 162, 150, 163, - 141, 156, 155, 157, 0, 0, 0, 168, 0, 0, - 136, 130, 172, 127, 153, 120, 114, 0, 121, 122, - 126, 125, 25, 144, 151, 154, 160, 161, 166, 0, - 0, 0, 0, 159, 0, 113, 0, 0, 0, 139, - 0, 143, 146, 147, 0, 0, 0, 0, 0, 0, - 0, 0, 171, 0, 135, 0, 0, 0, 129, 0, - 0, 0, 0, 0, 0, 149, 0, 0, 167, 152, - 0, 112, 117, 148, 0, 164, 133, 179, 138, 177, - 176, 134, 0, 55, 0, 0, 246, 0, 0, 0, - 0, 0, 0, 132, 169, 119, 170, 0, 0, 0, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 185, 184, 186, 118, 187, - 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, + 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 655, 654, 664, 665, + 657, 658, 659, 660, 661, 662, 663, 656, 0, 0, + 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 0, 167, + 180, 0, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 139, 0, 0, 176, 177, 126, 183, 0, + 0, 118, 0, 0, 160, 0, 175, 0, 0, 0, + 0, 0, 0, 0, 147, 133, 142, 164, 152, 165, + 143, 158, 157, 159, 0, 0, 0, 170, 0, 0, + 138, 132, 174, 129, 155, 122, 116, 0, 123, 124, + 128, 127, 0, 146, 153, 156, 162, 163, 168, 0, + 161, 0, 115, 0, 0, 816, 815, 0, 145, 148, + 149, 0, 0, 0, 814, 0, 0, 0, 813, 0, + 0, 0, 173, 0, 137, 131, 0, 0, 0, 0, + 0, 0, 151, 0, 0, 169, 154, 0, 0, 0, + 0, 114, 119, 150, 0, 166, 135, 181, 140, 179, + 178, 136, 0, 390, 0, 0, 0, 0, 0, 0, + 0, 0, 121, 134, 171, 0, 172, 0, 0, 0, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 185, 187, 186, 188, 120, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 0, 165, 0, 178, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 137, 0, 0, 174, - 175, 124, 181, 0, 0, 116, 0, 0, 158, 0, - 173, 0, 0, 0, 0, 0, 0, 0, 145, 131, - 140, 162, 150, 163, 141, 156, 155, 157, 0, 0, - 0, 168, 0, 0, 136, 130, 172, 127, 153, 120, - 114, 0, 121, 122, 126, 125, 0, 144, 151, 154, - 160, 161, 166, 0, 159, 0, 113, 0, 0, 0, - 139, 0, 143, 146, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 135, 129, - 0, 0, 0, 0, 0, 0, 149, 0, 0, 167, - 152, 0, 0, 0, 0, 112, 117, 148, 0, 164, - 133, 179, 138, 177, 176, 134, 0, 246, 0, 0, - 713, 0, 0, 714, 0, 0, 119, 132, 169, 0, - 170, 0, 0, 0, 142, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 185, - 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 812, 182, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 0, 167, 180, 0, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 139, 0, 0, 176, 177, 126, + 183, 0, 0, 118, 0, 0, 160, 0, 175, 0, + 0, 0, 0, 0, 0, 0, 147, 133, 142, 164, + 152, 165, 143, 158, 157, 159, 0, 0, 0, 170, + 0, 0, 138, 132, 174, 129, 155, 122, 116, 0, + 123, 124, 128, 127, 26, 146, 153, 156, 162, 163, + 168, 0, 0, 0, 0, 161, 0, 115, 0, 0, + 0, 141, 0, 145, 148, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 0, 137, 0, 0, 0, + 131, 0, 0, 0, 0, 0, 0, 151, 0, 0, + 169, 154, 0, 114, 119, 150, 0, 166, 135, 181, + 140, 179, 178, 136, 0, 57, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 134, 171, 121, 172, 0, + 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 185, 187, 186, 188, + 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 0, 165, 0, 178, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 137, 0, 0, - 174, 175, 124, 181, 0, 0, 116, 0, 0, 158, - 0, 173, 0, 0, 0, 0, 0, 0, 0, 145, - 131, 140, 162, 150, 163, 141, 156, 155, 157, 0, - 0, 0, 168, 0, 0, 136, 130, 172, 127, 153, - 120, 114, 0, 121, 122, 126, 125, 0, 144, 151, - 154, 160, 161, 166, 0, 159, 0, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 135, - 129, 532, 0, 0, 0, 0, 0, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 112, 117, 148, 0, - 164, 133, 179, 138, 177, 176, 134, 0, 246, 0, - 531, 0, 0, 0, 0, 0, 0, 119, 132, 169, - 0, 170, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 167, 180, 0, 117, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 139, + 0, 0, 176, 177, 126, 183, 0, 0, 118, 0, + 0, 160, 0, 175, 0, 0, 0, 0, 0, 0, + 0, 147, 133, 142, 164, 152, 165, 143, 158, 157, + 159, 0, 0, 0, 170, 0, 0, 138, 132, 174, + 129, 155, 122, 116, 0, 123, 124, 128, 127, 0, + 146, 153, 156, 162, 163, 168, 0, 161, 0, 115, + 0, 0, 0, 141, 0, 145, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1376, 173, + 0, 137, 131, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 169, 154, 0, 0, 0, 0, 114, 119, + 150, 0, 166, 135, 181, 140, 179, 178, 136, 0, + 112, 0, 1378, 0, 0, 0, 0, 0, 0, 121, + 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 167, 180, + 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 139, 0, 0, 176, 177, 126, 183, 0, 0, + 118, 0, 0, 160, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 0, 0, 170, 0, 0, 138, + 132, 174, 129, 155, 122, 116, 0, 123, 124, 128, + 127, 26, 146, 153, 156, 162, 163, 168, 0, 0, + 0, 0, 161, 0, 115, 0, 0, 0, 141, 0, + 145, 148, 149, 0, 0, 0, 0, 0, 0, 0, + 0, 173, 0, 137, 0, 0, 0, 131, 0, 0, + 0, 0, 0, 0, 151, 0, 0, 169, 154, 0, + 114, 119, 150, 0, 166, 135, 181, 140, 179, 178, + 136, 0, 57, 0, 0, 380, 0, 0, 0, 0, + 0, 0, 134, 171, 121, 172, 0, 0, 0, 144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 159, 0, 113, 0, - 0, 0, 139, 0, 143, 146, 147, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 129, 0, 0, 0, 0, 0, 0, 149, 0, - 0, 167, 152, 0, 0, 0, 0, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 110, - 0, 0, 0, 0, 0, 0, 0, 0, 119, 132, - 169, 0, 170, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 123, 0, 165, 0, 178, 115, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 137, - 0, 0, 174, 175, 124, 181, 0, 0, 116, 0, - 0, 158, 0, 173, 0, 0, 0, 0, 0, 0, - 0, 145, 131, 140, 162, 150, 163, 141, 156, 155, - 157, 0, 0, 0, 168, 0, 0, 136, 130, 172, - 127, 153, 120, 114, 0, 121, 122, 126, 125, 0, - 144, 151, 154, 160, 161, 166, 0, 0, 0, 0, - 159, 0, 113, 0, 0, 0, 139, 0, 143, 146, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 171, - 0, 135, 0, 0, 0, 129, 0, 0, 0, 0, - 0, 0, 149, 0, 0, 167, 152, 0, 112, 117, - 148, 0, 164, 133, 179, 194, 177, 176, 195, 0, - 196, 0, 0, 110, 0, 1370, 0, 0, 0, 0, - 132, 169, 119, 170, 0, 0, 0, 142, 0, 0, + 125, 0, 0, 167, 180, 0, 117, 0, 0, 0, + 0, 0, 0, 0, 0, 130, 139, 0, 0, 176, + 177, 126, 183, 0, 0, 118, 0, 0, 160, 0, + 175, 0, 0, 0, 0, 0, 0, 0, 147, 133, + 142, 164, 152, 165, 143, 158, 157, 159, 0, 0, + 0, 170, 0, 0, 138, 132, 174, 129, 155, 122, + 116, 0, 123, 124, 128, 127, 0, 146, 153, 156, + 162, 163, 168, 0, 161, 0, 115, 0, 0, 0, + 141, 0, 145, 148, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 173, 0, 137, 131, + 0, 0, 0, 0, 0, 0, 151, 0, 0, 169, + 154, 0, 0, 0, 0, 114, 119, 150, 0, 166, + 135, 181, 140, 179, 178, 136, 0, 380, 0, 0, + 721, 0, 0, 722, 0, 0, 121, 134, 171, 0, + 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 185, 187, + 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 0, 167, 180, 0, 117, 0, + 0, 0, 0, 0, 0, 0, 0, 130, 139, 0, + 0, 176, 177, 126, 183, 0, 0, 118, 0, 0, + 160, 0, 175, 0, 0, 0, 0, 0, 0, 0, + 147, 133, 142, 164, 152, 165, 143, 158, 157, 159, + 0, 0, 0, 170, 0, 0, 138, 132, 174, 129, + 155, 122, 116, 0, 123, 124, 128, 127, 0, 146, + 153, 156, 162, 163, 168, 0, 161, 0, 115, 0, + 0, 0, 141, 0, 145, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, + 137, 131, 542, 0, 0, 0, 0, 0, 151, 0, + 0, 169, 154, 0, 0, 0, 0, 114, 119, 150, + 0, 166, 135, 181, 140, 179, 178, 136, 0, 380, + 0, 541, 0, 0, 0, 0, 0, 0, 121, 134, + 171, 0, 172, 0, 0, 0, 144, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, + 185, 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, - 165, 0, 178, 115, 0, 0, 0, 0, 0, 0, - 0, 0, 128, 137, 0, 0, 174, 175, 124, 181, - 0, 0, 116, 0, 0, 158, 0, 173, 0, 0, - 0, 0, 0, 0, 0, 145, 131, 140, 162, 150, - 163, 141, 156, 155, 157, 0, 0, 0, 168, 0, - 0, 136, 130, 172, 127, 153, 120, 114, 0, 121, - 122, 126, 125, 0, 144, 151, 154, 160, 161, 166, - 0, 0, 0, 0, 159, 0, 113, 0, 0, 0, - 139, 0, 143, 146, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 171, 0, 135, 0, 0, 0, 129, - 0, 0, 0, 0, 0, 0, 149, 0, 0, 167, - 152, 0, 112, 117, 148, 0, 164, 133, 179, 138, - 177, 176, 134, 0, 55, 0, 0, 110, 0, 0, - 0, 0, 0, 0, 132, 169, 119, 170, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 185, 184, 186, 118, - 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 0, 167, 180, 0, + 117, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 139, 0, 0, 176, 177, 126, 183, 0, 0, 118, + 0, 0, 160, 0, 175, 0, 0, 0, 0, 0, + 0, 0, 147, 133, 142, 164, 152, 165, 143, 158, + 157, 159, 0, 0, 0, 170, 0, 0, 138, 132, + 174, 129, 155, 122, 116, 0, 123, 124, 128, 127, + 0, 146, 153, 156, 162, 163, 168, 0, 161, 0, + 115, 0, 0, 0, 141, 0, 145, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 0, 165, 0, 178, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 137, 0, 0, - 174, 175, 124, 181, 0, 0, 116, 0, 0, 158, - 0, 173, 0, 0, 0, 0, 0, 0, 0, 145, - 131, 140, 162, 150, 163, 141, 156, 155, 157, 0, - 0, 0, 168, 0, 0, 136, 130, 172, 127, 153, - 120, 114, 0, 121, 122, 126, 125, 0, 144, 151, - 154, 160, 161, 166, 0, 159, 0, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 135, - 129, 0, 0, 0, 0, 0, 0, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 112, 117, 148, 0, - 164, 133, 179, 138, 177, 176, 134, 0, 246, 0, - 1129, 0, 0, 0, 0, 0, 0, 119, 132, 169, - 0, 170, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, + 173, 0, 137, 131, 0, 0, 0, 0, 0, 0, + 151, 0, 0, 169, 154, 0, 0, 0, 0, 114, + 119, 150, 0, 166, 135, 181, 140, 179, 178, 136, + 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, + 121, 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 0, 0, 0, 159, - 0, 113, 0, 0, 0, 139, 0, 143, 146, 147, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 0, 0, 516, 129, 0, 0, 0, 0, 0, - 0, 149, 0, 0, 167, 152, 0, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, - 0, 0, 110, 0, 0, 0, 0, 0, 0, 132, - 169, 119, 170, 0, 0, 0, 142, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 194, 0, 0, 0, 0, 182, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 0, 167, + 180, 0, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 139, 0, 0, 176, 177, 126, 183, 0, + 0, 118, 0, 0, 160, 0, 175, 0, 0, 0, + 0, 0, 0, 0, 147, 133, 142, 164, 152, 165, + 143, 158, 157, 159, 0, 0, 0, 170, 0, 0, + 138, 132, 174, 129, 155, 122, 116, 0, 123, 124, + 128, 127, 0, 146, 153, 156, 162, 163, 168, 0, + 0, 0, 0, 161, 0, 115, 0, 0, 0, 141, + 0, 145, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 173, 0, 137, 0, 0, 0, 131, 0, + 0, 0, 0, 0, 0, 151, 0, 0, 169, 154, + 0, 114, 119, 150, 0, 166, 135, 181, 196, 179, + 178, 197, 0, 198, 0, 0, 112, 0, 1378, 0, + 0, 0, 0, 134, 171, 121, 172, 0, 0, 0, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 185, 187, 186, 188, 120, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 0, 165, - 0, 178, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 137, 0, 0, 174, 175, 124, 181, 0, - 0, 116, 0, 0, 158, 0, 173, 0, 0, 0, - 0, 0, 0, 0, 145, 131, 140, 162, 150, 163, - 141, 156, 155, 157, 0, 0, 0, 168, 0, 0, - 136, 130, 172, 127, 153, 120, 114, 0, 121, 122, - 126, 125, 0, 144, 151, 154, 160, 161, 166, 0, - 159, 0, 113, 0, 0, 0, 139, 0, 143, 146, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 171, 0, 135, 129, 0, 0, 0, 0, - 0, 0, 149, 0, 0, 167, 152, 0, 0, 0, - 0, 112, 117, 148, 0, 164, 133, 179, 138, 177, - 176, 134, 0, 380, 0, 421, 0, 0, 0, 0, - 0, 0, 119, 132, 169, 0, 170, 0, 0, 0, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 185, 184, 186, 118, 187, - 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, - 165, 0, 178, 115, 0, 0, 0, 0, 0, 0, - 0, 0, 128, 137, 0, 0, 174, 175, 124, 181, - 0, 0, 116, 0, 0, 158, 0, 173, 0, 0, - 0, 0, 0, 0, 0, 145, 131, 140, 162, 150, - 163, 141, 156, 155, 157, 0, 0, 0, 168, 0, - 0, 136, 130, 172, 127, 153, 120, 114, 0, 121, - 122, 126, 125, 0, 144, 151, 154, 160, 161, 166, - 0, 159, 0, 113, 0, 0, 0, 139, 0, 143, - 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 171, 0, 135, 129, 0, 0, 0, - 0, 0, 0, 149, 0, 0, 167, 152, 0, 0, - 0, 0, 112, 117, 148, 0, 164, 133, 179, 138, - 177, 176, 134, 0, 246, 0, 0, 0, 0, 0, - 0, 0, 0, 119, 132, 169, 0, 170, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 185, 184, 186, 118, - 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 0, 0, 167, 180, 0, 117, 0, 0, + 0, 0, 0, 0, 0, 0, 130, 139, 0, 0, + 176, 177, 126, 183, 0, 0, 118, 0, 0, 160, + 0, 175, 0, 0, 0, 0, 0, 0, 0, 147, + 133, 142, 164, 152, 165, 143, 158, 157, 159, 0, + 0, 0, 170, 0, 0, 138, 132, 174, 129, 155, + 122, 116, 0, 123, 124, 128, 127, 0, 146, 153, + 156, 162, 163, 168, 0, 0, 0, 0, 161, 0, + 115, 0, 0, 0, 141, 0, 145, 148, 149, 0, + 0, 0, 0, 0, 0, 0, 0, 173, 0, 137, + 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, + 151, 0, 0, 169, 154, 0, 114, 119, 150, 0, + 166, 135, 181, 140, 179, 178, 136, 0, 57, 0, + 0, 112, 0, 0, 0, 0, 0, 0, 134, 171, + 121, 172, 0, 0, 0, 144, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, + 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 0, 165, 0, 178, 115, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 137, 0, 0, 174, 175, 124, - 181, 0, 0, 116, 0, 0, 158, 0, 173, 0, - 0, 0, 0, 0, 0, 0, 145, 131, 140, 162, - 150, 163, 141, 156, 155, 157, 0, 0, 0, 168, - 0, 0, 136, 130, 172, 127, 153, 120, 114, 0, - 121, 122, 126, 125, 0, 144, 151, 154, 160, 161, - 166, 0, 159, 0, 113, 0, 0, 0, 139, 0, - 143, 146, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 135, 129, 0, 0, - 0, 0, 0, 0, 149, 0, 0, 167, 152, 0, - 0, 0, 0, 112, 117, 148, 0, 164, 133, 179, - 138, 177, 176, 134, 0, 503, 0, 0, 0, 0, - 0, 0, 0, 0, 119, 132, 169, 0, 170, 0, - 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 185, 184, 186, - 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, + 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 0, 167, + 180, 0, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 139, 0, 0, 176, 177, 126, 183, 0, + 0, 118, 0, 0, 160, 0, 175, 0, 0, 0, + 0, 0, 0, 0, 147, 133, 142, 164, 152, 165, + 143, 158, 157, 159, 0, 0, 0, 170, 0, 0, + 138, 132, 174, 129, 155, 122, 116, 0, 123, 124, + 128, 127, 0, 146, 153, 156, 162, 163, 168, 0, + 161, 0, 115, 0, 0, 0, 141, 0, 145, 148, + 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 173, 0, 137, 131, 0, 0, 0, 0, + 0, 0, 151, 0, 0, 169, 154, 0, 0, 0, + 0, 114, 119, 150, 0, 166, 135, 181, 140, 179, + 178, 136, 0, 380, 0, 1137, 0, 0, 0, 0, + 0, 0, 121, 134, 171, 0, 172, 0, 0, 0, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 185, 187, 186, 188, 120, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 123, 0, 165, 0, 178, 115, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 137, 0, 0, 174, 175, - 124, 181, 0, 0, 116, 0, 0, 158, 0, 173, - 0, 0, 0, 0, 0, 0, 0, 145, 131, 140, - 162, 150, 163, 141, 156, 155, 157, 0, 0, 0, - 168, 0, 0, 136, 130, 172, 127, 153, 120, 114, - 0, 121, 122, 126, 125, 0, 144, 151, 154, 160, - 161, 166, 0, 159, 0, 113, 0, 0, 0, 139, - 0, 143, 146, 147, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 171, 0, 135, 129, 0, - 0, 0, 0, 0, 0, 149, 0, 0, 167, 152, - 0, 0, 0, 0, 112, 117, 148, 0, 164, 133, - 179, 138, 177, 176, 134, 0, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 119, 132, 169, 0, 170, - 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 183, 185, 184, - 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 0, 167, 180, 0, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 139, 0, 0, 176, 177, 126, + 183, 0, 0, 118, 0, 0, 160, 0, 175, 0, + 0, 0, 0, 0, 0, 0, 147, 133, 142, 164, + 152, 165, 143, 158, 157, 159, 0, 0, 0, 170, + 0, 0, 138, 132, 174, 129, 155, 122, 116, 0, + 123, 124, 128, 127, 0, 146, 153, 156, 162, 163, + 168, 0, 0, 0, 0, 161, 0, 115, 0, 0, + 0, 141, 0, 145, 148, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 0, 137, 0, 0, 526, + 131, 0, 0, 0, 0, 0, 0, 151, 0, 0, + 169, 154, 0, 114, 119, 150, 0, 166, 135, 181, + 140, 179, 178, 136, 0, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 134, 171, 121, 172, 0, + 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 185, 187, 186, 188, + 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 0, 165, 0, 178, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 137, 0, 0, 174, - 175, 124, 181, 0, 0, 116, 0, 0, 158, 0, - 173, 0, 0, 0, 0, 0, 0, 0, 145, 131, - 140, 162, 150, 163, 141, 156, 155, 157, 0, 0, - 0, 168, 0, 0, 136, 130, 172, 127, 153, 120, - 114, 0, 121, 122, 126, 125, 0, 144, 151, 154, - 160, 161, 166, 0, 159, 0, 113, 0, 0, 0, - 139, 0, 143, 146, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 135, 129, - 0, 0, 0, 0, 0, 0, 149, 0, 0, 167, - 152, 0, 0, 0, 0, 112, 117, 148, 0, 164, - 133, 179, 138, 177, 176, 134, 0, 380, 0, 0, - 0, 0, 0, 0, 0, 0, 119, 132, 169, 0, - 170, 0, 0, 0, 142, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 185, - 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 167, 180, 0, 117, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 139, + 0, 0, 176, 177, 126, 183, 0, 0, 118, 0, + 0, 160, 0, 175, 0, 0, 0, 0, 0, 0, + 0, 147, 133, 142, 164, 152, 165, 143, 158, 157, + 159, 0, 0, 0, 170, 0, 0, 138, 132, 174, + 129, 155, 122, 116, 0, 123, 124, 128, 127, 0, + 146, 153, 156, 162, 163, 168, 0, 161, 0, 115, + 0, 0, 0, 141, 0, 145, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 137, 131, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 169, 154, 0, 0, 0, 0, 114, 119, + 150, 0, 166, 135, 181, 140, 179, 178, 136, 0, + 390, 0, 431, 0, 0, 0, 0, 0, 0, 121, + 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 0, 165, 0, 178, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 137, 0, 0, - 174, 175, 124, 181, 0, 0, 116, 0, 0, 158, - 0, 173, 0, 0, 0, 0, 0, 0, 0, 145, - 131, 140, 162, 150, 163, 141, 156, 155, 157, 0, - 0, 0, 168, 0, 0, 136, 130, 172, 127, 153, - 120, 114, 0, 121, 122, 126, 125, 0, 144, 151, - 154, 160, 161, 166, 0, 159, 0, 113, 0, 0, - 0, 139, 0, 143, 146, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 135, - 129, 0, 0, 0, 0, 0, 0, 149, 0, 0, - 167, 152, 0, 0, 0, 0, 112, 117, 148, 0, - 164, 133, 179, 138, 177, 176, 134, 0, 1214, 0, - 0, 0, 0, 0, 0, 0, 0, 119, 132, 169, - 0, 170, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 167, 180, + 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 139, 0, 0, 176, 177, 126, 183, 0, 0, + 118, 0, 0, 160, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 0, 0, 170, 0, 0, 138, + 132, 174, 129, 155, 122, 116, 0, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 161, + 0, 115, 0, 0, 0, 141, 0, 145, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 173, 0, 137, 131, 0, 0, 0, 0, 0, + 0, 151, 0, 0, 169, 154, 0, 0, 0, 0, + 114, 119, 150, 0, 166, 135, 181, 140, 179, 178, + 136, 0, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 121, 134, 171, 0, 172, 0, 0, 0, 144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 165, 0, 178, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 137, 0, - 0, 174, 175, 124, 181, 0, 0, 116, 0, 0, - 158, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 145, 131, 140, 162, 150, 163, 141, 156, 155, 157, - 0, 0, 0, 168, 0, 0, 136, 130, 172, 127, - 153, 120, 114, 0, 121, 122, 126, 125, 0, 144, - 151, 154, 160, 161, 166, 0, 159, 0, 113, 0, - 0, 0, 139, 0, 143, 146, 147, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 135, 129, 0, 0, 0, 0, 0, 0, 149, 0, - 0, 167, 152, 0, 0, 0, 0, 112, 117, 148, - 0, 164, 133, 179, 138, 177, 176, 134, 0, 589, - 0, 0, 0, 0, 0, 0, 0, 0, 119, 132, - 169, 0, 170, 0, 0, 0, 142, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 185, 184, 186, 118, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, + 167, 180, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 139, 0, 0, 176, 177, 126, 183, + 0, 0, 118, 0, 0, 160, 0, 175, 0, 0, + 0, 0, 0, 0, 0, 147, 133, 142, 164, 152, + 165, 143, 158, 157, 159, 0, 0, 0, 170, 0, + 0, 138, 132, 174, 129, 155, 122, 116, 0, 123, + 124, 128, 127, 0, 146, 153, 156, 162, 163, 168, + 0, 161, 0, 115, 0, 0, 0, 141, 0, 145, + 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 137, 131, 0, 0, 0, + 0, 0, 0, 151, 0, 0, 169, 154, 0, 0, + 0, 0, 114, 119, 150, 0, 166, 135, 181, 140, + 179, 178, 136, 0, 513, 0, 0, 0, 0, 0, + 0, 0, 0, 121, 134, 171, 0, 172, 0, 0, + 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 185, 187, 186, 188, 120, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 123, 0, 165, 0, 178, 115, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 137, - 0, 0, 174, 175, 124, 181, 0, 0, 116, 0, - 0, 158, 0, 173, 0, 0, 0, 0, 0, 0, - 0, 145, 131, 140, 162, 150, 163, 141, 156, 155, - 157, 0, 0, 0, 168, 0, 0, 136, 130, 172, - 127, 153, 120, 114, 0, 121, 122, 126, 125, 0, - 144, 151, 154, 160, 161, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 0, 167, 180, 0, 117, 0, 0, 0, 0, + 0, 0, 0, 0, 130, 139, 0, 0, 176, 177, + 126, 183, 0, 0, 118, 0, 0, 160, 0, 175, + 0, 0, 0, 0, 0, 0, 0, 147, 133, 142, + 164, 152, 165, 143, 158, 157, 159, 0, 0, 0, + 170, 0, 0, 138, 132, 174, 129, 155, 122, 116, + 0, 123, 124, 128, 127, 0, 146, 153, 156, 162, + 163, 168, 0, 161, 0, 115, 0, 0, 0, 141, + 0, 145, 148, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 173, 0, 137, 131, 0, + 0, 0, 0, 0, 0, 151, 0, 0, 169, 154, + 0, 0, 0, 0, 114, 119, 150, 0, 166, 135, + 181, 140, 179, 178, 136, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 134, 171, 0, 172, + 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 184, 185, 187, 186, + 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, - 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 112, 117, - 148, 0, 164, 133, 179, 138, 177, 176, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 169, 0, 170, 0, 0, 0, 142, 0, 0, + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 0, 0, 167, 180, 0, 117, 0, 0, + 0, 0, 0, 0, 0, 0, 130, 139, 0, 0, + 176, 177, 126, 183, 0, 0, 118, 0, 0, 160, + 0, 175, 0, 0, 0, 0, 0, 0, 0, 147, + 133, 142, 164, 152, 165, 143, 158, 157, 159, 0, + 0, 0, 170, 0, 0, 138, 132, 174, 129, 155, + 122, 116, 0, 123, 124, 128, 127, 0, 146, 153, + 156, 162, 163, 168, 0, 161, 0, 115, 0, 0, + 0, 141, 0, 145, 148, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 173, 0, 137, + 131, 0, 0, 0, 0, 0, 0, 151, 0, 0, + 169, 154, 0, 0, 0, 0, 114, 119, 150, 0, + 166, 135, 181, 140, 179, 178, 136, 0, 390, 0, + 0, 0, 0, 0, 0, 0, 0, 121, 134, 171, + 0, 172, 0, 0, 0, 144, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, + 187, 186, 188, 120, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 185, 184, 186, 118, 187, 188, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 167, 180, 0, 117, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 139, + 0, 0, 176, 177, 126, 183, 0, 0, 118, 0, + 0, 160, 0, 175, 0, 0, 0, 0, 0, 0, + 0, 147, 133, 142, 164, 152, 165, 143, 158, 157, + 159, 0, 0, 0, 170, 0, 0, 138, 132, 174, + 129, 155, 122, 116, 0, 123, 124, 128, 127, 0, + 146, 153, 156, 162, 163, 168, 0, 161, 0, 115, + 0, 0, 0, 141, 0, 145, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 137, 131, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 169, 154, 0, 0, 0, 0, 114, 119, + 150, 0, 166, 135, 181, 140, 179, 178, 136, 0, + 1222, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 134, 171, 0, 172, 0, 0, 0, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 185, 187, 186, 188, 120, 189, 190, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 167, 180, + 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 139, 0, 0, 176, 177, 126, 183, 0, 0, + 118, 0, 0, 160, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 147, 133, 142, 164, 152, 165, 143, + 158, 157, 159, 0, 0, 0, 170, 0, 0, 138, + 132, 174, 129, 155, 122, 116, 0, 123, 124, 128, + 127, 0, 146, 153, 156, 162, 163, 168, 0, 161, + 0, 115, 0, 0, 0, 141, 0, 145, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 173, 0, 137, 131, 0, 0, 0, 0, 0, + 0, 151, 0, 0, 169, 154, 0, 0, 0, 0, + 114, 119, 150, 0, 166, 135, 181, 140, 179, 178, + 136, 0, 599, 0, 0, 0, 0, 0, 0, 0, + 0, 121, 134, 171, 0, 172, 0, 0, 0, 144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 187, 186, 188, 120, 189, 190, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, + 167, 180, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 139, 0, 0, 176, 177, 126, 183, + 0, 0, 118, 0, 0, 160, 0, 175, 0, 0, + 0, 0, 0, 0, 0, 147, 133, 142, 164, 152, + 165, 143, 158, 157, 159, 0, 0, 0, 170, 0, + 0, 138, 132, 174, 129, 155, 122, 116, 0, 123, + 124, 128, 127, 0, 146, 153, 156, 162, 163, 168, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 137, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 114, 119, 150, 0, 166, 135, 181, 140, + 179, 178, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 171, 0, 172, 0, 0, + 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 185, 187, 186, 188, 120, + 189, 190, } var yyPact = [...]int{ - 157, -1000, -210, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 98, -1000, -213, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1006, 1049, -1000, -1000, -1000, -1000, + -1000, 827, 181, 90, 148, 144, 142, 183, 118, 10436, + -1000, 8811, 4310, -53, -1000, -165, -1000, -1000, -157, -1000, + -1000, 792, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 988, 1004, 852, 941, 886, -1000, 90, 10436, 1037, 2480, + -116, 10638, 85, 139, 135, 134, 85, -1000, -1000, -1000, + 105, -1000, 99, 681, 84, -1000, 10436, -1000, 10436, -64, + 63, -1000, -1000, -63, 309, -1000, -1000, -1000, -72, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1034, 1064, -1000, -1000, -1000, -1000, -1000, - 850, 279, 107, 155, 183, 180, 186, 177, 9906, -1000, - 8289, -61, -1000, -165, -1000, -1000, -177, -1000, -1000, 862, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1011, 1027, - 883, 957, 911, -1000, 107, 9906, 1047, 2286, -138, 10107, - 103, 170, 159, 158, 103, -1000, -1000, -1000, 175, -1000, - 165, 707, 102, -1000, 9906, -1000, 9906, -48, 50, -1000, - -1000, -22, 405, -1000, -1000, -1000, -60, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 9906, -1000, + 10436, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1902,13 +1959,8 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 9830, 182, 130, 214, 287, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 9303, 167, 133, 260, 335, -1000, -1000, 573, -1000, -1000, - -1000, -1000, -1000, -1000, 821, 821, -1000, 9906, -1000, -1000, - -189, -1000, -1000, 595, 959, 6068, 6068, 1034, -1000, 862, - -1000, -1000, -1000, 932, -1000, -1000, 382, 9102, 943, 9906, - 819, -1000, -1000, -173, 2894, -1000, -1000, -1000, -1000, 334, - 8088, 8088, -1000, -1000, -1000, 941, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1921,238 +1973,235 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1026, 1020, 733, -1000, 1532, - -1000, -1000, 10509, 371, 698, 692, 689, 9906, 9906, 102, - 870, 10509, 952, -1000, -1000, 1046, 9906, 9906, -1000, -1000, - 405, 405, -1000, -1000, 9906, -1000, -1000, -1000, -1000, -1000, - 405, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -11, -1000, -1000, -1000, -1000, -1000, 322, - 4718, -58, -1000, -1000, -1000, 6068, -1000, -1000, 258, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1059, 291, 592, - -1000, 6068, 1699, 821, 821, -1000, -1000, 214, -1000, -1000, - 6336, 6336, 6336, 6336, 6336, 6336, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 821, - 257, -1000, 5798, 821, 821, 821, 821, 821, 821, 6068, - 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 821, 821, -1000, -1000, 818, -1000, 395, 1011, 595, - 911, 7887, 887, -1000, -1000, 797, 9906, -1000, 9705, 1042, - 2590, -1000, 817, 813, -182, -179, -1000, -173, 4988, -1000, - -1000, -1000, -1000, 271, -1000, 821, 106, 136, 7077, 1539, - 2, -1000, -1000, -1000, 824, -1000, 824, 824, 824, 824, - 35, 35, 35, 35, -1000, -1000, -1000, -1000, -1000, 864, - 855, -1000, 824, 824, 824, -1000, -1000, -1000, -1000, -1000, + -1000, 462, -1000, -1000, -1000, -1000, -1000, -1000, 804, 804, + -1000, 10436, -1000, -1000, -192, -1000, -1000, 606, 931, 6853, + 6853, 1006, -1000, 792, -1000, -1000, -1000, 907, -1000, -1000, + 340, 9628, 915, 10436, 781, -1000, -1000, -175, 3090, -1000, + -1000, -1000, -1000, 284, 8609, 8609, -1000, -1000, -1000, 914, + -1000, -1000, -1000, -1000, -1000, 1003, 1001, 713, -1000, 1486, + -1000, -1000, 11042, 328, 680, 679, 678, 10436, 10436, 84, + 845, 11042, 930, -1000, -1000, 1034, 10436, 10436, -1000, -1000, + 309, 309, -1000, -1000, 10436, -1000, -1000, -1000, -1000, -1000, + 309, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -24, -1000, -1000, -1000, -1000, -1000, 277, + 5225, -49, -1000, -1000, -1000, 6853, -1000, -1000, 200, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1044, 245, 808, + -1000, 6853, 1685, 804, 804, -1000, -1000, 188, -1000, -1000, + 7122, 7122, 7122, 7122, 7122, 7122, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 804, + 211, -1000, 6582, 804, 804, 804, 804, 804, 804, 6853, + 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, + 804, 804, 804, -1000, -1000, 780, -1000, 289, 988, 606, + 886, 8407, 867, -1000, -1000, 835, 10436, -1000, 10234, 1031, + 2785, -1000, 776, 771, -181, -194, -1000, -175, 5769, -1000, + -1000, -1000, -1000, 228, -1000, 804, 104, 72, 7593, 1647, + -5, -1000, -1000, -1000, 815, -1000, 815, 815, 815, 815, + 30, 30, 30, 30, -1000, -1000, -1000, -1000, -1000, 832, + 831, -1000, 815, 815, 815, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 853, 853, 853, 826, 826, 945, -1000, - -1000, 951, 869, 868, 867, -1000, 769, 9906, 9906, -1000, - -1000, 1011, -55, -1000, -1000, 385, 9906, 9906, 405, -1000, - -1000, 571, -134, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 706, 324, -1000, 9906, -1000, -1000, -1000, - -1000, -1000, -1000, 915, 6068, 6068, 474, 6068, 6068, 301, - 6336, 418, 401, 6336, 6336, 6336, 6336, 6336, 6336, 6336, - 6336, 6336, 6336, 6336, 6336, 6336, 6336, 6336, 530, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 687, -1000, 862, - 716, 716, 265, 265, 265, 265, 265, 6604, 1902, 4414, - 595, 5798, 5258, 5258, 6068, 6068, 5258, 961, 348, 324, - 9504, -1000, 595, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 5258, 5258, 5258, 5258, 6068, -1000, -1000, -1000, 959, -1000, - 961, 1015, -1000, 923, 922, 5258, -1000, 866, 9705, 821, - -1000, 7686, -1000, 793, -1000, 312, -1000, 213, 1034, 6068, - -1000, 3806, -1000, -186, -1000, -180, -187, -1000, -1000, -1000, - -1000, -1000, 324, -1000, 667, 10107, 821, 821, -1000, 136, + -1000, -1000, -1000, 830, 830, 830, 821, 821, 917, -1000, + -1000, 912, 842, 841, 840, -1000, 896, 10436, 10436, -1000, + -1000, 988, -70, -1000, -1000, 348, 10436, 10436, 309, -1000, + -1000, 460, -128, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 677, 363, -1000, 10436, -1000, -1000, -1000, -1000, -1000, + -1000, 871, 6853, 6853, 397, 6853, 6853, 257, 7122, 344, + 341, 7122, 7122, 7122, 7122, 7122, 7122, 7122, 7122, 7122, + 7122, 7122, 7122, 7122, 7122, 7122, 453, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 666, -1000, 792, 572, 572, + 220, 220, 220, 220, 220, 7391, 5498, 4920, 606, 6582, + 6040, 6040, 6853, 6853, 6040, 942, 306, 363, 10032, -1000, + 606, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6040, 6040, + 6040, 6040, 6853, -1000, -1000, -1000, 931, -1000, 942, 1023, + -1000, 897, 895, 6040, -1000, 839, 10234, 804, -1000, 8205, + -1000, 777, -1000, 276, -1000, 210, 1006, 6853, -1000, 4005, + -1000, -185, -1000, -179, -166, -1000, -1000, -1000, -1000, -1000, + 363, -1000, 665, 10638, 804, 804, -1000, 72, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 309, 309, 98, 309, 309, - 309, 309, 309, -14, -15, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, -1000, -1000, - -1000, 625, 244, 195, -1000, -1000, -1000, -1000, 979, -1000, - 1539, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 402, 164, -1000, 975, -1000, 974, 598, - 1056, 495, 182, 156, -1, -1000, -1000, 552, 35, 35, - -1000, -1000, -1000, 940, -1000, -1000, -1000, 594, 594, -1000, - -1000, -1000, -1000, 550, -1000, -1000, -1000, 548, -1000, -1000, - 945, -1000, 166, -1000, 9906, 9906, 9906, -1000, 252, 310, - 118, 87, 86, 83, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 726, -1000, 955, -1000, 593, -1000, -1000, -1000, - 591, 6068, -1000, 405, 1042, -1000, -1000, 254, 6068, -1000, - -1000, 910, 301, 338, -1000, -1000, 467, -1000, -1000, 324, - 324, 764, -1000, -1000, -1000, -1000, 418, 6336, 6336, 6336, - 340, 764, 1435, 967, 1152, 265, 211, 211, 275, 275, - 275, 275, 275, 526, 526, -1000, -1000, -1000, 595, -1000, - -1000, -1000, 595, 5258, 779, -1000, -1000, 6876, 210, 821, - 209, -1000, -1000, 595, 665, 665, 413, 468, 665, 5258, - 380, -1000, 6068, 595, -1000, 665, 595, 665, 665, -1000, - -1000, 9906, -1000, -1000, -1000, -1000, 785, -1000, 947, 739, - 775, -1000, -1000, 5528, 595, 704, 206, 1034, 9705, 6068, - 4414, 1011, 324, -1000, -1000, -1000, -193, -184, -1000, -1000, - 595, 10107, 10107, -1000, 587, -1000, 495, 309, 309, -1000, - 939, 936, 545, 544, 533, 584, 583, 309, 309, 505, - 582, 653, 493, 488, 485, 549, 581, 459, 497, 486, - 477, 10308, 95, -1000, 625, -1000, 973, 244, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 852, -1000, -1000, - -1000, -1000, -1000, -1000, -62, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 729, -1000, -1000, 357, - 685, -1000, 675, 778, 671, -1000, 309, 309, -1000, 821, - 821, 821, -1000, 9906, -1000, -1000, -1000, 632, 33, 850, - 627, 10107, -1000, 9906, -1000, -1000, -1000, 998, 933, 309, - 309, -1000, -1000, -1000, 324, 385, -1000, -1000, 324, -1000, - -1000, -1000, -1000, -1000, -1000, 340, 764, 1105, -1000, 6336, - 6336, -1000, -1000, 665, 5258, -1000, -1000, 8898, -1000, -1000, - 3502, 5258, 4110, -1000, -1000, -1000, 604, 530, 604, -89, - 770, 343, -1000, 6068, 431, -1000, -1000, -1000, -1000, -1000, - -1000, 1042, 8697, 971, -1000, 821, -1000, -1000, 836, 9504, - 9504, 1011, -1000, 324, -1000, -1000, -1000, -1000, -1000, -1000, - 595, 595, -1000, -1000, 495, 495, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 578, 577, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 266, 266, 83, 266, 266, 266, 266, + 266, -27, -31, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, -1000, -1000, -1000, 581, + 197, 184, -1000, -1000, -1000, -1000, 959, -1000, 1647, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 312, 189, -1000, 952, -1000, 951, 543, 1043, 437, + 156, 141, -12, -1000, -1000, 459, 30, 30, -1000, -1000, + -1000, 910, -1000, -1000, -1000, 538, 538, -1000, -1000, -1000, + -1000, 457, -1000, -1000, -1000, 448, -1000, -1000, 917, -1000, + 154, -1000, 10436, 10436, 10436, -1000, 302, 274, 95, 76, + 74, 67, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 712, -1000, 929, -1000, 532, -1000, -1000, -1000, 531, 6853, + -1000, 309, 1031, -1000, -1000, 227, 6853, -1000, -1000, 885, + 257, 265, -1000, -1000, 375, -1000, -1000, 363, 363, 1629, + -1000, -1000, -1000, -1000, 344, 7122, 7122, 7122, 1153, 1629, + 1595, 458, 582, 220, 385, 385, 222, 222, 222, 222, + 222, 602, 602, -1000, -1000, -1000, 606, -1000, -1000, -1000, + 606, 6040, 760, -1000, -1000, 2018, 204, 804, 199, -1000, + -1000, 606, 636, 636, 390, 325, 636, 6040, 314, -1000, + 6853, 606, -1000, 636, 606, 636, 636, -1000, -1000, 10436, + -1000, -1000, -1000, -1000, 768, -1000, 920, 721, 724, -1000, + -1000, 6311, 606, 663, 198, 1006, 10234, 6853, 4920, 988, + 363, -1000, -1000, -1000, -186, -200, -1000, -1000, 606, 10638, + 10638, -1000, 530, -1000, 437, 266, 266, -1000, 909, 908, + 447, 443, 442, 526, 525, 266, 266, 439, 524, 630, + 435, 414, 398, 549, 522, 638, 533, 463, 451, 10840, + 79, -1000, 581, -1000, 947, 197, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 828, -1000, -1000, -1000, -1000, + -1000, -1000, -73, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 690, -1000, -1000, 247, 660, -1000, + 655, 727, 639, -1000, 266, 266, -1000, 804, 804, 804, + -1000, 10436, -1000, -1000, -1000, 612, 27, 827, 609, 10638, + -1000, 10436, -1000, -1000, -1000, 983, 902, 266, 266, -1000, + -1000, -1000, 363, 348, -1000, -1000, 363, -1000, -1000, -1000, + -1000, -1000, -1000, 1153, 1629, 1513, -1000, 7122, 7122, -1000, + -1000, 636, 6040, -1000, -1000, 9423, -1000, -1000, 3700, 6040, + 4615, -1000, -1000, -1000, 322, 453, 322, -96, 761, 298, + -1000, 6853, 381, -1000, -1000, -1000, -1000, -1000, -1000, 1031, + 9221, 946, -1000, 804, -1000, -1000, 779, 10032, 10032, 988, + -1000, 363, -1000, -1000, -1000, -1000, -1000, -1000, 606, 606, + -1000, -1000, 437, 437, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 519, 518, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 847, -1000, 1016, 837, - 95, 625, 461, -1000, -1000, -1000, -1000, -1000, 576, -1000, - 484, -1000, 472, 631, 399, 9504, 9504, 9504, -1000, -1000, - -1000, 935, -1000, -1000, -1000, -1000, -1000, -1000, 631, 631, - -1000, -1000, 6336, 764, 764, -1000, -1000, -1000, -1000, 198, - 595, -1000, 595, 824, 824, -1000, 824, 826, -1000, 824, - 67, 824, 63, 595, 595, 821, -85, -1000, 324, 6068, - 1039, 776, 800, -1000, -1000, -1000, 954, 7281, 7482, 1054, - -1000, 821, -1000, 862, 194, -1000, -1000, 821, -149, -1000, - -1000, -1000, -1000, 9504, -1000, -1000, -1000, -1000, 9504, 825, - 95, -1000, 672, -1000, 658, 651, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 661, -1000, 824, 661, 661, 622, -1000, - -1000, 764, 3198, -1000, -1000, -1000, 144, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 6336, 595, 575, 324, 1036, - 1013, 8697, 8697, 8697, 8697, -1000, 899, 896, -1000, 884, - 881, 901, 9906, -1000, 657, 7281, 208, -1000, 8493, -1000, - -1000, 9705, 775, 595, 9504, -147, -1000, 450, 650, 648, - 9504, 823, -1000, -1000, -1000, -1000, 9504, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 256, -1000, -1000, -1000, 6068, 6068, - 800, 771, 849, -1000, -1000, -1000, -1000, 891, -1000, 885, - -1000, -1000, -1000, -1000, -1000, 145, 137, 122, -1000, 753, - -1000, -1000, 645, -1000, 609, -1000, -1000, -1000, 642, 9504, - 465, -1000, 152, 448, 595, 114, -109, 324, 752, 6068, - 6068, -1000, -1000, 821, 821, 821, -147, -1000, 920, 111, - 111, -1000, 640, -1000, -1000, -1000, -1000, 309, 469, 1000, - -1000, -1000, -1000, 987, -1000, -1000, -1000, 908, -93, -121, - 324, 324, 9504, 9504, 9504, -1000, 185, -1000, 309, -1000, - 466, 984, 111, -1000, 435, -1000, -1000, -1000, -1000, 605, - -1000, 903, -1000, 636, -1000, 636, 636, 821, 415, -1000, - 603, 111, -1000, -1000, -95, -1000, 9504, -1000, -1000, -1000, - -1000, -1000, -117, -1000, -130, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 824, -1000, 979, 822, 79, 581, + 416, -1000, -1000, -1000, -1000, -1000, 517, -1000, 395, -1000, + 379, 562, 281, 10032, 10032, 10032, -1000, -1000, -1000, 906, + -1000, -1000, -1000, -1000, -1000, -1000, 562, 562, -1000, -1000, + 7122, 1629, 1629, -1000, -1000, -1000, -1000, 196, 606, -1000, + 606, 815, 815, -1000, 815, 821, -1000, 815, 50, 815, + 47, 606, 606, 804, -92, -1000, 363, 6853, 1025, 725, + 794, -1000, -1000, -1000, 933, 7798, 8000, 1042, -1000, 804, + -1000, 792, 153, -1000, -1000, 804, -145, -1000, -1000, -1000, + -1000, 10032, -1000, -1000, -1000, -1000, 10032, 819, 79, -1000, + 687, -1000, 656, 640, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 634, -1000, 815, 634, 634, 564, -1000, -1000, 1629, + 3395, -1000, -1000, -1000, 143, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 7122, 606, 516, 363, 1019, 991, 9221, + 9221, 9221, 9221, -1000, 872, 870, -1000, 866, 856, 857, + 10436, -1000, 616, 7798, 195, -1000, 9016, -1000, -1000, 10234, + 724, 606, 10032, -141, -1000, 378, 605, 603, 10032, 805, + -1000, -1000, -1000, -1000, 10032, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 191, -1000, -1000, -1000, 6853, 6853, 794, 838, + 604, -1000, -1000, -1000, -1000, 858, -1000, 691, -1000, -1000, + -1000, -1000, -1000, 132, 131, 123, -1000, 716, -1000, -1000, + 600, -1000, 560, -1000, -1000, -1000, 590, 10032, 308, -1000, + 149, 484, 606, 100, -108, 363, 557, 6853, 6853, -1000, + -1000, 804, 804, 804, -141, -1000, 894, 117, 117, -1000, + 586, -1000, -1000, -1000, -1000, 266, 514, 981, -1000, -1000, + -1000, 972, -1000, -1000, -1000, 881, -101, -121, 363, 363, + 10032, 10032, 10032, -1000, 244, -1000, 266, -1000, 454, 964, + 117, -1000, 361, -1000, -1000, -1000, -1000, 556, -1000, 877, + -1000, 555, -1000, 555, 555, 804, 350, -1000, 400, 117, + -1000, -1000, -103, -1000, 10032, -1000, -1000, -1000, -1000, -1000, + -111, -1000, -124, -1000, } var yyPgo = [...]int{ - 0, 19, 21, 1424, 1423, 1421, 26, 996, 1420, 1419, - 1418, 1417, 55, 1416, 1415, 1414, 1413, 30, 938, 1412, - 1407, 1099, 1097, 1095, 1406, 1404, 1402, 1401, 1400, 1398, - 1395, 1390, 1385, 1377, 247, 1374, 1362, 1358, 48, 1357, - 78, 1351, 94, 1350, 1348, 1346, 43, 77, 40, 38, - 216, 1345, 29, 7, 15, 1343, 1342, 9, 1340, 1164, - 1339, 1338, 60, 76, 1337, 1336, 44, 1335, 1334, 1331, - 1329, 1328, 2, 32, 1326, 69, 1323, 1321, 79, 1018, - 1316, 1313, 1310, 1306, 1303, 1302, 58, 5, 13, 1, - 25, 1301, 56, 12, 1300, 52, 1297, 1296, 1294, 1292, - 34, 1291, 74, 1290, 24, 73, 1287, 51, 17, 50, - 1286, 1285, 82, 95, 91, 72, 1284, 75, 1283, 1282, - 192, 1281, 1280, 1279, 916, 1278, 93, 526, 1277, 1274, - 1272, 1257, 1250, 1246, 1245, 59, 35, 0, 16, 23, - 37, 1243, 63, 910, 42, 14, 1239, 83, 1235, 57, - 33, 92, 28, 1234, 1233, 1232, 1231, 1229, 1227, 1226, - 47, 1225, 1223, 1222, 1208, 1207, 1204, 1203, 1202, 1201, - 1199, 1196, 1195, 1194, 1193, 1192, 1191, 67, 1188, 1187, - 1185, 1183, 1180, 1178, 1174, 1162, 1158, 1155, 1152, 10, - 1151, 1148, 1141, 22, 61, 36, 62, 1135, 1134, 1132, - 86, 27, 1131, 1130, 1129, 1127, 64, 54, 1126, 81, - 53, 49, 1125, 1124, 1123, 90, 6, 18, 1122, 1121, - 1120, 8, 11, 1119, 1117, 1116, 1112, 4, 46, 45, - 1111, 1110, 20, 1109, 1107, 71, 1106, 1104, 65, 3, - 1102, 1101, 1093, 1087, 88, 104, 1085, 135, + 0, 23, 24, 1336, 1335, 1331, 25, 990, 1330, 1328, + 1325, 1323, 57, 1322, 1320, 1318, 1315, 1314, 157, 901, + 1311, 1310, 1060, 1058, 1056, 1309, 1308, 1307, 1305, 1295, + 1294, 1291, 1289, 1288, 1287, 94, 1284, 1283, 1282, 46, + 1281, 80, 1280, 86, 1279, 1278, 1275, 36, 131, 33, + 34, 187, 1271, 27, 19, 17, 1270, 1257, 14, 1256, + 1465, 1254, 1251, 59, 90, 1248, 1247, 38, 1243, 1241, + 1239, 1238, 1235, 2, 26, 1234, 63, 1233, 1232, 73, + 108, 1231, 1229, 1228, 1227, 1226, 1223, 48, 8, 13, + 6, 20, 1222, 69, 11, 1221, 52, 1219, 1218, 1217, + 1214, 53, 1209, 78, 1208, 45, 77, 1207, 58, 10, + 51, 1206, 1205, 84, 88, 83, 79, 1204, 76, 1203, + 1199, 93, 1198, 1196, 1194, 903, 1193, 92, 440, 1191, + 1190, 1189, 1187, 1183, 1182, 1181, 60, 32, 0, 56, + 18, 30, 1180, 65, 878, 35, 15, 1175, 91, 1172, + 1511, 31, 85, 29, 1165, 1164, 1163, 1156, 1155, 1154, + 1150, 54, 1149, 1148, 1143, 1142, 1140, 1135, 1134, 1133, + 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 62, 1124, + 1123, 1122, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, + 37, 1111, 1110, 1108, 28, 1107, 61, 12, 66, 1106, + 1105, 1104, 81, 22, 1103, 1096, 1095, 1093, 64, 44, + 1091, 82, 55, 47, 1089, 1088, 1086, 74, 9, 4, + 1085, 1084, 1082, 1, 7, 1081, 1080, 1079, 1078, 5, + 39, 41, 1077, 1074, 16, 1073, 1072, 71, 1071, 1070, + 67, 3, 1069, 1066, 1065, 1063, 49, 21, 1062, 133, } var yyR1 = [...]int{ - 0, 242, 243, 243, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 17, 17, 17, 18, 19, 19, - 20, 20, 21, 21, 37, 37, 22, 23, 24, 24, - 240, 240, 239, 165, 165, 7, 7, 25, 25, 25, - 25, 25, 241, 241, 241, 241, 241, 241, 231, 231, - 232, 232, 224, 222, 222, 219, 219, 225, 225, 218, - 218, 223, 223, 220, 220, 227, 227, 227, 227, 227, - 228, 229, 236, 236, 237, 237, 238, 238, 238, 196, - 196, 195, 195, 194, 194, 194, 197, 197, 197, 28, - 211, 213, 213, 214, 214, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 167, - 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 182, 183, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 185, - 185, 186, 186, 187, 187, 188, 188, 170, 193, 193, - 168, 164, 166, 212, 212, 212, 207, 142, 142, 153, - 153, 153, 153, 233, 233, 234, 234, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 156, 156, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, - 155, 155, 155, 157, 157, 157, 157, 157, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 159, 159, 159, 159, 159, 159, 159, - 159, 206, 206, 160, 160, 200, 200, 201, 201, 201, - 198, 198, 199, 199, 202, 202, 161, 161, 161, 161, - 161, 161, 39, 38, 38, 38, 122, 122, 122, 203, - 189, 189, 189, 163, 190, 190, 191, 191, 191, 192, - 192, 192, 204, 204, 205, 205, 162, 208, 208, 208, - 208, 6, 6, 226, 226, 226, 226, 221, 221, 4, - 4, 4, 1, 2, 2, 3, 3, 3, 5, 5, - 210, 210, 209, 209, 217, 217, 216, 26, 26, 26, - 26, 26, 26, 26, 26, 128, 128, 133, 133, 133, - 27, 27, 27, 69, 69, 134, 134, 8, 29, 9, - 129, 129, 129, 67, 67, 67, 10, 12, 12, 12, - 12, 68, 68, 68, 68, 68, 68, 11, 11, 11, - 11, 132, 132, 132, 13, 14, 14, 14, 14, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 45, 45, 65, - 65, 65, 62, 62, 63, 63, 64, 64, 61, 61, - 66, 66, 66, 33, 31, 32, 32, 246, 34, 35, - 35, 36, 36, 36, 42, 42, 42, 40, 40, 41, - 41, 48, 48, 47, 47, 49, 49, 49, 49, 141, - 141, 141, 140, 140, 51, 51, 52, 52, 53, 53, - 54, 54, 54, 70, 55, 55, 55, 55, 148, 148, - 146, 146, 146, 145, 145, 56, 56, 56, 56, 57, - 57, 57, 57, 58, 58, 60, 60, 59, 59, 71, - 71, 71, 71, 72, 72, 73, 73, 50, 50, 50, - 50, 50, 50, 50, 125, 125, 75, 75, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 85, 85, - 85, 85, 85, 85, 76, 76, 76, 76, 76, 76, - 76, 46, 46, 86, 86, 86, 92, 87, 87, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 83, - 83, 83, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 82, 82, 82, 82, 82, 82, 82, 82, 247, - 247, 84, 84, 84, 84, 43, 43, 43, 43, 43, - 150, 150, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 96, 96, 44, 44, 94, - 94, 95, 97, 97, 93, 93, 93, 78, 78, 78, - 78, 78, 78, 78, 80, 80, 80, 98, 98, 99, - 99, 100, 100, 101, 101, 102, 103, 103, 103, 104, - 104, 104, 104, 105, 105, 105, 77, 77, 77, 77, - 77, 77, 106, 106, 106, 106, 107, 107, 88, 88, - 90, 90, 89, 91, 108, 108, 109, 110, 110, 113, - 113, 112, 112, 112, 112, 112, 121, 121, 120, 120, - 120, 111, 111, 114, 114, 118, 118, 117, 119, 119, - 119, 119, 116, 116, 115, 115, 151, 151, 151, 123, - 123, 126, 126, 127, 127, 124, 124, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 135, 135, 135, - 131, 131, 230, 230, 138, 138, 139, 139, 143, 143, - 144, 144, 147, 147, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 0, 244, 245, 245, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 18, 18, 18, 19, 20, + 20, 21, 21, 22, 22, 38, 38, 23, 24, 25, + 25, 242, 242, 241, 166, 166, 7, 7, 26, 26, + 26, 26, 26, 243, 243, 243, 243, 243, 243, 233, + 233, 234, 234, 226, 224, 224, 221, 221, 227, 227, + 220, 220, 225, 225, 222, 222, 229, 229, 229, 229, + 229, 230, 231, 238, 238, 239, 239, 240, 240, 240, + 198, 198, 197, 197, 196, 196, 196, 199, 199, 199, + 29, 213, 215, 215, 216, 216, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 183, 184, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 186, 186, 187, 187, 188, 188, 189, 189, 171, 194, + 194, 169, 165, 167, 214, 214, 214, 209, 143, 143, + 154, 154, 154, 154, 235, 235, 236, 236, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 157, 157, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 156, + 156, 156, 156, 156, 158, 158, 158, 158, 158, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, + 160, 160, 208, 208, 161, 161, 202, 202, 203, 203, + 203, 200, 200, 201, 201, 204, 204, 162, 162, 162, + 162, 162, 162, 40, 39, 39, 39, 123, 123, 123, + 205, 190, 190, 190, 164, 191, 191, 192, 192, 192, + 193, 193, 193, 206, 206, 207, 207, 163, 210, 210, + 210, 210, 6, 6, 228, 228, 228, 228, 223, 223, + 4, 4, 4, 1, 2, 2, 3, 3, 3, 5, + 5, 212, 212, 211, 211, 219, 219, 218, 27, 27, + 27, 27, 27, 27, 27, 27, 129, 129, 134, 134, + 134, 28, 28, 28, 70, 70, 135, 135, 8, 30, + 9, 130, 130, 130, 68, 68, 68, 10, 12, 12, + 12, 12, 69, 69, 69, 69, 69, 69, 11, 11, + 11, 11, 195, 195, 195, 195, 195, 13, 133, 133, + 133, 14, 16, 16, 16, 16, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 46, 46, 66, 66, 66, 63, + 63, 64, 64, 65, 65, 62, 62, 67, 67, 67, + 34, 32, 33, 33, 248, 35, 36, 36, 37, 37, + 37, 43, 43, 43, 41, 41, 42, 42, 49, 49, + 48, 48, 50, 50, 50, 50, 142, 142, 142, 141, + 141, 52, 52, 53, 53, 54, 54, 55, 55, 55, + 71, 56, 56, 56, 56, 149, 149, 147, 147, 147, + 146, 146, 57, 57, 57, 57, 58, 58, 58, 58, + 59, 59, 61, 61, 60, 60, 72, 72, 72, 72, + 73, 73, 74, 74, 51, 51, 51, 51, 51, 51, + 51, 126, 126, 76, 76, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 86, 86, 86, 86, 86, + 86, 77, 77, 77, 77, 77, 77, 77, 47, 47, + 87, 87, 87, 93, 88, 88, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 84, 84, 84, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, + 83, 83, 83, 83, 83, 83, 249, 249, 85, 85, + 85, 85, 44, 44, 44, 44, 44, 151, 151, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 97, 97, 45, 45, 95, 95, 96, 98, + 98, 94, 94, 94, 79, 79, 79, 79, 79, 79, + 79, 81, 81, 81, 99, 99, 100, 100, 101, 101, + 102, 102, 103, 104, 104, 104, 105, 105, 105, 105, + 106, 106, 106, 78, 78, 78, 78, 78, 78, 107, + 107, 107, 107, 108, 108, 89, 89, 91, 91, 90, + 92, 109, 109, 110, 111, 111, 114, 114, 113, 113, + 113, 113, 113, 122, 122, 121, 121, 121, 112, 112, + 115, 115, 119, 119, 118, 120, 120, 120, 120, 117, + 117, 116, 116, 152, 152, 152, 124, 124, 127, 127, + 128, 128, 125, 125, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 136, 136, 136, 132, 132, 232, + 232, 139, 139, 140, 140, 144, 144, 145, 145, 148, + 148, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, @@ -2160,83 +2209,93 @@ var yyR1 = [...]int{ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 244, 245, 149, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 246, 247, 150, } var yyR2 = [...]int{ 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 6, 7, 10, 1, 3, - 1, 3, 6, 7, 1, 1, 8, 7, 3, 3, - 1, 3, 5, 0, 2, 1, 1, 3, 5, 11, - 11, 11, 0, 1, 1, 5, 9, 7, 1, 1, - 1, 1, 2, 3, 2, 0, 2, 1, 1, 0, - 2, 1, 3, 0, 2, 0, 1, 1, 2, 2, - 3, 3, 0, 1, 1, 2, 4, 4, 2, 0, - 1, 0, 1, 1, 2, 2, 1, 1, 1, 4, - 4, 0, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 6, 7, 10, 1, + 3, 1, 3, 6, 7, 1, 1, 8, 7, 3, + 3, 1, 3, 5, 0, 2, 1, 1, 3, 5, + 11, 11, 11, 0, 1, 1, 5, 9, 7, 1, + 1, 1, 1, 2, 3, 2, 0, 2, 1, 1, + 0, 2, 1, 3, 0, 2, 0, 1, 1, 2, + 2, 3, 3, 0, 1, 1, 2, 4, 4, 2, + 0, 1, 0, 1, 1, 2, 2, 1, 1, 1, + 4, 4, 0, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 4, 3, 3, 4, 4, 3, 3, 3, 3, + 3, 3, 4, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, - 3, 3, 4, 1, 3, 3, 3, 1, 1, 3, - 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 2, 2, 2, 1, 3, 3, - 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 3, 0, 5, 0, 3, 5, - 0, 1, 0, 1, 1, 2, 2, 2, 2, 2, - 2, 2, 3, 1, 3, 4, 1, 1, 1, 1, - 0, 3, 3, 2, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 1, 2, 7, 7, 8, - 9, 0, 1, 3, 1, 2, 3, 0, 2, 0, - 1, 2, 2, 0, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 3, 2, 6, 7, 7, - 7, 9, 7, 7, 7, 0, 1, 0, 1, 1, - 6, 6, 4, 1, 3, 0, 1, 3, 3, 2, - 1, 1, 1, 0, 1, 1, 3, 1, 1, 1, - 1, 0, 3, 3, 3, 1, 1, 3, 5, 3, - 6, 0, 1, 1, 4, 2, 3, 2, 2, 4, - 4, 3, 6, 3, 3, 4, 4, 4, 6, 5, - 5, 3, 3, 5, 6, 7, 3, 3, 3, 5, - 3, 3, 3, 3, 3, 3, 3, 0, 3, 1, - 1, 1, 0, 2, 1, 1, 0, 1, 1, 1, - 0, 2, 2, 4, 2, 2, 2, 0, 2, 0, - 2, 1, 2, 2, 0, 1, 1, 0, 1, 0, - 1, 0, 1, 1, 3, 1, 2, 3, 5, 0, - 1, 2, 1, 1, 0, 2, 1, 3, 1, 1, - 1, 3, 3, 3, 3, 5, 5, 3, 0, 1, - 0, 1, 2, 1, 1, 1, 2, 2, 1, 2, - 3, 2, 3, 2, 2, 2, 1, 1, 3, 0, - 5, 5, 5, 1, 3, 0, 2, 1, 3, 3, - 2, 3, 1, 2, 0, 3, 1, 1, 3, 3, - 4, 4, 5, 3, 4, 5, 6, 2, 1, 2, - 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 0, 2, 1, 1, 1, 3, 1, 3, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 2, 3, 1, 1, 1, 1, 4, - 5, 6, 4, 4, 6, 6, 6, 9, 7, 5, - 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, - 2, 4, 4, 4, 4, 0, 3, 4, 7, 3, - 1, 1, 2, 3, 3, 1, 2, 2, 1, 2, - 1, 2, 2, 1, 2, 0, 1, 0, 2, 1, - 2, 4, 0, 2, 1, 3, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 0, 3, 0, - 2, 0, 3, 1, 3, 2, 0, 1, 1, 0, - 2, 4, 4, 0, 2, 4, 2, 1, 3, 5, - 4, 6, 1, 3, 3, 5, 0, 5, 1, 3, - 1, 2, 3, 1, 1, 3, 3, 1, 3, 1, - 2, 3, 3, 3, 2, 3, 1, 2, 1, 1, - 1, 2, 3, 2, 2, 0, 2, 3, 2, 2, - 2, 1, 0, 2, 2, 2, 1, 1, 1, 1, - 1, 0, 2, 0, 3, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 1, 3, 3, 4, 1, 3, 3, 3, 1, 1, + 3, 1, 1, 1, 0, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 1, 2, 2, 2, 1, 3, + 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 0, 3, 0, 5, 0, 3, + 5, 0, 1, 0, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 3, 1, 3, 4, 1, 1, 1, + 1, 0, 3, 3, 2, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 1, 2, 7, 7, + 8, 9, 0, 1, 3, 1, 2, 3, 0, 2, + 0, 1, 2, 2, 0, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 1, 3, 2, 6, 7, + 7, 7, 9, 7, 7, 7, 0, 1, 0, 1, + 1, 6, 6, 4, 1, 3, 0, 1, 3, 3, + 2, 1, 1, 1, 0, 1, 1, 3, 1, 1, + 1, 1, 0, 3, 3, 3, 1, 1, 3, 5, + 3, 6, 0, 1, 1, 1, 1, 2, 0, 1, + 1, 4, 2, 3, 2, 2, 4, 4, 3, 6, + 3, 3, 4, 4, 4, 6, 5, 5, 3, 3, + 5, 6, 7, 3, 3, 3, 5, 3, 3, 3, + 3, 3, 3, 3, 0, 3, 1, 1, 1, 0, + 2, 1, 1, 0, 1, 1, 1, 0, 2, 2, + 4, 2, 2, 2, 0, 2, 0, 2, 1, 2, + 2, 0, 1, 1, 0, 1, 0, 1, 0, 1, + 1, 3, 1, 2, 3, 5, 0, 1, 2, 1, + 1, 0, 2, 1, 3, 1, 1, 1, 3, 3, + 3, 3, 5, 5, 3, 0, 1, 0, 1, 2, + 1, 1, 1, 2, 2, 1, 2, 3, 2, 3, + 2, 2, 2, 1, 1, 3, 0, 5, 5, 5, + 1, 3, 0, 2, 1, 3, 3, 2, 3, 1, + 2, 0, 3, 1, 1, 3, 3, 4, 4, 5, + 3, 4, 5, 6, 2, 1, 2, 1, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, + 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, + 2, 3, 1, 1, 1, 1, 4, 5, 6, 4, + 4, 6, 6, 6, 9, 7, 5, 4, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 2, 4, 4, + 4, 4, 0, 3, 4, 7, 3, 1, 1, 2, + 3, 3, 1, 2, 2, 1, 2, 1, 2, 2, + 1, 2, 0, 1, 0, 2, 1, 2, 4, 0, + 2, 1, 3, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 0, 3, 0, 2, 0, 3, + 1, 3, 2, 0, 1, 1, 0, 2, 4, 4, + 0, 2, 4, 2, 1, 3, 5, 4, 6, 1, + 3, 3, 5, 0, 5, 1, 3, 1, 2, 3, + 1, 1, 3, 3, 1, 3, 1, 2, 3, 3, + 3, 2, 3, 1, 2, 1, 1, 1, 2, 3, + 2, 2, 0, 2, 3, 2, 2, 2, 1, 0, + 2, 2, 2, 1, 1, 1, 1, 1, 0, 2, + 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2257,317 +2316,319 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 0, } var yyChk = [...]int{ - -1000, -242, -16, -17, -21, -22, -23, -24, -25, -26, - -27, -8, -29, -30, -33, -31, -9, -10, -11, -13, - -14, -15, -32, -18, -19, 6, -37, 8, 9, 44, - -28, 125, 126, 127, 149, 129, 144, 47, 64, 273, - -129, 280, 283, 284, 287, 286, 301, 147, 148, -244, - 7, 253, 143, 142, 141, 67, -243, 309, -100, 14, - -36, 5, -34, -246, -34, -34, -34, -34, -211, 67, - -7, -230, 23, 31, 132, 245, 246, 34, -124, 136, - -128, 133, -7, 33, -134, 132, 132, 238, 125, 233, - 275, -64, -65, 277, 278, 240, 132, 279, 236, 276, - 235, 232, 173, 70, 46, 133, 27, 25, 132, -143, - 70, -137, 259, 19, 204, 150, 169, 260, 306, 79, - 203, 206, 207, 145, 165, 209, 208, 201, 159, 42, - 199, 183, 281, 264, 269, 242, 198, 160, 266, 23, - 184, 188, 288, 25, 211, 182, 26, 27, 261, 49, - 186, 212, 53, 202, 213, 190, 189, 191, 172, 17, - 214, 215, 185, 187, 263, 147, 216, 52, 195, 282, - 284, 240, 200, 174, 163, 164, 268, 267, 149, 265, - 134, 166, 301, 302, 304, 303, 305, 307, 308, -149, - -59, -68, 129, -143, 266, 269, 271, -132, 263, 206, - -149, 285, -149, -149, 302, 304, 303, 305, 306, 308, - 273, -149, -149, -17, -104, 16, 15, -20, -18, -244, - 6, 36, 37, -42, 54, 55, -35, -124, -59, 10, - -110, -111, -113, 285, -151, -112, 289, 290, 288, -139, - -121, 291, -138, -136, 173, 170, 70, -137, 85, 38, - 40, 193, 88, 156, 120, 178, 15, 21, 89, 167, - 119, 241, 205, 254, 125, 62, 244, 247, 243, 245, - 233, 161, 43, 9, 141, 142, 37, 113, 127, 92, - 93, 275, 146, 39, 143, 82, 18, 65, 10, 46, - 12, 13, 137, 136, 104, 133, 60, 7, 154, 155, - 121, 41, 101, 56, 35, 58, 102, 16, 248, 249, - 45, 181, 177, 258, 180, 153, 176, 115, 63, 50, - 86, 80, 162, 83, 66, 148, 84, 14, 61, 278, - 139, 277, 158, 103, 128, 253, 29, 59, 246, 6, - 257, 44, 144, 152, 57, 132, 234, 33, 179, 151, - 175, 91, 135, 81, 279, 5, 34, 196, 8, 64, - 138, 250, 251, 252, 48, 171, 168, 276, 262, 90, - 11, 197, -241, 288, 282, 274, 270, -212, -207, -142, - 70, -137, -127, 137, 133, 133, 133, -127, 132, 132, - 70, -126, 137, -59, -59, 237, 132, 245, -149, -149, - 234, -61, 241, 242, -63, 10, 104, -149, -149, -149, - 240, -149, -149, -149, -149, -149, -149, -149, -59, -67, - -142, 72, -12, 18, -17, -22, -21, -23, -12, 266, - 122, 94, 73, -149, -89, -244, -89, -149, -59, -149, - -149, 307, 286, 287, -245, 69, -105, 18, 45, -50, - -74, 86, -79, 43, 39, -78, -75, -93, -91, -92, - 120, 109, 110, 117, 87, 121, -83, -81, -82, -84, - 72, 71, 73, 74, 75, 76, 80, 81, 82, -138, - -143, -89, -244, 58, 59, 254, 255, 258, 256, 89, - 48, 243, 252, 251, 250, 248, 249, 244, 247, 137, - 245, 115, 253, 70, -137, -101, -102, -50, -100, -17, - -34, 50, -40, 37, 78, -60, 41, -59, 44, -59, - 68, -114, -117, -115, 292, 294, -112, 285, 94, -120, - -138, 72, 43, -120, 44, 15, 15, 69, 68, -153, - -156, -158, -157, -159, -154, -155, 167, 168, 120, 171, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 44, 145, 163, 164, 165, 166, 184, 185, 186, 187, - 188, 189, 190, 191, 150, 169, 260, 151, 152, 153, - 154, 155, 156, 158, 159, 160, 161, 162, -147, 70, - -137, 86, 70, 70, 70, -59, -59, -126, 66, -147, - 39, -45, 10, -59, -143, -62, -63, -63, -59, -62, - -149, 206, 94, -144, -143, -136, 170, 173, 182, 267, - 268, -149, -149, -87, -50, -149, -135, 135, 38, -149, - -149, -149, 8, 104, 85, 84, 101, 68, 17, -50, - -76, 104, 86, 102, 103, 88, 106, 105, 116, 109, - 110, 111, 112, 113, 114, 115, 107, 108, 119, 94, - 95, 96, 97, 98, 99, 100, -125, -244, -92, -244, - 123, 124, -79, -79, -79, -79, -79, -79, -244, 122, - -17, -244, -244, -244, -244, -244, -244, -244, -96, -50, - -244, -247, -244, -247, -247, -247, -247, -247, -247, -247, - -244, -244, -244, -244, 68, -103, 40, 141, -104, -245, - -42, -80, -138, 73, 76, -41, 57, -77, 44, 48, - -17, -244, -59, -108, -109, -93, -138, -143, -73, 11, - -113, -151, -116, 68, -118, 68, 293, 295, 296, -114, - 66, 83, -50, -190, 119, -244, 272, 24, -213, -214, - -215, -168, -164, -166, -167, -169, -170, -171, -172, -173, - -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, - -184, -185, -186, -187, -188, 79, 281, -196, 193, 204, - 47, 205, 206, 207, 133, 209, 210, 211, 26, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 43, -207, - -208, -209, -5, -4, 133, 35, 31, 23, 22, -233, - -234, -235, -202, -161, -203, -204, -205, -162, -39, -163, - -191, -192, 80, 86, 43, 193, 139, 35, 34, 79, - 66, 119, 203, 200, -198, 196, -160, 67, -160, -160, - -160, -160, -189, 170, -189, -189, -189, 67, 67, -160, - -160, -160, -200, 67, -200, -200, -201, 67, -201, -236, - -237, -238, -196, 39, 66, 66, 66, -130, 128, 281, - 254, 130, 127, 131, 126, 193, 170, 79, 43, 14, - 265, 70, -69, -59, -59, -104, 239, -149, -149, -66, - 102, 11, -143, -59, -62, -149, 73, 267, 68, -245, - -59, 52, -50, -50, -85, 80, 86, 81, 82, -50, - -50, -79, -86, -89, -92, 77, 104, 102, 103, 88, - -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, - -79, -79, -79, -79, -79, -150, 70, 72, 70, -78, - -78, -138, -48, 37, -47, -49, 111, -50, -143, -139, - -144, -136, -245, -17, -47, -47, -50, -50, -47, -40, - -94, -95, 90, -138, -245, -47, -48, -47, -47, -102, - -105, -123, 18, 10, 48, 48, -47, -107, 66, -108, - -88, -90, -89, -244, -17, -106, -138, -73, 68, 94, - 122, -100, -50, -115, -117, -119, 297, 294, 300, 70, - -142, -244, -244, -215, -195, 94, -195, 119, -194, 173, - 170, 167, -195, -195, -195, -195, -195, 208, 208, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -6, 70, -210, -209, 139, 34, 32, -235, - 80, 72, 73, 74, 80, -38, -75, -122, 243, 248, - 249, 35, 35, 72, 8, -193, 70, 72, 198, 199, - 43, 43, 201, 202, -199, 197, 73, -189, -189, 44, - -206, 72, -206, 73, 73, -238, 119, -194, -177, -59, - -59, -59, -149, -135, -131, 133, 35, 94, 135, 140, - 140, 140, -133, 68, 29, 21, -227, -228, -229, 45, - 19, -149, 72, 72, -50, -62, -73, -12, -50, -149, - 53, 80, 81, 82, -86, -79, -79, -79, -46, 146, - 85, -245, -245, -47, 68, -141, -140, 38, -138, 72, - 122, -244, 122, -245, -245, -245, 68, 138, 38, -245, - -47, -97, -95, 92, -50, -245, -245, -245, -245, -245, - -59, -51, 10, 42, -107, 68, -245, -245, -245, 68, - 122, -100, -109, -50, -139, -104, 294, 298, 299, -245, - -142, -142, 72, -193, -195, -195, 44, 44, 73, 73, - 73, 72, 72, -195, -195, 73, 72, 70, 73, 73, - 73, 73, 43, 72, 43, 199, 198, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 73, 43, - 73, 43, 73, 43, 70, -137, -2, -1, 138, -6, - 35, -210, 67, -38, 69, 70, 120, 69, 68, 69, - 68, 69, 68, -195, -195, -244, -244, -244, -59, -149, - 70, 170, -211, 70, -207, -59, -229, -228, -195, -195, - -66, -46, 85, -79, -79, -245, -49, -140, 111, -144, - -48, -139, -152, 120, 167, 145, 165, 161, 182, 172, - 195, 163, 196, -150, -152, 259, -100, 93, -50, 91, - -73, -52, -53, -54, -55, -70, -92, -244, -59, 35, - -90, 48, -17, -244, -138, -138, -104, -245, -245, -193, - -193, 72, 72, 67, -3, 24, 20, 30, 67, -2, - -6, 69, 73, 72, 73, 73, -232, 70, 43, -197, - 70, 120, 43, -217, -216, -138, -217, -217, 44, -232, - -232, -79, 122, -245, -245, -160, -160, -160, -201, -160, - 155, -160, 155, -245, -245, -244, -44, 257, -50, -98, - 12, 68, -56, -57, -58, 56, 60, 62, 57, 58, - 59, 63, -148, 38, -52, -244, -146, -145, 38, -143, - 72, 8, -88, -17, 122, -244, -165, 271, -217, -217, - 67, -2, 69, 69, 69, -245, 68, -160, -245, -245, - 70, 111, -189, 70, -79, -245, 72, -99, 13, 15, - -53, -54, -53, -54, 56, 56, 56, 61, 56, 61, - 56, -57, -143, -245, -71, 64, 136, 65, -145, -108, - -245, -138, -240, -239, 270, 73, 69, 69, -217, 67, - -219, -216, -218, -220, -43, 104, 262, -50, -87, 66, - 66, 56, 56, 133, 133, 133, 68, -245, 70, -221, - -221, 69, -217, -227, -225, -222, -224, 26, 79, 138, - -227, -223, -222, 262, -227, -222, -245, 260, 63, 263, - -50, -50, -244, -244, -244, -239, 48, -226, 26, -1, - 79, 262, -221, 69, -195, 72, -231, 24, 20, 28, - 53, 261, 264, -72, -138, -72, -72, 104, -195, 72, - 28, -221, 73, 70, 53, -245, 68, -245, -245, -89, - 73, 70, 262, -138, 263, 264, + -1000, -244, -17, -18, -22, -23, -24, -25, -26, -27, + -28, -8, -30, -31, -34, -32, -9, -10, -11, -13, + -14, -16, -15, -33, -19, -20, 6, -38, 8, 9, + 44, -29, 125, 126, 127, 149, 129, 144, 47, 64, + 274, -130, 147, 281, 284, 285, 288, 287, 302, 148, + 150, -246, 7, 254, 143, 142, 141, 67, -245, 310, + -101, 14, -37, 5, -35, -248, -35, -35, -35, -35, + -213, 67, -7, -232, 23, 31, 132, 246, 247, 34, + -125, 136, -129, 133, -7, 33, -135, 132, 132, 239, + 125, 234, 276, -65, -66, 278, 279, 241, 132, 280, + 237, 277, 236, 233, 174, 70, 46, 133, 27, 25, + 132, -144, 70, -138, 260, 19, 205, 151, 170, 261, + 307, 79, 204, 207, 208, 145, 166, 210, 209, 202, + 160, 42, 200, 184, 282, 265, 270, 243, 199, 161, + 267, 23, 185, 189, 289, 25, 212, 183, 26, 27, + 262, 49, 187, 213, 53, 203, 214, 191, 190, 192, + 173, 17, 215, 216, 186, 188, 264, 148, 217, 52, + 196, 283, 285, 241, 201, 175, 164, 165, 269, 268, + 149, 266, 134, 167, 302, 303, 305, 304, 306, 308, + 309, -150, -60, -69, 129, -144, 267, 270, 272, -195, + 70, 72, -137, -138, 85, 38, 40, 194, 88, 157, + 120, 179, 15, 21, 89, 168, 171, 174, 119, 242, + 206, 255, 125, 62, 245, 248, 244, 246, 234, 162, + 43, 9, 141, 142, 37, 113, 127, 92, 93, 276, + 146, 39, 143, 82, 18, 65, 10, 46, 12, 13, + 147, 137, 136, 104, 133, 60, 7, 155, 156, 121, + 41, 101, 56, 35, 58, 102, 16, 249, 250, 45, + 182, 178, 259, 181, 154, 177, 115, 63, 50, 86, + 80, 163, 83, 66, 150, 84, 14, 61, 279, 139, + 278, 159, 103, 128, 254, 29, 59, 247, 6, 258, + 44, 144, 153, 57, 132, 235, 33, 180, 152, 176, + 91, 135, 81, 280, 5, 34, 197, 8, 64, 138, + 251, 252, 253, 48, 172, 169, 277, 263, 90, 11, + 198, -133, 264, 207, -150, 286, -150, -150, 303, 305, + 304, 306, 307, 309, 274, -150, -150, -18, -105, 16, + 15, -21, -19, -246, 6, 36, 37, -43, 54, 55, + -36, -125, -60, 10, -111, -112, -114, 286, -152, -113, + 290, 291, 289, -140, -122, 292, -139, -137, 174, 171, + 70, -138, -243, 289, 283, 275, 271, -214, -209, -143, + 70, -138, -128, 137, 133, 133, 133, -128, 132, 132, + 70, -127, 137, -60, -60, 238, 132, 246, -150, -150, + 235, -62, 242, 243, -64, 10, 104, -150, -150, -150, + 241, -150, -150, -150, -150, -150, -150, -150, -60, -68, + -143, 72, -12, 18, -18, -23, -22, -24, -12, 267, + 122, 94, 73, -150, -90, -246, -90, -150, -60, -150, + -150, 308, 287, 288, -247, 69, -106, 18, 45, -51, + -75, 86, -80, 43, 39, -79, -76, -94, -92, -93, + 120, 109, 110, 117, 87, 121, -84, -82, -83, -85, + 72, 71, 73, 74, 75, 76, 80, 81, 82, -139, + -144, -90, -246, 58, 59, 255, 256, 259, 257, 89, + 48, 244, 253, 252, 251, 249, 250, 245, 248, 137, + 246, 115, 254, 70, -138, -102, -103, -51, -101, -18, + -35, 50, -41, 37, 78, -61, 41, -60, 44, -60, + 68, -115, -118, -116, 293, 295, -113, 286, 94, -121, + -139, 72, 43, -121, 44, 15, 15, 69, 68, -154, + -157, -159, -158, -160, -155, -156, 168, 169, 120, 172, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 44, 145, 164, 165, 166, 167, 185, 186, 187, 188, + 189, 190, 191, 192, 151, 170, 261, 152, 153, 154, + 155, 156, 157, 159, 160, 161, 162, 163, -148, 70, + -138, 86, 70, 70, 70, -60, -60, -127, 66, -148, + 39, -46, 10, -60, -144, -63, -64, -64, -60, -63, + -150, 207, 94, -145, -144, -137, 183, 268, 269, -150, + -150, -88, -51, -150, -136, 135, 38, -150, -150, -150, + 8, 104, 85, 84, 101, 68, 17, -51, -77, 104, + 86, 102, 103, 88, 106, 105, 116, 109, 110, 111, + 112, 113, 114, 115, 107, 108, 119, 94, 95, 96, + 97, 98, 99, 100, -126, -246, -93, -246, 123, 124, + -80, -80, -80, -80, -80, -80, -246, 122, -18, -246, + -246, -246, -246, -246, -246, -246, -97, -51, -246, -249, + -246, -249, -249, -249, -249, -249, -249, -249, -246, -246, + -246, -246, 68, -104, 40, 141, -105, -247, -43, -81, + -139, 73, 76, -42, 57, -78, 44, 48, -18, -246, + -60, -109, -110, -94, -139, -144, -74, 11, -114, -152, + -117, 68, -119, 68, 294, 296, 297, -115, 66, 83, + -51, -191, 119, -246, 273, 24, -215, -216, -217, -169, + -165, -167, -168, -170, -171, -172, -173, -174, -175, -176, + -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, + -187, -188, -189, 79, 282, -198, 194, 205, 47, 206, + 207, 208, 133, 210, 211, 212, 26, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 43, -209, -210, -211, + -5, -4, 133, 35, 31, 23, 22, -235, -236, -237, + -204, -162, -205, -206, -207, -163, -40, -164, -192, -193, + 80, 86, 43, 194, 139, 35, 34, 79, 66, 119, + 204, 201, -200, 197, -161, 67, -161, -161, -161, -161, + -190, 171, -190, -190, -190, 67, 67, -161, -161, -161, + -202, 67, -202, -202, -203, 67, -203, -238, -239, -240, + -198, 39, 66, 66, 66, -131, 128, 282, 255, 130, + 127, 131, 126, 194, 171, 79, 43, 14, 266, 70, + -70, -60, -60, -105, 240, -150, -150, -67, 102, 11, + -144, -60, -63, -150, 73, 268, 68, -247, -60, 52, + -51, -51, -86, 80, 86, 81, 82, -51, -51, -80, + -87, -90, -93, 77, 104, 102, 103, 88, -80, -80, + -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -151, 70, 72, 70, -79, -79, -139, + -49, 37, -48, -50, 111, -51, -144, -140, -145, -137, + -247, -18, -48, -48, -51, -51, -48, -41, -95, -96, + 90, -139, -247, -48, -49, -48, -48, -103, -106, -124, + 18, 10, 48, 48, -48, -108, 66, -109, -89, -91, + -90, -246, -18, -107, -139, -74, 68, 94, 122, -101, + -51, -116, -118, -120, 298, 295, 301, 70, -143, -246, + -246, -217, -197, 94, -197, 119, -196, 174, 171, 168, + -197, -197, -197, -197, -197, 209, 209, -197, -197, -197, + -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, + -6, 70, -212, -211, 139, 34, 32, -237, 80, 72, + 73, 74, 80, -39, -76, -123, 244, 249, 250, 35, + 35, 72, 8, -194, 70, 72, 199, 200, 43, 43, + 202, 203, -201, 198, 73, -190, -190, 44, -208, 72, + -208, 73, 73, -240, 119, -196, -178, -60, -60, -60, + -150, -136, -132, 133, 35, 94, 135, 140, 140, 140, + -134, 68, 29, 21, -229, -230, -231, 45, 19, -150, + 72, 72, -51, -63, -74, -12, -51, -150, 53, 80, + 81, 82, -87, -80, -80, -80, -47, 146, 85, -247, + -247, -48, 68, -142, -141, 38, -139, 72, 122, -246, + 122, -247, -247, -247, 68, 138, 38, -247, -48, -98, + -96, 92, -51, -247, -247, -247, -247, -247, -60, -52, + 10, 42, -108, 68, -247, -247, -247, 68, 122, -101, + -110, -51, -140, -105, 295, 299, 300, -247, -143, -143, + 72, -194, -197, -197, 44, 44, 73, 73, 73, 72, + 72, -197, -197, 73, 72, 70, 73, 73, 73, 73, + 43, 72, 43, 200, 199, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 73, 43, 73, 43, + 73, 43, 70, -138, -2, -1, 138, -6, 35, -212, + 67, -39, 69, 70, 120, 69, 68, 69, 68, 69, + 68, -197, -197, -246, -246, -246, -60, -150, 70, 171, + -213, 70, -209, -60, -231, -230, -197, -197, -67, -47, + 85, -80, -80, -247, -50, -141, 111, -145, -49, -140, + -153, 120, 168, 145, 166, 162, 183, 173, 196, 164, + 197, -151, -153, 260, -101, 93, -51, 91, -74, -53, + -54, -55, -56, -71, -93, -246, -60, 35, -91, 48, + -18, -246, -139, -139, -105, -247, -247, -194, -194, 72, + 72, 67, -3, 24, 20, 30, 67, -2, -6, 69, + 73, 72, 73, 73, -234, 70, 43, -199, 70, 120, + 43, -219, -218, -139, -219, -219, 44, -234, -234, -80, + 122, -247, -247, -161, -161, -161, -203, -161, 156, -161, + 156, -247, -247, -246, -45, 258, -51, -99, 12, 68, + -57, -58, -59, 56, 60, 62, 57, 58, 59, 63, + -149, 38, -53, -246, -147, -146, 38, -144, 72, 8, + -89, -18, 122, -246, -166, 272, -219, -219, 67, -2, + 69, 69, 69, -247, 68, -161, -247, -247, 70, 111, + -190, 70, -80, -247, 72, -100, 13, 15, -54, -55, + -54, -55, 56, 56, 56, 61, 56, 61, 56, -58, + -144, -247, -72, 64, 136, 65, -146, -109, -247, -139, + -242, -241, 271, 73, 69, 69, -219, 67, -221, -218, + -220, -222, -44, 104, 263, -51, -88, 66, 66, 56, + 56, 133, 133, 133, 68, -247, 70, -223, -223, 69, + -219, -229, -227, -224, -226, 26, 79, 138, -229, -225, + -224, 263, -229, -224, -247, 261, 63, 264, -51, -51, + -246, -246, -246, -241, 48, -228, 26, -1, 79, 263, + -223, 69, -197, 72, -233, 24, 20, 28, 53, 262, + 265, -73, -139, -73, -73, 104, -197, 72, 28, -223, + 73, 70, 53, -247, 68, -247, -247, -90, 73, 70, + 263, -139, 264, 265, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 631, 0, 417, 417, 417, 417, 417, - 0, 722, 705, 325, 335, 0, 406, 0, 0, 939, - 351, 361, 939, 0, 939, 939, 0, 939, 939, 0, - 34, 35, 340, 341, 342, 937, 1, 3, 639, 0, - 0, 421, 424, 419, 705, 0, 0, 0, 52, 0, - 703, 0, 0, 0, 703, 45, 46, 723, 0, 706, - 0, 0, 701, 326, 0, 336, 0, 0, 0, 939, - 939, 0, 0, 939, 939, 939, 0, 939, 939, 939, - 939, 939, 939, 939, 407, 399, 400, 401, 0, 414, - 728, 729, 860, 861, 862, 863, 864, 865, 866, 867, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, - 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, - 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, - 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 339, - 343, 0, 0, 477, 886, -2, 356, 0, 362, 363, - 365, 939, 367, 368, 0, 0, 939, 0, 939, 939, - 0, 415, 416, 28, 643, 0, 0, 631, 30, 0, - 417, 422, 423, 427, 425, 426, 418, 0, 0, 0, - 38, 39, 667, 0, 0, 669, 696, 697, -2, 0, - 0, 0, 726, 727, -2, 746, 724, 725, 734, 735, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, - 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, - 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, - 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, - 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, - 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, - 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, - 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, - 858, 859, 47, 53, 54, 0, 0, 0, 173, 0, - 177, 178, 0, 0, 0, 0, 0, 0, 0, 701, - 0, 0, 0, 337, 338, 397, 0, 0, 381, 382, - 402, 0, 408, 409, 0, 404, 405, 386, 387, 388, - 402, 390, 391, 392, 393, 394, 395, 396, 939, 346, - 344, 345, 357, 0, -2, 348, 349, 350, 359, 0, - 0, 0, 939, 366, 939, 0, 939, 371, 717, 373, - 374, 939, 939, 939, 29, 938, 24, 0, 0, 640, - 487, 0, 492, 494, 0, 529, 530, 531, 532, 533, - 0, 0, 0, 0, 0, 0, 555, 556, 557, 558, - 617, 618, 619, 620, 621, 622, 623, 496, 497, 614, - 0, 663, 0, 0, 0, 0, 0, 0, 0, 605, - 0, 579, 579, 579, 579, 579, 579, 579, 579, 0, - 0, 0, 0, -2, -2, 632, 633, 636, 639, 28, - 424, 0, 429, 428, 420, 0, 0, 476, 0, 485, - 0, 681, 692, 685, 0, 0, 670, 0, 0, 674, - 678, 679, 680, 274, 677, 0, 0, -2, 299, 183, - 250, 180, 181, 182, 243, 198, 243, 243, 243, 243, - 270, 270, 270, 270, 226, 227, 228, 229, 230, 0, - 0, 213, 243, 243, 243, 217, 233, 234, 235, 236, - 237, 238, 239, 240, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 245, 245, 245, 247, 247, -2, 732, - 733, 0, 0, 0, 0, 99, 0, 0, 0, 332, - 702, 639, 0, 939, 939, 410, 0, 0, 402, 939, - 413, 0, 0, 478, 730, 731, 746, 747, 352, 353, - 354, 364, 369, 0, 527, 370, 0, 718, 719, 375, - 376, 377, 644, 0, 0, 0, 0, 0, 0, 490, + 21, 22, 23, 24, 638, 0, 424, 424, 424, 424, + 424, 0, 729, 712, 326, 336, 0, 413, 0, 0, + 947, 352, 362, 368, 947, 0, 947, 947, 0, 947, + 947, 0, 35, 36, 341, 342, 343, 945, 1, 3, + 646, 0, 0, 428, 431, 426, 712, 0, 0, 0, + 53, 0, 710, 0, 0, 0, 710, 46, 47, 730, + 0, 713, 0, 0, 708, 327, 0, 337, 0, 0, + 0, 947, 947, 0, 0, 947, 947, 947, 0, 947, + 947, 947, 947, 947, 947, 947, 414, 406, 407, 408, + 0, 421, 735, 736, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, + 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, + 944, 340, 344, 0, 0, 484, 894, -2, 357, 367, + 363, 364, 365, 366, 741, 742, 743, 744, 745, 746, + 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, + 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, + 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, + 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, + 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, + 867, 0, 369, 370, 372, 947, 374, 375, 0, 0, + 947, 0, 947, 947, 0, 422, 423, 29, 650, 0, + 0, 638, 31, 0, 424, 429, 430, 434, 432, 433, + 425, 0, 0, 0, 39, 40, 674, 0, 0, 676, + 703, 704, -2, 0, 0, 0, 733, 734, -2, 753, + 731, 732, 48, 54, 55, 0, 0, 0, 174, 0, + 178, 179, 0, 0, 0, 0, 0, 0, 0, 708, + 0, 0, 0, 338, 339, 404, 0, 0, 388, 389, + 409, 0, 415, 416, 0, 411, 412, 393, 394, 395, + 409, 397, 398, 399, 400, 401, 402, 403, 947, 347, + 345, 346, 358, 0, -2, 349, 350, 351, 360, 0, + 0, 0, 947, 373, 947, 0, 947, 378, 724, 380, + 381, 947, 947, 947, 30, 946, 25, 0, 0, 647, + 494, 0, 499, 501, 0, 536, 537, 538, 539, 540, + 0, 0, 0, 0, 0, 0, 562, 563, 564, 565, + 624, 625, 626, 627, 628, 629, 630, 503, 504, 621, + 0, 670, 0, 0, 0, 0, 0, 0, 0, 612, + 0, 586, 586, 586, 586, 586, 586, 586, 586, 0, + 0, 0, 0, -2, -2, 639, 640, 643, 646, 29, + 431, 0, 436, 435, 427, 0, 0, 483, 0, 492, + 0, 688, 699, 692, 0, 0, 677, 0, 0, 681, + 685, 686, 687, 275, 684, 0, 0, -2, 300, 184, + 251, 181, 182, 183, 244, 199, 244, 244, 244, 244, + 271, 271, 271, 271, 227, 228, 229, 230, 231, 0, + 0, 214, 244, 244, 244, 218, 234, 235, 236, 237, + 238, 239, 240, 241, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 246, 246, 246, 248, 248, -2, 739, + 740, 0, 0, 0, 0, 100, 0, 0, 0, 333, + 709, 646, 0, 947, 947, 417, 0, 0, 409, 947, + 420, 0, 0, 485, 737, 738, 353, 354, 355, 371, + 376, 0, 534, 377, 0, 725, 726, 382, 383, 384, + 651, 0, 0, 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, - 515, 516, 517, 518, 519, 520, 493, 0, 507, 0, - 0, 0, 549, 550, 551, 552, 553, 0, 431, 0, - 28, 0, 0, 0, 0, 0, 0, 427, 0, 606, - 0, 571, 0, 572, 573, 574, 575, 576, 577, 578, - 0, 431, 0, 0, 0, 635, 637, 638, 643, 31, - 427, 0, 624, 0, 0, 0, 430, 656, 0, 0, - -2, 0, 475, 485, 664, 0, 614, 0, 631, 0, - 668, 0, 683, 0, 684, 0, 0, 694, 695, 682, - 671, 672, 673, 675, 0, 0, 0, 0, 100, -2, - 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 91, 91, 0, 91, 91, - 91, 91, 91, 0, 0, 91, 91, 91, 91, 91, - 91, 91, 91, 91, 91, 91, 91, 91, 90, 174, - 175, 291, 310, 0, 312, 313, 308, -2, 300, 176, - 184, 185, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 254, 0, 0, 269, 0, 283, 285, 0, - 0, 0, 0, 0, 252, 251, 197, 0, 270, 270, - 220, 221, 222, 0, 223, 224, 225, 0, 0, 214, - 215, 216, 208, 0, 209, 210, 211, 0, 212, 48, - -2, 84, 0, 704, 0, 0, 0, 939, 717, 0, - 714, 0, 712, 0, 707, 708, 709, 710, 711, 713, - 715, 716, 327, 333, 75, 939, 0, 379, 380, 383, - 0, 0, 403, 402, 485, 389, 358, 0, 0, 662, - 939, 0, 488, 489, 491, 508, 0, 510, 512, 641, - 642, 498, 499, 523, 524, 525, 0, 0, 0, 0, - 521, 503, 0, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 548, 590, 591, 0, 546, - 547, 554, 0, 0, 432, 433, 435, 439, 0, 615, - 0, -2, 526, 28, 0, 0, 0, 0, 0, 0, - 612, 609, 0, 0, 580, 0, 0, 0, 0, 634, - 25, 0, 699, 700, 625, 626, 444, 32, 0, 656, - 646, 658, 660, 0, 28, 0, 652, 631, 0, 0, - 0, 639, 486, 693, 686, 687, 0, 0, 691, 275, - 0, 0, 0, 104, 0, 92, 0, 91, 91, 93, - 0, 0, 0, 0, 0, 0, 0, 91, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 521, 522, 523, + 524, 525, 526, 527, 500, 0, 514, 0, 0, 0, + 556, 557, 558, 559, 560, 0, 438, 0, 29, 0, + 0, 0, 0, 0, 0, 434, 0, 613, 0, 578, + 0, 579, 580, 581, 582, 583, 584, 585, 0, 438, + 0, 0, 0, 642, 644, 645, 650, 32, 434, 0, + 631, 0, 0, 0, 437, 663, 0, 0, -2, 0, + 482, 492, 671, 0, 621, 0, 638, 0, 675, 0, + 690, 0, 691, 0, 0, 701, 702, 689, 678, 679, + 680, 682, 0, 0, 0, 0, 101, -2, 104, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 92, 92, 0, 92, 92, 92, 92, + 92, 0, 0, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 91, 175, 176, 292, + 311, 0, 313, 314, 309, -2, 301, 177, 185, 186, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 255, 0, 0, 270, 0, 284, 286, 0, 0, 0, + 0, 0, 253, 252, 198, 0, 271, 271, 221, 222, + 223, 0, 224, 225, 226, 0, 0, 215, 216, 217, + 209, 0, 210, 211, 212, 0, 213, 49, -2, 85, + 0, 711, 0, 0, 0, 947, 724, 0, 721, 0, + 719, 0, 714, 715, 716, 717, 718, 720, 722, 723, + 328, 334, 76, 947, 0, 386, 387, 390, 0, 0, + 410, 409, 492, 396, 359, 0, 0, 669, 947, 0, + 495, 496, 498, 515, 0, 517, 519, 648, 649, 505, + 506, 530, 531, 532, 0, 0, 0, 0, 528, 510, + 0, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 555, 597, 598, 0, 553, 554, 561, + 0, 0, 439, 440, 442, 446, 0, 622, 0, -2, + 533, 29, 0, 0, 0, 0, 0, 0, 619, 616, + 0, 0, 587, 0, 0, 0, 0, 641, 26, 0, + 706, 707, 632, 633, 451, 33, 0, 663, 653, 665, + 667, 0, 29, 0, 659, 638, 0, 0, 0, 646, + 493, 700, 693, 694, 0, 0, 698, 276, 0, 0, + 0, 105, 0, 93, 0, 92, 92, 94, 0, 0, + 0, 0, 0, 0, 0, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 303, 292, 291, 311, 0, 310, 301, 186, - 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, - 268, 282, 284, 286, 0, 273, 168, 169, 276, 277, - 278, 279, 280, 281, 179, 253, 0, 218, 219, 0, - 0, 241, 0, 0, 0, 85, 91, 91, 88, 0, - 0, 0, 317, 0, 939, 720, 721, 0, 0, 0, - 0, 0, 330, 0, 328, 329, 331, 76, 77, 91, - 91, 378, 398, 411, 412, 410, 384, 360, 528, 372, - 645, 509, 511, 513, 500, 521, 504, 0, 501, 0, - 0, 495, 559, 0, 0, 436, 440, 0, 442, 443, - 0, 431, 0, -2, 562, 563, 0, 0, 0, 0, - 631, 0, 610, 0, 0, 570, 581, 582, 583, 584, - 26, 485, 0, 0, 33, 0, 661, -2, 0, 0, - 0, 639, 665, 666, 615, 37, 688, 689, 690, 55, - 0, 0, 170, 171, 0, 0, 94, 95, 129, 130, - 167, 132, 133, 0, 0, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 0, 304, 0, 0, - 303, 291, 0, 262, 244, 271, 272, 231, 0, 232, - 0, 248, 0, 0, 0, 0, 0, 0, 318, 319, - 320, 0, 322, 323, 324, 334, 78, 79, 0, 0, - 385, 502, 0, 522, 505, 560, 434, 441, 437, 0, - 0, 616, 0, 243, 243, 595, 243, 247, 598, 243, - 600, 243, 603, 0, 0, 0, 607, 569, 613, 0, - 627, 445, 446, 448, 449, 450, 458, 0, 460, 0, - 659, 0, -2, 0, 654, 653, 36, 0, 43, 131, - 172, 134, 135, 0, 302, 305, 306, 307, 0, 0, - 303, 264, 0, 242, 0, 0, 86, 60, 61, 87, - 96, 97, 98, 0, 314, 243, 0, 0, 0, 80, - 81, 506, 0, 561, 564, 592, 270, 596, 597, 599, - 601, 602, 604, 566, 565, 0, 0, 0, 611, 629, - 0, 0, 0, 0, 0, 465, 0, 0, 468, 0, - 0, 0, 0, 459, 0, 0, 479, 461, 0, 463, - 464, 0, 649, 28, 0, 0, 57, 0, 0, 0, - 0, 0, 265, 246, 249, 65, 0, 316, 69, 73, - 321, 438, 593, 594, 585, 568, 608, 27, 0, 0, - 447, 454, 0, 457, 466, 467, 469, 0, 471, 0, - 473, 474, 451, 452, 453, 0, 0, 0, 462, 657, - -2, 655, 0, 40, 0, 44, 297, 297, 0, 0, - 75, 315, 75, 75, 0, 0, 0, 630, 628, 0, - 0, 470, 472, 0, 0, 0, 0, 56, 0, 287, - 288, 297, 0, 49, 66, 67, 68, 91, 0, 0, - 50, 70, 71, 0, 51, 74, 567, 0, 0, 0, - 455, 456, 0, 0, 0, 41, 0, 298, 91, 294, - 0, 0, 289, 297, 0, 64, 62, 58, 59, 0, - 586, 0, 589, 0, 483, 0, 0, 0, 0, 295, - 0, 290, 63, 72, 587, 480, 0, 481, 482, 42, - 293, 296, 0, 484, 0, 588, + 304, 293, 292, 312, 0, 311, 302, 187, 256, 257, + 258, 259, 260, 261, 262, 264, 267, 268, 269, 283, + 285, 287, 0, 274, 169, 170, 277, 278, 279, 280, + 281, 282, 180, 254, 0, 219, 220, 0, 0, 242, + 0, 0, 0, 86, 92, 92, 89, 0, 0, 0, + 318, 0, 947, 727, 728, 0, 0, 0, 0, 0, + 331, 0, 329, 330, 332, 77, 78, 92, 92, 385, + 405, 418, 419, 417, 391, 361, 535, 379, 652, 516, + 518, 520, 507, 528, 511, 0, 508, 0, 0, 502, + 566, 0, 0, 443, 447, 0, 449, 450, 0, 438, + 0, -2, 569, 570, 0, 0, 0, 0, 638, 0, + 617, 0, 0, 577, 588, 589, 590, 591, 27, 492, + 0, 0, 34, 0, 668, -2, 0, 0, 0, 646, + 672, 673, 622, 38, 695, 696, 697, 56, 0, 0, + 171, 172, 0, 0, 95, 96, 130, 131, 168, 133, + 134, 0, 0, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 0, 305, 0, 0, 304, 292, + 0, 263, 245, 272, 273, 232, 0, 233, 0, 249, + 0, 0, 0, 0, 0, 0, 319, 320, 321, 0, + 323, 324, 325, 335, 79, 80, 0, 0, 392, 509, + 0, 529, 512, 567, 441, 448, 444, 0, 0, 623, + 0, 244, 244, 602, 244, 248, 605, 244, 607, 244, + 610, 0, 0, 0, 614, 576, 620, 0, 634, 452, + 453, 455, 456, 457, 465, 0, 467, 0, 666, 0, + -2, 0, 661, 660, 37, 0, 44, 132, 173, 135, + 136, 0, 303, 306, 307, 308, 0, 0, 304, 265, + 0, 243, 0, 0, 87, 61, 62, 88, 97, 98, + 99, 0, 315, 244, 0, 0, 0, 81, 82, 513, + 0, 568, 571, 599, 271, 603, 604, 606, 608, 609, + 611, 573, 572, 0, 0, 0, 618, 636, 0, 0, + 0, 0, 0, 472, 0, 0, 475, 0, 0, 0, + 0, 466, 0, 0, 486, 468, 0, 470, 471, 0, + 656, 29, 0, 0, 58, 0, 0, 0, 0, 0, + 266, 247, 250, 66, 0, 317, 70, 74, 322, 445, + 600, 601, 592, 575, 615, 28, 0, 0, 454, 461, + 0, 464, 473, 474, 476, 0, 478, 0, 480, 481, + 458, 459, 460, 0, 0, 0, 469, 664, -2, 662, + 0, 41, 0, 45, 298, 298, 0, 0, 76, 316, + 76, 76, 0, 0, 0, 637, 635, 0, 0, 477, + 479, 0, 0, 0, 0, 57, 0, 288, 289, 298, + 0, 50, 67, 68, 69, 92, 0, 0, 51, 71, + 72, 0, 52, 75, 574, 0, 0, 0, 462, 463, + 0, 0, 0, 42, 0, 299, 92, 295, 0, 0, + 290, 298, 0, 65, 63, 59, 60, 0, 593, 0, + 596, 0, 490, 0, 0, 0, 0, 296, 0, 291, + 64, 73, 594, 487, 0, 488, 489, 43, 294, 297, + 0, 491, 0, 595, } var yyTok1 = [...]int{ @@ -2576,7 +2637,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 87, 3, 3, 3, 114, 106, 3, 67, 69, 111, 109, 68, 110, 122, 112, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 309, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 310, 95, 94, 96, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -2621,7 +2682,8 @@ var yyTok3 = [...]int{ 57615, 290, 57616, 291, 57617, 292, 57618, 293, 57619, 294, 57620, 295, 57621, 296, 57622, 297, 57623, 298, 57624, 299, 57625, 300, 57626, 301, 57627, 302, 57628, 303, 57629, 304, - 57630, 305, 57631, 306, 57632, 307, 57633, 308, 0, + 57630, 305, 57631, 306, 57632, 307, 57633, 308, 57634, 309, + 0, } var yyErrorMessages = [...]struct { @@ -2963,29 +3025,29 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1052 + //line sql.y:1055 { setParseTree(yylex, yyDollar[1].statement) } case 2: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1058 + //line sql.y:1061 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1060 + //line sql.y:1063 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1064 + //line sql.y:1067 { yyVAL.statement = yyDollar[1].selStmt } - case 24: + case 25: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1089 + //line sql.y:1093 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2993,51 +3055,51 @@ yydefault: sel.Lock = yyDollar[4].str yyVAL.selStmt = sel } - case 25: + case 26: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1097 + //line sql.y:1101 { yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} } - case 26: + case 27: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1101 + //line sql.y:1105 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} } - case 27: + case 28: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:1108 + //line sql.y:1112 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } - case 28: + case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1114 + //line sql.y:1118 { yyVAL.selStmt = yyDollar[1].selStmt } - case 29: + case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1118 + //line sql.y:1122 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } - case 30: + case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1124 + //line sql.y:1128 { yyVAL.selStmt = yyDollar[1].selStmt } - case 31: + case 32: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1128 + //line sql.y:1132 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } - case 32: + case 33: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1134 + //line sql.y:1138 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[5].ins @@ -3048,9 +3110,9 @@ yydefault: ins.OnDup = OnDup(yyDollar[6].updateExprs) yyVAL.statement = ins } - case 33: + case 34: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1145 + //line sql.y:1149 { cols := make(Columns, 0, len(yyDollar[6].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[7].updateExprs)) @@ -3060,69 +3122,69 @@ yydefault: } yyVAL.statement = &Insert{Action: yyDollar[1].str, Comments: Comments(yyDollar[2].bytes2), Ignore: yyDollar[3].str, Table: yyDollar[4].tableName, Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[7].updateExprs)} } - case 34: + case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1157 + //line sql.y:1161 { yyVAL.str = InsertStr } - case 35: + case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1161 + //line sql.y:1165 { yyVAL.str = ReplaceStr } - case 36: + case 37: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1167 + //line sql.y:1171 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), Table: yyDollar[3].tableName, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } - case 37: + case 38: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1173 + //line sql.y:1177 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Table: yyDollar[4].tableName, Where: NewWhere(WhereStr, yyDollar[5].expr), OrderBy: yyDollar[6].orderBy, Limit: yyDollar[7].limit} } - case 38: + case 39: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1179 + //line sql.y:1183 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } - case 39: + case 40: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1183 + //line sql.y:1187 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } - case 40: + case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1189 + //line sql.y:1193 { yyVAL.partitionDefinitions = []*PartitionDefinition{yyDollar[1].partitionDefinition} } - case 41: + case 42: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1193 + //line sql.y:1197 { yyVAL.partitionDefinitions = append(yyDollar[1].partitionDefinitions, yyDollar[3].partitionDefinition) } - case 42: + case 43: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1199 + //line sql.y:1203 { yyVAL.partitionDefinition = &PartitionDefinition{Backend: string(yyDollar[2].bytes), Row: yyDollar[5].valTuple} } - case 43: + case 44: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1205 + //line sql.y:1209 { yyVAL.optVal = nil } - case 44: + case 45: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1209 + //line sql.y:1213 { if string(yyDollar[2].bytes) == "0" { yylex.Error("Number of partitions must be a positive integer") @@ -3130,30 +3192,30 @@ yydefault: } yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 45: + case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1219 + //line sql.y:1223 { yyVAL.str = string(yyDollar[1].bytes) } - case 46: + case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1223 + //line sql.y:1227 { yyVAL.str = string(yyDollar[1].bytes) } - case 47: + case 48: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1229 + //line sql.y:1233 { yyDollar[1].ddl.Action = CreateTableStr yyDollar[1].ddl.TableSpec = yyDollar[2].tableSpec yyDollar[1].ddl.PartitionOption = yyDollar[3].partitionOption yyVAL.statement = yyDollar[1].ddl } - case 48: + case 49: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1236 + //line sql.y:1240 { var ifnotexists bool if yyDollar[3].byt != 0 { @@ -3161,230 +3223,230 @@ yydefault: } yyVAL.statement = &DDL{Action: CreateDBStr, IfNotExists: ifnotexists, Database: yyDollar[4].tableIdent, DatabaseOptions: yyDollar[5].databaseOptionListOpt} } - case 49: + case 50: yyDollar = yyS[yypt-11 : yypt+1] - //line sql.y:1244 + //line sql.y:1248 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: yyDollar[2].str, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, yyDollar[10].indexOptionList), indexLockAndAlgorithm: yyDollar[11].indexLockAndAlgorithm} } - case 50: + case 51: yyDollar = yyS[yypt-11 : yypt+1] - //line sql.y:1248 + //line sql.y:1252 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: FullTextStr, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, yyDollar[10].indexOptionList), indexLockAndAlgorithm: yyDollar[11].indexLockAndAlgorithm} } - case 51: + case 52: yyDollar = yyS[yypt-11 : yypt+1] - //line sql.y:1252 + //line sql.y:1256 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: SpatialStr, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, yyDollar[10].indexOptionList), indexLockAndAlgorithm: yyDollar[11].indexLockAndAlgorithm} } - case 52: + case 53: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1258 + //line sql.y:1262 { yyVAL.partitionOption = &PartOptNormal{} } - case 53: + case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1262 + //line sql.y:1266 { yyVAL.partitionOption = &PartOptGlobal{} } - case 54: + case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1266 + //line sql.y:1270 { yyVAL.partitionOption = &PartOptSingle{} } - case 55: + case 56: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1270 + //line sql.y:1274 { yyVAL.partitionOption = &PartOptSingle{ BackendName: yyDollar[4].colIdent.String(), } } - case 56: + case 57: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:1276 + //line sql.y:1280 { yyVAL.partitionOption = &PartOptList{ Name: yyDollar[5].colIdent.String(), PartDefs: yyDollar[8].partitionDefinitions, } } - case 57: + case 58: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1283 + //line sql.y:1287 { yyVAL.partitionOption = &PartOptHash{ Name: yyDollar[5].colIdent.String(), PartitionNum: yyDollar[7].optVal, } } - case 58: + case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1292 + //line sql.y:1296 { yyVAL.str = "hash" } - case 59: + case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1296 + //line sql.y:1300 { yyVAL.str = "btree" } - case 60: + case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1302 + //line sql.y:1306 { yyVAL.str = string(yyDollar[1].bytes) } - case 61: + case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1306 + //line sql.y:1310 { yyVAL.str = "default" } - case 62: + case 63: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1313 + //line sql.y:1317 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionUsing, Val: NewStrValWithoutQuote([]byte(yyDollar[2].str)), } } - case 63: + case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1322 + //line sql.y:1326 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionBlockSize, Val: NewIntVal(yyDollar[3].bytes), } } - case 64: + case 65: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1329 + //line sql.y:1333 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionComment, Val: NewStrVal(yyDollar[2].bytes), } } - case 65: + case 66: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1337 + //line sql.y:1341 { yyVAL.indexOptionList = []*IndexOption{} } - case 66: + case 67: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1341 + //line sql.y:1345 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 67: + case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1347 + //line sql.y:1351 { yyVAL.indexOption = yyDollar[1].indexOption } - case 68: + case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1351 + //line sql.y:1355 { yyVAL.indexOption = yyDollar[1].indexOption } - case 69: + case 70: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1356 + //line sql.y:1360 { yyVAL.indexOptionList = []*IndexOption{} } - case 70: + case 71: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1360 + //line sql.y:1364 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 71: + case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1366 + //line sql.y:1370 { yyVAL.indexOption = yyDollar[1].indexOption } - case 72: + case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1370 + //line sql.y:1374 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionParser, Val: NewStrValWithoutQuote(yyDollar[3].bytes), } } - case 73: + case 74: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1378 + //line sql.y:1382 { yyVAL.indexOptionList = []*IndexOption{} } - case 74: + case 75: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1382 + //line sql.y:1386 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 75: + case 76: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1387 + //line sql.y:1391 { yyVAL.indexLockAndAlgorithm = &IndexLockAndAlgorithm{ LockOption: LockOptionEmpty, AlgorithmOption: AlgorithmOptionEmpty, } } - case 76: + case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1394 + //line sql.y:1398 { yyVAL.indexLockAndAlgorithm = &IndexLockAndAlgorithm{ LockOption: yyDollar[1].lockOptionType, AlgorithmOption: AlgorithmOptionEmpty, } } - case 77: + case 78: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1401 + //line sql.y:1405 { yyVAL.indexLockAndAlgorithm = &IndexLockAndAlgorithm{ LockOption: LockOptionEmpty, AlgorithmOption: yyDollar[1].algorithmOptionType, } } - case 78: + case 79: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1408 + //line sql.y:1412 { yyVAL.indexLockAndAlgorithm = &IndexLockAndAlgorithm{ LockOption: yyDollar[1].lockOptionType, AlgorithmOption: yyDollar[2].algorithmOptionType, } } - case 79: + case 80: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1415 + //line sql.y:1419 { yyVAL.indexLockAndAlgorithm = &IndexLockAndAlgorithm{ LockOption: yyDollar[2].lockOptionType, AlgorithmOption: yyDollar[1].algorithmOptionType, } } - case 80: + case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1424 + //line sql.y:1428 { switch StrToLower(yyDollar[3].str) { case "none": @@ -3400,9 +3462,9 @@ yydefault: return 1 } } - case 81: + case 82: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1442 + //line sql.y:1446 { switch StrToLower(yyDollar[3].str) { case "default": @@ -3418,100 +3480,94 @@ yydefault: return 1 } } - case 82: + case 83: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1459 + //line sql.y:1463 { yyVAL.databaseOptionListOpt.DBOptList = []*DatabaseOption{} } - case 83: + case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1463 + //line sql.y:1467 { yyVAL.databaseOptionListOpt.DBOptList = yyDollar[1].databaseOptionList } - case 84: + case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1469 + //line sql.y:1473 { yyVAL.databaseOptionList = append(yyVAL.databaseOptionList, yyDollar[1].databaseOption) } - case 85: + case 86: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1473 + //line sql.y:1477 { yyVAL.databaseOptionList = append(yyDollar[1].databaseOptionList, yyDollar[2].databaseOption) } - case 86: + case 87: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1482 + //line sql.y:1486 { yyVAL.databaseOption = &DatabaseOption{ OptType: string(yyDollar[2].bytes), Value: NewStrValWithoutQuote([]byte(yyDollar[4].str)), } } - case 87: + case 88: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1489 + //line sql.y:1493 { yyVAL.databaseOption = &DatabaseOption{ OptType: string(yyDollar[2].str), Value: NewStrValWithoutQuote([]byte(yyDollar[4].str)), } } - case 88: + case 89: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1496 + //line sql.y:1500 { yyVAL.databaseOption = &DatabaseOption{ OptType: "encryption", Value: yyDollar[2].optVal, } } - case 89: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1504 - { - } case 90: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1506 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:1508 { } case 91: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1509 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1510 { } case 92: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1511 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:1513 { } case 93: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1515 { - yyVAL.str = string(yyDollar[1].bytes) } case 94: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1519 { - yyVAL.str = "character set" + yyVAL.str = string(yyDollar[1].bytes) } case 95: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1523 { - yyVAL.str = "char set" + yyVAL.str = "character set" } case 96: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1529 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1527 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.str = "char set" } case 97: yyDollar = yyS[yypt-1 : yypt+1] @@ -3523,11 +3579,17 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1537 { - yyVAL.str = "default" + yyVAL.str = string(yyDollar[1].bytes) } case 99: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1541 + { + yyVAL.str = "default" + } + case 100: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1543 + //line sql.y:1547 { var ifnotexists bool if yyDollar[3].byt != 0 { @@ -3536,9 +3598,9 @@ yydefault: yyVAL.ddl = &DDL{Action: CreateTableStr, IfNotExists: ifnotexists, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } - case 100: + case 101: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1554 + //line sql.y:1558 { yyVAL.tableSpec = yyDollar[2].tableSpec @@ -3618,266 +3680,266 @@ yydefault: } } } - case 101: + case 102: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1635 + //line sql.y:1639 { yyVAL.tableOptionListOpt.TblOptList = []*TableOption{} } - case 102: + case 103: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1639 + //line sql.y:1643 { yyVAL.tableOptionListOpt.TblOptList = yyDollar[1].tableOptionList } - case 103: + case 104: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1645 + //line sql.y:1649 { yyVAL.tableOptionList = append(yyVAL.tableOptionList, yyDollar[1].tableOption) } - case 104: + case 105: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1649 + //line sql.y:1653 { yyVAL.tableOptionList = append(yyDollar[1].tableOptionList, yyDollar[2].tableOption) } - case 105: + case 106: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1655 + //line sql.y:1659 { yyVAL.tableOption = &TableOption{ Type: TableOptionComment, Val: yyDollar[1].optVal, } } - case 106: + case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1662 + //line sql.y:1666 { yyVAL.tableOption = &TableOption{ Type: TableOptionEngine, Val: yyDollar[1].optVal, } } - case 107: + case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1669 + //line sql.y:1673 { yyVAL.tableOption = &TableOption{ Type: TableOptionCharset, Val: yyDollar[1].optVal, } } - case 108: + case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1676 + //line sql.y:1680 { yyVAL.tableOption = &TableOption{ Type: TableOptionAutoInc, Val: yyDollar[1].optVal, } } - case 109: + case 110: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1683 + //line sql.y:1687 { yyVAL.tableOption = &TableOption{ Type: TableOptionAvgRowLength, Val: yyDollar[1].optVal, } } - case 110: + case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1690 + //line sql.y:1694 { yyVAL.tableOption = &TableOption{ Type: TableOptionChecksum, Val: yyDollar[1].optVal, } } - case 111: + case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1697 + //line sql.y:1701 { yyVAL.tableOption = &TableOption{ Type: TableOptionCollate, Val: yyDollar[1].optVal, } } - case 112: + case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1704 + //line sql.y:1708 { yyVAL.tableOption = &TableOption{ Type: TableOptionCompression, Val: yyDollar[1].optVal, } } - case 113: + case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1711 + //line sql.y:1715 { yyVAL.tableOption = &TableOption{ Type: TableOptionConnection, Val: yyDollar[1].optVal, } } - case 114: + case 115: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1718 + //line sql.y:1722 { yyVAL.tableOption = &TableOption{ Type: TableOptionDataDirectory, Val: yyDollar[1].optVal, } } - case 115: + case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1725 + //line sql.y:1729 { yyVAL.tableOption = &TableOption{ Type: TableOptionIndexDirectory, Val: yyDollar[1].optVal, } } - case 116: + case 117: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1732 + //line sql.y:1736 { yyVAL.tableOption = &TableOption{ Type: TableOptionDelayKeyWrite, Val: yyDollar[1].optVal, } } - case 117: + case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1739 + //line sql.y:1743 { yyVAL.tableOption = &TableOption{ Type: TableOptionEncryption, Val: yyDollar[1].optVal, } } - case 118: + case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1746 + //line sql.y:1750 { yyVAL.tableOption = &TableOption{ Type: TableOptionInsertMethod, Val: yyDollar[1].optVal, } } - case 119: + case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1753 + //line sql.y:1757 { yyVAL.tableOption = &TableOption{ Type: TableOptionKeyBlockSize, Val: yyDollar[1].optVal, } } - case 120: + case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1760 + //line sql.y:1764 { yyVAL.tableOption = &TableOption{ Type: TableOptionMaxRows, Val: yyDollar[1].optVal, } } - case 121: + case 122: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1767 + //line sql.y:1771 { yyVAL.tableOption = &TableOption{ Type: TableOptionMinRows, Val: yyDollar[1].optVal, } } - case 122: + case 123: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1774 + //line sql.y:1778 { yyVAL.tableOption = &TableOption{ Type: TableOptionPackKeys, Val: yyDollar[1].optVal, } } - case 123: + case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1781 + //line sql.y:1785 { yyVAL.tableOption = &TableOption{ Type: TableOptionPassword, Val: yyDollar[1].optVal, } } - case 124: + case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1788 + //line sql.y:1792 { yyVAL.tableOption = &TableOption{ Type: TableOptionRowFormat, Val: yyDollar[1].optVal, } } - case 125: + case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1795 + //line sql.y:1799 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsAutoRecalc, Val: yyDollar[1].optVal, } } - case 126: + case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1802 + //line sql.y:1806 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsPersistent, Val: yyDollar[1].optVal, } } - case 127: + case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1809 + //line sql.y:1813 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsSamplePages, Val: yyDollar[1].optVal, } } - case 128: + case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1816 + //line sql.y:1820 { yyVAL.tableOption = &TableOption{ Type: TableOptionTableSpace, Val: yyDollar[1].optVal, } } - case 129: + case 130: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1825 + //line sql.y:1829 { } - case 130: + case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1829 + //line sql.y:1833 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } - case 131: + case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1835 + //line sql.y:1839 { yyVAL.optVal = yyDollar[4].optVal } - case 132: + case 133: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1841 + //line sql.y:1845 { switch StrToLower(string(yyDollar[3].bytes)) { case "zlib", "lz4", "none": @@ -3888,33 +3950,33 @@ yydefault: } yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 133: + case 134: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1854 + //line sql.y:1858 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 134: + case 135: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1860 + //line sql.y:1864 { yyVAL.optVal = NewStrVal(yyDollar[4].bytes) } - case 135: + case 136: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1866 + //line sql.y:1870 { yyVAL.optVal = NewStrVal(yyDollar[4].bytes) } - case 136: + case 137: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1872 + //line sql.y:1876 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } - case 137: + case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1878 + //line sql.y:1882 { switch string(yyDollar[3].bytes) { case "Y", "y": @@ -3928,9 +3990,9 @@ yydefault: } yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 138: + case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1894 + //line sql.y:1898 { switch StrToLower(string(yyDollar[3].bytes)) { case "no", "first", "last": @@ -3941,29 +4003,23 @@ yydefault: } yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } - case 139: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1907 - { - yyVAL.optVal = NewIntVal(yyDollar[3].bytes) - } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1913 + //line sql.y:1911 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1919 + //line sql.y:1917 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1925 + //line sql.y:1923 { - yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) + yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 143: yyDollar = yyS[yypt-3 : yypt+1] @@ -3973,15 +4029,15 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1935 + //line sql.y:1933 { - yyVAL.optVal = NewStrVal(yyDollar[3].bytes) + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 145: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1943 + //line sql.y:1939 { - yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) + yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } case 146: yyDollar = yyS[yypt-3 : yypt+1] @@ -4063,7 +4119,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2001 + //line sql.y:1999 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } @@ -4075,7 +4131,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2011 + //line sql.y:2009 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } @@ -4087,7 +4143,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2022 + //line sql.y:2019 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } @@ -4099,7 +4155,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2032 + //line sql.y:2030 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } @@ -4111,64 +4167,70 @@ yydefault: } case 167: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2042 + //line sql.y:2040 { - yyVAL.optVal = NewIntVal(yyDollar[3].bytes) + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 168: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2046 + { + yyVAL.optVal = NewIntVal(yyDollar[3].bytes) + } + case 169: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2048 + //line sql.y:2052 { // Normal str as an identify, without quote yyVAL.optVal = NewStrValWithoutQuote(yyDollar[1].bytes) } - case 169: + case 170: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2053 + //line sql.y:2057 { // Str with Quote, it will be parsed by Lex begin with quote \' or \" yyVAL.optVal = NewStrVal(yyDollar[1].bytes) } - case 170: + case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2060 + //line sql.y:2064 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 171: + case 172: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2066 + //line sql.y:2070 { yyVAL.optVal = yyDollar[3].optVal } - case 172: + case 173: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2072 + //line sql.y:2076 { yyVAL.optVal = yyDollar[4].optVal } - case 173: + case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2078 + //line sql.y:2082 { yyVAL.tableSpec = &TableSpec{} yyVAL.tableSpec.AddColumn(yyDollar[1].columnDefinition) } - case 174: + case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2083 + //line sql.y:2087 { yyVAL.tableSpec.AddColumn(yyDollar[3].columnDefinition) } - case 175: + case 176: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2087 + //line sql.y:2091 { yyVAL.tableSpec.AddIndex(yyDollar[3].indexDefinition) } - case 176: + case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2093 + //line sql.y:2097 { yyDollar[2].columnType.NotNull = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionNotNull).NotNull yyDollar[2].columnType.Autoincrement = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionAutoincrement).Autoincrement @@ -4182,158 +4244,152 @@ yydefault: yyDollar[2].columnType.Storage = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionStorage).Storage yyVAL.columnDefinition = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} } - case 177: + case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2109 + //line sql.y:2113 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 178: + case 179: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2113 + //line sql.y:2117 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 179: + case 180: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2119 + //line sql.y:2123 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal yyVAL.columnType.Zerofill = yyDollar[3].boolVal } - case 183: + case 184: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2129 + //line sql.y:2133 { yyVAL.columnOptionListOpt.ColOptList = []*ColumnOption{} } - case 184: + case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2133 + //line sql.y:2137 { yyVAL.columnOptionListOpt.ColOptList = yyDollar[1].columnOptionList } - case 185: + case 186: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2139 + //line sql.y:2143 { yyVAL.columnOptionList = append(yyVAL.columnOptionList, yyDollar[1].columnOption) } - case 186: + case 187: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2143 + //line sql.y:2147 { yyVAL.columnOptionList = append(yyDollar[1].columnOptionList, yyDollar[2].columnOption) } - case 187: + case 188: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2149 + //line sql.y:2153 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionNotNull, NotNull: yyDollar[1].boolVal, } } - case 188: + case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2156 + //line sql.y:2160 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionDefault, Default: yyDollar[1].optVal, } } - case 189: + case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2163 + //line sql.y:2167 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionAutoincrement, Autoincrement: yyDollar[1].boolVal, } } - case 190: + case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2170 + //line sql.y:2174 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionKeyPrimaryOpt, PrimaryKeyOpt: yyDollar[1].colPrimaryKeyOpt, } } - case 191: + case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2177 + //line sql.y:2181 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionKeyUniqueOpt, UniqueKeyOpt: yyDollar[1].colUniqueKeyOpt, } } - case 192: + case 193: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2184 + //line sql.y:2188 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionComment, Comment: yyDollar[1].optVal, } } - case 193: + case 194: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2191 + //line sql.y:2195 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionOnUpdate, OnUpdate: yyDollar[1].str, } } - case 194: + case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2198 + //line sql.y:2202 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionCollate, Collate: yyDollar[1].optVal, } } - case 195: + case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2205 + //line sql.y:2209 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionFormat, ColumnFormat: yyDollar[1].str, } } - case 196: + case 197: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2212 + //line sql.y:2216 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionStorage, Storage: yyDollar[1].str, } } - case 197: + case 198: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2221 + //line sql.y:2225 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } - case 198: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2226 - { - yyVAL.columnType = yyDollar[1].columnType - } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2232 + //line sql.y:2230 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = yyDollar[1].columnType } case 200: yyDollar = yyS[yypt-1 : yypt+1] @@ -4384,16 +4440,14 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 208: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2270 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2268 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} - yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].lengthScaleOption.Scale } case 209: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2276 + //line sql.y:2274 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4401,7 +4455,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2282 + //line sql.y:2280 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4409,7 +4463,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2288 + //line sql.y:2286 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4417,23 +4471,25 @@ yydefault: } case 212: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2294 + //line sql.y:2292 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].lengthScaleOption.Scale } case 213: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2302 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2298 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].lengthScaleOption.Scale } case 214: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2306 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 215: yyDollar = yyS[yypt-2 : yypt+1] @@ -4448,16 +4504,16 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 217: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2318 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 218: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2324 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2322 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 219: yyDollar = yyS[yypt-3 : yypt+1] @@ -4466,10 +4522,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} } case 220: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2332 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} } case 221: yyDollar = yyS[yypt-2 : yypt+1] @@ -4481,7 +4537,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2340 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 223: yyDollar = yyS[yypt-2 : yypt+1] @@ -4502,10 +4558,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 226: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2356 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 227: yyDollar = yyS[yypt-1 : yypt+1] @@ -4532,10 +4588,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 231: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2376 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 232: yyDollar = yyS[yypt-4 : yypt+1] @@ -4544,10 +4600,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} } case 233: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2386 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2384 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} } case 234: yyDollar = yyS[yypt-1 : yypt+1] @@ -4593,136 +4649,142 @@ yydefault: } case 241: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2420 + //line sql.y:2418 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + } + case 242: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2424 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } - case 242: + case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2425 + //line sql.y:2429 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } - case 243: + case 244: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2430 + //line sql.y:2434 { yyVAL.optVal = nil } - case 244: + case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2434 + //line sql.y:2438 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 245: + case 246: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2439 + //line sql.y:2443 { yyVAL.lengthScaleOption = LengthScaleOption{} } - case 246: + case 247: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2443 + //line sql.y:2447 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 247: + case 248: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2451 + //line sql.y:2455 { yyVAL.lengthScaleOption = LengthScaleOption{} } - case 248: + case 249: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2455 + //line sql.y:2459 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), } } - case 249: + case 250: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2461 + //line sql.y:2465 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 250: + case 251: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2469 + //line sql.y:2473 { yyVAL.boolVal = BoolVal(false) } - case 251: + case 252: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2473 + //line sql.y:2477 { yyVAL.boolVal = BoolVal(true) } - case 252: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2478 - { - yyVAL.boolVal = BoolVal(false) - } case 253: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2482 { - yyVAL.boolVal = BoolVal(true) + yyVAL.boolVal = BoolVal(false) } case 254: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2489 + //line sql.y:2486 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolVal = BoolVal(true) } case 255: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2493 { - yyVAL.boolVal = BoolVal(true) + yyVAL.boolVal = BoolVal(false) } case 256: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2499 + //line sql.y:2497 { - yyVAL.optVal = NewStrVal(yyDollar[2].bytes) + yyVAL.boolVal = BoolVal(true) } case 257: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2503 { - yyVAL.optVal = NewIntVal(yyDollar[2].bytes) + yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 258: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2507 { - yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) + yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 259: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2511 { - yyVAL.optVal = NewValArg(yyDollar[2].bytes) + yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } case 260: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2515 { - yyVAL.optVal = NewStrValWithoutQuote([]byte(yyDollar[2].str)) + yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 261: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2519 + { + yyVAL.optVal = NewStrValWithoutQuote([]byte(yyDollar[2].str)) + } + case 262: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2523 { if yyDollar[2].boolVal { yyVAL.optVal = NewStrValWithoutQuote([]byte("true")) @@ -4730,36 +4792,30 @@ yydefault: yyVAL.optVal = NewStrValWithoutQuote([]byte("false")) } } - case 262: + case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2529 + //line sql.y:2533 { yyVAL.str = yyDollar[3].str } - case 263: + case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2535 + //line sql.y:2539 { yyVAL.str = string(yyDollar[1].bytes) } - case 264: + case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2539 + //line sql.y:2543 { yyVAL.str = string(yyDollar[1].bytes) + "(" + ")" } - case 265: + case 266: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2543 + //line sql.y:2547 { yyVAL.str = string(yyDollar[1].bytes) + "(" + string(yyDollar[3].bytes) + ")" } - case 266: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2551 - { - yyVAL.bytes = yyDollar[1].bytes - } case 267: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2555 @@ -4774,21 +4830,21 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2566 + //line sql.y:2563 { - yyVAL.boolVal = BoolVal(true) + yyVAL.bytes = yyDollar[1].bytes } case 270: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2571 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2570 { - yyVAL.str = "" + yyVAL.boolVal = BoolVal(true) } case 271: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2575 { - yyVAL.str = string(yyDollar[3].bytes) + yyVAL.str = "" } case 272: yyDollar = yyS[yypt-3 : yypt+1] @@ -4797,26 +4853,26 @@ yydefault: yyVAL.str = string(yyDollar[3].bytes) } case 273: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2586 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2583 { - yyVAL.optVal = yyDollar[2].optVal + yyVAL.str = string(yyDollar[3].bytes) } case 274: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2591 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2590 { - yyVAL.str = "" + yyVAL.optVal = yyDollar[2].optVal } case 275: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2595 { - yyVAL.str = string(yyDollar[2].bytes) + yyVAL.str = "" } case 276: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2601 + //line sql.y:2599 { yyVAL.str = string(yyDollar[2].bytes) } @@ -4834,16 +4890,16 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2615 + //line sql.y:2613 { - // "default" is not in official doc: https://dev.mysql.com/doc/refman/5.7/en/create-table.html - // but actually mysql support it, see: https://github.com/mysql/mysql-server/blob/5.7/sql/sql_yacc.yy#L6953 yyVAL.str = string(yyDollar[2].bytes) } case 280: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2621 + //line sql.y:2619 { + // "default" is not in official doc: https://dev.mysql.com/doc/refman/5.7/en/create-table.html + // but actually mysql support it, see: https://github.com/mysql/mysql-server/blob/5.7/sql/sql_yacc.yy#L6953 yyVAL.str = string(yyDollar[2].bytes) } case 281: @@ -4854,40 +4910,46 @@ yydefault: } case 282: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2631 + //line sql.y:2629 { - yyVAL.colPrimaryKeyOpt = ColKeyPrimary + yyVAL.str = string(yyDollar[2].bytes) } case 283: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2635 + { + yyVAL.colPrimaryKeyOpt = ColKeyPrimary + } + case 284: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2639 { // KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY // can also be specified as just KEY when given in a column definition. // See http://dev.mysql.com/doc/refman/5.7/en/create-table.html yyVAL.colPrimaryKeyOpt = ColKeyPrimary } - case 284: + case 285: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2644 + //line sql.y:2648 { yyVAL.colUniqueKeyOpt = ColKeyUniqueKey } - case 285: + case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2648 + //line sql.y:2652 { yyVAL.colUniqueKeyOpt = ColKeyUniqueKey } - case 286: + case 287: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2654 + //line sql.y:2658 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 287: + case 288: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2660 + //line sql.y:2664 { // TODO(): in the future we'll support format out index_type, currently skip it. // If index_name is empty, becarful that the `name` result will be diffirent when doing format. @@ -4899,9 +4961,9 @@ yydefault: Unique: false, } } - case 288: + case 289: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2672 + //line sql.y:2676 { typ := string(yyDollar[1].bytes) if yyDollar[3].str != "" { @@ -4915,9 +4977,9 @@ yydefault: Unique: false, } } - case 289: + case 290: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2686 + //line sql.y:2690 { // TODO(): in the future we'll support format out index_type, currently skip it yyVAL.indexDefinition = &IndexDefinition{ @@ -4928,9 +4990,9 @@ yydefault: Unique: true, } } - case 290: + case 291: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2697 + //line sql.y:2701 { // TODO(): in the future we'll support format out index_type, currently skip it typ := string(yyDollar[2].bytes) @@ -4945,101 +5007,95 @@ yydefault: Unique: true, } } - case 291: + case 292: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2713 + //line sql.y:2717 { yyVAL.str = "" } - case 292: + case 293: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2717 + //line sql.y:2721 { yyVAL.str = string(yyDollar[1].bytes) } - case 293: + case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2723 + //line sql.y:2727 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionBlockSize, Val: NewIntVal(yyDollar[3].bytes), } } - case 294: + case 295: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2730 + //line sql.y:2734 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionUsing, Val: NewStrValWithoutQuote(yyDollar[1].bytes), } } - case 295: + case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2737 + //line sql.y:2741 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionComment, Val: NewStrVal(yyDollar[2].bytes), } } - case 296: + case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2744 + //line sql.y:2748 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionParser, Val: NewStrValWithoutQuote(yyDollar[3].bytes), } } - case 297: + case 298: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2752 + //line sql.y:2756 { yyVAL.indexOptionList = []*IndexOption{} } - case 298: + case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2756 + //line sql.y:2760 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 299: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2762 - { - } case 300: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2765 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2766 { } case 301: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2768 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2769 { } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2774 + //line sql.y:2772 { - yyVAL.bytes = yyDollar[2].bytes } case 303: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2779 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2778 { + yyVAL.bytes = yyDollar[2].bytes } case 304: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2782 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2783 { - yyVAL.bytes = yyDollar[1].bytes } case 305: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2788 + //line sql.y:2786 { yyVAL.bytes = yyDollar[1].bytes } @@ -5057,7 +5113,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2802 + //line sql.y:2800 { yyVAL.bytes = yyDollar[1].bytes } @@ -5068,128 +5124,134 @@ yydefault: yyVAL.bytes = yyDollar[1].bytes } case 310: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2810 + { + yyVAL.bytes = yyDollar[1].bytes + } + case 311: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2811 + //line sql.y:2815 { // set empty yyVAL.str = "" } - case 311: + case 312: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2816 + //line sql.y:2820 { yyVAL.str = yyDollar[1].str } - case 312: + case 313: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2823 + //line sql.y:2827 { yyVAL.str = string(yyDollar[1].bytes) } - case 313: + case 314: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2827 + //line sql.y:2831 { yyVAL.str = string(yyDollar[1].bytes) } - case 314: + case 315: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2833 + //line sql.y:2837 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } - case 315: + case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2837 + //line sql.y:2841 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } - case 316: + case 317: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2843 + //line sql.y:2847 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } - case 317: + case 318: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2849 + //line sql.y:2853 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 318: + case 319: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2853 + //line sql.y:2857 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } - case 319: + case 320: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2858 + //line sql.y:2862 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 320: + case 321: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2863 + //line sql.y:2867 { yyVAL.statement = &DDL{Action: AlterEngineStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, Engine: string(yyDollar[7].bytes)} } - case 321: + case 322: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2867 + //line sql.y:2871 { yyVAL.statement = &DDL{Action: AlterCharsetStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, Charset: string(yyDollar[9].bytes)} } - case 322: + case 323: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2871 + //line sql.y:2875 { yyVAL.statement = &DDL{Action: AlterAddColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, TableSpec: yyDollar[7].tableSpec} } - case 323: + case 324: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2875 + //line sql.y:2879 { yyVAL.statement = &DDL{Action: AlterDropColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, DropColumnName: string(yyDollar[7].bytes)} } - case 324: + case 325: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2879 + //line sql.y:2883 { yyVAL.statement = &DDL{Action: AlterModifyColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, ModifyColumnDef: yyDollar[7].columnDefinition} } - case 325: + case 326: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2884 + //line sql.y:2888 { yyVAL.byt = 0 } - case 326: + case 327: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2888 + //line sql.y:2892 { yyVAL.byt = 1 } - case 327: + case 328: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2893 + //line sql.y:2897 { } - case 328: + case 329: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2895 + //line sql.y:2899 { } - case 329: + case 330: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2897 + //line sql.y:2901 { } - case 330: + case 331: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2901 + //line sql.y:2905 { var exists bool if yyDollar[4].byt != 0 { @@ -5201,15 +5263,15 @@ yydefault: yyVAL.statement = &DDL{Action: DropTableStr, Tables: yyDollar[5].tableNames, IfExists: exists} } } - case 331: + case 332: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2913 + //line sql.y:2917 { yyVAL.statement = &DDL{Action: DropIndexStr, IndexName: string(yyDollar[3].bytes), Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName, indexLockAndAlgorithm: yyDollar[6].indexLockAndAlgorithm} } - case 332: + case 333: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2917 + //line sql.y:2921 { var exists bool if yyDollar[3].byt != 0 { @@ -5217,96 +5279,90 @@ yydefault: } yyVAL.statement = &DDL{Action: DropDBStr, Database: yyDollar[4].tableIdent, IfExists: exists} } - case 333: + case 334: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2927 + //line sql.y:2931 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } - case 334: + case 335: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2931 + //line sql.y:2935 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } - case 335: + case 336: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2937 + //line sql.y:2941 { } - case 336: + case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2939 + //line sql.y:2943 { } - case 337: + case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2943 + //line sql.y:2947 { yyVAL.statement = &DDL{Action: TruncateTableStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } - case 338: + case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2949 + //line sql.y:2953 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } - case 339: + case 340: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2955 + //line sql.y:2959 { yyVAL.statement = &Xa{} } - case 340: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2961 - { - } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2963 + //line sql.y:2965 { } case 342: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2965 + //line sql.y:2967 { } case 343: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2968 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2969 { - yyVAL.showFilter = nil } case 344: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2972 { - yyVAL.showFilter = &ShowFilter{Like: yyDollar[1].colIdent.String()} + yyVAL.showFilter = nil } case 345: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2976 { - yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[1].bytes)} + yyVAL.showFilter = &ShowFilter{Like: yyDollar[1].colIdent.String()} } case 346: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2982 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2980 { - yyVAL.statement = &Show{Type: ShowColumnsStr, Table: yyDollar[2].tableName, Filter: yyDollar[3].showFilter} + yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[1].bytes)} } case 347: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2988 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2986 { - yyVAL.statement = yyDollar[1].selStmt + yyVAL.statement = &Show{Type: ShowColumnsStr, Table: yyDollar[2].tableName, Filter: yyDollar[3].showFilter} } case 348: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2992 { - yyVAL.statement = yyDollar[1].statement + yyVAL.statement = yyDollar[1].selStmt } case 349: yyDollar = yyS[yypt-1 : yypt+1] @@ -5321,204 +5377,248 @@ yydefault: yyVAL.statement = yyDollar[1].statement } case 351: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3005 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3004 { - yyVAL.explainType = ExplainTypeEmpty + yyVAL.statement = yyDollar[1].statement } case 352: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:3009 { - yyVAL.explainType = ExplainTypeJSON + yyVAL.explainType = ExplainTypeEmpty } case 353: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:3013 { - yyVAL.explainType = ExplainTypeTree + yyVAL.explainType = ExplainTypeJSON } case 354: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:3017 { - yyVAL.explainType = ExplainTypeTraditional + yyVAL.explainType = ExplainTypeTree } case 355: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:3021 { - yyVAL.explainType = ExplainTypeExtended + yyVAL.explainType = ExplainTypeTraditional } case 356: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:3025 { - yyVAL.explainType = ExplainTypePartitions + yyVAL.explainType = ExplainTypeExtended } case 357: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3029 + { + yyVAL.explainType = ExplainTypePartitions + } + case 358: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3031 + //line sql.y:3035 { yyVAL.statement = &Explain{Type: yyDollar[2].explainType, Statement: yyDollar[3].statement} } - case 358: + case 359: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3035 + //line sql.y:3039 { // Currently we just parse it. yyVAL.statement = &Explain{Type: yyDollar[2].explainType, Statement: &OtherRead{}} } - case 359: + case 360: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3040 + //line sql.y:3044 { yyVAL.statement = &Explain{Type: ExplainTypeEmpty, Analyze: true, Statement: yyDollar[3].statement} } - case 360: + case 361: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3044 + //line sql.y:3048 { yyVAL.statement = &Explain{Type: ExplainTypeEmpty, Analyze: true, Statement: yyDollar[6].statement} } - case 361: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3049 - { - } case 362: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3051 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:3053 { + yyVAL.optVal = nil } case 363: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3053 + //line sql.y:3057 { + // Normal str as an identify, without quote + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[1].bytes) } case 364: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3057 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3062 { - yyVAL.statement = &Kill{QueryID: &NumVal{raw: string(yyDollar[3].bytes)}} + // Str with Quote, it will be parsed by Lex begin with quote \' or \" + yyVAL.optVal = NewStrVal(yyDollar[1].bytes) } case 365: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3067 + { + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[1].bytes) + } + case 366: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3071 + { + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[1].bytes) + } + case 367: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:3077 + { + yyVAL.statement = &Help{HelpInfo: yyDollar[2].optVal} + } + case 368: + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:3082 + { + } + case 369: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3084 + { + } + case 370: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3086 + { + } + case 371: + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:3090 + { + yyVAL.statement = &Kill{QueryID: &NumVal{raw: string(yyDollar[3].bytes)}} + } + case 372: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3063 + //line sql.y:3096 { yyVAL.statement = &Transaction{Action: BeginTxnStr} } - case 366: + case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3067 + //line sql.y:3100 { yyVAL.statement = &Transaction{Action: StartTxnStr} } - case 367: + case 374: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3071 + //line sql.y:3104 { yyVAL.statement = &Transaction{Action: RollbackTxnStr} } - case 368: + case 375: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3075 + //line sql.y:3108 { yyVAL.statement = &Transaction{Action: CommitTxnStr} } - case 369: + case 376: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3081 + //line sql.y:3114 { yyVAL.statement = &Radon{Action: AttachStr, Row: yyDollar[3].valTuple} } - case 370: + case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3085 + //line sql.y:3118 { yyVAL.statement = &Radon{Action: DetachStr, Row: yyDollar[3].valTuple} } - case 371: + case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3089 + //line sql.y:3122 { yyVAL.statement = &Radon{Action: AttachListStr} } - case 372: + case 379: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3093 + //line sql.y:3126 { yyVAL.statement = &Radon{Action: ReshardStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } - case 373: + case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3097 + //line sql.y:3130 { yyVAL.statement = &Radon{Action: CleanupStr} } - case 374: + case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3101 + //line sql.y:3134 { yyVAL.statement = &Radon{Action: RebalanceStr} } - case 375: + case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3105 + //line sql.y:3138 { yyVAL.statement = &Radon{Action: XARecoverStr} } - case 376: + case 383: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3109 + //line sql.y:3142 { yyVAL.statement = &Radon{Action: XACommitStr} } - case 377: + case 384: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3113 + //line sql.y:3146 { yyVAL.statement = &Radon{Action: XARollbackStr} } - case 378: + case 385: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3119 + //line sql.y:3152 { yyVAL.statement = &Show{Type: ShowBinlogEventsStr, From: yyDollar[4].str, Limit: yyDollar[5].limit} } - case 379: + case 386: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3123 + //line sql.y:3156 { yyVAL.statement = &Show{Type: ShowCreateTableStr, Table: yyDollar[4].tableName} } - case 380: + case 387: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3127 + //line sql.y:3160 { yyVAL.statement = &Show{Type: ShowCreateDatabaseStr, Database: yyDollar[4].tableIdent.v} } - case 381: + case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3131 + //line sql.y:3164 { yyVAL.statement = &Show{Type: ShowDatabasesStr} } - case 382: + case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3135 + //line sql.y:3168 { yyVAL.statement = &Show{Type: ShowEnginesStr} } - case 383: + case 390: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3139 + //line sql.y:3172 { yyVAL.statement = &Show{Full: yyDollar[2].str, Type: ShowTablesStr, Database: yyDollar[4].str, Filter: yyDollar[5].showFilter} } - case 384: + case 391: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3143 + //line sql.y:3176 { if yyDollar[5].str != "" { yyDollar[4].tableName.Qualifier.v = yyDollar[5].str @@ -5529,523 +5629,523 @@ yydefault: } yyVAL.statement = &Show{Type: ShowIndexStr, Table: yyDollar[4].tableName, Filter: filter} } - case 385: + case 392: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:3154 + //line sql.y:3187 { if yyDollar[6].str != "" { yyDollar[5].tableName.Qualifier.v = yyDollar[6].str } yyVAL.statement = &Show{Full: yyDollar[2].str, Type: ShowColumnsStr, Table: yyDollar[5].tableName, Filter: yyDollar[7].showFilter} } - case 386: + case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3161 + //line sql.y:3194 { yyVAL.statement = &Show{Type: ShowProcesslistStr} } - case 387: + case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3165 + //line sql.y:3198 { yyVAL.statement = &Show{Type: ShowQueryzStr} } - case 388: + case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3169 + //line sql.y:3202 { yyVAL.statement = &Show{Type: ShowStatusStr} } - case 389: + case 396: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3173 + //line sql.y:3206 { yyVAL.statement = &Show{Type: ShowTableStatusStr, Database: yyDollar[4].str} } - case 390: + case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3177 + //line sql.y:3210 { yyVAL.statement = &Show{Type: ShowTxnzStr} } - case 391: + case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3181 + //line sql.y:3214 { yyVAL.statement = &Show{Type: ShowVariablesStr} } - case 392: + case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3185 + //line sql.y:3218 { yyVAL.statement = &Show{Type: ShowVersionsStr} } - case 393: + case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3189 + //line sql.y:3222 { yyVAL.statement = &Show{Type: ShowWarningsStr} } - case 394: + case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3193 + //line sql.y:3226 { yyVAL.statement = &Show{Type: ShowCollationStr} } - case 395: + case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3197 + //line sql.y:3230 { yyVAL.statement = &Show{Type: ShowCharsetStr} } - case 396: + case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3201 + //line sql.y:3234 { yyVAL.statement = &Show{Type: ShowUnsupportedStr} } - case 397: + case 404: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3206 + //line sql.y:3239 { yyVAL.str = "" } - case 398: + case 405: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3210 + //line sql.y:3243 { yyVAL.str = string(yyDollar[3].bytes) } - case 399: + case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3216 + //line sql.y:3249 { yyVAL.str = string(yyDollar[1].bytes) } - case 400: + case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3220 + //line sql.y:3253 { yyVAL.str = string(yyDollar[1].bytes) } - case 401: + case 408: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3224 + //line sql.y:3257 { yyVAL.str = string(yyDollar[1].bytes) } - case 402: + case 409: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3230 + //line sql.y:3263 { yyVAL.str = "" } - case 403: + case 410: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3234 + //line sql.y:3267 { yyVAL.str = yyDollar[2].tableIdent.v } - case 404: + case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3240 + //line sql.y:3273 { yyVAL.str = string(yyDollar[1].bytes) } - case 405: + case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3244 + //line sql.y:3277 { yyVAL.str = string(yyDollar[1].bytes) } - case 406: + case 413: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3250 + //line sql.y:3283 { yyVAL.str = "" } - case 407: + case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3254 + //line sql.y:3287 { yyVAL.str = "full " } - case 408: + case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3260 + //line sql.y:3293 { yyVAL.str = string(yyDollar[1].bytes) } - case 409: + case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3264 + //line sql.y:3297 { yyVAL.str = string(yyDollar[1].bytes) } - case 410: + case 417: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3270 + //line sql.y:3303 { yyVAL.showFilter = nil } - case 411: + case 418: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3274 + //line sql.y:3307 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } - case 412: + case 419: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3278 + //line sql.y:3311 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } - case 413: + case 420: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3284 + //line sql.y:3317 { yyVAL.statement = &Checksum{Table: yyDollar[3].tableName} } - case 414: + case 421: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3290 + //line sql.y:3323 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } - case 415: + case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3296 + //line sql.y:3329 { yyVAL.statement = &OtherAdmin{} } - case 416: + case 423: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3300 + //line sql.y:3333 { yyVAL.statement = &OtherAdmin{} } - case 417: + case 424: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3305 + //line sql.y:3338 { setAllowComments(yylex, true) } - case 418: + case 425: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3308 + //line sql.y:3341 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 419: + case 426: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3314 + //line sql.y:3347 { yyVAL.bytes2 = nil } - case 420: + case 427: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3318 + //line sql.y:3351 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 421: + case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3324 + //line sql.y:3357 { yyVAL.str = UnionStr } - case 422: + case 429: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3328 + //line sql.y:3361 { yyVAL.str = UnionAllStr } - case 423: + case 430: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3332 + //line sql.y:3365 { yyVAL.str = UnionDistinctStr } - case 424: + case 431: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3337 + //line sql.y:3370 { yyVAL.str = "" } - case 425: + case 432: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3341 + //line sql.y:3374 { yyVAL.str = SQLNoCacheStr } - case 426: + case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3345 + //line sql.y:3378 { yyVAL.str = SQLCacheStr } - case 427: + case 434: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3350 + //line sql.y:3383 { yyVAL.str = "" } - case 428: + case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3354 + //line sql.y:3387 { yyVAL.str = DistinctStr } - case 429: + case 436: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3359 + //line sql.y:3392 { yyVAL.str = "" } - case 430: + case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3363 + //line sql.y:3396 { yyVAL.str = StraightJoinHint } - case 431: + case 438: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3368 + //line sql.y:3401 { yyVAL.selectExprs = nil } - case 432: + case 439: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3372 + //line sql.y:3405 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 433: + case 440: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3378 + //line sql.y:3411 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 434: + case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3382 + //line sql.y:3415 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 435: + case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3388 + //line sql.y:3421 { yyVAL.selectExpr = &StarExpr{} } - case 436: + case 443: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3392 + //line sql.y:3425 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 437: + case 444: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3396 + //line sql.y:3429 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 438: + case 445: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3400 + //line sql.y:3433 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 439: + case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3405 + //line sql.y:3438 { yyVAL.colIdent = ColIdent{} } - case 440: + case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3409 + //line sql.y:3442 { yyVAL.colIdent = yyDollar[1].colIdent } - case 441: + case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3413 + //line sql.y:3446 { yyVAL.colIdent = yyDollar[2].colIdent } - case 443: + case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3420 + //line sql.y:3453 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 444: + case 451: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3425 + //line sql.y:3458 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } - case 445: + case 452: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3429 + //line sql.y:3462 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 446: + case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3435 + //line sql.y:3468 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 447: + case 454: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3439 + //line sql.y:3472 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 450: + case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3449 + //line sql.y:3482 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 451: + case 458: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3453 + //line sql.y:3486 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 452: + case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3457 + //line sql.y:3490 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 453: + case 460: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3463 + //line sql.y:3496 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 454: + case 461: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3476 + //line sql.y:3509 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 455: + case 462: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3480 + //line sql.y:3513 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } - case 456: + case 463: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3484 + //line sql.y:3517 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } - case 457: + case 464: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3488 + //line sql.y:3521 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 458: + case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3493 + //line sql.y:3526 { yyVAL.empty = struct{}{} } - case 459: + case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3497 + //line sql.y:3530 { yyVAL.empty = struct{}{} } - case 460: + case 467: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3502 + //line sql.y:3535 { yyVAL.tableIdent = NewTableIdent("") } - case 461: + case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3506 + //line sql.y:3539 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 462: + case 469: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3510 + //line sql.y:3543 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 464: + case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3517 + //line sql.y:3550 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 465: + case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3523 + //line sql.y:3556 { yyVAL.str = JoinStr } - case 466: + case 473: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3527 + //line sql.y:3560 { yyVAL.str = JoinStr } - case 467: + case 474: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3531 + //line sql.y:3564 { yyVAL.str = JoinStr } - case 468: + case 475: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3535 + //line sql.y:3568 { yyVAL.str = StraightJoinStr } - case 469: + case 476: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3541 + //line sql.y:3574 { yyVAL.str = LeftJoinStr } - case 470: + case 477: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3545 + //line sql.y:3578 { yyVAL.str = LeftJoinStr } - case 471: + case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3549 + //line sql.y:3582 { yyVAL.str = RightJoinStr } - case 472: + case 479: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3553 + //line sql.y:3586 { yyVAL.str = RightJoinStr } - case 473: + case 480: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3559 + //line sql.y:3592 { yyVAL.str = NaturalJoinStr } - case 474: + case 481: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3563 + //line sql.y:3596 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -6053,459 +6153,459 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 475: + case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3573 + //line sql.y:3606 { yyVAL.tableName = yyDollar[2].tableName } - case 476: + case 483: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3577 + //line sql.y:3610 { yyVAL.tableName = yyDollar[1].tableName } - case 477: + case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3583 + //line sql.y:3616 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 478: + case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3587 + //line sql.y:3620 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 479: + case 486: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3592 + //line sql.y:3625 { yyVAL.indexHints = nil } - case 480: + case 487: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3596 + //line sql.y:3629 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].colIdents} } - case 481: + case 488: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3600 + //line sql.y:3633 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].colIdents} } - case 482: + case 489: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3604 + //line sql.y:3637 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].colIdents} } - case 483: + case 490: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3610 + //line sql.y:3643 { yyVAL.colIdents = []ColIdent{yyDollar[1].colIdent} } - case 484: + case 491: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3614 + //line sql.y:3647 { yyVAL.colIdents = append(yyDollar[1].colIdents, yyDollar[3].colIdent) } - case 485: + case 492: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3619 + //line sql.y:3652 { yyVAL.expr = nil } - case 486: + case 493: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3623 + //line sql.y:3656 { yyVAL.expr = yyDollar[2].expr } - case 487: + case 494: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3629 + //line sql.y:3662 { yyVAL.expr = yyDollar[1].expr } - case 488: + case 495: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3633 + //line sql.y:3666 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 489: + case 496: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3637 + //line sql.y:3670 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 490: + case 497: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3641 + //line sql.y:3674 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 491: + case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3645 + //line sql.y:3678 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 492: + case 499: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3649 + //line sql.y:3682 { yyVAL.expr = yyDollar[1].expr } - case 493: + case 500: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3653 + //line sql.y:3686 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 494: + case 501: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3659 + //line sql.y:3692 { yyVAL.str = "" } - case 495: + case 502: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3663 + //line sql.y:3696 { yyVAL.str = string(yyDollar[2].bytes) } - case 496: + case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3669 + //line sql.y:3702 { yyVAL.boolVal = BoolVal(true) } - case 497: + case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3673 + //line sql.y:3706 { yyVAL.boolVal = BoolVal(false) } - case 498: + case 505: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3679 + //line sql.y:3712 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } - case 499: + case 506: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3683 + //line sql.y:3716 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } - case 500: + case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3687 + //line sql.y:3720 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } - case 501: + case 508: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3691 + //line sql.y:3724 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } - case 502: + case 509: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3695 + //line sql.y:3728 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } - case 503: + case 510: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3699 + //line sql.y:3732 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } - case 504: + case 511: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3703 + //line sql.y:3736 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } - case 505: + case 512: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3707 + //line sql.y:3740 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } - case 506: + case 513: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3711 + //line sql.y:3744 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } - case 507: + case 514: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3715 + //line sql.y:3748 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } - case 508: + case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3721 + //line sql.y:3754 { yyVAL.str = IsNullStr } - case 509: + case 516: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3725 + //line sql.y:3758 { yyVAL.str = IsNotNullStr } - case 510: + case 517: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3729 + //line sql.y:3762 { yyVAL.str = IsTrueStr } - case 511: + case 518: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3733 + //line sql.y:3766 { yyVAL.str = IsNotTrueStr } - case 512: + case 519: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3737 + //line sql.y:3770 { yyVAL.str = IsFalseStr } - case 513: + case 520: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3741 + //line sql.y:3774 { yyVAL.str = IsNotFalseStr } - case 514: + case 521: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3747 + //line sql.y:3780 { yyVAL.str = EqualStr } - case 515: + case 522: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3751 + //line sql.y:3784 { yyVAL.str = LessThanStr } - case 516: + case 523: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3755 + //line sql.y:3788 { yyVAL.str = GreaterThanStr } - case 517: + case 524: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3759 + //line sql.y:3792 { yyVAL.str = LessEqualStr } - case 518: + case 525: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3763 + //line sql.y:3796 { yyVAL.str = GreaterEqualStr } - case 519: + case 526: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3767 + //line sql.y:3800 { yyVAL.str = NotEqualStr } - case 520: + case 527: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3771 + //line sql.y:3804 { yyVAL.str = NullSafeEqualStr } - case 521: + case 528: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3776 + //line sql.y:3809 { yyVAL.expr = nil } - case 522: + case 529: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3780 + //line sql.y:3813 { yyVAL.expr = yyDollar[2].expr } - case 523: + case 530: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3786 + //line sql.y:3819 { yyVAL.colTuple = yyDollar[1].valTuple } - case 524: + case 531: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3790 + //line sql.y:3823 { yyVAL.colTuple = yyDollar[1].subquery } - case 525: + case 532: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3794 + //line sql.y:3827 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 526: + case 533: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3800 + //line sql.y:3833 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 527: + case 534: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3806 + //line sql.y:3839 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 528: + case 535: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3810 + //line sql.y:3843 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 529: + case 536: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3816 + //line sql.y:3849 { yyVAL.expr = yyDollar[1].expr } - case 530: + case 537: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3820 + //line sql.y:3853 { yyVAL.expr = yyDollar[1].boolVal } - case 531: + case 538: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3824 + //line sql.y:3857 { yyVAL.expr = yyDollar[1].colName } - case 532: + case 539: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3828 + //line sql.y:3861 { yyVAL.expr = yyDollar[1].expr } - case 533: + case 540: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3832 + //line sql.y:3865 { yyVAL.expr = yyDollar[1].subquery } - case 534: + case 541: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3836 + //line sql.y:3869 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } - case 535: + case 542: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3840 + //line sql.y:3873 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } - case 536: + case 543: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3844 + //line sql.y:3877 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } - case 537: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3848 + //line sql.y:3881 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } - case 538: + case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3852 + //line sql.y:3885 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } - case 539: + case 546: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3856 + //line sql.y:3889 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } - case 540: + case 547: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3860 + //line sql.y:3893 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } - case 541: + case 548: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3864 + //line sql.y:3897 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } - case 542: + case 549: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3868 + //line sql.y:3901 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 543: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3872 + //line sql.y:3905 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 544: + case 551: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3876 + //line sql.y:3909 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } - case 545: + case 552: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3880 + //line sql.y:3913 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } - case 546: + case 553: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3884 + //line sql.y:3917 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } - case 547: + case 554: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3888 + //line sql.y:3921 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } - case 548: + case 555: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3892 + //line sql.y:3925 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } - case 549: + case 556: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3896 + //line sql.y:3929 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } - case 550: + case 557: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3900 + //line sql.y:3933 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -6513,9 +6613,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 551: + case 558: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3908 + //line sql.y:3941 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -6529,21 +6629,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 552: + case 559: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3922 + //line sql.y:3955 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 553: + case 560: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3926 + //line sql.y:3959 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 554: + case 561: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3930 + //line sql.y:3963 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -6551,389 +6651,389 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 559: + case 566: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3948 + //line sql.y:3981 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 560: + case 567: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3952 + //line sql.y:3985 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 561: + case 568: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3956 + //line sql.y:3989 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 562: + case 569: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3966 + //line sql.y:3999 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 563: + case 570: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3970 + //line sql.y:4003 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 564: + case 571: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3974 + //line sql.y:4007 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 565: + case 572: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3978 + //line sql.y:4011 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 566: + case 573: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3982 + //line sql.y:4015 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 567: + case 574: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:3986 + //line sql.y:4019 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 568: + case 575: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:3990 + //line sql.y:4023 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 569: + case 576: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3994 + //line sql.y:4027 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 570: + case 577: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3998 + //line sql.y:4031 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colIdent} } - case 571: + case 578: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4008 + //line sql.y:4041 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 572: + case 579: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4012 + //line sql.y:4045 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 573: + case 580: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4016 + //line sql.y:4049 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 574: + case 581: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4020 + //line sql.y:4053 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 575: + case 582: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4025 + //line sql.y:4058 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 576: + case 583: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4030 + //line sql.y:4063 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 577: + case 584: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4035 + //line sql.y:4068 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 578: + case 585: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4040 + //line sql.y:4073 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 581: + case 588: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4055 + //line sql.y:4088 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 582: + case 589: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4059 + //line sql.y:4092 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 583: + case 590: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4063 + //line sql.y:4096 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 584: + case 591: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4067 + //line sql.y:4100 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 585: + case 592: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4073 + //line sql.y:4106 { yyVAL.str = "" } - case 586: + case 593: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4077 + //line sql.y:4110 { yyVAL.str = BooleanModeStr } - case 587: + case 594: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4081 + //line sql.y:4114 { yyVAL.str = NaturalLanguageModeStr } - case 588: + case 595: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:4085 + //line sql.y:4118 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 589: + case 596: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4089 + //line sql.y:4122 { yyVAL.str = QueryExpansionStr } - case 590: + case 597: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4095 + //line sql.y:4128 { yyVAL.str = string(yyDollar[1].bytes) } - case 591: + case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4099 + //line sql.y:4132 { yyVAL.str = string(yyDollar[1].bytes) } - case 592: + case 599: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4105 + //line sql.y:4138 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 593: + case 600: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4109 + //line sql.y:4142 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 594: + case 601: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4113 + //line sql.y:4146 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 595: + case 602: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4117 + //line sql.y:4150 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 596: + case 603: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4121 + //line sql.y:4154 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 597: + case 604: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4125 + //line sql.y:4158 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].lengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].lengthScaleOption.Scale } - case 598: + case 605: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4131 + //line sql.y:4164 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 599: + case 606: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4135 + //line sql.y:4168 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 600: + case 607: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4139 + //line sql.y:4172 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 601: + case 608: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4143 + //line sql.y:4176 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 602: + case 609: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4147 + //line sql.y:4180 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 603: + case 610: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4151 + //line sql.y:4184 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 604: + case 611: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4155 + //line sql.y:4188 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 605: + case 612: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4160 + //line sql.y:4193 { yyVAL.expr = nil } - case 606: + case 613: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4164 + //line sql.y:4197 { yyVAL.expr = yyDollar[1].expr } - case 607: + case 614: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4169 + //line sql.y:4202 { yyVAL.str = string("") } - case 608: + case 615: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4173 + //line sql.y:4206 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 609: + case 616: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4179 + //line sql.y:4212 { yyVAL.whens = []*When{yyDollar[1].when} } - case 610: + case 617: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4183 + //line sql.y:4216 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 611: + case 618: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4189 + //line sql.y:4222 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 612: + case 619: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4194 + //line sql.y:4227 { yyVAL.expr = nil } - case 613: + case 620: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4198 + //line sql.y:4231 { yyVAL.expr = yyDollar[2].expr } - case 614: + case 621: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4204 + //line sql.y:4237 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 615: + case 622: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4208 + //line sql.y:4241 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 616: + case 623: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4212 + //line sql.y:4245 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 617: + case 624: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4218 + //line sql.y:4251 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 618: + case 625: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4222 + //line sql.y:4255 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 619: + case 626: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4226 + //line sql.y:4259 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 620: + case 627: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4230 + //line sql.y:4263 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 621: + case 628: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4234 + //line sql.y:4267 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 622: + case 629: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4238 + //line sql.y:4271 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 623: + case 630: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4242 + //line sql.y:4275 { yyVAL.expr = &NullVal{} } - case 624: + case 631: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4248 + //line sql.y:4281 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -6942,239 +7042,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 625: + case 632: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4257 + //line sql.y:4290 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 626: + case 633: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4261 + //line sql.y:4294 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 627: + case 634: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4266 + //line sql.y:4299 { yyVAL.exprs = nil } - case 628: + case 635: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4270 + //line sql.y:4303 { yyVAL.exprs = yyDollar[3].exprs } - case 629: + case 636: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4275 + //line sql.y:4308 { yyVAL.expr = nil } - case 630: + case 637: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4279 + //line sql.y:4312 { yyVAL.expr = yyDollar[2].expr } - case 631: + case 638: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4284 + //line sql.y:4317 { yyVAL.orderBy = nil } - case 632: + case 639: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4288 + //line sql.y:4321 { yyVAL.orderBy = yyDollar[3].orderBy } - case 633: + case 640: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4294 + //line sql.y:4327 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 634: + case 641: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4298 + //line sql.y:4331 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 635: + case 642: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4304 + //line sql.y:4337 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 636: + case 643: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4309 + //line sql.y:4342 { yyVAL.str = AscScr } - case 637: + case 644: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4313 + //line sql.y:4346 { yyVAL.str = AscScr } - case 638: + case 645: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4317 + //line sql.y:4350 { yyVAL.str = DescScr } - case 639: + case 646: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4322 + //line sql.y:4355 { yyVAL.limit = nil } - case 640: + case 647: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4326 + //line sql.y:4359 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 641: + case 648: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4330 + //line sql.y:4363 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 642: + case 649: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4334 + //line sql.y:4367 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 643: + case 650: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4339 + //line sql.y:4372 { yyVAL.str = "" } - case 644: + case 651: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4343 + //line sql.y:4376 { yyVAL.str = ForUpdateStr } - case 645: + case 652: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4347 + //line sql.y:4380 { yyVAL.str = ShareModeStr } - case 646: + case 653: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4360 + //line sql.y:4393 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 647: + case 654: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4364 + //line sql.y:4397 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 648: + case 655: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4368 + //line sql.y:4401 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 649: + case 656: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4373 + //line sql.y:4406 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 650: + case 657: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4377 + //line sql.y:4410 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 651: + case 658: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:4381 + //line sql.y:4414 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 652: + case 659: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4388 + //line sql.y:4421 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 653: + case 660: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4392 + //line sql.y:4425 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 654: + case 661: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4396 + //line sql.y:4429 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 655: + case 662: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4400 + //line sql.y:4433 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 656: + case 663: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4405 + //line sql.y:4438 { yyVAL.updateExprs = nil } - case 657: + case 664: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4409 + //line sql.y:4442 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 658: + case 665: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4415 + //line sql.y:4448 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 659: + case 666: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4419 + //line sql.y:4452 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 660: + case 667: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4425 + //line sql.y:4458 { yyVAL.valTuple = yyDollar[1].valTuple } - case 661: + case 668: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4429 + //line sql.y:4462 { yyVAL.valTuple = ValTuple{} } - case 662: + case 669: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4435 + //line sql.y:4468 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 663: + case 670: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4441 + //line sql.y:4474 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -7182,415 +7282,415 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 664: + case 671: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4451 + //line sql.y:4484 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 665: + case 672: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4455 + //line sql.y:4488 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 666: + case 673: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4461 + //line sql.y:4494 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 667: + case 674: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4467 + //line sql.y:4500 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 668: + case 675: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4471 + //line sql.y:4504 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 669: + case 676: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4477 + //line sql.y:4510 { yyVAL.setExpr = yyDollar[1].setExpr } - case 670: + case 677: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4481 + //line sql.y:4514 { yyDollar[2].setExpr.Scope = yyDollar[1].str yyVAL.setExpr = yyDollar[2].setExpr } - case 671: + case 678: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4488 + //line sql.y:4521 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: NewStrVal([]byte("on"))}} } - case 672: + case 679: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4492 + //line sql.y:4525 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: NewStrVal([]byte("off"))}} } - case 673: + case 680: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4496 + //line sql.y:4529 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: yyDollar[3].expr}} } - case 674: + case 681: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4500 + //line sql.y:4533 { yyVAL.setExpr = &SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: &OptVal{Value: yyDollar[2].expr}} } - case 675: + case 682: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4504 + //line sql.y:4537 { yyVAL.setExpr = &SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: &OptVal{Value: &CollateExpr{Expr: yyDollar[2].expr, Charset: yyDollar[3].str}}} } - case 677: + case 684: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4511 + //line sql.y:4544 { yyVAL.bytes = []byte("charset") } - case 678: + case 685: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4517 + //line sql.y:4550 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 679: + case 686: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4521 + //line sql.y:4554 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 680: + case 687: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4525 + //line sql.y:4558 { yyVAL.expr = &Default{} } - case 681: + case 688: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4531 + //line sql.y:4564 { yyVAL.setExprs = SetExprs{&SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: yyDollar[2].setVal}} } - case 682: + case 689: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4535 + //line sql.y:4568 { yyVAL.setExprs = SetExprs{&SetExpr{Scope: yyDollar[1].str, Type: NewColIdent(string(yyDollar[2].bytes)), Val: yyDollar[3].setVal}} } - case 683: + case 690: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4541 + //line sql.y:4574 { yyVAL.setVal = &TxnVal{Level: yyDollar[1].str, Mode: yyDollar[2].str} } - case 684: + case 691: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4545 + //line sql.y:4578 { yyVAL.setVal = &TxnVal{Level: yyDollar[2].str, Mode: yyDollar[1].str} } - case 685: + case 692: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4551 + //line sql.y:4584 { yyVAL.str = "" } - case 686: + case 693: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4555 + //line sql.y:4588 { yyVAL.str = yyDollar[2].str } - case 687: + case 694: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4561 + //line sql.y:4594 { yyVAL.str = yyDollar[3].str } - case 688: + case 695: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4567 + //line sql.y:4600 { yyVAL.str = RepeatableRead } - case 689: + case 696: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4571 + //line sql.y:4604 { yyVAL.str = ReadCommitted } - case 690: + case 697: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4575 + //line sql.y:4608 { yyVAL.str = ReadUncommitted } - case 691: + case 698: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4579 + //line sql.y:4612 { yyVAL.str = Serializable } - case 692: + case 699: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4585 + //line sql.y:4618 { yyVAL.str = "" } - case 693: + case 700: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4589 + //line sql.y:4622 { yyVAL.str = yyDollar[2].str } - case 694: + case 701: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4595 + //line sql.y:4628 { yyVAL.str = TxReadWrite } - case 695: + case 702: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4599 + //line sql.y:4632 { yyVAL.str = TxReadOnly } - case 696: + case 703: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4605 + //line sql.y:4638 { yyVAL.str = SessionStr } - case 697: + case 704: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4609 + //line sql.y:4642 { yyVAL.str = SessionStr } - case 698: + case 705: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4613 + //line sql.y:4646 { yyVAL.str = GlobalStr } - case 701: + case 708: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4622 + //line sql.y:4655 { yyVAL.byt = 0 } - case 702: + case 709: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4626 + //line sql.y:4659 { yyVAL.byt = 1 } - case 703: + case 710: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4631 + //line sql.y:4664 { yyVAL.byt = 0 } - case 704: + case 711: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4635 + //line sql.y:4668 { yyVAL.byt = 1 } - case 705: + case 712: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4640 + //line sql.y:4673 { yyVAL.str = "" } - case 706: + case 713: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4644 + //line sql.y:4677 { yyVAL.str = IgnoreStr } - case 707: + case 714: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4650 + //line sql.y:4683 { yyVAL.empty = struct{}{} } - case 708: + case 715: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4654 + //line sql.y:4687 { yyVAL.empty = struct{}{} } - case 709: + case 716: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4658 + //line sql.y:4691 { yyVAL.empty = struct{}{} } - case 710: + case 717: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4662 + //line sql.y:4695 { yyVAL.empty = struct{}{} } - case 711: + case 718: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4666 + //line sql.y:4699 { yyVAL.empty = struct{}{} } - case 712: + case 719: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4670 + //line sql.y:4703 { yyVAL.empty = struct{}{} } - case 713: + case 720: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4674 + //line sql.y:4707 { yyVAL.empty = struct{}{} } - case 714: + case 721: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4678 + //line sql.y:4711 { yyVAL.empty = struct{}{} } - case 715: + case 722: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4682 + //line sql.y:4715 { yyVAL.empty = struct{}{} } - case 716: + case 723: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4686 + //line sql.y:4719 { yyVAL.empty = struct{}{} } - case 717: + case 724: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4691 + //line sql.y:4724 { yyVAL.empty = struct{}{} } - case 718: + case 725: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4695 + //line sql.y:4728 { yyVAL.empty = struct{}{} } - case 719: + case 726: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4699 + //line sql.y:4732 { yyVAL.empty = struct{}{} } - case 720: + case 727: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4705 + //line sql.y:4738 { yyVAL.empty = struct{}{} } - case 721: + case 728: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4709 + //line sql.y:4742 { yyVAL.empty = struct{}{} } - case 722: + case 729: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4714 + //line sql.y:4747 { yyVAL.str = IndexStr } - case 723: + case 730: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4718 + //line sql.y:4751 { yyVAL.str = UniqueStr } - case 724: + case 731: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4724 + //line sql.y:4757 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 725: + case 732: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4728 + //line sql.y:4761 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 727: + case 734: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4735 + //line sql.y:4768 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 728: + case 735: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4741 + //line sql.y:4774 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 729: + case 736: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4745 + //line sql.y:4778 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 731: + case 738: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4752 + //line sql.y:4785 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 732: + case 739: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4758 + //line sql.y:4791 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 733: + case 740: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4762 + //line sql.y:4795 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 937: + case 945: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4992 + //line sql.y:5026 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 938: + case 946: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:5001 + //line sql.y:5035 { decNesting(yylex) } - case 939: + case 947: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:5006 + //line sql.y:5040 { forceEOF(yylex) } diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y index 83929516..7c454e22 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y @@ -359,9 +359,10 @@ func forceEOF(yylex interface{}) { %token DATE ESCAPE + HELP REPAIR - OPTIMIZE TRUNCATE + OPTIMIZE // Type Tokens %token @@ -547,9 +548,10 @@ func forceEOF(yylex interface{}) { describe_statement explain_statement explainable_statement + help_statement kill_statement - transaction_statement radon_statement + transaction_statement %token ENGINES @@ -929,6 +931,7 @@ func forceEOF(yylex interface{}) { %type id_or_string + id_or_string_opt %type opt_charset @@ -1079,6 +1082,7 @@ command: | xa_statement | describe_statement | explain_statement +| help_statement | kill_statement | transaction_statement | radon_statement @@ -3045,6 +3049,35 @@ explain_statement: $$ = &Explain{Type: ExplainTypeEmpty, Analyze: true, Statement: $6} } +id_or_string_opt: + { + $$ = nil + } +| ID + { + // Normal str as an identify, without quote + $$ = NewStrValWithoutQuote($1) + } +| STRING + { + // Str with Quote, it will be parsed by Lex begin with quote \' or \" + $$ = NewStrVal($1) + } +| reserved_keyword + { + $$ = NewStrValWithoutQuote($1) + } +| non_reserved_keyword + { + $$ = NewStrValWithoutQuote($1) + } + +help_statement: + HELP id_or_string_opt + { + $$ = &Help{HelpInfo: $2} + } + kill_opt: {} | QUERY @@ -4819,6 +4852,7 @@ reserved_keyword: | FULL | GROUP | HAVING +| HELP | IF | IGNORE | IN diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go index 70c644c2..92bb22a6 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go @@ -194,6 +194,7 @@ var keywords = map[string]int{ "gtid": GTID, "hash": HASH, "having": HAVING, + "help": HELP, "high_priority": UNUSED, "hour_microsecond": UNUSED, "hour_minute": UNUSED, diff --git a/src/xbase/querytypes.go b/src/xbase/querytypes.go index bfa84d4b..d9d73373 100644 --- a/src/xbase/querytypes.go +++ b/src/xbase/querytypes.go @@ -31,6 +31,9 @@ const ( // EXPLAIN type. EXPLAIN = "EXPLAIN" + // HELP type. + HELP = "HELP" + // KILL type. KILL = "KILL"